Локальные нейросети для генерации изображений
November 25, 2024 . 5 минут на чтение статьиКаждый в какой-то момент задумывался, как ему сгенерить картинку с помощью нейросетей так, чтобы она принадлежала тебе, а не создателям Kandinskiy, Midjourney и других популярных нейросетей. Ну или, по крайней мере, чтобы свидетельств генерации вами этого изображения не осталось в логах публичных AI-сервисов.
Для этого можно использовать Stable Diffusion. Но есть нюанс. В отличие от текстовых нейронок, которыми можно пользоваться через API и WebUI, для изображений точно нужен какой-то графический интерфейс. Можно, конечно, писать всё в питоне, но это максимально не интуитивно, и заставляет руками собирать по гитхабу необходимые утилиты, которые иначе запакованы в UI в виде "расширений".
Я проверил несколько готовых UI для Stable Diffusion, чтобы вам не пришлось. Пойдем от сложных навороченных (которые, скорей всего, и будут использоваться в проде), к самым простым (чтобы быстро получить картинку).
Прежде, чем начнем:
-
Вам все еще нужен приличный GPU с хотя бы 8 гигабайтами видеопамяти. По сравнению с Midjourney, результатов генерации все еще придется ждать очень, очень долго.
-
Для владельцев Macbook. Так как в свежие Mac на платформе M нельзя воткнуть внешний GPU от Nvidia Tesla, или "народную" видеокарту типа RTX 3080, все эти UI не имеют готовых сборок под Mac. Я их тоже не тестировал, так как мой личный Mac всё ещё под Intel, и мощности его дискретной видеокарты едва хватает на запуск Disco Elysium. Если у вас есть только Macbook, и вам нужен упрощенный интерфейс для Stable Diffusion, посмотрите на Diffusion Bee.
Чекпоинты и лоры
Кроме программы-UI, вам нужны файлы состояния нейросетки, из которых вы будете генерировать изображения.
Конечно, вместе c UI идут какие-то базовые настройки. Но обычно они сосут. Без загрузки дополнительных моделей, ваши картинки будут выглядеть максимально бесполезно и кринжово. Например, вот как выглядит дефолтный промт ConfyUI "из коробки":
- Для работы вам понадобятся так называемые checkpoints. Так как на своем домашнем компьютере невозможно за приемлемое натренировать нейросетевую модель, их придется откуда-то добыть. Самый простой способ достать чекпоинты для аниме и NSFW - загрузить их с Civitai. Это большие файлы, размеры начинаются от 5 гигабайт. Загружаете их в директорию с чекпоинтами и ваш UI их подхватывает.
- Кроме чекпоинтов могут понадобиться LORA. Пример использования LORA для ComfyUI ессть здесь. Эта статья - обзорная, поэтмому я не могу рассказать про каждый из интерфейсов подробно, вам придется разбираться самостоятельно. Смысл в том, что вначале ты грузишь чекпоинт, и потом передаешь его в лору.
Например, вот что получается при одновременном применении двух моделек со скриншотов, приведенных выше, по запросу "beatiful asian girl with katana, standing in the middle of a burning magical cyberpunk city". Это не самые лучшие результаты генерации, но достататочно безопасные, чтобы не объяснять их Роскомнадзору.
Для профессионалов и продакшена
Первое место: ComfyUI
Ссылка на GitHub
Самый лучший UI для людей с инженерным подходом к разработке. Отображает процесс генерации в виде графа применений фильтров с настройками. Выглядит как панель космолёта.
Проблемы: очень сложно, если надо быстро что-то запустить, ни в чем не разбираясь.
Прямо на GitHub выложена готовая версия для Windows + Nvidia. Просто качаешь, распаковываешь, запускаешь — и у тебя готовый генератор картинок. Важно, что для работы готовой сборки все еще нужно загрузить чекпоинты в директорию ComfyUI/models/checkpoints
внутри дистрибутива. Скачать актуальные чекпоинты Stable Diffusion можно здесь.
Другой важный лайфхак: если у вас тоже запущено 100500 серверов на локальном компьютере, и дефолтные порты типа 8080 давно закончились, то поменять порт можно в файле run_nvidia_gpu (или run_cpu), добавив порт вот так: .\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --port 27777
. Это относится и ко всем остальным UI с веб-интерфейсом, как прописывать в них порты - оставлю читателю этой статьи в качестве упражнения.
StableSwarm UI
Ссылка на GitHub
Упрощенный фронтенд к ComfyUI для тех, кому нужно быстро нагенерить картинку.
Достаточно расширяем на манер ComfyUI, но прост в использовании на уровне А1111. Можно объединять несколько компьютеров, чтобы генерить картинки быстрее.
Изначально проект поддерживался самими Stability AI, но потом они чего-то не поделили, и автор проекта переехал в свой личный репозиторий.
Нет готового билда, чтобы сразу запускать. В приниципе, такому молододму проекту это можно простить. Нужно установить по инструкции, инструкция есть в README.
Stable Diffusion WebUI ("A1111")
Ссылка на GitHub
Самый популярный интерфейс, в народе называющийся A1111. Это его оригинальная версия - доверенная, проверенная, зарекомендовавшая себя, в отличие от множества кастомных форков.
Куча расширений и настроек. Довольно стабильный.
Выжигающая мозг светлая тема по-дефолту. Кто вообще еще использует светлые темы?
Установка описана в инструкции. Для Windows есть готовая сборка, для Linux придется повозиться в терминале.
SD.Next
Ссылка на GitHub
Форк A1111 с более свежими фичами, дополнительными моделями и возможностью выбора между Modern UI и Standard UI.
Темная тема по-умолчанию.
С инсталляцией придётся повозиться, потому что делается она через консоль и требует клонирования репозитория..
Modern UI:
Standard UI:
Для новичков
InvokeAI
Ссылка на GitHub
Позволяет быстро сгенерировать картинку и имеет некоторое количество настроек. Пытается развиваться в сторону редактора графа фильтров, как ConfyUI, только с более "человекопонятным" интерфейсом. С точки зрения визуального дизайна - самый приличный интерфейс из всех в этом топе.
Есть автоматический инсталлятор.
Пытаются переехать на коммерческие рельсы, поэтому продвинутые модели и быстрый хостинг в облаке вынесены в коммерческую версию.
Fooocus
Ссылка на GitHub
Самый новичковый интерфейс из всех. Есть поле для ввода промпта, и поле для отображения картинки, всё.
Есть готовый файл для простой установки и запуска на Windows.
Автоматически улучшает ваши промпты с тем же вайбом, как это делает Midjourney.
Настроек почти никаких нет, но и не нужно (отсутствие настроек - это фича).
Не забывайте подписаться на наши ресурсы, там есть ништяки:
- Откровения от Олега - Telegram-канал автора этого гайда
- Оправдания от Олега - Telegram-чат
- SmallTech Pro - Youtube-канал
- Telegram-канал Failover Bar - единственный в Санкт-Петербурге (а может, и в России вообще) бар для разработчиков. Мы здесь постоянно встречаемся и разговариваем про Java.