Всем привет! В интернете я все еще не нашел гайда, который бы нормально объяснял всего по-немногу, чтобы со свистом залететь в генерацию картинок, так что попробую уместить в этот пост свой опыт. Погнали!
Для тех, кто знает про прошлый гайд. Это его ремейк, и многое позаимствовано или полностью скопировано оттуда. Но ошибки исправлены, а сама статья дополнена.
Рассматривать будем интерфейсы Stable Diffusion Forge и ComfyUI. Первый на 30%-40% быстрее того же от Automatic1111, а второй по сравнению с Forge - линуха. Вход может показаться трудноватым, но там можно вытворять такие вещи, какие и не снились ни Автоматик, ни Force
Содержание
- Установка SD Forge
- Модели
- Интерфейс SD Forge
- Пишем первый запрос
- Улучшаем конечный результат
- Стили
- Расширения
- LoRa
- Правим сгенерированную картинку
- Повышаем разрешение
- Немного о ComfyUI
- Совсем чуть-чуть про Stable Video Diffusion
Установка SD Forge
Собственно, все просто! Заходите по этой ссылке, качаете, разархивируете на диск, где есть от 50 Гб, и запускаете update.bat.
И кстати, системные требования простые: любая видеокарта NVIDIA от тысячной серии. Чем мощнее - чем быстрее генерация. На AMD не пробовал, но по идее тоже работает.
Есть поверие, что можно еще увеличить производительность SD. Заходите в папку webui, открывайте в блокноте файлик webui-user.bat, и к строке set COMMANDLINE_ARGS= нужно приписать вот это:
--no-half-vae --opt-channelslast --opt-sdp-no-mem-attention --api --update-check
На моей системе я не заметил особой разницы, но у вас возможно прокнет. Проверяйте.
Модели
Их тысячи. Что-то для аниме, что-то для реализма, что-то для п#рнухи, и так далее. Вот модели, которыми пользуюсь я:
RevAnimated - умеет во все рисованное. И классический рисунок, и аниме, и все такое. Как раз пару дней назад вышло обновление.
ChilloutMix - что-то среднее между рисовкой и реализмом. Лица делает преимущественно азиатские.
GhostMix - делает отличные рисованные картинки, на уровне с RevAnimated, но более склонен к аниме.
Flat-2D Animerge - стиль манга-рисовки
Realistic Vision - Реализм. Европейские лица.
epiCRealism - тоже реализм, тоже европейские лица.
Модели нужно кидать в Stable Diffusion Forge\webui\models\Stable-diffusion
Все остальное ищите на этом же сайте, ну или на Huffing Face
Интерфейс SD Forge
Как модели скачаны, а Forge обновлен, запускайте интерфейс с ярлыка run.bat
Вы увидите прекрасную картину. Давайте по порядку:
- Sampling method — отвечает за первоначальную кашу, из которой будет диффузироваться изображение. DPM++ 2M Karras делает более контрастные и резкие изображения, Euler a делает более "обтекаемые" и как будто немного "маслом". С остальными — экспериментируй.
- Sampling Steps — количество шагов генерации. Чем выше значение — тем больше итерацией будет произведено. Больше - лучше, но не переусердствуй. Среднее количество шагов — от 23 до 40.
- Width и Height — ширина и высота. Не рекомендуется больше 1000, иначе вместо одного персонажа будет два, или вообще в одной картинке будет две. Модели (не XL) обучаются на 512x512, от этого и исходи.
- Batch count и Batch size — количество изображений за одно "нажатие" Generate. В одном Batch count содержится один Batch size. Batch size — до 8 картинок, в Batch count — до 100 Batch size. Вот и умножай.
- CFG Scale — степень соответствия промту. Чем больше значение, тем больше будет обращать внимание модель на каждое слово, и так сказать "запекать" его. Так что экспериментируй. Стандарт - 7, но если сделать больше или меньше (1, например), можно получать интересные результаты.
- Seed — рандомное число. Если хотите много похожих изображений, жмите на зеленую кнопочку и Seed "застынет".
Собственно, все относительно просто. Теперь пиши, что хочешь и оно генерирует. Пара фактов:
- Расположение промтов не сильно влияет, как по мне, но обычно основу пишут сначала, а всякое освещение, позы и стили - в конце
- Если какому-то промту нужно добавить силы, или наоборот, то пишите (promt:цифра). Больше 1 — промт сильнеет, меньше 1, промт слабеет. Пример — (side view:1.5).
- Можно комбинировать промты. Сначала пример: [blonde | (short pink hair:1.2)]. Оно работает вот так: на первом шагу семплирования картинка будет генерироваться с промтом blonde, на втором шагу — short pink hair, и так по очереди. Особенно хорошо это работает с волосами, делая их как-то покрасивше. Результат этого промта:
Если сделать картинку с только short pink hair:
- Используй негативные промты! Они нужны, чтобы нейросеть вещи, которые ты опишешь в Negative Promt — не делала, очевидно. Вот шаблон:
Также есть такая прикольная штука, как Textual Inversion — это файлики, в которых собраны какие-либо промты. Их нужно кидать в \embeddings. Вот такой файлик для плохих рук. Ищи их во вкладке Textual Inversion и кидай в Negative Promts.
Усредненная структура промта:
- Тема (фото, рисунок, портрет)
- Объект (кто или что во главе картинки)
- Стиль (аниме, реализм, мультфильм)
- Стиль2 (автор, режиссер, модель фотоаппарата (canon eos, polaroid))
- Разрешение (hdr, high resolution, 4k, 8k)
- Цветовая гамма (главенствующий цвет композиции)
- Освещение (moonshine, sunny, soft lightning)
- Угол камеры и поза
Ловите ультимативный гайд по углам камеры.
Кстати, после генерации все картинки попадают в \outputs\txt2img-images
Стили
Скачай файлик со стилями и кидай его в корень папки с SD. Они очень помогут в стилизации картинки. Находится под вкладкой Generate:
Немного про Dynamic Promts
Устал придумывать промт? Хочется красивые картиночки по какой-нибудь теме? Не беда, ведь можно зарандомить заранее подготовленные промты!
Установка простая. Нужно зайди во вкладку Extensions, зайди в Avaliable, и нажать Load From. Далее находите там Dynamic Promts и справа нажимаете install. Далее нужно зайти в Installed и нажать Apply and restart UI
На Civitai это фильтр Wildcards. Вот самая популярная подборка оттуда. Качай архив и все текстовые файлы кидай в webui\extensions\sd-dynamic-prompts\wildcards
В SD заходи во вкладку Wildcards Manager, и там тебя будет ждать куча "тем", которые ты можешь добавить к своему промту.
В свой промт нужно вписывать название, как в Wildcards file, например: __background_horror_place__. Это работаеть так, что при каждой генерации из списка берется рандомная строчка и подставляется в промт.
LoRa
Лора — это маленькие обученные модели, которые накладываются на основную модель, тем самым внося свои изменения в результат. Покажу на примере моей любимой Мегумин!
Заходя на страницу с LoRa на Civitai, стоит обратить внимание на пару вещей
Использование лоры состоит из двух вещей - веса и триггер-слов. Вес автор чаще всего указывает внизу в описании )в нашем случае 0.6-0.8, а триггер-слова справа (отмечены фиолетовым). Это две обязательные вещи. Также автор может указать вспомогательные промты в описании. Тогда вообще цены ему нет, и надо обязательно поставить лайк этой лоре!
Ну погнали делать, чо
Скачивайте файл и кидайте в webui\models\Lora
Собственно, нажимаете на лору и она появляется в положительном промте. Задаем ей рекомендуемый вес, дописываем промт и получаем нашу вайфу!
Inpaint
Ты сделал вайфу, все круто, но какая-то деталь не дает тебе покоя? Вкладка IMG-TO-IMG тебе поможет! В этой вкладке есть подвкладки, и нас интересует Inpaint.
На этой картинке с Зельдой мне не нравятся какие-то крюки на левых домах.
Нужно выделить часть изображения, которую нужно менять и нажать Generate. Желательно выделять с небольшим запасом.
Для усиления эффекта лучше написать новый промт. Например убрать все ненужное, и дописать нужное. Украду этот блок с прошлого поста, так что будем делать это с Зельдой
В настройках в принципе можно ничего не трогать, кроме Denoising strength. В этом стоит поэкспериментировать, и посидев, запомнишь, какие значения для чего нужны. Очень грубо говоря: выше 0.75 ставить не стоит, менее 0.25 - практически ничего не меняется. Для этой картинки я оставил дефолтный 0.75.
Если нужно поменять еще что-то, снова, но уже под этой получившейся картинкой - нажимаем на Палитру и уже меняем новую картинку (нажми на ластик для удаления текущего выделения, и не забудь поменять промт под новые условия!)
Апскейл
Как только картинка получилась, стоит и подтянуть разрешение. Нажимай под картинкой на угольник и ты попадешь во вкладку Extras. Хорошие стандартные апскейлеры - R-ESRGAN 4x+ (для реалистичных изображений) и R-ESRGAN 4x+ Anime6B (для аниме). Но лучший для меня - Swin2SR_RealworldSR. Его нужно установить. Качай вот отсюда и кидай в \models\SwinIR. Он не мылит изображение, как R-ESRGAN. Все картинки после апскейла попадают в \outputs\extras-images
Вот апскейленое в 2 раза нашей Мегумин
В чем проблема апскейла - он мылит картинку. Пока что я не нашел апскейлера, который этого не делает, но тот, что я предложил - мылит по минимуму.
Немного о ComfyUI
Этот интерфейс использует систему нод - отдельных блоков, взаимодействующих между собой.
Качать отсюда. Модели класть в ComfyUI\models\checkpoints. Помните про апскейлер, который мы качали? Вот его кидайте в ComfyUI\models\upscale_models
Также стоит скачать ComfyUI Manager. Качаете архивом репозиторий и закидываете в ComfyUI/custom_nodes. Он правда нужен. Оттуда вы будете устанавливать кастомные ноды.
Тут все тоже самое, что и в SD Forge, просто с другим интерфейсом. Загружается модель, пишутся промты, оно прогоняется через семплер, декодируется, и попадает в папку ComfyUI\output. Вот мой "воркфлоу". В интернете вы можете найти и другие, более сложные и комплексные. Как скачаете, зайдите в Manager и нажмите Install Missing Custom Nodes, прокликайте все галочки и жмите install.
Чтобы найти какую-то ноду, кликните два раза по любому месту на свободном поле, чтобы скопировать элемент, пекретащите нужный с зажатым Alt, а чтобы гулять по полю, не задевая другие элементы, перемещайтесь с зажатым пробелом.
Много я о нем расписывать не буду, потому что сам еще не разбираюсь в нем достаточно хорошо. Но я точно буду пересаживаться на него. Почему?
Потому что он быстрее, чем SD Forge, и дает НАМНОГО больше контроля над генерацией, что очень приятно.
Совсем чуть-чуть про Stable Video Diffusion
Правда, совсем чуть-чуть. В интерфейсе SD Forge для этого есть отдельная вкладка, а для ComfyUI вот вам воркфлоу. Настройки особо не трогайте. Менять есть смысл пока что MOTION_BUCKET_ID, он отвечает за "интенсивность движений". Скоро на DTF опубликую развернутый пост про эту тему
Заключение
Пост скорее всего будет всячески дополняться и изменяться по мере того, как я буду вспоминать, что забыл сюда добавить. Спасибо за внимание!
Это мы читаем! И добавляем в закладки.
Такое надо сохранить
Спасибо за статью =)
Очень полезно! Использую иногда в работе нейро-помощников, когда нужно поработать с идеей/композицией/светом. Часто выручают, показывая разные варианты решения =)
----- Forge на 30%-40% быстрее того же от Automatic1111
А за счёт чего Forge быстрее? Там питоновские скрипты разные?
Я особо не разбирался. Скорее всего оптимизация и какие-нибудь другие библиотеки. Но точно ничего не вырезано
Там зависит от железа, но в основном просто оптимизация и актуальные библиотеки, да.
Добавлю недавнее тупое, но очень полезное открытие (особенно если много лор скачено). Если в папку с лорой кинуть пикчу с таким же именем файла, то SD будет отображать ее как обложку.
Ты лучший <3
Спасибо огромное за подробный пост!
В Установка в параметрах батника лучше убрать --api если вам не используется
В comfyui в корневой папке есть файл, где можно прописать пути к моделям, чтобы не держать копии. Например можно указать папку с модели и Автоматика или Форджа.
Когда-нибудь я уделю достаточно времени, что бы в этом разобраться. А пока добавлю в закладки, спасибо.
И да, какие системные требования у всего этого? Что использует, видеокарту или процессор? Просто ты в статье указал только 50 Гб свободного места.
Точно, сорян
NVIDIA от 1000 серии
Уфф мля, на работе радеон стоит, сранные карты от амд не используются популярностью и нейросетевиков(
Можно и на амд, но надо гайды искать, не все так просто как с nvidia
Хорошая статья, спасибо)
О, это нам явно надо. Большое спасибо за пост!
я использую сборку stable от хруста, это имеет какое это значение или надо обязательно ставить Stable Diffusion Forge ?
Нет, значения не имеет
Но по поводу производительности сборки Хруста ничего не могу сказать
Хорошо спасибо!)
Вопрос в форже есть вкладка с контрл нет, и там вижу ip adapter слева в предпроцессорах указаны, а вот справа модели пусто, мне искать конкретные модели ip adapter? Вопрос в том подойдет ли модель ip adapter отсюда? https://huggingface.co/ostris/ip-composition-adapter/tree/main
https://huggingface.co/h94/IP-Adapter/tree/main/models
Бери отсюда
С припиской plus_face
немного не понял про wildcards, все делал по гайду, банально нет такой вкладки у меня после запуска)
Странно
По идее поставляется вместе с Dynamic Promts
Попробуй переустановить (удалить расширение из папки extensions, и удалить папку venv, потом установить заново расширение)
Либо погугли, мб Wildcards Manager есть отдельно
Спасибо! Переустановка действительно помогла)