Ролевая игра "Лабиринт"

Остановись, путник! Заблудился? Ищешь знакомые дороги или желаешь открыть новые?
У тебя два пути!

- Ты заядлый игрок? Тогда заходи смело!
- Ты новичок и тебе уже исполнилось 18? Регистрируйся! Ты увидишь скрытые разделы и сможешь следить за игрой или присоединиться к игрокам, когда будешь готов.

Гайды и советы по нейросетям

Лабиринт

Сердце мира
ЛАБИРИНТ
Гайды и советы по нейросетям

Здесь вы можете публиковать гайды, обучающие материалы и полезные советы по нейросетям. Если вы нашли интересные фишки, настройки или необычные подходы в работе с нейросетями, не стесняйтесь публиковать их здесь! Будь то подробное руководство по установке, объяснение сложных понятий, советы по улучшению результатов генерации или простые лайфхаки — все это будет полезно участникам.

Этот раздел предназначен для обмена опытом, знаниями и открытиями в области нейросетей. Делитесь своими находками, задавайте вопросы и помогайте друг другу развиваться!


Путеводитель

Путеводитель по гайдам.
  1. Базовая информация о нейросетях.
  2. О том что такое Fooocus и с чем его едят.
  3. От простого к сложному. SwarmUI.
  4. Обучение LoRA, или поговорим о kohya_ss

Полезные ресурсы

1. Stability Matrix - программа для установки различных интерфейсов для работы с моделями генерации изображений.
2. Обучающее видео по тренировке LoRA на SDXL через интерфейс kohya_ss, а так же генерации изображений.
3. Обучающее видео по тренировке LoRA на Flux.1 через интерфейс kohya_ss.
4. Обучающее видео по тренировке Fine-Tuning DreamBooth на Flux.1 через интерфейс kohya_ss.
5. Presets SDXL, Flux.json - сохраненные пресеты SDXL и Flux для SwarmUI
6. Регуляризационные изображения мужчин и женщин.
7. Конфиг для обучения LoRA на SDXL
8. Дополнительные модели требующиеся для обучения Flux LoRA: VAE Path - ae.safetensors, CLIP-L Path - clip_l.safetensors, T5-XXL Path - t5xxl_fp16.safetensors
9. Конфиг для обучения LoRA на Flux можно скачать, оформив подписку на Patreon у его автора. Ссылку можно найти в описании к видеоролику.



 
Базовая информация о нейросетях.

Часть 1: Основные концепции и термины​

Что такое генеративные модели?
Генеративные модели — это нейросети, которые создают новые данные на основе определенных данных и заданных условий. Они учатся понимать, как выглядят реальные объекты и сцены, и могут "создавать" их с нуля по заданным параметрам, включая текстовые описания.

