Гайд по вкату
Cодержание:
- Часть 1: Установка UI
- Часть 2: Апскейл Hires. fix
- Часть 3: Adetailer
- Часть 4: Исправление дефектов генерации в Inpaint
- Часть 5: Wildcards и динамические параметры генерации
- Часть 6: Controlnet для самых маленьких. Простые примеры
- Часть 7: Regional Prompting - несколько персонажей в кадре без смешивания
- Часть 8: Продвинутый уровень: локальное обучение собственных LoRA
- Решение проблемы с ошибкой CUDA для видеокарт RTX50XX.
Системные требования:
Запуск на более простых конфигах возможен. Работа на видеокартах AMD возможна, но с костылями и намного медленнее. Я не рассматриваю эти варианты, информация есть в интернете.
Часть 1: Установка UI.
Перед продолжением убедитесь в наличии на пк нужного софта.
- Установите правильную версию Python. Обязательно добавьте python в PATH при установке.
- Установите Git.
Для работы с SD существует уже приличное количество интерфейсов и прокладок, но мы остановимся на самых популярных и удобных.
Оба UI имеют свои плюсы и свои минусы, однако, принято считать, что reForge куда дружелюбнее к новым пользователем.
Вы можете перейти по одной из ссылок и установить UI, следуя инструкциям на странице в ручном режиме. Изначально инструкции могут показаться сложными, однако, обычно все сводится к скачиванию архива, распаковке, запуске батника и ожиданию.
Если вы не хотите или вам сложно - альтернативный способ установки предлагает ПО lykos.ai.
- Скачайте и установите Stability Matrix.
- Зарегистрируйтесь на https://civitai.com/.
- В самом низу настроек аккаунта 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 выглядит следующим образом:
Существует множество разных моделей апскейлера, я рассмотрю только самые популярные.
- 4x-Ultrasharp
- Remacri
- Встроенный 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
Для большего понимания происходящего прочтите этот гайд.
Я не использую детейлер при генерации, а включаю его только при апскейле ✨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
- Установите Dynamic Prompts. (так же доступен в Extensions);
- Установите Wildcards. (так же доступен в Extensions);
- Перезапустите UI.
После перезапуска у вас появится новая вкладка Wildcards. Сами .txt карточки класть в папку \reForge\extensions\sd-dynamic-prompts\wildcards. Если ее нет - создайте. Готовые карточки можно найти на циви и других подобных ресурсах.
Я описал только самый базовый синтаксис карточек, достаточный для того, чтобы вы начали ими пользоваться. На самом деле там все гораздо сложнее и интереснее. Изучите оригинальный гайд на английском.
Часть 6: Controlnet для самых маленьких. Простые примеры.
Для контролнета существует множество моделей и способов их применения. Я покажу только базовый способ работы с контролнетом. Может быть, гайд будет расширен. Возможно, даже через сек.
- Загрузите нужные модели.
Первая.
Вторая. - Положите их в \models\ControlNet\models
- Подключите юнит. Настройки - на скриншоте
Пробуйте другие 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 (Это означает, что промпт зонируется переносом на новую строку. Новая строка - новый раздел).
Разделы редактируются легко - просто выделите нужную строку в таблице и увидите интерфейс добавления\удаления новых строк. Настройте разделы вручную на плане разделов, или используя координатную сетку таблицы.
- Начните с CFG Scale = 2 и поднимайте, самостоятельно ищите сбалансированный CFG Scale для вашего чекпоинта, от этого зависит корректность работы зон. Для некоторых чекпоинтов это 2, а некоторые хорошо цепляют и на 6-7. Настройки весов для каждой сцены подбирайте индивидуально.
- Разделите веса ваших лор на количество зон и укажите лоры в каждой зоне. Это работает. Пример на скриншоте с настройками ниже.
- Даже при правильных настройках персонажи не всегда корректно отрисовываются.
- Ознакомьтесь с оригинальным гайдом на английском - здесь я рассматриваю только основы, остальное там.
- В кадре должно хватать места для нужно количества персонажей. Если места не хватает - будет смешивать или корежить.
Хорошо, мы все настроили. Пора что-нибудь напромптить. В интерфейсе Couple это будет выглядеть так:
Результат будет примерно такой:
Ну или так с четыремя персонажами:
А еще можно достаточно точно управлять сценой, эффективно зонируя персонажа и объекты в кадре. Например, так:
Как видите, все относительно стабильно. Экспериментируйте.
Часть 8: Продвинутый уровень: локальное обучение собственных LoRA
Минимальные системные требования для локального обучения:
1. Видеокарта Nvidia с 12 и более гигабайтами видеопамяти;
2. 32 Гб оперативной памяти;
Установленные Python, Git, NVIDIA CUDA 12.8 +, Visual Studio. NVIDIA cuDNN - установка будет рассмотрена ниже. Не обязательно, но желательно.
8.1: Процесс установки
Делайте все по этапам, будьте внимательны и все получится.
1. Передите в папку, в которую будет вестись установка.
2. В адресной строке напишите CMD и нажмите Enter. Как на скриншоте:
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.
- Перейдите в \Forge\system\python;
- В адресной строке напишите 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 решение аналогичное.