Stable Diffusion. Технология генерации изображения по тексту.

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

Для генерации изображений необходима видеокарта с количеством памяти от 4Гб (лучше 6Гб или 8Гб) производителя Nvidia. Если у вас карта от AMD то для генерации понадобится система Linux и некий опыт.

Для обучения нейросетей по своим изображениям нужна видеокарта от 8Гб (но это очень мало и придется очень постараться подбирая параметры и метод), нормально обучение нейросетей начинается от 12Гб видеопамяти.

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

Разные версии и архитектуры моделей нейросетей

Stable Diffusion (SD) 1.5,2.0, 2.1 На сейчас наиболее популярной моделью является 1.5, с базовым размером изображения 512*512. Под 1.5 разработано множество пользовательских оболочек, методов тренировки и т.д. По множеству тестов эта версия все еще не уступает следующим в креативности или качестве, а кроме того имеет огромную базу наработанных моделей, дополнений и инструментов. О версиях 2.0 и 2.1 можно сказать что в отличии от 1.5 базовый размер изображения 768*768 пикселей. Не совместим с 1.5 (нельзя использовать гиперсеть, LORA, Embedding из версии 1.5)

ControlNet — создана для лучшего контроля генерации Stable Diffusion. Позволяет контролировать и направлять генерацию разными методами. Задавая контуры, позу, карту глубины или нормалей. Представляет собой несколько дополнительных нейросетей, которые работают совместно с SD и используется как дополнение а не самостоятельная архитектура. Для Automatic1111 есть расширение sd-webui-controlnet

Midjourney — закрытая архитектура, которая предоставляется для ознакомления и платного использования. Основной канал доступа через discord. Имеет хорошее качество генерации и некоторое время открытая Stable Diffusion за ним гналась, но благодаря открытости и массовой наработке новых моделей зачастую специализированные модели позволяют сделать больше и лучше в своих областях.

DALL-E — нейронная сеть OpenAI, созданная при финансовой поддержке Microsoft. OpenAI также известна своими разработками текстовых нейронок GPT-3 и чат-ботом на ее основе.

Словарь общих терминов

prompt, промпт — входной набор слов, на основании которого и создается выходное изображение. Есть так же негативный промпт, который предлагает обозначить что вы НЕ хотите видеть в результате. В разных интерфейсах генерации изображений негативный промпт может отсутствовать.

чекпоинт, .ckpt, .safetensor, model, модель — все по сути является синонимами уже готовой и обученной нейросети, запакованной в один файл, имеющей расширение .ckpt (чекпоинт) или .safetensor. Второе представляет собой более безопасный формат, так как содержит только данные и не содержит никаких дополнительных скриптов, в отличии от .ckpt. Так что если вы взяли .ckpt из непроверенного источника то имейте в виду что его использование может быть не безопасно и лучше сконвертировать в safetensor. Размеры файла обычно от 2 до 8гб, в зависимости от того какой разрядности/точности fp16 или fp32 а также какие дополнительные элементы там есть, например VAE.

Dreambooth, дримбут — обычно имеется в виду скрипты или процесс дообучения исходной модели на своих изображениях. на выходе получаем обученную полноценную самостоятельную модель.

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

LORA, ЛОРА — это не самостоятельная модель, а по сути разность между исходной моделью, и той что получилась в результате пользовательского дообучения. Есть вариант когда LORA получается непосредственно в результате тренировки, а есть скрипты которые получают LORA как разность между двумя моделями. Размер файла обычно сотни мегабайт. LORA несколько проигрывает полноценной модели в точности, но выигрывает в размерах а также в том что можно применить на разных моделях. Используют лору обычно с исходной моделью, но можно и с другой (чем модель больше отличается от исходной тем больше будет и влияние на результат в худшую сторону для узнаваемости персонажей, но это может быть не важно для стилей)

Textual inversion, Embedding, эмбеддинг — некий патч из весовых коэффициентов, добавляемый на этапе преобразования исходного текстового промпта в матрицу весовых коэффициентов, называемой также Embedding (размерность 77*768). Эмбеддинги как и дримбут и лора тренируются на пользовательских фотографиях. Имеют преимущество в очень маленьком размере — это десятки килобайт, сильно зависимы от исходной модели (если применять эмбеддинг на другой модели а не на той на которой их тренировали то результат очень часто далек от ожидаемого, хотя не всегда).

VAE (variational autoencoder) — одна из частей SD модели, которая может отсутствовать. VAE преобразует пиксельное изображение на входе в латентное пространство нейросети и наоборот формирует выходное изображение из внутреннего.

Программы и интерфейсы, для использования Stable Diffusion

Automatic1111 (автоматик), InvokeAi — пользовательские интерфейсы для генерации изображений. По сути это программы-оболочки, которые умеют использовать модели Stable Diffusion. Написаны на языке Python, скачиваются из github. Расширения которые стоит ставить: sd-webui-controlnet и openpose-editor (для контролнет), stable-diffusion-webui-model-toolkit (для просмотра состава модели и ее усечения или извлечения частей), sd-webui-model-converter (конвертация в fp16, safetensor), stable-diffusion-webui-dataset-tag-editor (формирование подписей при подготовке датасета к обучению), embedding-inspector (помогает понять связанные теги и синонимы).

painthua.com — внешний интерфейс для генерации изображений на бесконечном полотне. Подключается к Automatic1111 через API.

Словарь терминов используемых в интерфейсах генерации изображений

promt — текст задающий генерацию изображения

Negative promt — слова, теги, задающие то чего быть не должно в выходном изображении.

Sampling Steps — количество шагов для генерации изображения. Обычно нормальные результаты начинаются от 20 шагов.

Sampling method — есть множество разных семплеров (Euler, Euler a, LMS, Heun, DPM2, DPM2 a, DPM fast, DPM adaptive, LMS Karras, DDIM, PLMS и др), они часто дают разные результат и имеют разное влияние на скорость.

Seed — случайное число, добавляющее уникальности и разнообразия результатам. Если вы экспериментируете с разными параметрами, моделями, методами то есть смысл зафиксировать это число, убрав случайную составляющую, это даст больше понимания как остальные изменяемые вами параметры влияют на результат. Также это даст возможность повторить результат и поработать над ним не меняя кардинально.

img2img — создание изображения на основе изображения.

txt2img — создание изображения на основе текстового промпта (prompt).

Inpaint — Позволяет нанести на участок изображения маску (закрасить часть изображения) и сгенерировать что-то только на нем, не затрагивая остальной рисунок. Можно инвертировать — рисовать везде, кроме замаскированного слоя (Inpaint not masked)

Face restoration, Restore Faces, CodeFormer — опция улучшения лиц на выходном изображении при помощи отдельной модели CodeFormer. Присутствует в интерфейсе Automatic1111.

Checkpoint Merger — позволяет смешать/смиксовать два и более чекпоинта в заданных пропорциях. Работает только с моделями одной версии, например 1.5.

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

Ссылки на разные инструменты и ресурсы

huggingface конвертор моделей — умеет много разных форматов.

https://civitai.com/ — огромная база которая содержит много SD моделей, LORA, Embedding на самую разную тематику практически без ограничений.

btdig.com — поиск SD моделей в торрентах.

aqualxx.github.io ranker.mr4erk.ru dezgo.com — различные сервисы онлайн генерации изображений.

RentrySD — сборник ссылок и разных файлов по тематике Stable Diffusion

Оставьте комментарий

Ваш адрес email не будет опубликован.