Как работают текстовые генераторы изображений?
Модели, такие как Stable Diffusion, Flux, Midjourney, используют текстовые подсказки (prompt'ы) для создания изображений. Такие модели работают на основе диффузионных процессов, постепенно улучшая изображения до финальной версии. Эти процессы включают "шум" (размывание) и "денойзинг" (восстановление), чтобы создать изображения, максимально приближенные к реальным.

Что такое LoRA (Low-Rank Adaptation)?
LoRA (адаптация с пониженным рангом) – это метод, позволяющий добавлять в уже обученные модели новые стили или фишки без необходимости заново обучать всю модель. По сути, это способ адаптации модели, который требует меньше вычислительных ресурсов. LoRA-плагины позволяют эффективно и быстро обучить модель на пользовательских данных. Например, сгенерировать именно вашего персонажа на изображении, или сгенерировать изображение в каком-то определенном стиле. Каждая Лора привязана к определенной Базовой модели. Например Stable Diffusion v1.5, Stable Diffusion XL (SDXL), Flux-1dev и работает только с ней. Поэтому при поиске LoRA обращайте внимание, для какой Базовой модели сделана эта Лора.

Базовая модель?
Stable Diffusion в глобальном смысле это модель, с помощью которой вы можете генерить изображения на персональном компьютере. Разработанная с использованием методов диффузионного моделирования, она может создавать реалистичные и художественные изображения высокого качества. У такой модели есть версии и варианты Базовых моделей. Т.е. обширное понятие разбивается на категории.
Вообще первая версия Stable Diffusion была выпущена в 2022 году. Самая популярная версия v1.5 была обучена на огромном количестве изображений в разрешении 512х512 px. Отсюда ограничение на генерацию изображений именно в таком формате. Но нейронка обучалась и вскоре была выпущена версия Stable Diffusion XL (SDXL) — улучшенная модель, которую обучали на изображениях 1024х1024 px. Она стала прорывом и с её помощью стала возможно генерация более реалистичных изображений.
На базе SDXL появлялись модифицированные и кастомные модели, адаптированные под специфические нужды. Например, Flux.1, которая была выпущена командой разработчиков Stable Diffusion. И составила конкуренцию Midjourney. Подробнее об этом ниже.

Часть 2: Популярные модели для генерации изображений​

1. Stable Diffusion — одна из самых популярных моделей для генерации изображений на основе текста. Она способна генерировать высококачественные изображения, подходящие для различных художественных и коммерческих проектов. Самая доступная на сегодняшний момент версия Stable Diffusion XL (SDXL), которая дает более детализированные результаты.

2. Flux.1 — одна из лучших моделей на сегодняшний день. Разработана для создания реалистичных и детализированных изображений с использованием различных подходов к генерации контента. Flux, будучи открытой моделью, поддерживает кастомизацию и модификации. Это позволяет пользователям добавлять в неё собственные стили, адаптировать модель под свои нужды и использовать дополнительные настройки вроде LoRA и ControlNet, чтобы делать изображения ещё более настраиваемыми. Существуют 3 версии данной модели:
  • Flux.1 Pro - самая современная модель, доступна только для коммерческого использования.
  • Flux.1 Dev - модель с открытом кодом, предназначена для некоммерческого использования. Есть в свободном доступе. Она создана на основе Flux.1 Pro и обеспечивает аналогичное качество и соблюдение промптов, при этом являясь более эффективной, чем обычная модель того же размера. При разговоре о Флюксе мы будем иметь ввиду работу именно с этой версией модели.
  • Flux.1 Schnell - Это самая быстрая модель, предназначенная для локальной разработки и личного использования.

3. Midjourney — специализируется на генерации эстетически привлекательных и "атмосферных" изображений. Это закрытая, коммерческая модель, разработанная командой Midjourney. Архитектура и данные обучения модели Midjourney не разглашаются. Модель известна своей уникальной стилизацией и часто используется для создания высокодетализированных и художественных изображений. Модель работает через сервер в Discord, и для её использования необходимо подключиться к официальному серверу Midjourney и оформить подписку. Модель недоступна для скачивания и локального запуска, что ограничивает её настройку пользователями.

Часть 3: О программах и интерфейсах​

Чтобы начать создавать изображения, нужно установить нужное программное обеспечение на свой компьютер.
Удобнее всего это сделать через Stability Matrix. Программу устанавливаем в любое удобное место на компьютере.[/CENTER]

Что вам может быть важно в данной программе?

Я рекомендую сразу привязать аккаунт в CivitAI к программе. CivitAI — это основной портал, где вы можете найти новые модели и LoRA. (По желанию)

JB0eDkh.png

Что такое Stbiliti Diffusion WebUI by AUTOMATIC1111, Fooocus, SwarmUI?

Все перечисленное — это интерфейсы для работы с моделями генерации изображений, в частности с Stable Diffusion, Flux и прочими. Они предлагают различные способы взаимодействия с моделью, позволяя пользователям гибко настраивать параметры генерации и получать наилучшие результаты. Рассмотрим каждый из них подробнее.

1. Stability Diffusion WebUI by AUTOMATIC1111
  • Это один из самых популярных веб-интерфейсов для Stable Diffusion, созданный разработчиком под ником AUTOMATIC1111. WebUI позволяет загружать модель, задавать текстовые запросы и изменять параметры генерации изображений, не прибегая к сложным командам.
  • Особенности:
    • Поддержка различных моделей (включая SDXL и кастомные модели).
    • Легкая установка на локальный компьютер, возможность настройки параметров генерации.
    • Поддержка различных плагинов и расширений, таких как LoRA и ControlNet, для более сложных задач.
  • Кому подходит: Подходит для пользователей, которые хотят быстро запустить Stable Diffusion и настраивать параметры через удобный интерфейс.
2. Fooocus
  • Fooocus — это альтернативный интерфейс для генерации изображений на основе Stable Diffusion, ориентированный на простоту и минималистичный дизайн. Основной акцент Fooocus — легкость использования, поэтому он удобен для начинающих пользователей.
  • Особенности:
    • Простой интерфейс, в котором отсутствует обилие настроек, свойственное WebUI от AUTOMATIC1111.
    • Быстрая настройка и легкая интеграция с SDXL. Не поддерживает FLUX.
    • Поддержка базовых функций для текстовой генерации и контроля изображений.
  • Кому подходит: Fooocus отлично подходит для новичков или пользователей, которые хотят просто и быстро создавать изображения, не углубляясь в сложные параметры.
3. ComfyUI и SwarmUI

Для работы SwarmUI требуется предварительная установка интерфейса ComfyUI.
  • SwarmUI — мощный интерфейс для генерации изображений, ориентированный на опытных пользователей и продвинутые настройки. Он поддерживает как традиционные модели, такие как SDXL, так и более современные, например Flux.
  • Особенности:
    • Широкий спектр настроек и параметров генерации.
    • Возможность генерации коротких видео (уступает по качеству Kling AI и других сервисов по генерации видео).
    • Поддержка различных моделей, включая SDXL и Flux.
  • Кому подходит: SwarmUI лучше всего подходит для профессионалов и опытных пользователей, которые хотят работать с новейшими моделями, такими как Flux, и получать высочайшее качество изображения с помощью расширенных параметров настройки.
Немного поточим лясы

Существуют и другие интерфейсы для генерации изображений, в каждом есть свои плюсы и минусы, выбирайте исходя из своих предпочтений и поддерживаемых этим интерфейсом моделей. По своему опыту отмечу, что SwarmUI обладает большим количеством настроек, и в то же время интуитивно прост в использовании. В нем есть несколько классных фишек, которые позволяют быстрее добиваться желаемого результата, а так же позволяет настраивать под себя сам интерфейс, создавая заготовки промптов, настроек и т.п. без лишних телодвижений. Fooocus же позволяет включать разные стили, тем самым добиваясь более художественных и творческих результатов, но работает только с моделями SDXL.

Вообще говоря простым языком в чем разница SDXL и Flux — на SDXL изображения генерятся при прочих равных условиях почти в два раза быстрее, чем на Flux, но при этом изображения на Flux по большей части лишены вечных "болячек" всех нейросетей — кривой геометрии, кривых поз, 6 палых рук и заплывающих глаз. Так же Flux более тщательно следует заданному промпту, понимает контекст написанного, тогда как SDXL бывает немного "туповат", и с ним нужно быть очень осторожным в плане количества слов в промте, иначе вы будете получать все более далекий от нужного результат, а при использовании LoRA вашего персонажа — от более сложного промта будет теряться схожесть, чего не происходит на Flux.

Как показал мой опыт, очень хорошие результаты в плане креативности и скорости генерации дает Fooocus, и полученное изображение на SDXL можно перегенерить на Flux с улучшением качества. Это на случай, если точное следование промту Флюксом начинает вас ставить в тупик.

Часть 4: Установка интерфейсов в Stability Matrix​

1. Установка интерфейсов происходит во вкладке Packages (Пакеты).

JjW3pXZ.png

2. Во вкладке Inference выбираете любой понравившийся интерфейс и устанавливаете с настройками по умолчанию. Обратите внимание, ComfyUI необходимо установить до того, как вы будете устанавливать SwarmUI.
3. После завершения установки интерфейс появится в списке и будет доступен для запуска.

А что такое kohya_ss?

Этот интерфейс можно найти во вкладке Training и установить точно так же. Этот интерфейс используется для обучения LoRA и DreamBooth. Грубо говоря — позволяет дообучить модель "узнавать" вашего персонажа, кота, вас, вас и вашего друга, и всю вашу семью, или узнать, что такое фотографии в стиле Пети Петрова.
 
О том что такое Fooocus и с чем его едят.

Разбираем генерацию изображений и базовые понятия в самом простом интерфейсе.

Как вы уже успели узнать, Фокус (будем называть его по-простому) это всего-лишь удобный интерфейс, в котором можно достаточно легко и без лишних заморочек генерить картинки. Теперь поговорим о том, как же он устроен, какие настройки вам могут быть полезны, и какие фишечки вам точно могут понадобиться вне зависимости от того, на какой модели вы планируете генерить свои изображения.

Часть 1. Базовые понятия​

Первое, что вы заметите при старте Фокуса, это то, что мое окошко несколько отличается от вашего. Всё дело в настройках файла config. О том, какие я предпочитаю вносить изменения будет ниже. Если кто-то хочет посмотреть видосики про изменение файла конфиг, то вот ссылка на гайд. А пока рассмотрим что же там такое в этом интерфейсе у нас имеется.

9dZpdmz.png
Расширенные настройки. Сеттингс.

YX2ZmDA.png
Стили.
Что же такое стили?

Вся фишка фокуса заключается в использовании стиля Fooocus V2. Это единственный стиль который вы должны ставить всегда. Остальные могут включаться и выключаться по вашему желанию. Для большинства генераций фоток персов мне зашли отмеченные галочками, а так же Fooocus Enhance и Fooocus Sharp (по ситуации), иногда классно подходят разные вариации Cinematic, Photograph и Elemental Art. Но вы можете подобрать те стили, которые понравятся лично вам. рекомендую совмещать не более 6 стилей, чтобы избежать артефактов.

Если говорить обобщенно, что такое Стили в фокусе, то, по сути, это набор промптов, которые описывают определенный стиль (например стиль векторной графики, или стиль съемки на камеру Айфона). При расшифровке метаданных сгенерированного изображения из фокуса вы сможете увидеть текстовую подсказку, которая присваивается каждому стилю. Можете использовать, если вдруг захотите почерпнуть умных слов для описания конкретного эффекта. О том как узнать эти метаданные можно почитать в конце этого гайда.

NSxLrRe.png
Используемые модели и LoRA.
Где найти модели и LoRA?

Про лору мы уже упоминали, что это файл, который содержит данные о вашем персонаже, создается этот файл через обучение в kohya_ss. Вес лоры можно варьировать, но как правило для хорошей схожести рекомендуется выставлять значение на 0,9 или чуть меньше, в зависимости от того, какой результат вам больше понравится. Вес это буквально насколько сильно нейронка будет использовать лору (т.е. данные из неё) и копировать её в генерируемое изображение.

Теперь поговорим подробнее про базовые модели. На SDXL как и на Flux существуют разные модельки, на которых генерятся изображения. Есть как прям базовые-базовые модели, о которых было рассказано в предыдущем посте, так и пользовательские, дообученные. Большую базу таких моделей вы можете найти на сайте CivitAI или во вкладке Поиск моделей в Stability Matrix (в последнем случае модельки устанавливаются сами в нужные папки. Ну или почти нужные).

На SDXL самые популярные модели:
  • sd_xl_base_1.0 - самая базовая база, хороша почти во всех случаях. Используется для обучения LoRA и генерации изображений. Кто любит посмотреть видео и проникнуться глубже в тему — смотрим видос по обучению и использованию LoRA на SDXL
  • juggernautXL - гиперреалистичная модель. Может пригодиться в отдельных случаях, но как правило у меня не удавалось на ней получить хорошие результаты с LoRA созданной на нереалистичных изображениях (т.е. из игры или в стиле диджитал).
  • dreamshaperXL - творчески-фэнтезийная модель.
  • albedobaseXL - с данной моделью мне понравилось обрабатывать скрины из игры, перерисовывая в фокусе волосы, глаза, одежду для датасета.

А что по Флюксу?

А в флюксом все немного проще. Но в фокусе он не поддерживается.
  • flux1-dev-fp8 - наше все. Вообще вот эта версия fp8 на 16 Гб. Она типа сжатая. А есть её тяжеловесный брателло на 23 Гб. Братана мы используем для обучения LoRA и DreamBooth, а генерить можно и на той, что полегче. Для всех гляделкиных прикрепила ссылки на обучающие видосы.
Есть пользовательские модели, в которых дообучили на то, чего не хватало в базовой модели флюкса (например базовая модель очень плохо рисует обнаженную натуру, но добрые люди научили и этому).
  • stoiqo Newreality FLUX как пример такой модели. Модель неплоха, но качеством, как будто, уступает базовой модели 1-dev

А что же во вкладке Advanced?

А там много-много разных настроек, как и во всех других интерфейсах, только их немного спрятали от пользователя. Если вы не хотите разбираться в тонкостях работы нейронок, можете эту часть пропустить, но ознакомиться с ними нам всё-равно придется, если начнем работать в Swarm. Поэтом разберем основные настройки, которые нам может пригодиться изменить (спойлер: именно это я и сделала).
  • Guidance Scale — своего рода показатель креативности, насколько точно нейронка должна следовать подсказкам. Хорошими значениями для SDXL обычно является 7-9. Я, как правило, ставлю на 8,5. Значения меньше заставляют буквальнее следовать подсказке и лишают изображение некой креативности. Но вы можете поиграть значениями, иногда при использовании нескольких стилей имеет смысл креативность убавить, или наоборот увеличить.
  • Image Sharpness — более высокие значения повышают качество текстур. Я выставляю на 4.
  • Sampler - euler — оптимально для SDXL при генерации персонажей с LoRA. Сэмплер по умолчанию так же может использоваться, но по моему опыту генерации выходят лучше именно на Euler.
  • Scheduler - simple — В целом вы можете поиграться с этим параметром и посмотреть, на каком генерация вам понравится больше
  • VAE - sdxl_vae.safetensors — что это такое я объяснять не буду, в целом при генерации на SDXL рекомендуется выбирать эту модель во вкладке VAE.

Редактируем файл config.

Если не хочется тыкать каждый раз после запуска интерфейса все эти параметры, то прикладываю настройки в файл config. Данный файл лежит с папке Stability Matrix - Packages - Fooocus - config.txt. Не забудьте сделать резервную копию файла перед изменением!

jCB8tph.png
Количество изображений для генерации - это максимальное значение на которое можно поставить ползунок. По умолчанию оно 32.​
PHP:
 "default_max_image_number": 100,
  "default_advanced_checkbox": true,
  "default_developer_debug_mode_checkbox": true,
  "default_save_metadata_to_images": true,
  "default_metadata_scheme": "fooocus",
  "metadata_created_by": "",
  "available_aspect_ratios": [
    "704*1408",
    "704*1344",
    "768*1344",
    "768*1280",
    "832*1216",
    "832*1152",
    "896*1152",
    "896*1088",
    "960*1088",
    "960*1024",
    "1024*1024",
    "1024*960",
    "1088*960",
    "1088*896",
    "1152*896",
    "1152*832",
    "1216*832",
    "1280*768",
    "1344*768",
    "1344*704",
    "1408*704",
    "1472*704",
    "1536*640",
    "1600*640",
    "1664*576",
    "1728*576",
    "1920*1080",
    "1280*720",
    "720*1280",
    "1080*1920"
]

Создаем пресеты для удобной работы

Можно добавить это всё и в конфиг запуска, но мне больше нравится использовать пресеты для этих целей. Пресетов можно создать великое множество и выбирать под каждый нужный случай. Чтобы создать пресет копируем в папке: Stability Matrix - Packages - Fooocus - presets, любой готовый пресет и изменяем его, открыв в блокноте.

Hx7Vyvm.png
Пример моего пресета. Негативный промпт можно использовать без изменений, основной проспт у меня содержит триггерное слово для LoRA моего персонажа и "хвостовую" часть, которую, как правило, я никогда не убираю.
PHP:
{
    "default_model": "sd_xl_base_1.0.safetensors",
    "default_refiner": "None",
    "default_refiner_switch": 0.5,
    "default_loras": [
        [
            true,
            "sd_xl_offset_example-lora_1.0.safetensors",
            0.1
        ],
        [
            true,
            "kate1.safetensors",
            0.9
        ],
        [
            true,
            "None",
            1.0
        ],
        [
            true,
            "None",
            1.0
        ],
        [
            true,
            "None",
            1.0
        ]
    ],
    "default_cfg_scale": 8.5,
    "default_sample_sharpness": 4.0,
    "default_sampler": "euler",
    "default_scheduler": "simple",
    "default_vae": "sdxl_vae.safetensors",
    "default_styles": [
        "Fooocus V2",
        "Photo Iphone Photographic",
        "Volumetric Lighting"
    ],
    "default_prompt_negative": "text, watermark, low quality, medium quality, blurry, censored, wrinkles, deformed, mutated, blurry, low resolution, distorted, bad composition, unrecognizable, unclear, misaligned, low effort, amateurish",
    "default_prompt": "ohwx woman, 8K, anti-blur, contrast, DSLR, realistic eyes, contrast,",
    "default_performance": "Speed",
    "lora_downloads": {
        "sd_xl_offset_example-lora_1.0.safetensors": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors"
    },
    "default_aspect_ratio": "896*1152",

    "default_overwrite_step": -1
}

Часть 2. Генерация изображений​

Тут все просто. на английском сочиняете текст промпта, вписываете его, выбираете стили, размер кадра, тыкаете генерацию и всё. На ваших глазах начинает твориться магия. При использовании LoRA в промпте необходимо указать триггерное слово (можно посмотреть на странице модели). Вообще в WEbUI от Автоматик1111 можно посмотреть триггерное слово прямо из интерфейса, а в Swarm записать его в данные модели или Лоры, но в фокусе такой возможности нет. Обычно мы стараемся триггерное слово добавить в название файла, чтобы не путаться.

Триггерная фраза обычно состоит из уникального непереводимого набора букв ohwx/asd или другого, какой вы сможете придумать, и токена класса — что именно изображено в этой Лоре: мужчина - man, женщина - woman, кот - cat, стиль... и т.п. Для генерации персонажей в основном будут использоваться фразы ohwx woman, ohwx man, asd man и другие. Надеюсь логика понятна.

Помимо этого Лора может обучаться и на нескольких персонажей, с разными типами данных и генерировать их на одном изображении. В этом случае в подсказке необходимо указать триггерные фразы на каждого персонажа. Соответственно уникальный токен должен быть для каждого свой. ohwx woman, asd man, khtl woman.

Вот несколько вариантов промптов для вас в качестве примера:

  1. ohwx woman, black wavy hair, freckles on the cheeks, sitting by a fireplace in a rustic cabin, winter, in a woolen sweater and socks, in soft warm light, 8K, anti-blur, contrast, DSLR, contrast, realistic eyes
  2. ohwx woman, red wavy hair, freckles on the cheeks, urban background, 8K, anti-blur, contrast, DSLR, realistic eyes, contrast
  3. ohwx woman, black wavy hair, freckles on the cheeks, walking through a snow-covered forest, winter, in a warm parka with a fur-lined hood, with snowflakes gently falling, in cool blue tones, 8K, anti-blur, contrast, DSLR, contrast, realistic eyes
  4. ohwx woman, black wavy hair, freckles on the cheeks, strolling through a quiet park, late autumn, in a long, cozy coat and knitted hat, with fallen leaves on the ground, in warm, earthy tones, 8K, anti-blur, contrast, DSLR, contrast, realistic eyes
  5. khtl man, (A close-up portrait), portrait of a young man aged 22, standing by a mountain lake, summer, in a hiking outfit with a backpack, with a clear blue sky and reflective water, in crisp, natural light, 8K, anti-blur, contrast, DSLR, contrast, realistic eyes
  6. asd man, a man aged 35 years, black hair, a foggy, night, in a dark coat, under a pale eerie moonlight, 8K, anti-blur, contrast, DSLR, contrast, realistic eyes
  7. asd man, male 35 years old, A close-up portrait, black hair, sitting in a quaint outdoor café, spring, in a light sweater and jeans, with potted plants and flowers around, under a clear sky, 8K, anti-blur, contrast, DSLR, contrast
Негативная подсказка:
  • text, watermark, low quality, medium quality, blurry, censored, wrinkles, deformed, mutated, blurry, low resolution, distorted, bad composition, unrecognizable, unclear, misaligned, low effort, amateurish

Часть 3. О синтаксисе промпта для Fooocus и не только​

1. Основные элементы промпта
  • Главный объект: Начните с чёткого описания основного объекта (например, "cat" или "vintage car"). Это поможет модели понять, что должно быть в центре изображения.
  • Контекст и среда: Добавьте описание окружения или фона, чтобы задать сцену, например, "in a lush forest" или "on a crowded city street".
  • Эстетика и стиль: Укажите художественный стиль или эпоху, если хотите получить специфический результат, например, "cyberpunk", "oil painting", или "vintage".
  • Эмоции и настроение: Опишите настроение изображения, такие как "calm," "dramatic lighting," "melancholic."
2. Порядок слов и важность
  • Обычно порядок слов имеет значение: сначала главный объект, затем описание и окружение, в конце – стиль и настройки.
  • Например, для портрета: "a regal woman in medieval attire, standing in a grand hall, dramatic lighting, highly detailed, baroque style".
  • Начинайте с самой важной информации, поскольку модель уделяет больше внимания первым словам.
3. Использование запятых
  • Разделяйте основные элементы запятыми, чтобы выделить разные аспекты изображения. Это помогает модели "разбить" запрос на части.
  • Например: "cat, wearing a wizard hat, standing on a book, surrounded by candles, magical atmosphere, high detail".
4. Ключевые слова и весовые коэффициенты
  • Ключевые слова: Используйте чёткие, общепринятые термины, такие как "highly detailed," "realistic," "8K resolution," "cinematic," чтобы модель приоритизировала эти элементы.
  • Весовые коэффициенты: Некоторые интерфейсы поддерживают веса слов для усиления акцентов. Например, (cat:1.2), (wizard hat:0.8), где числа показывают значимость элементов. Нужно заключить в (круглые скобки). Однако эта функция работает не во всех интерфейсах. Но в Фокусе и Сварме точно работает))
