
Привет! Я Кирилл, занимаюсь дизайном и цифровой иллюстрацией, часто работаю с генеративной графикой. За последнее время успел перепробовать кучу разных платформ — от бесплатных Web UI до платных сервисов вроде Midjourney. Но, как это обычно бывает, идеальный инструмент так и не нашелся. Одни оказываются слишком дорогими — пока дойдешь до десятой итерации картинки, уже выжжешь весь лимит токенов. Другие же страдают от неудобного интерфейса и абсолютно непредсказуемого результата.
И вот недавно я решил создать серию артов в разных стилях, чтобы положить в портфолио. Примерно понимал, что хочу видеть, и не хотелось тратить время на миллион попыток, чтобы получить нужный результат. Именно поэтому пришлось искать новый инструмент, с которым не нужно долго разбираться и при этом можно полностью контролировать процесс генерации. Решил рассказать, как я пришел к ComfyUI, и написать небольшую инструкцию по его запуску.
Как я выбирал инструмент и почему в итоге остановился на ComfyUI
Пока искал, смотрел на разные популярные инструменты. Попробовал, например, AUTOMATIC1111 — это один из самых популярных WebUI для Stable Diffusion. На первый взгляд интерфейс выглядит интуитивно понятным и упорядоченным: настройки расфасованы по отдельным вкладкам, многие параметры регулируются ползунками. А еще большое поле для ввода промпта и гигантская кнопка Generate, чтобы точно было понятно, куда жать.
Это хороший вариант, чтобы познакомиться с генерацией изображений. В AUTOMATIC1111 легко сделать первые шаги: ввел промпт, повертел пару настроек, нажал кнопку, получил картинку. Можно быстро пощупать базовые параметры вроде CFG или seed и понять, как они влияют на результат.
Но чем дольше я с ним сидел, тем сильнее понимал, что он плохо подходит под мою задачу. Настройки лежали в разных местах, и я часто просто терялся в интерфейсе. Я менял какой-то параметр, запускал генерацию и видел совсем не то, что ожидал, но при этом часто не мог сразу понять, почему так произошло. В итоге я тратил больше времени на поиск нужной опции, чем на сами эксперименты со стилями.
Мне хотелось работать так, чтобы весь процесс был перед глазами. Чтобы я мог менять конкретный шаг и сразу понимать, какой эффект это даст. Чтобы изменения были понятными, а не выглядели как набор случайностей.
В какой-то момент я наткнулся на ComfyUI. Его интерфейс основан на нодах — это такие визуальные блоки, из которых ты сам собираешь весь процесс генерации, как конструктор.
Например, один блок загружает модель, другой переводит текст в эмбеддинги, третий создает латентное изображение, четвертый превращает его в картинку, пятый прогоняет ее через апскейл. Чтобы задать воркфлоу, нужно просто соединить ноды линиями. Ты видишь весь пайплайн сразу — не нужно прыгать по вкладкам и искать нужные настройки.
Подкупило еще и то, что разработчики поддерживают ComfyUI и развивают его: не хотелось бы научиться работать с инструментом, а потом узнать, что даже создатели его давно забросили.
Интерфейс сначала показался мне громоздким. Много блоков, линии между ними, куча входов и выходов — будто слишком сложно для генерации картин. Но в итоге оказалось, что мне так удобнее, чем с настройками в форме галочек и бегунков. Когда весь процесс построен в виде схемы, видно каждый шаг, и не остается «магии» за кадром.
Весь воркфлоу легко настроить под себя. Например, поставить в одном пайплайне сначала txt2img, потом img2img с прикрученным ControlNet, потом прогнать результат через апскейл — и всё это будет работать по нажатию одной кнопки. Получается полная автоматизация: модель генерирует картинку по текстовому промпту, уточняет ее по референсному изображению, ControlNet помогает зафиксировать нужную позу, композицию или форму объектов, а апскейл повышает детализацию.
А если не знаешь, с чего начинать, — это тоже нестрашно. В сети полно готовых воркфлоу, которые можно скачать и подстроить под себя. Можно даже перетащить в окно ComfyUI чужую картинку, сгенерированную там же, и интерфейс автоматически восстановит весь пайплайн, который использовал ее автор.
Главная проблема — ComfyUI тяжело запустить локально, особенно если раньше ничего подобного не делал:
-
Установить Python, чтобы можно было просто запустить нейросеть.
-
Поставить PyTorch — библиотеку для Python, которая выполняет вычисления нейросети.
-
Поставить CUDA — это библиотека от NVIDIA, которая нужна, чтобы PyTorch мог проводить вычисления на видеокарте, а не на процессоре.
-
Добавить зависимости — это дополнительные Python-библиотеки, которые нужны ComfyUI для работы нод, загрузки моделей и обработки изображений. Без них часть функций просто не запустится.
Я потратил прилично времени в попытках разобраться и хотел уже бросить эту идею, но выяснил, что запустить ComfyUI можно в облаке.
В одном канале про AI наткнулся на пост про облако Cloud.ru, где уже есть готовый образ на базе Jupyter Lab, а в него встроен ComfyUI и всё нужное для запуска: Python, PyTorch, CUDA и зависимости. Не нужно мощное железо, будет работать даже на обычном домашнем компьютере.
Надо только скачать модели или LoRA, но даже их можно грузить прямо в виртуальные машины, а не к себе на жесткий диск. Я всё положил в хранилище в другом сервисе Cloud.ru — Object Storage: так намного удобнее. Модели лежат себе спокойно в отдельном хранилище и не пропадают, даже если я пересоздаю ноутбук или меняю конфигурацию. Не нужно каждый раз скачивать гигабайты заново, и место на диске виртуалки не расходуется.
Важно: всё это — только мой опыт. Я просто решил попробовать именно этот способ и пока доволен.
Как запустить ComfyUI через Evolution Notebooks
На настройку уйдет минут 20, если аккуратно следовать по шагам. В процессе только нужно будет сделать запрос в поддержку, и на ожидание ответа стоит заложить еще несколько часов (дальше станет понятно зачем; это не связано с проблемами, просто один из шагов). Для меня, кстати, это стало еще и возможностью заколлабится с Cloud.ru :-) Когда писал в поддержку, упомянул, что хочу позже запостить про свой опыт на Хабр. Ну а они разрешили опубликовать этот текст у себя в блоге.
Для тех, кто тоже хочет пощупать этот интерфейс, но не хочет заморачиваться с локальной установкой, рассказываю пошаговую инструкцию.
Шаг 1. Подготовка среды
Регистрируемся на Cloud.ru. Сначала нужно создать бакет для хранения данных в Object Storage. Для этого в личном кабинете нажимаем на символ с девятью точками на верхней панели слева. В выпавшем меню выбираем «Хранение данных» → Object Storage → «Создать бакет». Заполняем обязательные поля и идем дальше.

