Генерация и апскейл

Обновлено: 26.05.2025


Начнём с простого

Я буду генерировать на примере оптимизированной модели Flux с «вооооот-таким-вот-длинным-названием», которую вы, возможно, скачивали и устанавливали на предыдущем этапе:

Некоторые её ещё называют «Flux 8 шагов», сами авторы, вроде бы, предпочитают что-то вроде «Flux 1 DEV NF4»

1. Запустите Stable Diffusion.

2. Переключите интерфейс в режим «flux» — это адаптирует его под специфику соответствующего семейства моделей, и выберите нужный чекпоинт из списка установленных на ваш компьютер.

Обратите внимание
Поле для ввода негативного промпта стало неактивным. Дело в том, что в моделях семейства FLUX негативный промпт не поддерживается и не рекомендуется


3. Введите для начала какой-нибудь простой промпт на своё усмотрение. Я решил генерировать с промптом «toy is on the table» (игрушка лежит/стоит/находится на столе).

4. Нажмите на кнопку «Generate», и начнётся магия.

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

Я сделал 4 генерации с одним и тем же промптом и настройками, оставленными по умолчанию.

На моей системе с RTX 4070 получились следующие результаты:

  • 1 мин. 08 сек. — предварительная подготовка системы;
  • 37 сек. — генерация первого изображения;
  • 46 — второго;
  • по 39 — третьего и четвёртого.

Сравните время со своими показателями

И вот что получилось:


Миленько )
И очень даже фотореалистично — зачёт.

Надеюсь у вас вышло не хуже.


Поздравляю с первыми картинками!


По умолчанию SD автоматически сохраняет сгенерированные картинки в формате *.png в папку по адресу «C:\Stable\webui\outputs\txt2img-images\».

Как изменить формат сохранения на JPG читайте тут

Добраться до папки можно либо своим ходом через «Проводник», либо кликнув на иконку с изображением папки, которая находится под картинкой:

Как изменить адрес папки, в которую будут автоматически сохраняться картинки, читайте тут


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


Разрешение

Теперь давайте сгенерируем изображение какого-нибудь более привычного (горизонтального) формата. Например, в половину от разрешения Full HD, а именно 960×540. Это размер в пикселях.

Для этого либо воспользуйтесь ползунками «Width» (ширина) и «Height» (высота), либо укажите значения вручную в числовых полях над ползунками:

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

Высокими разрешениями мы займёмся позже


Странно, но на выходе у меня картинки почему-то получаются с разрешением 960×536.
Ну да ладно — мелочи.

Зато гляньте какой милаха:


Давайте попробуем далее поработать именно с ним.

Первое, что нужно сделать, чтобы работать именно с этим изображением, это сохранить его Seed и вставить в соответствующее поле.

Seed

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

Значение «-1» в поле «Seed» означает случайное значение шума на старте каждой новой генерации

Если использовать одно и то же значение Seed, модель, промпт и настройки, то Stable Diffusion будет постоянно создавать одно и то же изображение (или очень похожее).


Скопировать это значение можно тремя способами:

  • Кликнуть на иконку с изображением треугольника из зелёных стрелочек правее поля Seed. Это автоматически скопирует и вставит значение от последней сгенерированной картинки.
  • Значение Seed отображается в строке с информацией под сгенерированной картинкой. Можно сделать обычный копипаст руками оттуда.
  • Также это значение сохраняется в названии файла автоматически сохранённой картинки. Это удобно — можно использовать Seed ранее сгенерированных изображений.

Иконка с кубиком сбрасывает значение на генерацию случайного шума — «-1»


Увы, увеличить разрешение именно этой картинки (сделать апскейл) путём простого увеличения значений в полях «Width» и «Height» не получится.

Даже при том же значении Seed любое изменение настроек, в том числе и разрешения, приведёт к генерации другой картинки.

Апскейл осуществляют другими методами, до которых мы доберёмся несколько позже

Давайте попробуем добавить надпись на этого милаху.
Благо, что модели семейства FLUX отлично научились генерировать читаемый текст. В то время как модели предыдущих поколений испытывают с текстом серьёзные трудности.

Научиться-то научились, но не на русском — увы

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

Теперь давайте дополним промпт фразой «title "stable" on it chest» (надпись "stable" на его груди), у вас, возможно, изначально другой промпт, в этом случае упражняйтесь на своё усмотрение.

Seed моей картинки «2922578861»

Итак, генерируем с промптом «toy is on the table, title "stable" on it chest»:


Хм...

Токены

Отличный пример работы токенов. Тут надо сказать, что слово «stable» с английского переводится не только как «стабильный, крепкий, надежный», но также имеет такие значения, как «конюшня, стойло». Получилось смешно, по-моему. )

Промпт из текста преобразуется в набор чисел (токенов), который затем поступает на вход алгоритма генерации SD. Из этого следует, что SD не особо понимает «смысл» того, что вы пишете, сколько ищет соответствие набору ваших токенов в своём гиперпространстве. И затем создаёт на их основе изображение.

Иными словами, токена «милая собачка» в моём первоначальном промпте не было, только «игрушка» и «стол». И нейросеть из случайного шума мне сгенерировала игрушку на столе. То, что эта игрушка оказалась собачкой — случайность, как и сам внешний вид этой собачки.

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

Давайте попробуем поменять «title» на «text»:


Лошадка и фон еле заметно изменились, и только.

На этот раз давайте попробуем изменить промпт до «toy dog is on the table, sign with text "stable" on dog's chest», дважды добавив «собаку» и «табличку с текстом» (sign with text):


Что ж, собачку с табличкой мы получили — уже неплохо.
Жаль только, что табличка не там и собачка не та, хотя тоже симпатичная.

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


А всё почему?
У всех единый Seed, модель и настройки. Отличается только промпт, и то незначительно.

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


Что ж, на сегодня хватит.


Поздравляю ещё раз!


Вот и вы приобщились к магии нейросетей.

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

К собачке и апскейлу мы ещё обязательно вернёмся, но чуть позже.

Если вам не терпится продолжить, самостоятельно гуглите:
  • «Img2img в Stable Diffusion»;
  • «Inpaint в Stable Diffusion»;
  • «Hires.fix в Stable Diffusion»;
  • «ADetailer в Stable Diffusion».