5. Избегание избыточных слов
  • Модель может запутаться, если в запросе много синонимов и повторов. Избегайте лишних слов, оставляя только ключевые элементы.
  • Пример: вместо "cute, adorable, lovely little kitten" достаточно "cute kitten".
6. Ограничение длины
  • Большинство моделей лучше реагируют на короткие, точные промпты. Старайтесь удерживать длину промпта в пределах 75-100 символов, особенно если вы задаёте базовые параметры.
  • SDXL, а значит и Фокус не любит очень длинные промпты, старайтесь не перезагружать. В Фокусе, если промпт становится слишком длинный рекомендуется выключать стили. И наоборот, при более коротком промпте можно включить больше стилей.
7. Использование параметров камеры и освещения
  • Если вам важна детализация или ракурс, добавьте параметры камеры, например, "close-up shot," "soft focus," "high contrast," "35mm lens," или "backlit."
  • Это особенно помогает в случае, если вы хотите задать специфическую атмосферу или фотостиль.
8. Форматы разрешения и уровня детализации
  • Включите параметры, влияющие на качество изображения: "8K," "highly detailed," "photorealistic," "digital painting," если интерфейс модели поддерживает их.
9. Использование отрицательных промптов
  • Многие интерфейсы поддерживают так называемые отрицательные промпты (negative prompts), которые исключают нежелательные элементы.
  • Пример: если вы хотите, чтобы модель избегала мультяшности, используйте "negative prompt: cartoon, unrealistic".

