April 30

Гайд по вкату

Cодержание:

  1. Часть 1: Установка UI
  2. Часть 2: Апскейл Hires. fix
  3. Часть 3: Adetailer
  4. Часть 4: Исправление дефектов генерации в Inpaint
  5. Часть 5: Wildcards и динамические параметры генерации
  6. Часть 6: Controlnet для самых маленьких. Простые примеры
  7. Часть 7: Regional Prompting - несколько персонажей в кадре без смешивания
  8. Часть 8: Продвинутый уровень: локальное обучение собственных LoRA
  9. Решение проблемы с ошибкой CUDA для видеокарт RTX50XX.

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

  • Видеокарта Nvidia с 8 и более гигабайтами видеопамяти;
  • 32 и более гигабайт оперативной памяти;
  • SSD.

Запуск на более простых конфигах возможен. Работа на видеокартах AMD возможна, но с костылями и намного медленнее. Я не рассматриваю эти варианты, информация есть в интернете.

Часть 1: Установка UI.

Перед продолжением убедитесь в наличии на пк нужного софта.

  1. Установите правильную версию Python. Обязательно добавьте python в PATH при установке.
  2. Установите Git.

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

  1. reForge
  2. ComfyUI - нодовый веб-интерфейс.

Оба UI имеют свои плюсы и свои минусы, однако, принято считать, что reForge куда дружелюбнее к новым пользователем.

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

Если вы не хотите или вам сложно - альтернативный способ установки предлагает ПО lykos.ai.

  1. Скачайте и установите Stability Matrix.
  2. Зарегистрируйтесь на https://civitai.com/.
  3. В самом низу настроек аккаунта civitai найдите раздел с API KEYS, создайте новый ключ и вставьте его в интерфейс Stability Matrix.

Выберите интерфейс - reForge и чекпоинт - WAI-NSFW-illustrious и дождитесь окончания загрузки и установки, после чего запустите UI.

UI всегда доступен по адресу http://127.0.0.1:7860/?__theme=dark

Настройки reForge

Обычно авторы чекпоинтов указывают рекомендуемые настройки в описании. Для WAI они такие:

WAI, как и другие чекпоинты будут работать с другими настройками, экспериментируйте.

Итак, укажите рекомендуемые настройки в UI.

Должно получиться примерно так:

Разрешение можно и нужно менять, но для примера я буду использовать дефолтный квадрат 1024х1024.
Batch count - количество генераций. Выставляйте по желанию.

На этом этапе уже можно что-нибудь сгенерировать - нажимайте Generate.
Получится что-то вроде:

Поздравляю, вы великолепны!
Следующий уровень - копирование чужих работ.

В качестве обучения повторим одну из превьюшек чекпоинта WAI:

Скачайте пик и перетащите его во вкладку PNG Info, а затем нажмите на кнопку Send to txt2img:

Получится примерно так:

И запускайте генерацию.

Получите что-то вроде:

Отлично, теперь вы можете копировать чужие работы!

Изучите базовый гайд по промтингу, чтобы понять, что вообще написано в полях ввода промптов - и вы уже в мире AI генераций.

Часть 2: Апскейл Hires. fix

По завершению генерации изображения следует апскейлить. Основная задача апскейла - детализация и увеличение разрешения вашей генерации.

Интерфейс Hires. fix выглядит следующим образом:

Существует множество разных моделей апскейлера, я рассмотрю только самые популярные.

  1. 4x-Ultrasharp
  2. Remacri
  3. Встроенный R-ESRGAN 4x+ Anime6B

Загрузите интересующую (или обе) модель и положите ее в stable-diffusion-webui-reForge-main\models\ESRGAN, после чего перезапустите SD. Модель станет доступна для выбора в выпадающем списке.

Возможно, нужно будет изменить расширение скачанной модели апскейлера на .pt

Остальные настройки выставьте как на скриншоте выше. Галку рядом с Hires. fix смысла ставить нет - в таком случае все ваши пикчи будут автоматически апскейлиться на этапе генерации.

Нажимаем ✨ и ждем завершения работы апскейлера.

Экспериментируйте с денойзом самостоятельно, мои средние настройки не обязательно идеальные.

Часть 3. Adetailer

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

Детейлер применяется для локального улучшения качества - лица, рук, персонажа, предметов, etc с автоматическим обнаружением.

Для установки перейдите в Extensions → Available → Load from и введите в поле поиска adetailer, после чего нажмите на кнопку Install. (у меня он уже установлен).

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

Так же, существует достаточно много других моделей.

Для детализации лица я обычно использую модель Anzhc Face seg 640 v2 y8n.

Перейдите по ссылке, загрузите модель и положите ее в папку stable-diffusion-webui-reForge-main\models\adetailer.

Возможно, нужно будет изменить расширение скачанной модели апскейлера на .pt

Полностью перезапустите UI.

Для большего понимания происходящего прочтите этот гайд.

Установите эти настройки:

Я не использую детейлер при генерации, а включаю его только при апскейле ✨Hires. fix.

Итак, у нас есть генерация. Я выделю только лицо, так как работаем мы с ним.

