Тренировка Flux Лоры на лицо при 12 GB VRAM
Влезет ли тренировка в 6 или 8 GB vram? На реддите писали, что да, для 512px. Если получится - напишите.
# Установка
Скачиваем https://github.com/Nerogar/OneTrainer и ставим по инструкции, git clone и дабл клик по install.bat
Скачиваем diffusers версию flux dev (32 Гига) https://huggingface.co/black-forest-labs/FLUX.1-dev/tree/main. Нужно скачать все файлы кроме flux1-dev.safetensors (самого большого) с сохранением структуры папок.
## Фотки
Для Лоры на лицо рекомендую побольше фоток именно лица с разных углов. Затем портреты по грудь, портреты в полный рост и портреты на улице.
Не рекомендую для первого раза использовать селфи фото. В селфи обычно есть значительные геометрические искажения, они будут мешать похожести. Для себя я взял 24 фотки, снятые на фотик. До этого пробовал микс селфи и неселфи - вышло хуже. Работает принцип - на каких позах и ракурсах учим - такие позы и ракурсы и будут получаться лучше всего. Другие ракурсы будут не так похожи.
Тренировать будем в разрешении 768px. Результат Лоры в 768px меня порадовал больше в 1024px. В 512px тоже пробовал, но были видны артефакты низкого разрешения.
OneTrainer сам обрежет как надо ваши картинки по максимальной длине или высоте. Рекомендую выбирать именно те соотношения сторон, какое вы хотите получить на выходе, например, все фотки в портретной ориентации. Квадратов не надо.
## Описание фоток
Фотки кладём а одну папку, создаём txt файлы с такими же именами (например photo1.txt). Внутри каждого txt файла пишем всего два слова: ten50rb4n4na woman. Где ten50rb4n4na это уникальное имя вашего персонажа. Один раз я долго не мог понять почему вместо девушки получается какой-то анимешный военный. Описывать позы и одежду мы не будем, работает и без этого. (А вот при тренировке лоры на стиль/концепт нужно описывать значимые детали).
## Настройки OneTrainer
Мой конфиг для 768px-12 GB: https://github.com/Mozer/comfy_stuff/blob/main/oneTrainer_configs/face_768px_12GB.json положить в папку training_presets, затем выбрать его в программе в левом верхнем углу. Там же на гитхабе лежат конфиги 512px-12GB и 1024px-22GB.
Тренить будем в формате nf4 (override prior data type: nfloat4), так быстрее.
Включать Sampling (периодическая генерация тестовых картинок) можно только если у вас 16 и больше vram, иначе вылетит в OOM. Но функция, конечно, полезная, позволяет генерировать картинки прямо по ходу тренировки лоры. (функцию попробуйте, вдруг у вас не будет вылетать при 12 GB).
Для 512px на 12 GB vram: Gradient Checkpointing: On, Layer offload fraction: 0.00, Resolution: 512
Для 768px на 12 GB vram: Gradient Checkpointing: CPU_Offloaded, Layer offload fraction: 0.50, Resolution: 768
Если у вас 22+ GB vram, то при 768px и 1024px CPU_Offloaded не нужен (нужно поставить Gradient Checkpointing: On).
Можно немного ускорить и сократить VRAM, тренируя только "attn" слои, выставив их в Lora - Layer Preset. Но я не уверен, как это отразится на конечном результате. На реддите писали, что для персонажа можно тренить только 2 конкретных слоя.
Если у вас 3000 и 4000 серия - тренить будем с "Train data type: bfloat16" (на 4% быстрее). Если 2000 и старее - float16 (чуть медленнее).
Тренить будем до 3000 шагов (25 фоток x 120 эпох). Для теста можете попробовать 2000 или 1000.
Если выкидывает ошибку CUDA_LAUNCH_BLOCKING - перезапустите программу.
Layer offload fraction: 0.50 - можно попробовать сделать меньше, возможно будет чуть быстрее для 3060-12GB.
Чтобы продолжить начатую лору, не забудьте перед запуском установить галочку: Continue from last backup.
Свою лору на лицо выкладывать не буду. Но есть другая на стиль: https://civitai.com/models/948149?modelVersionId=1061544 Примеры фоток скинул в комменты.
Влезет ли тренировка в 6 или 8 GB vram? На реддите писали, что да, для 512px. Если получится - напишите.
# Установка
Скачиваем https://github.com/Nerogar/OneTrainer и ставим по инструкции, git clone и дабл клик по install.bat
Скачиваем diffusers версию flux dev (32 Гига) https://huggingface.co/black-forest-labs/FLUX.1-dev/tree/main. Нужно скачать все файлы кроме flux1-dev.safetensors (самого большого) с сохранением структуры папок.
## Фотки
Для Лоры на лицо рекомендую побольше фоток именно лица с разных углов. Затем портреты по грудь, портреты в полный рост и портреты на улице.
Не рекомендую для первого раза использовать селфи фото. В селфи обычно есть значительные геометрические искажения, они будут мешать похожести. Для себя я взял 24 фотки, снятые на фотик. До этого пробовал микс селфи и неселфи - вышло хуже. Работает принцип - на каких позах и ракурсах учим - такие позы и ракурсы и будут получаться лучше всего. Другие ракурсы будут не так похожи.
Тренировать будем в разрешении 768px. Результат Лоры в 768px меня порадовал больше в 1024px. В 512px тоже пробовал, но были видны артефакты низкого разрешения.
OneTrainer сам обрежет как надо ваши картинки по максимальной длине или высоте. Рекомендую выбирать именно те соотношения сторон, какое вы хотите получить на выходе, например, все фотки в портретной ориентации. Квадратов не надо.
## Описание фоток
Фотки кладём а одну папку, создаём txt файлы с такими же именами (например photo1.txt). Внутри каждого txt файла пишем всего два слова: ten50rb4n4na woman. Где ten50rb4n4na это уникальное имя вашего персонажа. Один раз я долго не мог понять почему вместо девушки получается какой-то анимешный военный. Описывать позы и одежду мы не будем, работает и без этого. (А вот при тренировке лоры на стиль/концепт нужно описывать значимые детали).
## Настройки OneTrainer
Мой конфиг для 768px-12 GB: https://github.com/Mozer/comfy_stuff/blob/main/oneTrainer_configs/face_768px_12GB.json положить в папку training_presets, затем выбрать его в программе в левом верхнем углу. Там же на гитхабе лежат конфиги 512px-12GB и 1024px-22GB.
Тренить будем в формате nf4 (override prior data type: nfloat4), так быстрее.
Включать Sampling (периодическая генерация тестовых картинок) можно только если у вас 16 и больше vram, иначе вылетит в OOM. Но функция, конечно, полезная, позволяет генерировать картинки прямо по ходу тренировки лоры. (функцию попробуйте, вдруг у вас не будет вылетать при 12 GB).
Для 512px на 12 GB vram: Gradient Checkpointing: On, Layer offload fraction: 0.00, Resolution: 512
Для 768px на 12 GB vram: Gradient Checkpointing: CPU_Offloaded, Layer offload fraction: 0.50, Resolution: 768
Если у вас 22+ GB vram, то при 768px и 1024px CPU_Offloaded не нужен (нужно поставить Gradient Checkpointing: On).
Можно немного ускорить и сократить VRAM, тренируя только "attn" слои, выставив их в Lora - Layer Preset. Но я не уверен, как это отразится на конечном результате. На реддите писали, что для персонажа можно тренить только 2 конкретных слоя.
Если у вас 3000 и 4000 серия - тренить будем с "Train data type: bfloat16" (на 4% быстрее). Если 2000 и старее - float16 (чуть медленнее).
Тренить будем до 3000 шагов (25 фоток x 120 эпох). Для теста можете попробовать 2000 или 1000.
512px
3060-12GB, 5.06s/it 4 часа 10GB
2080-22GB, 3.49s/it 3 часа 12GB
768px
3060-12GB, 11.4s/it 10 часо 10GB
2080-22GB, 6.01s/it 5 часов 11GB
1024px
3060-12GB, OOM error
2080-22GB, 10.2s/it 8 часов 11GB
Если выкидывает ошибку CUDA_LAUNCH_BLOCKING - перезапустите программу.
Layer offload fraction: 0.50 - можно попробовать сделать меньше, возможно будет чуть быстрее для 3060-12GB.
Чтобы продолжить начатую лору, не забудьте перед запуском установить галочку: Continue from last backup.
Свою лору на лицо выкладывать не буду. Но есть другая на стиль: https://civitai.com/models/948149?modelVersionId=1061544 Примеры фоток скинул в комменты.
6🔥17👍9❤2
Flux fill - модель для inpaint и outpaint
outpaint - умеет дорисовывать картинку по краям.
inpaint - перерисовывает выделенный объект или текст. Для того чтобы сохранить исходный стиль текста - нужно выделить не всю надпись, а сперва ее часть, так чтобы для модельки остался хоть кусочек текста, под который она подстроится. Например, надпись "Tensor 76" была написана в 2 этапа: "Ten" + "or 76". В comfy инпеинт делать через "Load image - Open in mask editor".
Для хорошего качества инпеинта на выходе - нужно чтобы исходная картинка была большого разрешения. Но тогда и генерация будет идти медленно, так как картинка генерируется в разрешении равном исходному. Частичная региональная генерация вроде тоже работает, но скорее всего, хуже. Для инпеинта рекомендую ставить denoise 0.98 - так стиль лучше сохраняется.
В gguf_q4_0 (6 GB) качество будет немного хуже чем в fp8 (11GB), а скорость генерации такая же.
Со старыми лорами не работает (тестил лору на лицо и 8-шаговую лору). Новые лоры для redux и контролнета еще не тестил.
На 2080ti инпеинт и аутпеинт у меня почему-то плохо работает с разрешением больше 700x700 - внезапно появляется сильный шум на всей картинке. Инпеинт еще термимо, а аутпеинт вообще плохо. Comfy обновлял, разные модельки качал. Если у вас тоже Nvidia 20-й или 10-й серии, напишите в комментариях. На 3060 все супер, но не так быстро.
Для работы нужно обновить comfyui (update_comfyui.bat). В фордже пока не работает, добавят на днях.
гуфы тут: https://huggingface.co/SporkySporkness/FLUX.1-Fill-dev-GGUF/tree/main
или fp8: https://huggingface.co/dim/black-forest-labs_FLUX.1-Fill-dev_flux1-fill-dev_fp8.safetensors/tree/main
воркфлоу для oupaint и inpaint: https://comfyanonymous.github.io/ComfyUI_examples/flux/
nf4 пока нет
Затестить онлайн (бесплатно около 5-6 генераций в день):
inpaint: https://www.runninghub.ai/post/1859967231923810306
outpaint: https://www.runninghub.ai/post/1859965846230798338
outpaint - умеет дорисовывать картинку по краям.
inpaint - перерисовывает выделенный объект или текст. Для того чтобы сохранить исходный стиль текста - нужно выделить не всю надпись, а сперва ее часть, так чтобы для модельки остался хоть кусочек текста, под который она подстроится. Например, надпись "Tensor 76" была написана в 2 этапа: "Ten" + "or 76". В comfy инпеинт делать через "Load image - Open in mask editor".
Для хорошего качества инпеинта на выходе - нужно чтобы исходная картинка была большого разрешения. Но тогда и генерация будет идти медленно, так как картинка генерируется в разрешении равном исходному. Частичная региональная генерация вроде тоже работает, но скорее всего, хуже. Для инпеинта рекомендую ставить denoise 0.98 - так стиль лучше сохраняется.
В gguf_q4_0 (6 GB) качество будет немного хуже чем в fp8 (11GB), а скорость генерации такая же.
Со старыми лорами не работает (тестил лору на лицо и 8-шаговую лору). Новые лоры для redux и контролнета еще не тестил.
1000x1344, 20 steps
3060, q4_0, 6.23s/it, 02:04
3060, fp8, 6.41s/it, 02:09
800x1064, 20 steps
2080ti, fp8, 1.64s/it, 00:32
На 2080ti инпеинт и аутпеинт у меня почему-то плохо работает с разрешением больше 700x700 - внезапно появляется сильный шум на всей картинке. Инпеинт еще термимо, а аутпеинт вообще плохо. Comfy обновлял, разные модельки качал. Если у вас тоже Nvidia 20-й или 10-й серии, напишите в комментариях. На 3060 все супер, но не так быстро.
Для работы нужно обновить comfyui (update_comfyui.bat). В фордже пока не работает, добавят на днях.
гуфы тут: https://huggingface.co/SporkySporkness/FLUX.1-Fill-dev-GGUF/tree/main
или fp8: https://huggingface.co/dim/black-forest-labs_FLUX.1-Fill-dev_flux1-fill-dev_fp8.safetensors/tree/main
воркфлоу для oupaint и inpaint: https://comfyanonymous.github.io/ComfyUI_examples/flux/
nf4 пока нет
Затестить онлайн (бесплатно около 5-6 генераций в день):
inpaint: https://www.runninghub.ai/post/1859967231923810306
outpaint: https://www.runninghub.ai/post/1859965846230798338
👍21❤🔥3
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
1👍36🔥6❤4