Часть 4. Функции Fooocus, которые могут пригодиться всем​

И наконец настала пора галочки Input Image, которая открывает доступ к интересным вкусностям фокуса.

1. Upscale or Variation. Позволяет увеличивать изображение, или варьировать изображение. Ни тем не другим не пользовалась особо, но может быть вам пригодится. Для увеличения мне больше нравится использовать Topaz Gigapixel AI.
2. Image Prompt. Позволяет подгружать изображения и генерить похожие на него и/или что-то изменять на этих изображениях. Работает как подсказка для генерации. О том, как это работает можно посмотреть видео.
3. Inpaint or Outpaint. Позволяет изменять исходное изображение. На этом разделе мы немного остановимся, т.к. это незаменимая вещь при подготовке датасета на основе скриншотов из симс.

Всего доступно три Метода:
  • Inpaint or Outpaint (default) - позволяет расширить изображение Влево, Вправо, Вверх, Вниз. Дорисовывает недостающую часть изображения. Полезно, если вы сгенерировали изображение в вертикальном формате, но захотели, чтобы оно стало горизонтальным. Просто изменить размер изображения и сгенерить по тому же промпту новое — не получится, т.к. даже если вы зерно генерации Seed оставите такое же, нейросеть будет рисовать уже другое изображение и они получатся не похожими, или похожими весьма отдаленно. Дорисовывает изображение эта функция очень качественно, поэтому рекомендую.
  • Improve Detail (face, hand, eyes, etc.) - укажите в Inpaint Additional Prompt описание лица, рук, глаз, волос и т.п. на которые хотите заменить в изображении. Данный метод позволяет сохранить исходный объект, лишь немного "улучшая" его. Загрузите или нарисуйте поверх изображения маску - именно это место будет подвержено изменению. Например, вы можете выделить глаза и указать, что хотите green eyes, beautiful eyes. И фокус заменит глаз вашего персонажа на другой глаз, сохраняя при этом разрез и форму (по большей части). С этой функцией можно улучшать одежду, волосы и другие детали на изображении вашего персонажа при подготовке датасета.
  • Modify Content (add objects, change background, etc.) - позволяет значительно перерисовать часть изображения. В этом случае уже нет привязки к исходному изображению, поэтому при перерисовки, например, одежды, персонаж на изображении может поменять позу.
4. Describe - описывает словами загруженное изображение, формируя промпт. Полезно, когда вы не можете подобрать правильные слова, которые поймет нейронка, но у вас есть пример того, что вы хотите увидеть.
5. Metadata - перетащите изображение в окошко и вы получите метаданные изображения, в том числе промпт, использованные стили, сид. Кнопка Apply Metadata применяет все указанные параметры и позволяет запустить повторную генерацию данного изображения и что-то изменить в промпте/стилях.
 
Последнее редактирование:
От простого к сложному. SwarmUI.
SwarmUI — это интерфейс для генерации изображений на основе текстовых запросов, который работает с моделями, такими как Flux и другими моделями из экосистемы Stable Diffusion. SwarmUI предлагает пользователям интуитивно понятный интерфейс и широкий набор настроек, позволяя легко управлять параметрами генерации изображений.

Прежде чем перейдем к основному гайду, вот несколько важных аспектов работы SwarmUI:
  • Использование ComfyUI: SwarmUI использует компоненты ComfyUI, поэтому важно, чтобы ComfyUI работал корректно.
  • Требования к оборудованию: Для комфортной работы с Flux и SwarmUI рекомендуется видеокарта с выделенной памятью 8–12 ГБ.
  • Обновления Stability Matrix, ComfyUI и SwarmUI: Периодически проверяйте наличие обновлений для всех интерфейсов, чтобы использовать последние улучшения.

Часть 1. Установка интерфейса.​

Для успешной установки и запуска SwarmUI через Stability Matrix потребуется сначала установить ComfyUI, так как SwarmUI работает на основе некоторых компонентов ComfyUI.

1. Установите ComfyUI:
  • В Stability Matrix перейдите в раздел интерфейсов и найдите ComfyUI в списке доступных для установки программ.
  • Выберите ComfyUI и нажмите «Установить». Stability Matrix загрузит и установит все необходимые файлы для корректной работы ComfyUI.
  • Убедитесь, что ComfyUI установлен и работает, так как это обязательное требование для работы SwarmUI.
Возможна ошибка при запуске, если по каким-то причинам не были обновлены все нужные библиотеки Python (всё это должно произойти автоматически). Чаще всего эту проблему проще решить переустановкой интерфейса ComfyUI.

2. Установите SwarmUI:
  • Теперь, когда ComfyUI установлен, вернитесь в список интерфейсов в Stability Matrix и найдите SwarmUI.
  • Если SwarmUI доступен в списке интерфейсов, выберите его и нажмите «Установить».
3. Следуйте инструкциям для завершения установки:
  • Stability Matrix выполнит необходимые шаги для установки SwarmUI, загрузит все зависимости и настроит окружение. Следите за консольными сообщениями и подтверждайте действия, если Stability Matrix запросит разрешения.
  • После завершения установки SwarmUI автоматически появится в списке доступных интерфейсов Stability Matrix.
4. Запустите и настройте SwarmUI:
  • В Stability Matrix выберите SwarmUI и запустите его.
  • Настройте параметры SwarmUI, такие как выбор модели (например, Flux), разрешение, количество шагов, настройки фотореалистичности и другие параметры.
  • Теперь SwarmUI готов к использованию! Введите текстовый запрос, выберите Flux или другую модель, настройте дополнительные параметры и начните генерацию изображений.

Часть 2. Настройка интерфейса.​

Аргумент fast

В целом, после того, как вы установили SwarmUI, вы можете уже начать генерировать свои первые изображения и в принципе ничего дополнительно не трогать. Но если вы обладатель видеокарты от NVIDIA серии 40хх и выше, проставьте в настройках интерфейса (Server - Backends - ExtraArgs) аргумент --fast Это даст прирост скорости генерации.
Пользовательские настройки интерфейса

По желанию вы можете настроить во вкладке User - User Settings:
  • Language - язык (перевод есть не на все),
  • Theme - цветовую схему,
  • Format - формат названия сохраняемого изображения - по умолчанию сохраняет изображение с куском начального промпта. Вы можете настроить что-то свое, в интерфейсе есть подсказки. Мне больше нравится формат Фокуса, в котором название изображения дается по дате его генерации. raw/[year]-[month]-[day]/[year]-[month]-[day]-[hour][minute]
  • ImageFormat - формат изображения - jpg, png и другие.
  • SaveMetadata - обязательно проверьте, что стоит галочка, чтобы сохранялись метаданные изображения, включая промпт, сид, и настройки Сварма.
