Как пользоваться Stable Diffusion: Руководство для начинающих

Stable Diffusion webui стал фактически стандартным интерфейсом нейросети для опытных пользователей. Благодаря активному комьюнити на гитхаб мы можем использовать самые современные плюшки для Stable Diffusion одними из первых. Однако у меня ушли десятки часов просмотра различных роликов и были перечитаны тонны статей, чтобы разобраться что и куда. Прочитайте краткое руководство как пользоваться Stable Diffusion если вы новичок.

Вы можете запустить Stable Diffusion от Automatic1111 в Google Colab (статья в разработке) или Windows. Как показал отклик посетителей – в русскоязычном сегменте интернета практически отсутствует информация по данной нейросети.

Как пользоваться нейросетью Stable Diffusion – самое полное руководство для начинающих на русском!

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

Я постараюсь сделать сделать данную инструкцию в виде справочника. Я бы сказал что данный мануал я создаю больше для себя, чтобы систематизировать все свои базовые знания (основы) в одном большом руководстве. Добавьте эту страницу в закладки, чтобы вернуться в случае возникновения вопросов!

Вкладка “text to image”

После того, как вы установили нейросеть к себе на компьютер, при первом запуске вы окажетесь на вкладке txt2img. Именно здесь выполняется преобразование запроса в изображение – основная функция Stable Diffusion.

Интерфейс Stable Diffusion

Базовые параметры

На скриншоте ниже показаны настройки, которые вы будете изменять чаще всего в интерфейсе AUTOMATIC1111.

Базовые параметры AUTOMATIC1111
  1. Stable Diffusion Checkpoint: Выберите модель, которая будет отрисовывать вам картинки. По умолчанию при первом запуске погрузится базовая модель версии 1.5, однако я рекомендую использовать ее только для ознакомления, скорее всего в будущем вы захотите ее сменить.
  2. Prompt: Максимально подробно опишите, что вы хотите увидеть в итоговом изображении. Делать это необходимо на английском языке – рекомендую пользоваться переводчиком, если у вас проблемы с иностранными языками.

Мне нравится переводчик DeepL – просто пишу что хочу увидеть и полученный текст уже вставляю в нейросеть для создания картинки.

Мой запрос: Beautiful girl, close-up, sitting at her computer, hacker

Переводчик DeepL
  1. Width and height: Ширина и высота получаемой картинки. Нейросеть проходила обучение на квадратных картинках 512×512 пикселей, поэтому для новичков рекомендую не трогать эти параметры. Сторона изображения должна быть кратна 8 (делиться на 8 без остатка), поэтому если очень хочется – можно поменять на 768 для получения портретной или ландшафтной ориентации. Когда вы уже разберетесь с основами – можете крутить как захотите!
  2. Batch size: Количество сгенерированных картинок за раз. Далеко не всегда с первого раза получается именно то, что мы хотим, поэтому есть смысл создавать несколько картинок по одному запросу и просто выбирать лучший вариант.

Все готово, можете нажимать самую большую кнопку “Generate”. После короткого ожидания (все зависит от установленной видеокарты в компьютере) вы получите свои первые картинки.

Результат генерации изображения Stable Diffusion

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

Вы можете сохранить понравившийся вам вариант к себе на компьютер. Выберите картинку на миниатюре внизу и кликните по оригиналу правой кнопкой мыши и нажмите “Сохранить изображение как…”

Результаты ваших генераций хранятся в папке …\stable-diffusion-webui\outputs – если забыли сохранить, всегда можно найти по этому пути.

Все что мы сейчас рассмотрели – это основа основ в нейросети Stable Diffusion (да и для любой нейронки, которая генерирует изображения) которая просто необходима нам для работы. В продолжении данной инструкции мы более подробно пройдемся по всем основным вкладкам и кнопкам.

Настройки генерации изображения

Вернемся к вкладке “txt2img” – мы уже рассмотрели выпадающий список с моделями, знаем что такое Prompt, размеры картинок и их количество. Настало время ознакомиться со всем содержанием.

Параметры и настройка для создания иллюстрации

