В прошлый раз мы установили Stable diffusion на компьютер, я рассказал о моделях, и мы даже сгенерировали первого котика по простейшему промту, сегодня поговорим о базовых настройках генерации и, возможно, коснёмся построения промта.
В прошлый раз мы остановились на полях Prompt и Negative prompt, напомню, что в первом мы пишем то, что должно быть на изображении, а во втором – то, чего не должно быть. Базово отрицательный промт уже заполнен, но если по вашему запросу нейросеть упорно выдаёт на фотографии то, чего там быть не должно, — вы можете просто дописать это нечто в соответствующее поле. Допустим, вам нужно поле цветов, а нейросеть из раза в раз дорисовывает бабочек, которые вам вот совсем не нужны на итоговом фото, тогда вы просто добавляете «butterfly» во второе поле, и по идее нейронка больше не будет их рисовать. Почему «по идее»? Потому, что нейросеть не имеет сознания, она выделяет из шума те графические части, которые сопоставляются с конкретным определением, вводимым в качестве промта. Иными словами – если в данных, на которых она обучена, были только сидящие или идущие коты – прыгающего ей сделать будет довольно непросто, хотя она и попытается.

Но перейдём к настройкам: сразу под Negative prompt мы видим пять вкладок. На данном этапе нас интересует только первая – Generation (генерация), все остальные предназначены для дообучения моделей (вкладки Textual Inversion и Hypernetworks) или выбора оных (вкладки Lora и Checkpoints), потому мы сфокусируемся на вкладке Generation, о Lora и обучении поговорим в другой раз, когда уже разберёмся с базовой генерацией и работой с готовыми изображениями (верхние вкладки — img2img и Extras).
Первый выпадающий список в Generation – Sampling method или метод смешивания – это тип обработки входного шума — то, как нейросеть будет его интерпретировать. Поскольку мы не научное издание – опустим сложные формулы, как из шума получается картинка, как алгоритм с ним работает, а скажем следующее: если вы собираетесь генерировать изображения людей – выбирайте Euler a или Euler, если вы художник и задача – арт, следует присмотреться к DPM++ 2M или DPM++ 2M Karras. Schedule type – тип планировщика, который определяет, насколько будет снижаться уровень шума на каждом шаге генерации. Я обычно оставляю Automatic. Sampling steps – это количество шагов генерации. Представьте себе, что художник рисует с натуры кошку, сидящую на табуретке перед ним. Количество шагов – это то, сколько раз художник посмотрит на позирующую кошку, чтобы уточнить детали. Если не образно – это то, сколько раз нейросеть прогонит ваш промт через свои алгоритмы до того, как шум преобразится в картинку. Слишком низкое значение может привести к появлению артефактов, а слишком большое — просто бессмысленно будет нагружать видеокарту. В большинстве случаев достаточно 20 шагов, но я обычно ставлю 30-32, что лично для моих промтов даёт наилучшие результаты.

Refiner увеличивает детализацию картинки, что может как улучшить, так и ухудшить результат. Лично я пользуюсь редко, потому что высокую детализацию можно прописать и в промпте. Да и значения нужно подбирать под каждую конкретную задачу, что усложняет процесс и требует больше времени, но если генерируемы вами фотографии смазываются – стоит попробовать подкрутить ползунок. Суть в том, что указанная в выпадающем списке модель используется для дорисовывания деталей.
Width и Height – ширина и высота картинки. Поскольку изначально нейросеть обучалась на изображениях 512х512, потому именно в этом разрешении она выдаёт наилучшие результаты. Модель Deliberate 6 обучена работать и в 1024х1024, однако в таком формате и у неё возникают проблемы.

CFG Scale – параметр, который определяет, насколько сильно нейросеть будет следовать указанному нами промту, чем выше значение – тем больше нейросеть постарается воплотить в картинке каждое слово из промта. Проще говоря – это своеобразный аналог творческой свободы, которую мы даём нейросетке. Однако важно помнить, что при слишком низких или высоких значениях могут появляться искажения и артефакты на изображении.
Seed – это число, условно обозначающее номер генерации. По умолчанию оно установлено на — 1, то есть – случайный номер для каждой генерации. Если же получившаяся работа вам понравилась и вы хотите её доработать – добавить что-то с помощью inpaint (об этом в другой раз) или даже прогнать её ещё через 20 шагов – просто нажмите зелёный треугольник, и Stable diffusion будет использовать её в качестве отправной точки для следующей генерации. Если же вы вновь будете генерировать случайные изображения – нажмите на иконку игрального кубика.

Имея эти нехитрые знания и подобрав подходящие настройки под свою модель и задачу, вы уже можете создавать первые шедевры.
Фото: автор
Специально для Агентства Особых Новостей (on24.media)