С остальными настройками вы можете ознакомиться самостоятельно. В Сварме каждая настройка имеет подсказки, по которым можно понять, что же это такое, в отличии от других интерфейсов. В некоторых настройках даже присутствуют ссылки на расширенную информацию и руководства по использованию той или иной функции.

В принципе на этом с настройками всё. Перейдем непосредственно к возможностям Сварма.

Часть 3. Основные параметры интерфейса.​

Рассмотрим стартовое окно Сварма. Напомню, что этот интерфейс поддерживает генерацию как на SDXL, так и на Flux.1. Но настройки параметров для каждой из этих моделей будут свои. Интерфейс очень удобен и интуитивно понятен. Самое главное, что вы можете просматривать непосредственно из интерфейса все генерации, которые вы производили, а так же доступен удобный просмотр скаченных моделей и LoRA. В сварме вы можете сохранять собственные пресеты с настройками для генерации изображений, а так же заготовки больших списков различных промптов во вкладке Wildcard.

Screenshot_51.png

Сейчас рассмотрим основные параметры, которые вам потребуются для SDXL и для Flux.1. В конце я прикреплю ссылки на загрузку готовых пресетов, которые вы уже сможете настроить под себя.

1. Core Parameters
  • Images - сколько изображений будут последовательно генерироваться.
  • Seed - установка зерна для воспроизводимости изображений. При значении -1 будет генерироваться случайное изображение. Одинаковое значение семени приведет к одинаковым результатам, при отсутствии изменений в параметрах и промптах. При изменении промпта изображение так же будет меняться. В каких то случаях более значительно, в каких то менее, но в любом случае это будет уже другое изображение, где могут измениться некоторые детали.
  • Steps- количество шагов генерации. допустимо устанавливать от 25 до 40 шагов.
    • 30-35 предпочтительнее для SDXL.
    • 30-40 для Flux.
  • CFG Scale- показатель креативности.
    • Для SDXL можно варьировать от 6 до 9. Считается, что наилучшее соотношение креативности и следованию промпта для генерации - 7. Иногда можно поставить выше или ниже.
    • Для Flux этот параметр не используется, значение следует выставить на 1. Соответственно из-за этого мы не используем негативный промпт.
2. Resolution - размер кадра. Учитывайте, что генерирование слишком больших изображений (например, 1920х1080 px) будет более длительным, а результат не всегда может вас порадовать. Т.к. изначально эти модели обучались на изображениях 1024х1024px. Соответственно генерация сильно большего размера изображения нежелательна. Лучше воспользоваться функцией Upscale и увеличить готовое изображение меньшего размера.

3. Sampling
  • Sampler - Метод семплирования, который определяет алгоритм, используемый для генерации изображения. Доступно много разных вариантов семплеров, вы можете экспериментировать и смотреть, на каком будет лучше изображение. Используется обязательно для SDXL, можно использовать так же для Flux, но в целом и при отключенном параметре у меня получаются изображения хорошего качества. Но при работе с некоторыми стилями и изображениями Семплеры могут быть полезны и добавлять некой стилизации изображению. В качестве примера я приложу сетку с разными вариантами семплеров и вы посмотрите, как изменяется изображение с одними и теми же прочими параметрами. И вы сможете решить, какой лучше использовать.
Сравнительная сетка всех доступных на сегодня семплеров на примере изображения на одном сиде. SDXL.

Grid Sampling SDXL.jpeg
Используемый промпт для оценки точности:
Код:
ohwx man, selfie, with stubble, neon purple and blue lights casting shadows, her eyes locking with the camera, in a nightclub, in black jeans and a white T-shirt, portrait,, 8K, anti-blur, contrast, DSLR, Focal length 50 mm

Сравнительная сетка всех доступных на сегодня семплеров на примере изображения на одном сиде. SDXL.
Grid Sampling SDXL 2.jpeg

Сравнительная сетка всех доступных на сегодня семплеров на примере изображения на одном сиде. Flux.
Grid Sampling Flux.jpeg
Используемый промпт для оценки точности:
Код:
photo of ohwx woman with black wavy average hair length and freckles, in a forest setting, dressed as a woodland ghost in a flowing white dress, her expression haunting yet gentle, with mist swirling around her in the faint morning light, DSLR, Focal length 50 mm, 8K,
  • Scheduler - используется совместно с параметром Sampler. И позволяет получить различные результаты.
Сравнительная сетка с использованием семплеров euler, ddpm, lcm, lms и всех вариантов параметра Scheduler. SDXL.
Grids Scheduler SDXL.jpeg

1.
Grids Scheduler SDXL 2.jpeg
2.

Сравнительная сетка с использованием семплеров heunpp2, lcm, uni_pc и всех вариантов параметра Scheduler. Flux.
Grids Scheduler Flux.jpeg
  • Flux Guidance Scale - параметр аналогичный CFG Scale, но применяется для моделей Flux. Можно включать, можно не включать, но добавляет некой креативности и контрастности изображению. Рекомендуется выставлять на значения около 3,5. Значения меньше дадут большую стилистическую гибкость. Я предпочитаю выставлять 4.
4. Init Image

Одна из самый важных функций, которая позволяет изменять изображения, перерисовывать референсы, или исправлять "косяки" генерации и творить различную магию с изображением. О возможностях инпейнта я расскажу в отдельном гайде. Если кратко — вы можете перетащить или подгрузить любое изображение, выбрать маску (если нужно изменить только часть изображения), ввести требуемый промпт в поле основного промта, и наслаждаться, как сварм перерисовывает картинку из интернета, но, например, с лицом вашего персонажа.

Другие параметры можем рассмотреть в других гайдах, если будет такое желание, т.к. все остальное уже предназначается для более продвинутых пользователей, а некоторое даже я не добралась использовать.

Часть 4. Полезные фишечки SwarmUI​

1. Манипуляции с изображением

Первое, что может пригодиться, это Image History. В ней есть 2 типа папок. Все генерации и генерации Избранные (Star). Нажимая на изображение вы можете посмотреть все настройки, которые были использованы при генерации, скопировать их (Reuse Parameters), добавить изображение в избранное (Star) или загрузить в Init Image для изменения (Use As Init). Кнопка Edit Image позволяет редактировать изображение не выходя из интерфейса.

Работа с изображением

2. Создание пресетов

Во вкладке Presets вы можете:
  • Создавать собственные пресеты (Create New Preset) - выбираете параметры, которые необходимо установить и нажимаете сохранить. Если перед этим вы выберете любое изображение (или перетащите в окошко просмотра изображений), то сможете установить на пресет любую картинку.
  • Импортировать пресеты (Import Presets)
  • Экспортировать все пресеты (Export All Presets)
  • Применить пресет (Apply Presets). Для этого выделите нужный пресет и нажмите кнопку. Указанные параметры изменятся.
Screenshot_2.png
Пресеты с базовыми настройками SDXL и Flux.1: 📎 Presets SDXL, Flux.json

3. Model, LoRAs

Содержит список установленных моделей и лора. Что удобно: если вы выбрали модель, то во вкладке лора у вас будут подсвечены и выведены в начало списка те лоры, которые поддерживаются выбранной моделью.

4. Wildcards​

Wildcards (или "джокеры") — это специальные символы или параметры, которые позволяют пользователю создавать более гибкие и динамичные текстовые запросы для генерации изображений. С помощью Wildcards можно быстро и удобно изменять определённые части запроса, заменяя их на случайные или заранее заданные значения. Это полезно для создания разнообразных изображений с одними и теми же базовыми характеристиками, но с изменениями в отдельных элементах.

Примеры использования:

1. Случайные значения:

  • Wildcards могут быть использованы для замены части текста запроса на случайные значения. Например, вместо того чтобы каждый раз прописывать конкретные детали, можно указать wildcard, который будет автоматически подставлять разнообразные элементы. Например, если вам нужно несколько изображений с разными персонажами и фонами, можно настроить wildcard, который будет менять персонажа или фон в каждом запросе.
2. Заполнение текста:
  • Wildcards могут заменять стандартные описания на более вариативные. Например:
    • {character}: может быть заменён на имена различных персонажей.
    • {background}: может изменяться на различные типы фонов, такие как "лес", "город", "пейзаж" и т.д.
3. Переменные:
  • Wildcards могут работать как переменные, которые можно настроить заранее, а затем использовать в разных текстовых запросах. Это позволяет ускорить процесс создания множества вариантов изображения с маленькими изменениями.
