Flux Redux x3 - смешиваем 3 картинки с указанием силы
Если кто не в курсе, Flux Redux - новая модель для создания вариаций картинки.
Базовый воркфлоу для Flux Redux (вариации по одной картинке) слишком негибкий, поэтому я его адаптировал. Я добавил указание силы для каждой картинки и для промпта. Теперь можно четко контролировать силу каждого фактора.
Рекомендации:
- в моем воркфлоу главная картинка всегда третья, у нее всегда почему-то самое большое влияние на результат, ставьте ей силу 1.0 или близкое значение.
- первая картинка по умолчанию выключена. Если вам надо - можете включить, но контролировать 3 картинки + промпт - сложнее, чем 2.
- Redux неплохо работает с лорами. Тестил на лоре на лицо.
- рекомендую выставлять большое конечное разрешение, например, 800x1400. При меньшем разрешении финальные картинки иногда могут не влезать по высоте, и объект будет обрезаться сверху. Предполагаю, что redux тренировали на разрешении 1400x1400.
- сила промпта также может быть задана, путем уменьшения финальной силы всех картинок. По умолчанию она стоит в 0.40. При 1.00 - промпт будет игнорироваться. При 0.00 - картинки будут игнорироваться.
- картинки на белом фоне проще интегрировать друг в друга.
- у меня там 2 лоры встроены с силой 0. выберите любые или удалите эти ноды если у вас вообще нет скачанных лор.
Все ноды доступны по умолчанию (кроме гуфов, но по умолчанию выключены). Ничего дополнительно устанавливать не надо, просто обновите comfyui (update_comfyui.bat) и перетащите воркфлоу.
Для работы Redux скачать, если не качали:
sigclip https://huggingface.co/Comfy-Org/sigclip_vision_384/blob/main/sigclip_vision_patch14_384.safetensors в папку models/clip_vision
FLUX.1-Redux https://huggingface.co/black-forest-labs/FLUX.1-Redux-dev в папку models/style_models
flux dev, clip_l, t5_xxl, vae надеюсь у вас уже скачаны, если нет то: https://comfyanonymous.github.io/ComfyUI_examples/flux/
Redux x3 воркфлоу https://github.com/Mozer/comfy_stuff/blob/main/workflows/workflow_redux_x3_with_strength.png
Затестить онлайн: https://www.runninghub.ai/post/1860773217928441857
Если кто не в курсе, Flux Redux - новая модель для создания вариаций картинки.
Базовый воркфлоу для Flux Redux (вариации по одной картинке) слишком негибкий, поэтому я его адаптировал. Я добавил указание силы для каждой картинки и для промпта. Теперь можно четко контролировать силу каждого фактора.
Рекомендации:
- в моем воркфлоу главная картинка всегда третья, у нее всегда почему-то самое большое влияние на результат, ставьте ей силу 1.0 или близкое значение.
- первая картинка по умолчанию выключена. Если вам надо - можете включить, но контролировать 3 картинки + промпт - сложнее, чем 2.
- Redux неплохо работает с лорами. Тестил на лоре на лицо.
- рекомендую выставлять большое конечное разрешение, например, 800x1400. При меньшем разрешении финальные картинки иногда могут не влезать по высоте, и объект будет обрезаться сверху. Предполагаю, что redux тренировали на разрешении 1400x1400.
- сила промпта также может быть задана, путем уменьшения финальной силы всех картинок. По умолчанию она стоит в 0.40. При 1.00 - промпт будет игнорироваться. При 0.00 - картинки будут игнорироваться.
- картинки на белом фоне проще интегрировать друг в друга.
- у меня там 2 лоры встроены с силой 0. выберите любые или удалите эти ноды если у вас вообще нет скачанных лор.
Все ноды доступны по умолчанию (кроме гуфов, но по умолчанию выключены). Ничего дополнительно устанавливать не надо, просто обновите comfyui (update_comfyui.bat) и перетащите воркфлоу.
Для работы Redux скачать, если не качали:
sigclip https://huggingface.co/Comfy-Org/sigclip_vision_384/blob/main/sigclip_vision_patch14_384.safetensors в папку models/clip_vision
FLUX.1-Redux https://huggingface.co/black-forest-labs/FLUX.1-Redux-dev в папку models/style_models
flux dev, clip_l, t5_xxl, vae надеюсь у вас уже скачаны, если нет то: https://comfyanonymous.github.io/ComfyUI_examples/flux/
Redux x3 воркфлоу https://github.com/Mozer/comfy_stuff/blob/main/workflows/workflow_redux_x3_with_strength.png
Затестить онлайн: https://www.runninghub.ai/post/1860773217928441857
Влияние ширины PCIe на LLM и flux
GPU:
- 3090 на pcie-4.0@x4
- 2080ti на [email protected]
- 3060 на [email protected]
3090 сидит на отдельном GPU 750w.
2080ti + 3060 сидят на GPU 750w.
Последние 2 карты сидят на x1 через сплиттер, поэтому по факту там половина скорости от x1. На pcie x16 не тестил, на моем мини-пк его нет (есть x4 + x4 + x1). На одном из x4 сидит ssd.
Затестим скорость LLM и Flux в зависимости от количества линий pcie, на которых сидит моя 3090.
Видим, что при работе в соло с небольшими LLM или Flux практически нет просадки. Скорость изначальной загрузки модели в память, конечно, проседает, но не супер критично (гемма-27 загружается за 1-2 минуты). Заметьте, что скорость обработки входного промта до сих пор быстрая - 323 t/s, хотя тоже просела.
Флакс из-за медленной шины pcie просел на 10%. А вот тренировка лоры вообще не заметила изменений.
Работа в связке из 3-х карт с большими LLM.
А теперь затестим Gemma-27b-Q6 (21 GB) на одной карте и затем через layer-split 50/50. Просадка есть, но минимальная.
А теперь задействуем все 3 карты. pcie x4+x0.5+x0.5. 2 карты с power limit 80% и 3090 - 60% (250w)
для сравнения, с реддита:
70B-gguf_Q4 (43 GB), 2x 3090 - 15.5 t/s
70b-awq_4b (40 GB), 4x 3060 pcie3.0@8 - 14 t/s
3.3-70b_Q4, mac mini M4 Max 64gb - 7 t/s
квенов-72b не нашел
SAINEMO-reMIX-12B_q6 (9 GB)
3090, pcie 4.0x4 - 43 t/s
То есть в теории, из-за медленной шины, я теряю какую-то скорость, но я не сказал, бы что она критичная. Сравним для моей 3090 power_60%_250w, размер LLM и скорость:
9 GB, solo - 43 t/s
21 GB, solo - 20 t/s
51 GB, split_3 - 7 t/s
При увеличении размера LLM в 2 раза скорость падает в 2 раза (это норма), и скорость pcie в этом случаем особо не дает влияния.
3090 в соло режиме с маленькой LLM жрет все выделенные ей 250W (TDP у нее 420, но я ей столько не даю). То же самое и 2080ti - в соло ест отведенные 191W из 200w. Но с большой LLM раскиданной по всем картам видно, что чипы потребляют лишь половину максимальной мощности (смотрим скрин). Возможно, в остальное время они ждут друг друга или хз что там происходит.
Кстати, свежую llama-3.3-70b для русского РП не рекомендую, она сухая и зацензуренная. А вот SAINEMO-reMIX-12B (9GB) весьма рекомендую. Это смесь разных nemo-12b: saiga_nemo + vikhr_nemo + 2 англоязычных РП микса. Сейчас либо ее использую, либо magnum-v4-72b-Q5 (51GB). Athene-72b не так понравилась, цензуры больше чем в магнуме.
https://huggingface.co/mradermacher/SAINEMO-reMIX-GGUF/tree/main
Выводы: число линий pcie для маленьких LLM - пофиг. Для больших LLM - важно, но не супер критично. Для флакса (генерации и тренировки) - тоже пофиг. Получается, pcie x16 переоценен? Даешь всем по сплиттеру, который делит x1 на 4 и будет счастье? 😀
GPU:
- 3090 на pcie-4.0@x4
- 2080ti на [email protected]
- 3060 на [email protected]
3090 сидит на отдельном GPU 750w.
2080ti + 3060 сидят на GPU 750w.
Последние 2 карты сидят на x1 через сплиттер, поэтому по факту там половина скорости от x1. На pcie x16 не тестил, на моем мини-пк его нет (есть x4 + x4 + x1). На одном из x4 сидит ssd.
Затестим скорость LLM и Flux в зависимости от количества линий pcie, на которых сидит моя 3090.
Gemma-27b-Q6 (21 GB), 3090 power_60%_250w
pcie4.0@x1, IN 730 t/s, OUT 19.57 t/s
pcie4.0@x4, IN 780 t/s, OUT 20.43 t/s
Flux, 1024, 20steps, 3090 power_60%_250w
pcie4.0@x1, 00:28, 1.44s/it
pcie4.0@x4, 00:25, 1.29s/it
Flux lora train, 3090 power_60%_250w
pcie4.0@x1, 5.00s/it
pcie4.0@x4, 5.00s/it
Видим, что при работе в соло с небольшими LLM или Flux практически нет просадки. Скорость изначальной загрузки модели в память, конечно, проседает, но не супер критично (гемма-27 загружается за 1-2 минуты). Заметьте, что скорость обработки входного промта до сих пор быстрая - 323 t/s, хотя тоже просела.
Флакс из-за медленной шины pcie просел на 10%. А вот тренировка лоры вообще не заметила изменений.
Работа в связке из 3-х карт с большими LLM.
А теперь затестим Gemma-27b-Q6 (21 GB) на одной карте и затем через layer-split 50/50. Просадка есть, но минимальная.
3090, 250w, solo - 20 t/s
2080ti, 200w, solo - 15 t/s
3090+2080ti pcie4.0@x4 + pcie2.0@x1, 50/50 - 14 t/s
А теперь задействуем все 3 карты. pcie x4+x0.5+x0.5. 2 карты с power limit 80% и 3090 - 60% (250w)
qwen-72b-q5(51 GB) - 7.00 t/s
Llama-3.3-70B-Q5_K_M (47 GB) - 7.27 t/s.
для сравнения, с реддита:
70B-gguf_Q4 (43 GB), 2x 3090 - 15.5 t/s
70b-awq_4b (40 GB), 4x 3060 pcie3.0@8 - 14 t/s
3.3-70b_Q4, mac mini M4 Max 64gb - 7 t/s
квенов-72b не нашел
SAINEMO-reMIX-12B_q6 (9 GB)
3090, pcie 4.0x4 - 43 t/s
То есть в теории, из-за медленной шины, я теряю какую-то скорость, но я не сказал, бы что она критичная. Сравним для моей 3090 power_60%_250w, размер LLM и скорость:
9 GB, solo - 43 t/s
21 GB, solo - 20 t/s
51 GB, split_3 - 7 t/s
При увеличении размера LLM в 2 раза скорость падает в 2 раза (это норма), и скорость pcie в этом случаем особо не дает влияния.
3090 в соло режиме с маленькой LLM жрет все выделенные ей 250W (TDP у нее 420, но я ей столько не даю). То же самое и 2080ti - в соло ест отведенные 191W из 200w. Но с большой LLM раскиданной по всем картам видно, что чипы потребляют лишь половину максимальной мощности (смотрим скрин). Возможно, в остальное время они ждут друг друга или хз что там происходит.
Кстати, свежую llama-3.3-70b для русского РП не рекомендую, она сухая и зацензуренная. А вот SAINEMO-reMIX-12B (9GB) весьма рекомендую. Это смесь разных nemo-12b: saiga_nemo + vikhr_nemo + 2 англоязычных РП микса. Сейчас либо ее использую, либо magnum-v4-72b-Q5 (51GB). Athene-72b не так понравилась, цензуры больше чем в магнуме.
https://huggingface.co/mradermacher/SAINEMO-reMIX-GGUF/tree/main
Выводы: число линий pcie для маленьких LLM - пофиг. Для больших LLM - важно, но не супер критично. Для флакса (генерации и тренировки) - тоже пофиг. Получается, pcie x16 переоценен? Даешь всем по сплиттеру, который делит x1 на 4 и будет счастье? 😀
Лора для русского текста на картинке для Flux
Ранняя версия, 50000 шагов, допускает много ошибок.
Для кириллицы используется смешанная азбука: часть русских букв заменяется на похожие английские буквы. Eсли таких букв нету, то берется похожий малоиспользуемый символ из французского, немецкого и молдавского (именно они есть в токенизаторе).
В токенизаторе T5xxl нет кириллицы, поэтому приходится выкручиваться, используя странные символы из других языков. При этом надо иметь в виду, что несколько английских букв часто объединяются в один токен. Иногда это мешает, иногда нет.
Насколько я понял, токенизатор clip-l практически не влияет на отображение текста на картинке. Но вместо clip-l можно использовать vit-l-text. С его помощью будет на 10% меньше ошибок. Но и без него можно.
vit-l-text: https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/blob/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors
С буквой Ш пока что проблемы, используйте букву Щ.
Букву П можно дополнительно описать как "looks loke Pi symbol".
Потом когда-нибудь напишу кастомную ноду, которая будет автоматом кодировать кириллицу.
На малом разрешении Лора допускает меньше ошибок, чем на большом. Чем проще описание - тем лучше.
Рекомендуемые настройки: 512x768 20 steps, Euler, normal, guidance 3.5
Промпт: Black text "PYCCkùü" on grey background.
Лора: https://civitai.com/models/1056401
Ворклфоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_rus_lora_50k.json
Тренировал в oneTrainer, сперва в разрешении 512 на мелком датасете, затем на большом, затем на огромном в 768p. Lora rank 16/1, Adafactor LR 0.0003. Суммарно 50000 шагов, 6000+ картинок.
Если кто разбирается в Learning rate: возможно надо было другой LR указать или более большой lora rank?
Скрипт для создания датасета картинок с 5000 популярными русскими словами:
https://github.com/Mozer/comfy_stuff/tree/main/training_rus
Вдруг кто-то захочет продолжить идею.
За идею сделать лору спасибо Sir Lanc.
За первый датасет спасибо @DmitryLS7.
Также недавно натренировал лору для Flux Fill Outpaint (не Dev) для создания картинок "Clothes on/off", 18+: https://civitai.com/models/1040628/clothes-onoff-or-flux-fill
Вдруг кто не видел =)
Ранняя версия, 50000 шагов, допускает много ошибок.
Для кириллицы используется смешанная азбука: часть русских букв заменяется на похожие английские буквы. Eсли таких букв нету, то берется похожий малоиспользуемый символ из французского, немецкого и молдавского (именно они есть в токенизаторе).
В токенизаторе T5xxl нет кириллицы, поэтому приходится выкручиваться, используя странные символы из других языков. При этом надо иметь в виду, что несколько английских букв часто объединяются в один токен. Иногда это мешает, иногда нет.
Насколько я понял, токенизатор clip-l практически не влияет на отображение текста на картинке. Но вместо clip-l можно использовать vit-l-text. С его помощью будет на 10% меньше ошибок. Но и без него можно.
vit-l-text: https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/blob/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors
"А": "A", "Б": "ß", "В": "B", "Г": "Î", "Д": "ă", "Е": "E", "Ё": "É", "Ж": "ş",
"З": "3", "И": "ù", "Й": "ü", "К": "K", "Л": "â", "М": "M", "Н": "H", "О": "O",
"П": "á", "Р": "P", "С": "C", "Т": "T", "У": "Y", "Ф": "ö", "Х": "X", "Ц": "Ü",
"Ч": "4", "Ш": "##", "Щ": "!!!", "Ъ": "ț", "Ы": "ä", "Ь": "ţ", "Э": "ó",
"Ю": "ô", "Я": "®"
С буквой Ш пока что проблемы, используйте букву Щ.
Букву П можно дополнительно описать как "looks loke Pi symbol".
Потом когда-нибудь напишу кастомную ноду, которая будет автоматом кодировать кириллицу.
На малом разрешении Лора допускает меньше ошибок, чем на большом. Чем проще описание - тем лучше.
Рекомендуемые настройки: 512x768 20 steps, Euler, normal, guidance 3.5
Промпт: Black text "PYCCkùü" on grey background.
Лора: https://civitai.com/models/1056401
Ворклфоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_rus_lora_50k.json
Тренировал в oneTrainer, сперва в разрешении 512 на мелком датасете, затем на большом, затем на огромном в 768p. Lora rank 16/1, Adafactor LR 0.0003. Суммарно 50000 шагов, 6000+ картинок.
Если кто разбирается в Learning rate: возможно надо было другой LR указать или более большой lora rank?
Скрипт для создания датасета картинок с 5000 популярными русскими словами:
https://github.com/Mozer/comfy_stuff/tree/main/training_rus
Вдруг кто-то захочет продолжить идею.
За идею сделать лору спасибо Sir Lanc.
За первый датасет спасибо @DmitryLS7.
Также недавно натренировал лору для Flux Fill Outpaint (не Dev) для создания картинок "Clothes on/off", 18+: https://civitai.com/models/1040628/clothes-onoff-or-flux-fill
Вдруг кто не видел =)
Добавил 3-х новых персонажей в @talkllama
- арни (Terminator), расскажет про 2125 год.
- дженна (Wednesday), даст пару вредных советов.
- рон (Ron Swanson), расскажет как ему пофиг.
Работают на:
- deepseek-v3-685b (от openrouter, платно).
- llama-405b (от sambanova, бесплатно).
@talkllama
- арни (Terminator), расскажет про 2125 год.
- дженна (Wednesday), даст пару вредных советов.
- рон (Ron Swanson), расскажет как ему пофиг.
Работают на:
- deepseek-v3-685b (от openrouter, платно).
- llama-405b (от sambanova, бесплатно).
@talkllama