Теперь нужно создать ноутбук. Снова нажимаем на девять точек, выбираем AI Factory → Notebooks → «Создать».

Тут настроек больше, поэтому и расскажу подробнее. Самое важное здесь — выбрать конфигурацию с GPU. Без видеокарты генерация просто не запустится: модели Stable Diffusion требуют миллионов операций, которые на обычном процессоре выполняются слишком медленно. На ноутбуке с GPU одно изображение формируется за несколько секунд, а не за полчаса.
Есть нюанс: в Cloud.ru у каждого юзера есть квоты на вычислительные мощности. По умолчанию в Evolution Notebooks квоты на GPU вообще не предусмотрено. Кроме того, чтобы создать ноутбук с GPU, нужно 63 ГБ RAM, а по дефолту дают только 40. Решается через поддержку: надо попросить увеличить квоты. Я делал отдельные запросы на GPU и на RAM, и оба раза отвечали часа за полтора.
Дальше выбираем готовый образ окружения ComfyUI, нажимаем «Продолжить» и переходим на следующий этап.

Здесь нужно привязать бакет из Object Storage, который мы сделали заранее. Жмем на вкладку «Хранилище» → «Добавить хранилище». В появившийся том привязываем бакет.
Важный момент: не забудьте включить Serverless-режим. В Evolution Notebooks ты платишь за время использования GPU, тариф — 120 рублей в час. Деньги списываются, когда ноутбук включен. А Serverless нужен, чтобы не потратить лишнего: он автоматически отрубает ноутбук, если какое-то время ничего не делать. Тайм-аут можно задать самому или оставить стандартный, в любом случае это поможет не спустить весь баланс, когда отвлекся на кота.
ComfyUI на виртуальной машине бегает быстро, поэтому, если знаешь чего хочешь и примерно понимаешь, что настраивать, много денег не потратишь. У меня, например, чтобы разобраться, как всё работает, и сгенерить первые арты, ушло чуть больше 300 рублей.
Нажимаем «Создать» и через несколько минут получаем ссылку на веб-интерфейс. Запускаем, тыкаем на кнопку JupyterLab и попадаем внутрь ноутбука.
Шаг 2. Загрузка модели
ComfyUI — это просто оболочка, поэтому для генерации в него нужно загрузить «мозги», то есть ИИ-модель. Всё, что надо сделать, — скачать ее в бакет Object Storage и «показать» ComfyUI. Делается это прямо из ноутбука в консоли Python через команду !wget. Например, чтобы скачать в бакет модель Stable Diffusion 1.5 напрямую с Hugging Face, нужно ввести такую строку:
!wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly-fp16.safetensors -O /mnt/s3/<имя_бакета>/v1-5-pruned-emaonly-fp16.safetensors
Первая часть (wget ...) — это собственно команда загрузки, а флаг -O указывает, куда сохранить файл. В данном случае — в наш подключенный бакет, который в системе расположен по пути /mnt/s3/<имя_бакета>.
Когда модель скачалась в бакет, нужно, чтобы ComfyUI «увидел» эту модель. Он ищет ее в своей системной папке:
/comfyui/models/checkpoints/
Именно поэтому создаем символическую ссылку — это просто ярлык, который указывает ComfyUI, где лежит файл. Делается это двумя строками в той же консоли Python:
!ln -s /mnt/s3/<имя_бакета>/v1-5-pruned-emaonly-fp16.safetensors
/comfyui/models/checkpoints/v1-5-pruned-emaonly-fp16.safetensors
Только лучше проверить правильность всех ссылок. У меня, например, запустилось не с первого раза, потому что в мануале Cloud.ru ссылка, которая задает путь к исходному файлу модели в Object Storage, указана в таком виде:
/mnt/s3/<имя_бакета>/comfy_models/v1-5-pruned-emaonly-fp16.safetensors
А у меня файл .safetensors скачался в корневую папку бакета, без подпапки comfy_models. Я просто скопировал пример и минут 20 чесал голову, пытаясь понять, в чем дело. Только потом догадался убрать подпапку из пути.
Шаг 3. Запуск ComfyUI и генерация первого изображения
Теперь можно перейти к работе. В ноутбуке открываем ComfyUI — если всё сделали правильно, интерфейс запустится корректно. Можно попробовать собрать пайплайн вручную или сразу начать с шаблона. Чтобы его открыть, нажимаем на логотип в верхнем левом углу → «Просмотреть шаблоны» → «Генерация изображений».
Появятся ноды, соединенные друг с другом линиями. Это базовый алгоритм для создания картинок.