4. Предустановленные наборы параметров:
  • В SwarmUI могут быть предустановлены наборы параметров для определённых элементов изображений, таких как стили, объекты, цвета и т.д. Например:
    • {style}: может подставлять случайные стили, такие как "реализм", "киберпанк", "пастель" и другие.
    • {lighting}: может автоматически менять тип освещения, например, "туманное", "яркое", "вечернее" и так далее.
Как применять Wildcards

Допустим, вы хотите сгенерировать серию изображений с разными персонажами, фонами и стилями. Вместо того чтобы каждый раз писать подробный запрос вручную, вы можете использовать Wildcards:

Запрос промпта:
A portrait of <wildcard:character>, in the style of <wildcard:style>, standing in front of a <wildcard:background>, with <wildcard:lighting>.

Результаты с Wildcards:
  • <wildcard:character>: подставляется случайное имя (например, "elf", "knight", "wizard").
  • <wildcard:style>: подставляется стиль ("cyberpunk", "realism", "watercolor").
  • <wildcard:background>: подставляется фон ("mountain", "city", "beach").
  • <wildcard:lighting>: подставляется тип освещения ("dim", "bright", "dramatic")
Соответственно для того, чтобы это работало, вам необходимо создать во вкладке Wildcards на каждый тип данный свою карту. Название карты будет подставляться в промпт (можно вписать вручную, можно выбрать из списка карт - нужная фраза сама подставится в то место, где у вас находился текстовый курсор в промпте). Правила заполнения данных в карте просты - 1 строка - 1 понятие.

Screenshot_3.png

5. Синтаксис подсказок SwarmUI​

И последняя часть нашего гайда. Синтаксис. В сварме классно автоматизирован выбор разных параметров в промпте. Вообще про это все расширенно и красиво можно почитать тут. Но я расскажу кратко. В целом, когда вы в поле промпта нажимаете < появляется выпадающее меню и позволяет использовать продвинутый синтаксис достаточно легко и просто. Какой же синтаксис поддерживается Свармом?

1. Вес (Weighting)
  • Веса помогают задавать приоритет определённым частям запроса. Например, (orange:1.5) cat — усилит важность "orange". Значение >1 делает это более важным, <1 — менее важным.
2. Чередование (Alternating)
  • Используйте <alternate:cat, dog> для чередования между понятиями (например, кот и собака). Синтаксис | и || позволяет разделять элементы, например, <alternate:cat || dog || mouse>.