WВключите ADetailer (поставьте галочку) и запустите ✨Hires. fix.

Результат:

Точно так же работаете с другими деталями - добавляете этап, меняете модель, указываете минимальные настройки обнаружения и денойза. Индивидуально промптить этапы не обязательно, но эксперименты методом научного тыка параллельно с изучением оригинального гайда - двигатель генераторского прогресса. Не ссыте и все получится.

Часть 4. Исправление дефектов генерации в inpaint


Итак, у нас есть картинка с проблемной рукой:

Сразу после генерации нажимаем на 🎨️ и попадаем во вкладку inpaint. Вы так же можете перейти туда вручную и перетащить интересующую вас пикчу, все будет работать точно так же.

Удаляем весь позитивный промпт и делаем как на картинке (пример для пальцев и рук, для других частей тела все аналогично).

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

С лорами на стиль:

Выделяем область инпеинта:

Выставляем остальные настройки:

Настройки могут немного отличаться в зависимости от вашего чекпоинта. Возможно, придется немного покрутить денойз, padding pixels, sampling steps. Экспериментируйте, не ссыте.

Запускаем генерацию и выбираем самый адекватный результат.

Допустим, у нас это:

Если все - поздравляю, если нужно продолжить - читайте дальше.

Вы можете вернуть готовый результат в область inpaint, нажав на 🎨️ или перетащив изображение в рабочую зону инпеинта и продолжить работу над другими деталями, соответствующе изменяя маску и промт.

Допустим, нам нужно продолжить работу и исправить еще и лицо. Возвращаем результат в рабочую зону inpaint и выделяем лицо:

Изменился объект инпеинта - изменился и промт:

Остальные настройки остаются прежними. Запускаем генерацию и выбираем самый годный результат. Допустим, это:

Можно оставить так, а можно вернуть ее в img2img и продолжить. Дальнейшая обработка поможет вернуть общий стиль изображения на отредактированные зоны.
Если решили продолжить - нажимаем 🖼️.

Возвращаем весь позитивный промт из txt2img (тот самый, с которым вы изначально генерировали картинку) и выставляем примерно следующие настройки.

Настойки могут отличаться в зависимости от сцены, фокуса, чепоинта, etc. Экспериментируйте с денойзом.

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

Инпеинт других частей тела\объектов\неба\Абу делается аналогично и я не вижу смысла его демонстрировать.

Часть 5: Wildcards и динамические параметры генерации

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

Что такое Wildcards?

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

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

Допустим, у вас есть файл genshingirls.txt со следующим содержимым:

Amber  
Barbara  
Beidou  
Candace  
Charlotte (и далее по списку)  

В промпте вы можете использовать wildcard следующим образом:

__genshingirls__ 

При генерации система будет подставлять вместо __genshingirls__ одно из значений из файла genshingirls.txt, создавая разнообразие в изображениях.

Как настроить Wildcards в reForge

  1. Установите Dynamic Prompts. (так же доступен в Extensions);
  2. Установите Wildcards. (так же доступен в Extensions);
  3. Перезапустите UI.

После перезапуска у вас появится новая вкладка Wildcards. Сами .txt карточки класть в папку \reForge\extensions\sd-dynamic-prompts\wildcards. Если ее нет - создайте. Готовые карточки можно найти на циви и других подобных ресурсах.

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

Часть 6: Controlnet для самых маленьких. Простые примеры.

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

  1. Загрузите нужные модели.
    Первая.
    Вторая.
  2. Положите их в \models\ControlNet\models
  3. Подключите юнит. Настройки - на скриншоте

Пробуйте другие Control mode и Resize Mode, пробуйте выключать Pixel perfect, регулируйте Control Weight и другие параметры. Мои настройки не догма, а просто рабочий пример.

4. Пришло время выбрать референс. Закиньте свой референс в шапку юнита. Вот так:

На разных чекпоинтах контролнет может работать по разному. А может вообще не работать. Где-то плохо работает отрисовка лиц, где-то рук. Эксперементируйте.
В этом примере я использую свой стандартный чек: manticoreVPredTraditional.

Промпт желательно должен примерно описывать позу персонажа на рефе. Это может упростить задачу.

Результат:

Попытки скопировать крупные планы этим способом могут окончиться фиаско - и это нормально. Более детализированные и аккуратные способы и их примеры будут описаны позже. Это всего лишь минимальная база.

Часть 7: Regional Prompting - несколько персонажей в кадре без смешивания

Установите Forge Couple:

Переходим в Extensions → Install from URL, вставляем ссылку https://github.com/Haoming02/sd-forge-couple и устанавливаем расширение. После окончания установки полностью перезапускаем UI (закрыть консоль и запустить заново).

Итак, мы видим новую вкладку. Выглядит она так:

Выставьте настройки как на скриншоте, если у вас они отличаются. Крайне важно обратить внимание на Couple Separator - там должно стоять \n (Это означает, что промпт зонируется переносом на новую строку. Новая строка - новый раздел).

