SDXL. Генерируем изображения по текстовому описанию.

Введение

Год назад (с момента написания статьи) была презентована нейросеть SD (Stable Diffusion) 1.5, которая, перевернула весь интернет. Она позволяла за несколько секунд нарисовать изображение по текстовому описанию (промпту), на которое художнику требовался минимум час, из-за чего, у этих самых художников, нехило полыхнуло. Однако, SD 1.5 рисовал с кучей артефактов, поэтому люди начали дотренировывать модель, ради лучших генераций. Спустя некоторое время, слили в сеть NovelAi модель, которая специализировались на рисовании в стиле аниме, что еще сильнее ускорило развитие моделей. Через месяц после релиза SD 1.5, вышла первая супер качественная аниме модель Anything V3. Позже, и русские мега-корпорации подключились с Kardinsky (open-source) от СБЕР, и Шедеврум (close-source) от Яндекс. Позже вышла SD 2, но она не получила и доли популярности SD 1.5 (которая популярна до сих пор), т.к. генерировала хуже базовой SD 1.5.

И вот, 26 июля 2023 года вышла SDXL (Stable Diffusion Extra Large), которая:

  • Лучше следует промпту
  • Имеет больше параметров
  • Лучше умеет стилизовать изображение
  • Умеет рисовать текст (плохо, но SD 1.5 вообще не умел)
  • Требует гораздо менее детальное описание для генерации качественной картинки (вспоминая SD 1.5 с километровыми промптами и негатив-промптами).

Эта модель настолько большая, что её разделили на 2 модели: base и refiner. Изображение сначало прогоняется через base модель, а уже потом, через refiner (необязательно). Сделали это, чтобы уместится в 8GB VRAM, которые используются на большинстве современных видеокарт.

Подготовка.

Установите Python и git.

В качестве UI, будем использовать StableSwarmUi, несмотря на то что его недавно создали, и он находится в состоянии alpha, у него есть существенные преимущества:

  • Поддерживается Stability AI (компанией которая создала SDXL), что значит, что все новые функции будут доступны сразу.
  • Простота установки — установка такая же как у обычных инсталяторов (только в браузере)
  • Гибкость и простота — StableSwarmUi, под капотом, использует ComfyUi, и дает пользователю выбор, использовать продвинутый интерфейс ComfyUi, или упрощенный StableSwarmUi.

Далее, установите StableSwarmUi, скачав батник.

UI (графический интерфейс) для SDXL пока в стадии alpha, поэтому процесс установки может поменятся, если статья устареет, окликните меня в комметариях.

Выберите место установки, и туда поместите батник, после чего дважды кликните по нему. У вас появится папка StableSwarmUI, откройте её. Там откройте launch-windows.bat. У вас в браузере, откроется страница установки.

Прокликайте до секции Donwload Models, там выберите Base и Refiner модель.

Нажмите Next, и дождитесь окончания установки. После установки, на рабочем столе появится ярлык StableSwarmUi.

И откроется страница с UI.

В левой колонке (синяя область):

  • Prompt — здесь описывается, то что ты хочешь видеть в изображении
  • Negative prompt — пишем, что не хотим видеть в изображении.
  • Aspect Ratio — соотношение сторон, влияет на разрешение изображения.

И, для генерации, используйте кнопку Generate Image

Чуть ниже (фиолетовый ряд), указана текущая выбранная модель.

Внизу (желтый ряд), разберем доступные вкладки:

  • Models — модели для генерации изображения
  • Vae — файл использующийся моделью создания изображения из латентного пространства. В большинстве случаев Vae встроен в модель, поэтому эта вкладка вам, врятли, понадобится.
  • LoRas — мини-модели обученные на определенном стиле, используются вместе с основной моделью.
  • Embedings — если кратко, меняет силу слова относительно других слов при генерации изображения.
  • ControlNets — модели позволяющие лучше контролировать содержание генерируемой картинки.

В большинстве случаев, вам понадобятся только вкладка Models.

Ок, давайте сгенерируем пару изображений.

Prompt: woman holding a cup of coffee, masterpiece; Negative prompt: text, watermark;

У базовой SDXL есть проблемы с руками, поэтому советую сразу поставить кастомную модель ZaviChromaXL, в которой эта проблема встречается куда реже. Скачанную модель поместите в папку:

После чего:

  1. Обновите папку с моделями
  2. Выберите ZaviChromaXL
  3. Сгенерируйте изображение

Промпт тот же, но качество рук лучше. Жаль только, что со зрачками проблема не исчезла.

Модель CrystalClearXL, тоже неплохо себя показала.

Кстати, лого этой статьи сгенерировано нейросетью, с минимальными изменениями с моей стороны.

Слабые места Stable Diffusion

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

Большинство из этих проблем, лечится повторной генерацией.

Итоговый результат.

Лого сгенерировано нейросетью

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!