Как сделать себя в модной нейронке Flux (лёгкий путь без смс и регистрации)
Среди топовых картиночных генераторов у всех на устах Flux. Недавно она обновилась и стала какой‑то прям совсем шустрой, но новая версия тяжелая и локально она недоступна, увы. Но первый релиз отличный и прекрасно генерит фотореалистичных человечков и вообще в целом кайфовая штука, к.м.к. Покажу, как дотренировать её на своих фотках, чтоб можно было генерить себя любимого/мую в любых ракурсах.
<офтоп>В одной из статей на Хабре жалуются, что про LoRA «рассказывают супер‑поверхностно — как скачать какую‑то GUI программу, и куда тыкать кнопочки». Этот туториал как раз про это). В целом, ориентирован на начальный уровень, не кидайтсь камнями.
(Вот у меня юзкейс — не хватает иногда фоток профессиональных для профилей всяких, а тут можно быстро нагенерить. Ну, и не с людьми тоже прокатывает — можно для своего бренда что‑то кастомное генерить, переносить стили с образца. Да даже, простигосспадя, цифровых инфлюенсеров с консистентными лицами создавать пачками и тачками) офтоп>
LoRA (Low‑rank adaptation, LoRA) для FLUX до недавнего времени можно было создавать, в основном, через сервисы и, увы, платно. Пусть денежка была совсем крошечная (около 200 рублей), но надо было с зарубежной карты платить, а это может быть проблемой.
Тренить ЛоРу можно было через Civitai.com, Fal.ai, replicate.com. Был и оффлайн‑метод, но довольно геморный, с кучей шаманств. Недавно нашел простой способ через штуку под названием FluxGym, на всё про всё минут 10.
Кратко дефолтный пайплайн будет следующий: скачаем оболочку для нейронок, там внутри сетапнем Forge и FluxGym, запустим FluxGym и натреним LoRA со своими фотками, соединим все это, профит.
Понадобится комп. У меня условия для тренировки LoRA весьма благоприятные с 3090, но нужно минимум 12 Gb VRAM и примерно 30 гигов на хранилище всякого. Еще подготовьте не меньше 10 картинок, на которых тренировать будем.
Я предполагаю, что сам Flux уже у вас установлен. У меня он в оболочке Forge обитает, установлен отдельно ранее. Но если вдруг нет, то сейчас покажу, чего делать. Остальным можно игнорить этот пункт.
Шаг 1.
Нам нужен Pinokio — это оболочка для установки всяких нейросетевых штук. Она удобна для тех, кому надо в один клик всё сделать и не мучаться с путями, терминалами, отдельной установкой всего и т. д. Но для тех, кому эти оболочки нафиг не сдались, тоже подскажу далее. Оболочка также работает как браузер, поэтому после запуска нужных сервисов админка откроется прямо в этой софтине.
Итак, устанавливаем, выбираем папку, куда сетапится всё будет. Открываем Pinokio, идем в Discover.
Шаг 2.
Если Forge с флюксом у вас уже есть, то пропускаем этот шаг.
Если Flux у вас не установлен, то в поиске вбиваем название оболочки Forge, нажимаем Download, после нажимаем Install. Он скачает все зависимости, Python, если нету, всё чего нужно. Это все в отдельном venv будет крутиться, поэтому если Python уже есть, но конфликтов быть не должно. Как установили — откроется админка Forge, справа в панели нажмите «Stop». Потом поиграемся.
Шаг 3.
В поиске ищем FluxGym. Нажимает Download, потом Install. Он может докачать зависимости и проигнорировать наличие Python на уровне системы. Всё положит в папочку в отдельном окружении.
Если это всё дублирование вам не надо, то гитклонить FluxGym отдельно тут.
Шаг 4.
На этом этапе у нас есть Forge (пока без Флюкса), FluxGym. Запускаем FluxGym через Pinokio. Открывается окно. К этому моменту надо картинки подготовить.
Вот требования к картинкам. Если вы трените человека/персонажа, то в наборе картинок нужны разные ракурсы, позы. Желательно, разные эмоции на лице/морде. Если нужно перенести стиль, то желательно подготовить максимально доступные качественные картинки с разной композицией кадра. Не нужно сотки картинок, для персонажа достаточно 10–20 картинок. Для переноса стиля лучше побольше — 40–50.
Заполняем название «The Name of your LoRA» — любое, на латинице, лучше слитно.
Trigger word — тоже придумываем какое‑то нешаблонное имя, это, как следует из названия, будет в промпте «вызывать» ваш датасет.
Base model — лучше выбирать flux‑dev, будет работать и с более легкой версией Flux Schnell.
VRAM — выбрать то, что лучше подходит вашему конфигу.
Далее я оставлял как есть параметры «Repeat trains per image» и «Max Train Epochs». Говорят, что надо увеличивать эти параметры, если LoRA багованная получилась.
В Sample Image Prompts можно вставить Trigger word и какой‑то промпт и тогда по мере дообучения будут выдаваться сэмплы генераций, чисто посмотреть, как ИИшка тренинг проходит. Я оставил пустым.
Загружаем картинки. Внизу повятся превьюшки с триггер‑словом. Тут надо это всё теперь описать — что происходит на каждой из картинок. Можно доверить описание встроенной фиче. Для этого нажать «Add AI captions with Florence-2». Оно подумает пару минут и разродится описаниями. Их надо просмотреть и подредачить, если там какая‑то чушь вдруг нагенерилась.
Всё, жмем «Start Training» и ждем. У меня за пару часов завершилось. Примерно 40 минут тренит на 10 картинках. Больше картинок — больше времени соответственно.
Шаг 5.
Когда все завершиться, LoRA будет лежать в папке pinokio\api\fluxgym.git\outputs
Там будет папка с названием вашей ЛОРы, внутри несколько файликов. Вам нужен название.safetensors, без циферок типа 000 004/000 008. Этот файлик надо скопировать в папку LoRA в Forge (что‑то типа models\Lora).
Шаг 6.
Если у вас уже есть Flux в любой из оболочек — то ну и всё, подгружаете LoRA и пользуете. Если нет, то если у вас Forge отдельно инсталлирован, то в models\Stable‑diffusion надо скачать и положить Flux.
Если есть только Pinokio, то можно через него скачать модель Flux. Если видеопамяти достоточно, то любую выбираться можно (DEV‑fp8). Если железо слабое, то GGUF — https://huggingface.co/lllyasviel/FLUX.1-dev‑gguf
Почитать подробно тут: https://github.com/lllyasviel/stable‑diffusion‑webui‑forge/discussions/1050
Если ничего не скачано и не настроено с Flux, то обязательно по рекоммендуемым настройкам пройдитесь, скачайте и положите vae в models\VAE, положите clip‑l и t5 в models\text_encoder.
Запускаем Forge, выбираем в Checkpoint flux1-dev (или ту, что у вас подходит под железо). Выставляем рекоммендуемые штуки в VAE/text encoder.
Всё, теперь на таб LoRA переходим и, если всё сделали правильно, там будет наша кастомная LoRA. Тыкаем в нее, она добавляется в промпт. Также в промпт включаем триггер‑слово. Если, допустим, сгенерированный персонаж имеет недостаточно похож на то, на чем вы тренили, можно увеличить вес, силу влияния LoRA на генерацию — повышать в названии ЛОРы цифру 1 постепенно: 1.1, 1.2, 1.3 пока результат не устроит.
Было полезно — плюсаните карму)