Negative prompt: здесь записываем то, чего мы не хотим видеть на нашем изображении.

В моем случае при генерации картинок в Stable Diffusion для этой заметки многим девушкам дорисовывались наушники – совершенно непонятно зачем, поэтому проще всего вписать их в негативный промт, чтобы в следующий раз их не было (конечно они и в этом случае появляются, но в большинстве своем станет значительно меньше).

Sampling method: Алгоритм подавления шума. Тема достаточно интересная, однако новичкам оно необязательно. От себя добавлю – использовать вы будете “Euler a” или “DPM++ 2M Karras”, они самые оптимальные в плане качества, стабильности и скорости работы. Остальные или работают медленно или на выходи получаем такое, что лучше вообще не видеть.

Sampling steps: количество проходов для процесса шумоподавления. Чем больше это значение, тем в теории лучше и картинка получается более детализированная. Напрямую зависит на время генерации изображения, однако в большинстве случаев оптимально выставить значение по умолчанию “25”, и почти всегда нет смысла ставить выше 35.

CFG scale: данная шкала определяет насколько нейросеть следует вашему запросу.

1 – Практически полностью игнорируется ваше описание (вероятность получить желаемое практически невозможно).
3 – Нейросеть будет стараться следовать подсказке, но вы оставляете большой простор для фантазии.
7 – Практически идеальный баланс между текстовым запросом и свободой творчества.
15 – Стараться максимально придерживаться подсказке.
30 – Строгое следование промту – почти всегда на выходе непонятное нечто

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

Влияние CFG на создаваемую картинку

Stable Diffusion почти наверняка не нарисует картинку в соответствии с запросом если выставить слишком низкий CFG. Если выставить этот параметр высоким – изображение будет перенасыщенным. В идеале эти значения от 3 до 9 в зависимости от вашего запроса и используемой модели.

Seed – Зерно

Seed: значение, которое используется для начальной генерации изображения. Боюсь очень сложно объяснить что это такое людям, которые с компьютером на ВЫ.

Очень грубое сравнение: наверняка все видели ролики, в которых сперва накидают от балды кружочков да краски накапают, а уже потом пытаются встроить это в будущий рисунок. Тут примерно аналогично – нейросеть рисует отталкиваясь от изначального значения и пытается встроить ваш запрос при генерации.

Каждое изображение имеет свой seed. По умолчанию в AUTOMATIC1111 оно установлено на -1. Это значит, что при создании картинки это число будет меняться случайным образом.

Где это может понадобиться? – Рассмотрим конечно же на примере. Представим что я сгенерировал изображение по запросу:

photo of woman, flirting camera, closeup, cyberpunk city neon background, lightroom, natural, perfect, high quality

Девушка

Мне понравилось данное изображение, но я хочу чтобы девушка была в очках. Нам всего лишь нужно взять значение seed из нашей картинки и сгенерировать новую, но с уже уточненными деталями. Итак – где посмотреть наше случайное число? Данная информация указана под готовой картинкой.

seed изображения

Копируете число в поле seed и в запросе указываете детали, теперь у нас появилось уточнение with glasses (в очках).

photo of woman with glasses, flirting camera, closeup, cyberpunk city neon background, lightroom, natural, perfect, high quality

Девушка, но в очках

В данном случае мы получили картинку максимально похожую на предыдущую, но уже с очками – все как и задумывалось.

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

Restore faces

Restore faces – этакая нейросеть внутри нейросети обученная только на лицах людей. Ниже наглядный пример использования данной опции.

Оригинальная картинка
Оригинал
Восстановленное лицо
Использование Restore faces

Прежде чем ставить галочку восстановления лица, необходимо выбрать модель которая будет обрабатывать конечное изображение. Перейдите на вкладку “Settings” и активируйте раздел “Face restoration” – выберите модель для восстановления лица.

Рекомендуется использовать CodeFormer. Проверьте настройки “веса” данного параметра – при установке значения 0 достигается максимальный эффект, при 1 – все равно что галочку не поставите. Не забудьте сохранить настройки кликнув по “Apply settings”

