Содержание статьи
В этой статье я попробовал снизить «порог вхождения», ответив на самые простые вопросы, которые возникают практически у всех, кто пытался разобраться в терминологии генеративного ИИ.
Статьи
В «Хакере» опубликована серия моих статей с рекомендациями по выбору, установке и настройке разных моделей. Список статей будет пополняться, как и другие списки в этом материале.
- Stable Diffusion XL. Генерируем картинки нейросетью на своем компьютере
- Stable Diffusion XL. Выбираем модели, рефайнеры, лоры и стили
- ReForge. Улучшаем картинки, генерируемые Stable Diffusion
- FLUX.1 и SwarmUI. Генерируем картинки новой открытой моделью
Что нужно, чтобы начать создавать картинки?
Тебе потребуется компьютер (желательно — с видеокартой Nvidia), софт и базовая модель (чекпоинт). Как софт, так и модели совершенно бесплатны; от тебя потребуется только время и усилия, чтобы разобраться в процессе.
Видеокарта
Лучше всего с генеративным искусственным интеллектом работают видеокарты Nvidia. Это не значит, что карты AMD или Intel (или даже чипы Apple Silicon со встроенной графикой) совсем нельзя использовать, просто их поддержка во многих программах ограничена, и обход ограничений потребует решения дополнительных проблем.
Помимо архитектуры видеокарты, для работы ИИ критическим параметром является объем выделенной видеопамяти (VRAM). Для старых моделей достаточно 8–12 ГБ; для современных и тех, что должны появиться в ближайшем будущем, нужно уже 16–24 ГБ. Это не значит, что новые модели не запустятся на старых видеокартах, — просто работать ИИ будет примерно на 30–50% медленнее, чем если бы у видеокарты той же модели было достаточно памяти.
Софт
Практически весь софт для генеративных ИИ бесплатен, доступен в исходных кодах и работает в окне браузера с использованием библиотеки gradio.
- Fooocus: идеальный продукт для начинающих и пользователей онлайновых сервисов, максимально близко подошедший к идеологии «одной кнопки». Поддерживает только модели SDXL, зато предлагает автоматическое расширение запросов локальной языковой моделью (GPT-подобный LLM), что резко повышает разнообразие и красоту сгенерированных картинок. Практически не требует установки и совсем не требует настройки: достаточно распаковать архив и запустить. Даже модель Fooocus скачает самостоятельно.
- AUTOMATIC1111: классический консервативный WebUI, апстрим для разнообразных форков. Сильные стороны — стабильность и образцовая поддержка плагинов‑расширений (в форках на основе Forge некоторые расширения для A1111 не работают).
- Stable Diffusion web UI for AMDGPUs: форк A1111 для видеокарт AMD. В отличие от оригинала, поддерживает технологии DirectML, транслятор ZLUDA, Onnx Runtime и оптимизации Olive.
- WebUI Forge: форк AUTOMATIC1111 с более высокой скоростью работы и оптимизированным механизмом работы с видеопамятью. На данный момент ведется активная разработка, репозиторий в статусе экспериментального; в продукте будут отрабатываться новые технологии — от интерфейса gradio 4 до нового движка. Помимо архитектуры Stable Diffusion, Forge также поддерживает Flux. Некоторые плагины от A1111 не будут работать, что частично компенсируется наличием ряда встроенных расширений, выполняющих аналогичные функции.
- WebUI reForge: активно разрабатываемый форк описанного выше WebUI Forge. Здесь присутствуют как оптимизации Forge, так и новинки из AUTOMATIC1111 и ComfyUI. Сегодня именно этот форк работает с моделями SD1.5/SDXL/CosXL быстрее и стабильнее прочих. Использует старую версию gradio, поэтому совместимость с плагинами A1111 лучше, чем в оригинальном Forge.
- ComfyUI: мощный, расширяемый и отлично оптимизированный продукт с самой широкой поддержкой разных архитектур и технологий. Интерфейс в стиле блок‑схем — не для всех, однако он же позволяет сохранять и использовать как свои, так и сторонние блок‑схемы в виде готовых проектов. Я не рекомендую начинать знакомство с генеративными ИИ с этой оболочки из‑за сложности освоения. Именно Comfy первым получает поддержку новых архитектур и моделей — часто буквально в день их выхода.
- SwarmUI: оболочка для Comfy, напоминающая WebUI. Совмещает удобный интерфейс и «всеядность» Comfy. Об этом продукте я подробно писал.
Есть и другие варианты.
- InvokeAI: один из немногих продуктов, работающих как самостоятельное приложение, а не через браузер. По возможностям — что‑то среднее между A1111 и Fooocus с максимально удобным пользовательским интерфейсом. Для продвинутых пользователей есть режим наподобие Comfy.
- StabilityMatrix: надстройка, из которой можно устанавливать различные веб‑интерфейсы и рулить ими.
- Draw Things: эксклюзивный UI для Mac/iOS. Оптимальный софт для чипов Apple Silicon. Поддерживает модели как Stable Diffusion, так и Flux.
- SD.Next: еще один форк A1111 с поддержкой множества моделей и архитектур. К сожалению, продукт сложен в настройке, а стабильность работы оставляет желать лучшего. В состав форка входит множество предустановленных плагинов.
- Krita Diffusion: фактически, это нейросетевой плагин к опенсорсному графическому редактору Krita. Позволяет как удалять, дорисовывать и перерисовывать объекты в самом изображении, так и «расширять» картинку в стороны, убедительно дорисовывая отсутствующий контент.
Что из этого выбрать?
Если у тебя Mac, начни с Draw Things. Если простота использования «из коробки» и качественные изображения даже по самым простым текстовым запросам для тебя важнее расширяемости и продвинутых возможностей — ставь Fooocus. Для моделей SDXL отлично подходят WebUI reForge или SwarmUI; для Flux — SwarmUI или WebUI Forge. Оригинальный WebUI Forge подойдет любителям экспериментировать с новейшими технологиями. Если у тебя видеокарта AMD, попробуй форк WebUI AMDGPU.
info
A1111, WebUI Forge и reForge можно устанавливать параллельно в разные каталоги. При этом все три дистрибутива могут использовать общие папки с моделями разных типов. Для этого предусмотрены параметры командной строки (файл webui-user.
), такие как: --models-dir
, --ckpt-dir
, --lora-dir
, --clip-models-path
, --embeddings-dir
.
Модели и архитектуры
Для генеративного ИИ разработано несколько семейств моделей. В рамках одного семейства может быть и единственная модель (например, это относится к AuraFlow или Kolors), и множество моделей как изначального разработчика, так сторонних и даже обычных пользователей. Например, для архитектур Stable Diffusion 1.5 (SD1.5) и Stable Diffusion XL (SDXL) в силу их популярности и открытой лицензии доступны тысячи разнообразных моделей.
Архитектуры
Перечислю основные семейства моделей.
- SD1.5 (Stable Diffusion 1.5): очень старая модель с максимальным разрешением картинки до апскейла 512 на 512 точек. Нетребовательна к ресурсам, ее можно запустить даже на очень слабой видеокарте. Для SD1.5 существует огромное количество моделей, как обученных, так и ремиксов.
- NAI (NAI Diffusion): это — онлайновый сервис для генерации изображений в стиле аниме. В свое время утечка внутренней модели NAI, основанной на архитектуре Stable Diffusion 1.5, привела к бурному развитию аниме‑подобных моделей в рамках SD1.5. В качестве самостоятельной модели на сегодняшний день интереса не представляет, но в той или иной мере присутствует в подавляющем большинстве аниме‑моделей SD1.5.
- SD2.0: неудачная версия Stable Diffusion, совершенно заслуженно забытая (за редкими исключениями в виде исследовательских работ).
- SDXL (Stable Diffusion XL, преемник SD1.5): улучшенная версия SD1.5 с рабочим разрешением 1024 на 1024 (поддерживается ряд фиксированных разрешений с разным соотношением сторон, но с тем же общим числом пикселей). В рамках этой архитектуры созданы тысячи разнообразных моделей, как похожих на базовую модель, так и радикально от нее отличающихся. Идеальный вариант для тех, кто активно использует ControlNet (см. ниже).
- CosXL (Cosine-Continuous Stable Diffusion XL): экспериментальная архитектура и базовая модель на основе модифицированной архитектуры Stable Diffusion XL, отличающаяся от оригинала расширенным динамическим диапазоном и глубоким черным цветом. Создана в Stability AI. По сравнению с этой моделью результаты «обычной» SDXL выглядят блекло. Несмотря на техническое превосходство, на основе CosXL созданы считаные единицы сторонних моделей, что объясняется как техническими отличиями (CosXL пока не поддерживается в A1111 и WebUI Forge, но поддерживается в reForge, SwarmUI и Comfy), так и лицензией, ограничивающей ее коммерческое использование. Если захочешь попробовать, рекомендую модель gtmUltimateblendXL_v25Cosxl.
- Pony Diffusion (модель глубокого обучения на основе SDXL): нишевая модель, созданная для генерации широкого спектра персонажей из аниме и взаимодействий между ними. Сыграла для SDXL роль, аналогичную роли модели NAI для SD1.5. В отличие от базовой модели SDXL, Pony обучена на изображениях, описываемых набором стандартных тегов danbooru, но почти полностью «забыла» множество концепций из базовой модели. Модели LoRA для SDXL и Pony за редкими исключениями несовместимы, а формирование текстовых запросов к этой модели радикально отличается от привычных запросов SDXL. Тем не менее как оригинальная Pony Diffusion V6, так и ее многочисленные производные полностью совместимы со всеми программами, поддерживающими архитектуру Stable Diffusion XL. Модели на основе Pony получили свой собственный класс на ресурсе Civit.ai.
- LCM, Turbo, Lightning, Hyper, DMD2: все это — разные технологии ускорения, позволяющие генерировать изображения за меньшее число шагов (как правило, 4–10). При использовании таких технологий в той или иной мере могут страдать детализация и разнообразие генерируемых изображений. В чистом виде эти технологии требуют пониженного значения CFG (Classifier Free Guidance), однако есть и множество «гибридных» моделей, способных работать в ускоренном, «немного ускоренном» и обычном режимах в зависимости от параметров. Имеет ли смысл качать уже «ускоренную» базовую модель или лучше просто подключить соответствующую лору? Решать тебе. Интегрированные модели удобнее, а об их минусах можешь почитать в статье «Why I’m opting out: A thoughtful perspective on Lightning merged checkpoints».
- Stable Cascade: побочный релиз, экспериментальная архитектура, использующая каскад из трех стадий (и трех субмоделей) для генерации изображений. Лицензия ограничивает коммерческое использование модели. По этой причине (а также из‑за завышенных ожиданий к Stable Diffusion 3) модель не получила развития и широкой поддержки сторонними разработчиками.
- Stable Diffusion 3 (преемник SDXL): в настоящее время находится в подвешенном состоянии из‑за недообученности выпущенной версии. Изначально присутствовали и лицензионные ограничения, которые потом сняли. Выход исправленной версии ожидается, но сроки неизвестны.
На этом модели производства Stability AI заканчиваются и начинаются модели, разработанные другими компаниями.
- FLUX.1 [dev]: новая модель на основе архитектуры DiT. В ее составе поставляется локальная языковая модель, благодаря которой модель заметно точнее следует сложным текстовым запросам. Поддерживается в Forge, ComfyUI, SwarmUI, Draw Things для Mac. Лицензия модели ограничивает коммерческое использование. Максимальное разрешение изображений — 2МП (1440 на 1440 в различных соотношениях сторон), однако на высоких разрешениях может выдавать блочные артефакты. Модель представлена как в исходном виде, так и в квантованных (сжатых) представлениях, что позволяет запустить ее даже на слабых видеокартах с небольшим объемом видеопамяти.
Перечисленные ниже модели не получили широкого распространения, но поддерживаются в ComfyUI/SwarmUI.
- fal/AuraFlow: перспективная модель с открытым исходным кодом, которую разрабатывает компания Fal Ai. Основное преимущество AuraFlow — максимальная открытость и практическое отсутствие лицензионных ограничений, что делает ее привлекательной для разработчиков и пользователей ИИ. Попробовать модель можно онлайн на сайте разработчика. Локальная работа AuraFlow поддерживается в Comfy и SwarmUI, однако на данный момент модель еще не достигла желаемого уровня качества; обучение продолжается. Версия AuraFlow 0.3 улучшает качество картинок, но точность следования запросам пострадала. Сейчас ожидается версия 0.4: разработчики стараются выпускать промежуточные обновления ежемесячно.
- Alpha-VLLM/Lumina-Next-SFT: мощная модель на основе Next-DiT и языковой модели Gemma 2B. К сожалению, установить ее локально пока можно только в виде отдельного приложения, процесс установки которого сложен даже по меркам софта с открытым исходным кодом.
- HunyuanDIT: модель производства Tencent, поддерживающая, кроме английского, китайский язык. В Comfy поддерживается посредством модуля city96/ComfyUI_ExtraModels.
- PixArt Sigma: модель в активной разработке. В Comfy поддерживается посредством модуля city96/ComfyUI_ExtraModels.
- Kwai-Kolors/Kolors: еще одна новая модель. В отличие от перечисленных выше моделей, использует архитектуру U-Net (так же как и SDXL).
Какие из этих моделей стоит попробовать? Flux можно и нужно пользоваться прямо сейчас, если позволяет железо. AuraFlow представляет безусловный интерес, но пока скорее теоретический; модель в процессе обучения. Lumina Next — очень интересная, мощная модель, но ее установка чрезмерно сложна.
Пользователь Reddit выложил подробное сравнение (с картинками!) моделей PixArt Sigma, Hunyuan DiT, SD3 Medium и Lumina-Next-T2I.
Базовые и дополнительные модели
Существуют многочисленные базовые модели (чекпоинты) на основе как перечисленных выше, так и других архитектур. Также существует множество дополнительных подключаемых моделей (LoRA, Lycoris, DoRA), о которых нужно знать следующее: это небольшие дополнения к базовой модели (чекпоинту), работающие в рамках базовой архитектуры, для которой они созданы, и описывающие концепцию, стиль или персонажа, которых нет в основной модели. Кроме того, есть так называемые текстовые инверсии (embedding), которые при помощи всего одного токена помогают базовой модели «найти» ту или иную концепцию, если такая концепция есть в самой модели. Текстовые инверсии, в отличие от лор, работают в щадящем режиме, реализуя заданные концепции независимо от общего стиля картинки и не влияя на него.
Для начала работы тебе нужно будет скачать одну или несколько базовых моделей и сохранить ее в соответствующей папке. Впрочем, практически все веб‑интерфейсы автоматически качают какую‑то базовую модель, если ты попытаешься сгенерировать картинку сразу после установки.
Из каких частей состоит базовая модель
Архитектурно модели генеративного ИИ состоят из трех взаимосвязанных частей.
- Текстовый декодер. Это одна или несколько (в SDXL — две, Flux — тоже две, но другие) моделей, задача которых — перевод токенов из текстового запроса в векторы, указывающие на координаты в многомерном латентном пространстве. К слову, мерность латентного пространства SDXL — 65 535. В качестве текстового декодера могут использоваться CLIP (простой текстовый декодер разработки OpenAI, создателей ChatGPT), T5 (локальный LLM разработки Google) и другие. В SDXL используется пара из OpenCLIP-ViT/G и CLIP-ViT/L, первый из которых декодирует запросы, написанные на естественном языке, а второй — ключевые слова, перечисленные через запятую; Flux использует CLIP-ViT/L для декодирования ключевых слов и T5xxl для работы с естественными запросами.
- Основная модель, представленная сжатыми данными в латентном пространстве. На сегодняшний день самыми популярными архитектурами для таких моделей являются U-Net (используется в SDXL, Kolors) и DiT (более новая архитектура, которую используют почти все модели, вышедшие после SDXL). Чаще всего обучению подвергается именно основная модель; текстовые декодеры и VAE, как правило, сторонние разработчики не трогают.
- Вариационный автокодировщик (VAE) — это модель‑кодек, которая используется для сжатия пиксельного изображения в латентное пространство и его восстановления из латентного пространства, «проявляя» таким образом латентный «негатив» (технические детали). Именно VAE отвечает за то, чтобы «вытащить» сгенерированную картинку из латентного пространства в пространство пикселей; эта модель оказывает влияние на контраст и цветопередачу (оттого для SDXL существует базовый и несколько кастомных VAE), но не влияет на композицию изображения. В SDXL используют простые и несовершенные по современным меркам 4-канальные VAE, тогда как SD3 и Flux используют более качественный и современный 16-канальный VAE.
В чем разница между архитектурами U-Net и DiT?
U-Net работает как набор луп — он «сжимает» изображение, чтобы выделить важные детали, а затем «разворачивает» его обратно, восстанавливая картинку и добавляя детали на каждом шаге. Это похоже на процесс сжатия и распаковки файла, но с добавлением информации на каждом шаге.
DiT — более «умный» способ обработки данных. Он использует трансформеры, которые анализируют картинку целиком, понимая, какие части связаны между собой и каким образом. Попробуй, например, сгенерировать картинку с человеком, который держит меч; модели DiT смогут правильно нарисовать хват меча чаще, чем это сможет сделать модель с U-Net.
В SD1.5 и SDXL в состав файла модели могут входить как все три части, так и только первые две (разработчики моделей, как правило, указывают эту особенность в описании); в последнем случае VAE нужно подключать отдельно. Для Flux существуют интегрированные модели, но в силу большого объема T5xxl (а также из‑за того, что существуют разные представления этого декодера — например, 8-битный вариант для обычных и 16-битный для топовых видеокарт) разработчики предпочитают публиковать только U-Net (на самом деле, конечно же, DiT) отдельно. Кстати, базовая модель FLUX.1 [dev] была опубликована именно в таком раздельном виде.
Обученные модели и ремиксы
Базовые модели (чекпоинты) бывают обученные (trained) и ремиксы (merged). Изначально подразумевалось, что «обученные» модели — те, которые подверглись глубокому тюнингу в течение нескольких «эпох» (циклов обучения и коррекции на одном и том же наборе данных), однако со временем в число обученных стали включать и модели, в составе которых, помимо базовой модели или ремикса, есть хотя бы одна лора, самостоятельно обученная автором. Соответственно, ремикс — это модель, в состав которой входят другие модели (обученные или ремиксы) и, возможно, лоры, созданные другими пользователями.
У обоих классов моделей есть свои особенности. Так, модели, обученные классическим способом, часто имеют шероховатости, которые можно сгладить, добавив в микс части других моделей. С другой стороны, многочисленные ремиксы и ремиксы ремиксов часто страдают от отсутствия разнообразия; это может выражаться, например, в том, что на всех сгенерированных изображениях вместо разнообразных живых людей присутствует некое усредненное синтетическое лицо. С этим, опять же, можно бороться, добавив в ремикс нужные блоки от обученной модели, но многие создатели ремиксов делать этого попросту не умеют.
Не стоит фиксировать внимание только на «обученных» (trained) моделях: хороших ремиксов (merged) ничуть не меньше, и качество картинки они способны выдать ничуть не хуже.
Где брать базовые модели
Есть несколько ресурсов, на которых публикуются различные модели. Самый крупный из них — Civit.ai. Имеет смысл активировать фильтры, чтобы отображались только базовые модели (checkpoint) требуемой архитектуры или архитектур (например, SDXL, Pony или Flux); в противном случае тебе придется продираться через десятки тысяч всевозможных лор, созданных для разных архитектур.
Ряд моделей публикуется на сайте Tensor.art, в том числе эксклюзивно (например, креативная модель Kika_real). Наконец, ресурс, на котором публикуются модели с открытым исходным кодом Hugging Face, с которого, в частности, можно скачать квантованные версии модели Flux, а также квантованные версии текстовых декодеров t5.
Дополнительные модели (LoRA, DoRA, Lycoris, а также текстовые инверсии) можно скачать с тех же сайтов, не забыв поменять фильтры.