Разделы редактируются легко - просто выделите нужную строку в таблице и увидите интерфейс добавления\удаления новых строк. Настройте разделы вручную на плане разделов, или используя координатную сетку таблицы.

Важные моменты.

  1. Начните с CFG Scale = 2 и поднимайте, самостоятельно ищите сбалансированный CFG Scale для вашего чекпоинта, от этого зависит корректность работы зон. Для некоторых чекпоинтов это 2, а некоторые хорошо цепляют и на 6-7. Настройки весов для каждой сцены подбирайте индивидуально.
  2. Разделите веса ваших лор на количество зон и укажите лоры в каждой зоне. Это работает. Пример на скриншоте с настройками ниже.
  3. Даже при правильных настройках персонажи не всегда корректно отрисовываются.
  4. Ознакомьтесь с оригинальным гайдом на английском - здесь я рассматриваю только основы, остальное там.
  5. В кадре должно хватать места для нужно количества персонажей. Если места не хватает - будет смешивать или корежить.

Хорошо, мы все настроили. Пора что-нибудь напромптить. В интерфейсе Couple это будет выглядеть так:

А остальные настройки так:

Результат будет примерно такой:

Ну или так с четыремя персонажами:

А еще можно достаточно точно управлять сценой, эффективно зонируя персонажа и объекты в кадре. Например, так:

Как видите, все относительно стабильно. Экспериментируйте.

Часть 8: Продвинутый уровень: локальное обучение собственных LoRA

Минимальные системные требования для локального обучения:
1. Видеокарта Nvidia с 12 и более гигабайтами видеопамяти;
2. 32 Гб оперативной памяти;

Установленные Python, Git, NVIDIA CUDA 12.8 +, Visual Studio. NVIDIA cuDNN - установка будет рассмотрена ниже. Не обязательно, но желательно.

8.1: Процесс установки

Делайте все по этапам, будьте внимательны и все получится.

1. Передите в папку, в которую будет вестись установка.

2. В адресной строке напишите CMD и нажмите Enter. Как на скриншоте:

3. Выполните команду:

git clone --recursive https://github.com/bmaltais/kohya_ss.git

Дождитесь завершения. По завершению выполните команду:

cd kohya_ss

Затем:

setup.bat

Дождитесь полного завершения процесса. Это может занять время. По завершению этапа вы увидите такое меню:

4. Выполните этап 2 ((Optional) Install CuDNN files (to use the latest supported CuDNN version)). Дождитесь полного завершения процесса. Это может занять время, кохья не показывает прогресс баров, просто ждите.

5. Выполните этап 1 (Install kohya_ss GUI). Процесс долгий. Терпите. А пока он длится, перейдем к подготовке датасета.

8.2: Подготовка датасета

Подготовка датасета для оффлайн-обучения несколько сложнее, чем для обучения онлайн на civitai.
1. Запустите Fogre и установите Tagger. (если у вас его еще нет)

После установки полностью перезапустите Ui (закрыть консоль и открыть заново)

2. Перейдите в интерфейс Tagger. Скопируйте адрес до папки с датасетом и настройте все как на скриншоте ниже.

Регулируйте Weight threshold и Min tag fraction in batch and interrogations - это прямо влияет на точность и количество тегов. Эксперементируте, смотрите на результат.

Итак, выставляем настройки как на скрине и жмем Interrogate. Результат будет примерно такой - рядом с каждой пикчей появится .txt с тегами.

Fogre нам больше не нужен - закрываем его полностью. (закрываем командную строку).

8.3: Настройка Kohya_ss

Это пример для персонажной лоры.

1. Возвращаемся в консоль kohya и нажимаем 6.

2. Смотрим на скриншоты и настраиваем.

Для обучения используйте только illustriousXL_v01.safetensors. Это база и стандарт. Однако, фактически можно юзать любой чекпоинт из вашего UI. Просто укажите адрес до чекпоинта, нажав на 📄. Продолжаем.

После настройки нажмите Prepare training data и Copy info to respective fields.

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

Этих настроек достаточно для запуска. Жмем ▼Start training и идем отдыхать. Не запускайте ваш Fogre\reForge\Comfy, етц, кохья отжирает почти всю видеопамять.
Через какое-то время (20-30 минут) вы получите готовые лоры в папке, которую назначили для вывода.

По настройкам Repeats, Train batch size - просто закиньте свой датасет в трейнер лор на Civitai и посмотрите что выдает он, просто скопируйте те настройки. Возможно, позже, я сделаю свой Ui, откуда выкину все лишнее и добавлю немножно автоматизации. Но, если хотите понять как оно считается - вот так.

с моими настройками это:

51 шаг на эпоху, 510 шагов за 10 эпох.

v0.1, будет расширяться и дополняться.

Решение проблемы с ошибкой CUDA видеокарт RTX50XX.

  1. Перейдите в \Forge\system\python;
  2. В адресной строке напишите CMD и нажмите ввод. Откроется командная строка.

Вставьте и выполните команду:

.\python.exe -s -m pip install --pre --upgrade --no-cache-dir torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cu128

Обновление докачает около 3.5Гб. После окончания установки все должно работать.
Для FramePack решение аналогичное.