Настройки для восстановления лиц

Вернитесь на нашу рабочую вкладку txt2img и проверьте Restore faces. После создания картинки лицо будет исправлено на каждом изображении.

Я не использую данный функционал. Проблема в том, что лицо накладывается уже на результат, т.е. все ваши работы будут с однотипными мордами, которые были изначально заложены в CodeFormer. Как с этим бороться – тема для отдельной заметки.

Tiling

Установив чекбокс “Tiling” вы создадите периодическое изображение, которое можно бесшовно развернуть во все стороны. Ниже представлен запрос с активной опцией “плиткования”.

electronic microchip

Тайлинг

Я думаю все видели обои с рисунком – tiling изображение как и обои, его можно стыковать без швов в любые стороны. Внизу совмещены 4 одинаковые картинки, которые в итоге образуют единую иллюстрацию.

Так работают бесшовные изображения

Вы можете создавать невероятные бесшовные изображения с любым содержанием в Stable Diffusion – нужно только составить текстовую подсказку.

Hires. fix.

Наверняка многие уже задались вопросом – ведь 512 пикселей для совсем ничего в современном мире и применить его особо негде. Для этого существует опция “Hires. fix”.

Почему просто нельзя выбрать при генерации тот же Full HD? Во первых резко возрастает требование к памяти видеокарты (что можно решить покупкой более дорогой). Нейросетка Stable Diffusion обучалась на картинках 512×512 пикселей, поэтому при таких разрешениях велика вероятность получить 2 головы или иные артефакты изображения.

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

Кнопки под “Generate”

Под самой важной кнопкой расположились иконки, на которые часто не обращают внимание… а очень зря – предлагаю рассмотреть их назначение.

Кнопки под Generate
  1. Восстанавливает параметры последней генерации: максимально понятно из описания – подставит в свойства генерации сид прошлой картинки и восстановит все настройки для ее создания.
  2. Корзина: очистка полей для запроса и negative prompt.
  3. Иконка модели: показать дополнительные сети (таких как текстовая инверсия, Lora и прочих – обширная тема для отдельной статьи).
  4. Загрузить стиль: при выборе стиля из списка вы можете вставить его PROMPT в строку запроса.
  5. Сохранить стиль: Если вы придумали интересную концепцию для изображения и хотите ее запомнить, то просто нажмите на эту кнопку, далее придумайте имя и сохраните.

Действия с изображениями

Обычно достаточно перетащить понравившуюся миниатюру на рабочий стол или открыть папку с итоговыми данными… но у нас внизу есть варианты для обработки полученных картинок.

Список действий для сгенерированных картинок

Открыть папку: открывается папка вывода изображений (работает не везде, например можете не пробовать в Google Colab).

Save: Сохранить картинку. После клика по ней появится ссылка на изображение (или на все, если выберете сетку с иллюстрациями).

Zip: Генерирует архив с картинками и отображает ссылку на него.

Send to img2img: переносит выбранное изображение на вкладку img2img.

Send to inpaint: отправляет картинку на вкладку inpainting в разделе img2img.

Send to extras: Переносит выбранный файл на Extras.

Вкладка “img2img”

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

Image-to-image

Я люблю практику – рассмотрим что же мы можем сделать с изображением на вкладке img2img. Генерирую на вкладке txt2img фото черного кота и кликаю по “Send to img2img”.

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

КОТЭ черный, 1шт

Шаг 1: Выставите размеры картинки так, чтобы новое изображение имело такие же пропорции (в моем случае это наипростейший квадрат).

Шаг 2: Выберите “Sampling method” и “Sampling steps”. Как я уже писал выше – отлично подойдет DPM++ 2M Karass и значение 25 для шагов Stable DIffusion.

Шаг 3: Напишите промт для новой картинки.

Мне нравятся коты и драконы, поэтому замиксую их (как осел из шрека), запрос будет таким:

A photorealistic illustration of a dragon

