ИИшница: Flux и как вы вообще этим пользуетесь?
Автор: wayerrВ прошлом году летом вышла очередная нейросеть для генерации картинок. "Flux1 dev" (их там несколько вариантов но это самая популярная). Сама моделька весит под 22гига, а там еще к ней ~9гиг текстовой модели.
Почему так много занимает текстовая модель? Потому что в кои-то веки модель для генерации изображений научилась действительно понимать человеческую речь. Ну правда на английском, но всё же её можно сказать, что вот ручей слева, текёт от горизонта, бесшовно стыкуется с небом и оно даже поймёт.
Обложки делать очень просто:
Как обычно, анекдот в нюансах.
Ну мало у кого есть видяха с 12 гигами (ужатая fp16 моделька весит 11гиг, а ещё надо куда-то картинку же впихнуть). У меня же amd rx6600m (мобильная но для десктопа) с 8гиг.
В итоге чтобы модельку не просто впихнуть в память видяхи (она всё равно полностью там не поместится, но хоть что-то) и т.п. пришлось заморочиться.
Работает это так:
- comfyui - стандартные ноды для загрузки и семплинга. Увы в webui-forge то лоры перестают работать, то память течёт то ещё что, он у меня для sdxl
- включен PYTORCH_TUNABLEOP
- fp16 модель с turbo и прочими улучшениями, выдаёт быстрый, но глючный результат за 4-8 итераций, позволяет оценить промпт
- генерация мелких изображений 512x760
Итог, 10 итераций, 50сек на картинку:
В картинке чуть поправил контраст. В остальном это все работа нейросети за 10 итераций. Текст получился с соотвествующей лорой с 4-мя попытками. В остальных более кривые буквы (это особенность лоры).
Другой нюанс в том, что многие сложные промпты и лоры требуют поднимать cfg выше 1 (не путать с guidance cfg который 3.5 по умолчанию). Это приводит к тому, что итерация выполняется в два раза дольше. Что грустнее.
А без этого не получить многие эффекты. Красненькая обложка с примера выше требовала cfg = 2.
Следующий нюанс в том, что flux использует две текстовые модели:
- clip_l - она простенькая, человеческий язык не понимает и использовалась в stable diffusion с первых версий. Зато отлично работает при обучении по тегам.
- t5xxl - понимает человеческий язык и вот это всё. Зато хз как с ней обучать. Судя по всему - плохо.
К тому стоит добавить что flux сам по себе достаточно тяжёл что его не на всяком железе можно обучать. И мы приходим к тому, что если под sdxl полно лор и моделей с чем угодно, то под flux всё печально. Много прикольных стилей. Но...
Но например фуррям оно даже спустя почти год через раз лепит хвост не там, особенно если вид чуть с боку с зади. С крыльями беда - они могут быть только плоские. Кое-где изредка попадаются чуть сложенные. Но что так, что эдак они всё равно деревянные, без той динамики, что есть у садящейся птицы.
Если сказать girl with dragon wings, то нейросеть может нарисовать головы драконов на крыльях. Это же то самое чего мы так долго желали! Причём в примерах у других пользоваталей я видел тамже и головы воронов и всё проее. Офигенная работа нейросети.
Кроче по итогу это глюная, сырая и тяжеленная штука, которая может рисовать реализм. Может наверчивать стили. Ну и сложные композиции. Иногда действительно сложные - теперь не надо городить всякие inpaint c regional prompt.
Но вот если нужен ростовой протрет что-то из фэнтези, зверолюдей и т.п. да ещё и не в реализме то всё плохо.
Впрочем не фатально, всё же она что-то может:
Но тут прекрасно видна уйма косяков, которых бы не допустил sdxl. Зато flux умеет кучу деталюшечек даже на таком разрешении. Без стилизации результат менее кривой (это 10 шагов и две лоры - на фуррей и ускоряющая):
Хотя и тут етсь изъяны. И нет чёлки.
Вероятно есть смысл такие вещи генерить в sdxl а flux использовать для апскейла. Хотя в сети народ наоборот генерирует флуксом, а апскейлит sdxl.
Итог?
Итог простой: нейросети с каждым днём всё дальше от человека. Их учат лучше понимать человеческую речь, быть реалистичнее, но становится всё сложнее установить, доработать, добиться именно нужного результата, а не абы какого "красивенького" или реалистичного.