В верхней ноде «Кодирование текста CLIP» мы вводим позитивный промпт, а в такой же ноде пониже — негативный. Дальше можно поиграть с параметрами: выбрать количество шагов, настроить cfg, зафиксировать или рандомизировать seed.
Сначала я попробовал промпты из мануала, чтобы побыстрее увидеть первый результат.
Позитивный промпт
a highly detailed futuristic humanoid robot
3/4 view
standing in a thoughtful pose while solving a complex problem
intricate mechanical parts
glowing blue circuitry and transparent alloy panels
expressive LED eyes reflecting data streams
ultra realistic skin like polymer texture
subtle steam and dust particles around the joints
soft cinematic rim lighting
depth of field focusing on the robot’s face
background: a sprawling megacity of the future with towering neon lit skyscrapers
floating traffic lanes
holographic billboards
misty evening atmosphere
neon pink and cyan color palette
hyper realistic
photorealistic
ultra detailed
8k
award winning concept art
trending on ArtStation
Негативный:
low res
blurry
jpeg artifacts
watermark
text
logo
cropping
deformed hands
extra limbs
ugly
poorly drawn
unrealistic anatomy
over exposed
underexposed
flat lighting
И негативный тоже
low res
blurry
jpeg artifacts
watermark
text
logo
cropping
deformed hands
extra limbs
ugly
poorly drawn
unrealistic anatomy
over exposed
underexposed
flat lighting
Получились немного неуклюжие арты, но зато за пару секунд:


А это я уже освоился и во всю экспериментировал с собственными промптами:

Что в итоге
Для моей задачи — генерировать серийные арты — ноды оказались удобными. Я построил такую цепочку, что получаю ровно то, что хотел. Например, несколько иллюстраций с разным сюжетом, но в едином стиле или десяток вариантов персонажа за один запрос.
Главное, что ComfyUI дает полный контроль над процессом, а в Evolution Notebooks его можно запустить без заморочек. В готовом образе уже есть:
-
собственно ComfyUI;
-
Python, PyTorch, CUDA и базовые зависимости;
-
готовые шаблоны.
Кое-что придется сделать самому:
-
создать бакет в Object Storage и привязать его к ноутбуку;
-
скачать нужные модели;
-
настроить ссылки из бакета, чтобы ComfyUI увидел модели.
Но это проще, чем собирать и настраивать весь набор локально. Это оказалось тем самым компромиссом между свободой и простотой, который я долго искал.
Теперь я спокойно экспериментирую с пайплайнами, пробую разные модели и не думаю о том, потянет ли это мой компьютер. Дальше хочу разобраться с подключением ControlNet и LoRA. Думаю, что это только начало и что у ComfyUI еще много возможностей, до которых я не добрался. В комментах буду рад почитать впечатления от таких же новичков и советы от тех, кто шарит: что еще можно покрутить и попробовать?
Автор: Zorest12