Шаг 4: Кликайте по “Generate” для создания нового изображения. Регулировкой параметра “Denoising strength” вы указываете насколько текстовый запрос преобладает над изображением. Ниже приведен пример с различной силой “Denoising strength” для понимания как это работает и какие результаты можно ожидать от нейросети.

Кот
0.4
Котодракон
0.6
Дракон
0.8

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

Sketch

Самая лучшая картинка это та – которую нарисовали сами. Теперь это не проблема если вы не умеете рисовать, достаточно сделать набросок и написать чего вы там накалякали – нейросеть додумает все за вас.

Шаг 1. Перейдите на вкладку Sketch на странице img2img.

Шаг 2. Загрузите подготовленное изображение (я подготовил изображение с белым и черным фоном).

Шаг 3. Мышкой нарисуйте примитивное изображения, которое хотите получить (можете использовать различные цвета).

Шаг 4. Напишите текстовый запрос.

Мой пример с автомобилем в лесу:

a sporty white car is driving along a forest road, a sunny day

Шаг 5. Генерация

Мои художества
Крутой рисунок

Тут самое главное выставить правильно “Denoising strength” – в моем случае картинка начала меняться только к 0,6 а изображение получилось в итоге на 0,7. Не существует идеального рецепта, просто экспериментируйте и смотрите на результат. Самое главное – вам не нужны навыки рисования… думаю это понятно из примера, который выше. Так нарисовать может каждый!

Inpainting

Инпейнт – самый важный инструмент для генерации изображений на вкладке img2img. Очень часто встречаются ситуации, когда вроде бы все устраивает… но присутствует момент, который запорол всю картинку. Вот взять пример ниже – меня полностью устраивает результат, но с лицом проблемы. Вкладка Inpaint позволяет пересоздать только отмеченную часть изображения!

Представим что вы создали изображение по текстовой подсказке – выбираем его и жмем “Send to inpaint”. Меня не устраивает лицо, с ним определенно проблемы. С помощью кисти создаем маску над областью, которую надо перегенерировать.

Параметры для примера:

Mask mode: Inpaint masked
Masked content: original
Inpaint area: Only masked
Denoising strength: от 0,6
Показать скриншот настроек
Настройки для Inpaint
Оригинал изображения
Замазываем лицо
Исправленная иллюстрация

Обычно я делаю несколько созданий изображений и уже потом выбираю понравившееся. Тут важно найти ту границу с Denoising strength, в момент когда изменений почти нет и до на месте “маски” рисуется новое изображение. Иногда нейросеть Stable Diffusion не понимает контекста, поэтому необходимо раздвинуть рамки, куда она может подглядывать на картинке – за это отвечает параметр “Only masked padding”

Inpaint sketch

Inpaint sketch несмотря на похожесть с просто inpaint служит не просто для перерисовки изображения – здесь мы можем нарисовать очень условные вещи и нейросетка поймет что мы от нее хотим. В отличии от простого inpaint – здесь у нас есть возможность выбора цвета кисти. Само собой меняется только закрашенная область!

Дорисовываем часы
Девушка с часами на руке

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

Как получить информацию из изображения

Загадочная кнопка Interrogate CLIP в интерфейсе AUTOMATIC1111 угадывает текстовый запрос изображения, которое вы загрузите на вкладку img2img. Это особенно полезно в момент, когда вы только знакомитесь с обозреваемой нейросетью.

Загружаем любое изображение (хоть из интернета), жмем “Interrogate CLIP” и изучаем результат в поле текстового запроса. При первом запуске будет подгружаться тяжелая модель из интернета на ваш ПК, поэтому не думайте что все зависло и ничего не работает… все работает – надо только подождать.

Смотрим что на фото

Interrogate DeepBooru – тоже самое, только со спецификой аниме изображений.

Заключение

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

Василий Григорьев

Привет, я автор этого сайта. Мое знакомство с компьютером началось в далекие 2000 когда Windows 98 была чем-то невероятным. А еще казалось что нажатие кнопки "Пуск" действительно что-то запустит... Готовы окунуться в мир технологий со мной?

Оцените автора
Блог Айтишнега
Добавить комментарий