3. От:До (From-To)
  • <fromto[#]:before, after>; меняет фразы после определённого шага. Например, <fromto[0.5]:cat, dog>; сменит "cat" на "dog" на половине пути. Можно задать числом, например 10. Тогда сменится после 10 шага (Step).
4. Случайный выбор (Random)
  • Синтаксис <random:red, blue, purple>; выбирает случайное значение из списка. Можно использовать диапазоны, например, <random:1-3, blue>
5. Джокеры (Wildcards)
  • <wildcard:my/wildcard/name>; выбирает случайные элементы из заранее подготовленного списка. Поддерживает несколько вариантов, например, <wildcard[1-3]:animals>
6. Переменные (Variables)
  • <setvar[var_name]:data>сохраняет значение для повторного использования. Например, <setvar[color]:<random:red, blue>> и <var:color> для вызова переменной.
  • Пример такого промпта:
a photo of a woman with <setvar[color]:<random:blonde, black, red, blue, green, rainbow>> hair standing in the middle of a wide open street. She is smiling and waving at the camera, with beautiful sunlight glinting through her <var:color> hair. <segment:face and hair> extremely detailed close up shot of a woman with shiny <var:color> hair
7. Триггерная фраза (Trigger Phrase)
  • Если модель Lora в метаданных имеет триггер, используйте <trigger> для его автоматического добавления в запрос. Служит для некоторой автоматизации.
8. Повтор (Repeat)
  • <repeat:3, cat> повторяет слово 3 раза. Можно использовать случайные значения, например, <repeat:1-3, <random:cat, dog>>
9. Текстовые инверсии (Textual Inversion Embeddings)
  • Используйте <embed:filename> для включения текстовых инверсий.
10. LoRA
  • Для включения LoRA используйте <lora:filename:weight>. LoRA можно использовать внутри сегментов для точечной настройки. В целом, если это не какой-то специфический случай, то дополнительно прописывать название файла Лоры в промпте не требуется, т.к. при выборе Лоры она появится над нижними вкладками и именно там регулируется её вес.
11. Предустановки (Presets)
  • Включение предустановок с помощью <preset: presetname>. Можно использовать случайные предустановки, например, <preset:<random:a, b>>.
12. Сегментация (Segmentation)
  • <segment: текст > используется для уточнения части изображения, например, для восстановления лиц или фокуса на деталях.
  • Пример использования: В конце вашего промпта прописываем <segment:face,0.8> ohwx man. Это значит, что после того как изображение будет сгенерировано, нейронка найдет изображенное лицо вашего персонажа и перерисует его заново, уточняя детали и добавляя сходства с Lora с весом 0,8.
  • Иногда базовый сегмент работает не очень хорошо. Тогда на помощь придут YOLOv8. Скачайте модели сегментации с гитхаба и поместите в папку StabilityMatrix - Models - yolov8 (создайте, если нет).

    После этого вы сможете выбирать модели yolov8 в выпадающем меню функции сегментации. Например: <segment:yolo-face_yolov8m-seg_60.pt-1,0.8> ohwx woman. Где yolo-face_yolov8m-seg_60.pt это название требуемой модели, -1 это порядковый номер лица или элемента который необходимо заменить (актуально для парных изображений). Может быть -1, -2, -3 и т.д. Лица считаются слева направо по сгенерированному изображению. Поэтому особенно в парных лорах имеет смысл применять сегментацию, когда вы уже сгенерировали изображение, убедились, что оно вам нравится, добавили в промпт сегментацию и сгенерировали заново. А 0,8 у нас по прежнему вес.
13. Очистка (Clear)
  • <clear:texthere>, очищает части изображения до прозрачного, например, <clear:background> для удаления фона. По понятным причинам для этого требуется формат PNG, а не JPG.
14. Разрыв (Break)
  • <break> вручную делит текстовый запрос для улучшения обработки длинных промптов, избегая неправильных разделений.
 

Обучение LoRA, или поговорим о kohya_ss

Часть 1. Установка интерфейса kohya_ss.


В предыдущих гайдах я вскользь упоминала такой интерфейс как kohya_ss, который так же доступен в Stability Matrix в разделе Packages - Training.

О версиях программы

Сейчас существует две основные версии, которые могут нам пригодиться:
  • официальная релизная (на сегодняшний день) v24.1.7, на которой доступно обучение моделей SDXL.
  • мастер-версии sd3-flux.1 и sd3-sd3.5-flux — в которых как раз появляется возможность обучать LoRA и DreamBooth для модели Flux.1. На ней же можно обучать и для модели SDXL. Конкретно я затестировала через матрикс версию sd3-flux.1 — все отлично работает и не требует каких-то дополнительных телодвижений при установке. Так что в целом вам не требуется заморачиваться с установкой через командную строку.
Мастер-версии интерфейса можно выбрать в окне установки отключив кнопку Releases и выбрав из выпадающего списка нужную вам. Будем надеяться что вскоре выпустят релизную версию с поддержкой Flux.1.

Системные требования

Обучение моделей очень прожорливое до ресурсов. Для обучения модели LoRA вам потребуется:
  • Видеокарта с поддержкой CUDA, минимум 8 ГБ видеопамяти для небольших моделей, рекомендуется 16 ГБ и более (SDXL). Flux ещё более прожорлив, поэтому для него рекомендуется все же использовать видеокарту от 16 Гб. Меньше (10-12 Гб) можно, но будет уже не то качество или сильное увеличение времени на обучение. Под видеопамятью подразумевается Выделенная память графического процессора.
  • Оперативная память (RAM): минимум 16 ГБ, оптимально 32 ГБ, а для обучения DreamBooth от 49 Гб.
  • Место на диске: от 20 ГБ, желательно SSD.
Вообще надо сказать, что обучение модели для Флюкса даже на мощной видеокарте дело не сильно быстрое и требует действительно топовых комплектующих. Я использую для Флюкса более скоростные настройки, но даже так среднее время обучения на 4060ti с объемом видеопамяти 16 Гб занимает 5,5-6 часов. Для сравнения — SDXL - 2 часа. Но, что неоспоримо, такое долгое ожидание того стоит. Карты выше рангом (4080 например) с теми же 16 гб видеопамяти будут быстрее при тех же настройках.

Если ваши системные требования подходят, или же вы хотите всё-равно попробовать, идем дальше.

Часть 2. Подготовка Dataset.

Основные понятия

Для обучения модели нам потребуется:
  • Training images — Тренировочные изображения — это основной набор изображений, которые вы используете для обучения модели. Этот набор должен содержать изображения, соответствующие теме или стилю, который вы хотите, чтобы модель смогла воспроизводить. В процессе обучения модель анализирует эти изображения, а затем применяет к ним текстовые описания, чтобы создать ассоциации, которые позволяют модели "понимать" стиль, тему или объект. В нашем случае мы будем использовать изображения вашего персонажа для того, чтобы модель могла запомнить, как он выглядит.
  • Regularisation images — Регуляризационные изображения — это набор изображений, используемый для предотвращения переобучения модели. Эти изображения помогают модели не «забыть» общие черты, что делает её гибче и более универсальной. Регуляризационные изображения позволяют обученной модели сохранять способность генерировать разнообразные изображения, а не ограничиваться лишь стилем или предметом, на которых она была обучена. Например изображения женщин, мужчин, котов, для понимая, как в общем выглядят самые разные женщины, мужчины и коты в целом. Используется только при обучении модели SDXL. Flux уже умеет понимать в широком смысле кто изображен на картинке (мужчина, женщина или кот), и качественного улучшения итоговой модели за счет этого не происходит.
Для обучения SDXL:
  • 13 тренировочных изображений вашего персонажа в размере 1024х1024 px. Это важно!
  • 325 регуляризационных изображений общего понимания предмета, на который вы обучаете в размере 1024х1024 px. Например, если в тренировочных изображений у вас персонаж женского пола - регуляризационные изображения будут состоять из 325 фото реальных женщин. Если вы решили обучить модель изображениям своего кота - вам потребуется 325 фото разных котов.
Для обучения Flux:
  • 13 тренировочных изображений вашего персонажа в размере 1024х1024 px. Можно использовать 15-16 и даже более, но каждое добавленное новое изображение будет увеличивать время обучения примерно 7,6% от исходного.
  • Регуляризационные изображения не используются.
Откуда взялись эти числа?

13 - не чертова дюжина.
Обычно, для обучения на внешность одного человека/персонажа достаточно небольшого количества изображений, порядка 10–20. Эти изображения помогают модели запомнить и воспроизвести нужные черты лица, мимику и углы обзора, чтобы сформировать полный образ. Такое количество тренировочных изображений позволяет:
  • Избежать избыточного запоминания (overfitting), при котором модель может перестать правильно обобщать внешность и выдавать искусственные артефакты.
  • Поддерживать эффективность обучения, так как каждое изображение будет использоваться интенсивнее (особенно с повторениями), что помогает модели сфокусироваться на характерных чертах лица, не перегружаясь избыточными данными.
Важно, чтобы изображения были разнообразными по ракурсу. Если в вашем дата-сете нет изображения персонажа в профиль - скорее всего, вам будет достаточно трудно такое изображение сгенерить, потому что модель не будет знать, как именно выглядит профиль, и результат может быть далеким от требуемого.

325 регуляризационных изображений — это в первую очередь связано с тем, что в модели SDXL для улучшения качества обучения и избежания переобучения, используются Повторения. А чисто 325 служит для баланса, чтобы модель запомнила черты лица вашего персонажа, но при этом не переобучилась и сохранила гибкость. В SDXL так же можно добавить больше тренировочных изображений, но тогда на каждое 1 новое изображение нужно добавить 25 новых регуляризационных.

25?

А 25 это как раз число повторений Тренировочных изображений, которое используется, если набор данных не очень большой. 25х13=325. Что же такое число повторений и зачем оно нужно?

Число повторений (или repeats) для тренировочных и регуляризационных изображений — это параметр, который определяет, сколько раз одно и то же изображение будет проходить через модель в процессе обучения. Повторение изображений позволяет увеличить их «вес» в обучающей выборке и усилить влияние на модель, не добавляя дополнительных уникальных изображений. Актуально для моделей SDXL, на Flux использовать повторения мы так же не будем, т.к. качество обучения будет определять совсем другой параметр.

Кажется с основными понятиями разобрались, теперь непосредственно про подготовку тренировочных изображений.

Подготовка тренировочных изображений


Основные моменты которые вам нужно проконтролировать:
  • Изображение размером 1024х1024 px !!! Важно !!!
  • Изображение должно быть качественным, четким, с разными ракурсами.
  • При съемке в симс желательно делать изображения на белом фоне, чтобы избежать запоминания игровой графики и ненужных артефактов. Либо попробуйте заменить фон на более стилизованный и реалистичный.
  • Чтобы повысить качество модели рекомендуется с помощью Fooocus перерисовать волосы, одежду и ресницы сима. Подробнее об этом ниже.
  • Можно обучать модель, например, на реальных фото кота. Но для того, чтобы модель не добавляла в дальнейшем в генерации излишнюю реалистичность, рекомендуется заменить фон на белый или менее реалистичный. Актуально, если вы хотите сделать фото своего персонажа с домашним любимцем, или своего персонажа в зверо-форме.
Screenshot_9.png
Пример тренировочных изображений

Как только вы подготовили 13 изображений, подготовим тренировочную папку, в которую необходимо размещать тренировочные и регуляризационные изображения, и забирать готовые модели.

Структуризация тренировочной папки

Вообще в Kohya_ss есть встроенная функция автоматического создания структуры этих папок, но как и вся автоматика — эта тоже иногда дает сбой, поэтому я объясню смысл этих папок, чтобы вы могли создать конфиги с настройками обучения и больше пути не трогать, заменяя тренировочные изображения непосредственно в папке. Для меня это самый простой и наглядный метод, исключающий ошибки.

1. В любом удобном месте создайте папку Training (или другое название, понятное вам). Не знаю есть ли в этом необходимость, я не проверяла, но чтобы исключить ошибки проследите, что весь путь до папки не содержит кириллицу и спец.символы (#$%^&* и т.д.). По опыту, в некоторых случаях это может затруднять поиск нужных файлов программам и вызывать ошибки.
2. В папке Training создайте 4 папки
  • img
  • log
  • model
  • reg
Screenshot_6.png
Пример содержания папки Training
3. Внутри папки img мы будем создавать папки с тренировочными данными. 1 папка - 1 набор данных для обучения. Для одной Lora или DreamBoot можно использовать несколько наборов данных, например набор данных для 1 персонажа и для другого персонажа, чтобы получать совместные кадры. Но, как и всегда, есть ряд тонкостей.

Как показала практика, хорошие результаты совместных кадров получаются на Flux, но нейронка упрямо "перемешивает" лица. Пока мы не нашли адекватных способов этого избежать, поэтому после генерации кадра нужно пройтись инпейнтом по лицу персонажей и "доработать" картинку с помощью обычной, не совмещенной, модели у каждого перса. Вот такой своеобразный костыль.

Добавление наборов данных

img
— создайте папку (значения подставляете в зависимости от данных и обучающей модели SDXL/Flux) ХХ_Instance Class где:
  • ХХ - это число повторений. Для моделей SDXL число повторений следует установить на значение 25. Для модели Flux - 1.
  • Instance - это уникальный токен или часть триггерной фразы, которую потом нужно будет вводить в промпте. Некое уникальное непереводимое сочетание символов. Например: ohwx или asd, или другие, которые вы можете придумать сами. Здесь можно найти список разных уникальных токенов, чем ниже токен в списке, тем он уникальнее. Использовать лучше те, что ближе к концу.
  • Class — класс ваших изображений. Иначе говоря, изображение чего вы обучаете. Для модели мужчины используется man, для женщины woman, для кота cat, для собаки dog.
  • Примеры названий папок для SDXL — 25_ohwx woman, 25_ohwx man
  • Примеры названий папок для Flux — 1_ohwx woman, 1_ohwx man
    • Для парных Лора: 1_ohwx woman, 1_asd man, 1_bnha man. Обучить на 3-х персонажей и более в одной лоре можно, но лица будут перемешиваться среди представителей одного пола ещё больше, чем у представителей разных полов.
Внутри папки разместите Training images — ваши тренировочные изображения (13 штук). В каждому изображению создайте файл .txt с таким же названием, как и у изображения. В файле txt добавьте описания изображения. Я обычно пропускаю этот шаг при обучении модели на 1 персонажа. При обучении нескольких персонажей я добавляю сведения о триггерной фразе. Например "photo of asdman". Без пробела в триггерной фразе.
Screenshot_4.png
Пример содержания папки img/1_ohwx woman
Screenshot_7.png
Пример содержания папки img для создания лоры с 3 персонажами. Для 1 персонажа будет только 1 папка.​

reg — при обучении модели на SDXL создайте в папке reg папку с 325 изображениями класса, на который вы обучаете. 1_Class
  • Х - это число повторений. Для моделей SDXL число повторений следует установить на значение 1.
  • Class — класс ваших изображений. Для модели мужчины используется man, для женщины woman, для кота cat, для собаки dog. Соответственно в папке вам необходимо разместить 325 изображений соответствующего класса. Ссылка на скачивание: мужчины, женщины.
  • Примеры названий папок для SDXL — 1_woman, 1_man
Screenshot_8.png
Пример содержания папки reg
Screenshot_5.png

Пример содержания папки reg/1_woman


model — из данной папки мы будем забирать обученную модель.
log — сюда будут сохраняться log-файлы обучения. Можно в целом не создавать и не указывать к ней путь.

Часть 3. Мини-обучение по улучшению скриншотов из игры в рамках подготовки Dataset.

В целом алгоритм действий достаточно прост, для этого нам понадобится Fooocus и одна из базовых моделей SDXL.

В целом вы можете попробовать доработать и на флюксе в сварме, но это будет дольше по времени и нужно будет повозиться немного с настройками. Фокус делает это немного быстрее и особой разницы на первом этапе нет. Чаще всего после получения первой модели для флюкса или фокуса для улучшения генерации нужно сделать повторное обучение, заменив тренировочные изображения на новые, уже сгенерированные во флюксе или фокусе. Это позволит избавиться от симских артефактов и получать ещё более крутые изображения. Следующий этап улучшения будет только обучение на DreamBooth, вместо LoRA, но если Лора это моделька маленькая, то Дримбут это полноценная дообученная модель, которая на флюксе весит все те же ошеломительные 11-16 Гб, но обладает лучшим качеством и креативностью в генерации.

Итак начнем.

1. Открываем Фокус и идем во вкладку Inpaint or Outpaint. Как найти эту вкладку читаем тут.
2. Подгружаем ваше изображение сима, предварительно скадрированное и обрезанное до размера 1024х1024
3. Можно подгрузить маску, на которой необходимо закрасить белым все, что должно подвергнуться изменениям. А именно - волосы и одежда сима. Либо можно закрасить в интерфейсе. Там есть в окошке подсказка с горячими клавишами, чтобы приблизить или отдалить изображение, а так же изменить размер кисти.
4. Выбираем Improve Detail (face, hand, eyes, etc.) и вписываем в поле основного промпта и Inpaint Additional Prompt подсказку. Например: "black hair, brown leather jacket". Импрув может перерисовать по запросу, если там есть что то похожее по оттенкам. Например, черную футболку он может перерисовать в коричневую кожанку, и платье, а вот в белую футболку не может. Т.е. он примерно считывает общий оттенок и контур и меняет в его рамках. В основное поле промпта помимо этого можно указать woman, 8K, anti-blur, contrast, DSLR, contrast, чтобы добавить реалистичности.
В сложных случаях, если импрув не может перерисовать так, как нужно вам - попробуйте использовать Modify Content, но будьте осторожны, он перерисовывает полностью, меняет позу и масштаб тела и в результате может быть не так актуален.

Screenshot_10.png
Пример настроек.

5. Во вкладке Base Model выбираем любую базовую модель. Мне нравится albedobaseXL для одежды и волос, и juggernautXL для области вокруг глаз. Последняя модель будет доступна при установке фокуса сразу.

А теперь жмем генерацию и выбираем тот вариант, который понравится больше. При необходимости отредактируйте маску, т.к. у нее есть небольшое размытие и она может задевать и размывать контуры лица. Я обычно рисую вручную в фокусе и чуть-чуть не довожу до края, чтобы размытие затронуло край волос, и не дошло до лица (например в зоне подбородка, где есть резкий переход цвета), и слегка заезжаю на лоб, чтобы сделать более плавный переход.

Так же действуем и с глазами. Я обвожу вокруг белка, чтобы сохранить разрез глаз и заменить ресницы. Можно заменить зрачок, чтобы был, например, более естественный. Но здесь сложно добиться одинакового цвета. Если очень хочется, можно поменять в фотошопе. Флюкс оттенок глаз запоминает достаточно хорошо, поэтому от того, на сколько вы качественно подготовите датасет будет зависеть итоговый результат.

4.png
Пример обработанного изображения​
Улучшайте изображения до получения приемлемых результатов.

Часть 4. Обучение модели.

  • Для модели SDXL я прикрепляю конфиг, который делала сама. Он подходит для видеокарт серии 30хх, 40хх, с объемом видеопамяти 16 Гб (для тех которые поменьше вроде бы тоже подходит, если ваши параметры отличаются, посмотрите обучающее видео, чтобы внести правки и адаптировать конфиг под себя. Я не буду подробно расписывать настройки, укажу лишь те пункты, которые требуется поменять в путях.
  • Для моделей Flux конфиг можно скачать, оформив подписку на Patreon у его автора. Ссылку можно найти в описании к видеоролику. По понятным соображениям выкладывать в общий доступ платный ресурс я не могу.
Там достаточно много различных конфигов, которые адаптированы под видеокарты с разным объемом памяти и протестированы на все возможные настройки, чтобы получать наилучшие результаты при обучении LoRA на флюксе. На картах с 16 Гб видеопамяти мы используем вот этот конфиг Rank_8_15600MB_4_89_Second_IT. Для корректной работы перед началом обучения необходимо перезагрузить компьютер и закрыть все программы, которые могут съедать память. На начало обучения использование выделенной памяти должно быть в пределах 0,5-0,6 Гб, а с началом обучения использование возрастет до 15,6-15,7 Гб, но следите, чтобы не начало увеличиваться потребление общей памяти графического процессора. Обычно оно около 0. Если значения там поползли вверх, значит вам не хватило памяти и время обучения будет увеличено в несколько сотен раз. Рекомендуется проверить, закрыто ли у вас все лишнее и перезапустить обучение, либо выбрать менее требовательный конфиг. Смотреть потребление памяти можно в Диспетчере задач во вкладке Производительность.

С конфигом единственное, что вам нужно будет сделать, это обновить пути к папкам и моделям и дать название будущей модели.

Разберем на примере конфига Flux, т.к. для SDXL используются те же поля для изменения.

1. Переходим во вкладку LoRA! Не забываем про это, ведь мы обучаем LoRA.
2. Во вкладке Configuration жмем на значок папки и выбираем ваш конфиг, будь то конфиг для Флюкса или для SDXL.
3. Конфиг подгрузится, и после того, как вы обновите пути, можете нажать на значок дискеты и сохранить настройки. При следующем запуске вам останется только поменять имя вашей будущей модели.
4. Вкладка Model:
  • Pretrained model name or path - указываем путь к модели. flux1-dev.safetensors для флюкса, sd-xl_base.safetensors для SDXL
  • Trained Model output name - имя модели. Указываете любое, которое поможет вам сориентироваться.
  • Image folder (containing training images subfolders) - путь к папке img
5. Вкладка Folders
  • Output directory for trained model - путь к папке model
  • Logging directory (Optional. to enable logging and output Tensorboard log) - путь к папке log
  • Regularisation directory (Optional. containing regularisation images) - путь к папке reg, при использовании регуляризационных изображений (Только для SDXL!! При обучении на флюксе оставить пустым)
6. Для обучения на Flux дополнительно нужно скачать и прописать путь к 3-м дополнительным моделям. Во вкладке Parameters - Flux.1 (листаем почти в самый низ). Для SDXL это не нужно.
Все необходимые файлы можете скачать по ссылкам или найти в интерфейсе матрикса и проложить путь к ним.

Screenshot_11.png
Screenshot_12.png
Поля для изменения в конфиге.​

Собственно говоря вот и вся магия. Жмем кнопку Start Training и ждем. В консоле матрикса можно следить за процессом обучения. Когда обучение завершится счетчик времени закончится и высветится надпись Training has ended. При использовании того же конфига обучение пройдет 2600 шагов при использовании 13 тренировочных изображений. Если вдруг количества шагов стало больше, то скорее всего вы сделали что-то не так.

В следующем гайде поговорим о том, какую эпоху модели выбрать после завершения обучения. В SDXL как правило мы обучаем на 8 эпохах, а во Flux, поскольку мы не используем регулировочные изображения - ставка идет на количество эпох - и их уже 200.

Эпохи (epochs) — это один из ключевых параметров при обучении нейросетей, который определяет количество полных проходов через весь тренировочный набор данных. Т.е. простыми словами, через сколько кругов ада пройдут ваши изображения, прежде чем нейронка их запомнит.
 
Назад
Сверху