Большой разбор
ComfyUI с нуля: как собрать первый workflow и перестать бояться нод
ComfyUI — это интерфейс для генерации изображений и видео, где весь процесс собран как граф из нод: модель, промпты, KSampler, VAE, ControlNet, LoRA и сохранение файла видны на экране. В отличие от интерфейсов с одной большой кнопкой, ComfyUI показывает маршрут картинки от входных данных до результата. Поэтому он сложнее на старте, но удобнее для повторяемых workflow, диагностики ошибок, SDXL, FLUX, ControlNet, IP-Adapter и кастомных нод.
Сцена первая: перед вами не программа, а пульт управления
Первое знакомство с ComfyUI редко бывает романтичным. Открывается тёмное поле, на нём какие-то прямоугольники, между ними тянутся цветные линии. В Automatic1111 было проще: написал prompt, нажал Generate, подождал, получил картинку. Здесь вместо кнопки — схема, похожая на монтажный стол, аудиомикшер и карту метро одновременно.
Именно в этот момент многие закрывают вкладку.
Зря. ComfyUI не пытается быть проще, чем генерация на самом деле. Он показывает процесс честно: вот модель, вот CLIP читает prompt, вот KSampler гонит латент по шуму, вот VAE разворачивает результат в пиксели. Каждая линия — не украшение, а смысловая связь. Если картинка сломалась, можно не гадать «модель плохая» или «prompt слабый». Можно посмотреть, где именно поток пошёл не туда.
Этот разбор — не справка по всем нодам. Их слишком много, и завтра появятся новые. Здесь важнее другое: понять логику ComfyUI так, чтобы первый рабочий workflow перестал выглядеть как клубок проводов.
Почему ComfyUI вообще нужен
ComfyUI стоит открывать не потому, что он модный. Мода быстро выгорает. Его открывают, когда обычного интерфейса уже мало.
Например, нужно сделать серию картинок с одним персонажем, но разными позами. Или собрать pipeline: ControlNet держит композицию, LoRA добавляет стиль, IP-Adapter сохраняет лицо, второй проход чистит детали, а в конце апскейлер вытягивает финальный кадр. В интерфейсе с одной кнопкой такая схема превращается в набор вкладок, чекбоксов и магических расширений. В ComfyUI она лежит перед глазами.
Сила ComfyUI в трёх вещах.
Первая — прозрачность. Вы видите, что к чему подключено. Если промпт не попал в KSampler, это видно. Если VAE не дошёл до Decode, это видно. Если workflow просит модель, которой нет в папке, это видно не по настроению, а по ошибке.
Вторая — повторяемость. Workflow можно сохранить как JSON Workflow, отправить коллеге, положить в проект, вернуться через месяц. Это важно для продакшена. Хороший кадр не должен быть случайной удачей, которую невозможно повторить.
Третья — расширяемость. Custom Nodes превращают ComfyUI из генератора картинок в конструктор почти любого генеративного пайплайна: видео, лица, апскейл, 3D, batch-обработка, маски, LLM-узлы, интеграции с файлами. Здесь же начинается опасность: слишком легко поставить всё подряд и получить тяжелую, капризную сборку. Но об этом позже.
Самая простая модель: workflow как кухня
Удобно думать о workflow как о кухне.
Load Checkpoint — это кладовая с основным продуктом: SDXL, FLUX, SD 1.5 или другой моделью. CLIP Text Encode — повар, который читает ваш заказ: что должно быть в кадре и чего быть не должно. Empty Latent Image — чистая форма для будущей картинки. KSampler — плита, где всё реально готовится. VAE Decode — сервировка: превращает внутренний латент в изображение, которое можно увидеть.
Звучит почти по-домашнему. Но если перепутать провода, кухня быстро превращается в странный ресторан. Повар получил не тот заказ, плита включилась без продуктов, сервировка взяла не ту посуду. На выходе может быть серый шум, пластиковое лицо, картинка не того размера или пустой результат.
Поэтому первый workflow должен быть не красивым, а чистым.
Минимальная схема для text-to-image:
- Load Checkpoint загружает модель, CLIP и VAE.
- CLIP Text Encode для положительного prompt.
- CLIP Text Encode для negative prompt.
- Empty Latent Image задаёт размер и batch.
- KSampler получает модель, два conditioning, latent и параметры генерации.
- VAE Decode переводит латент в картинку.
- Save Image сохраняет результат.
Если эта цепочка работает, у вас уже есть фундамент. Не нужно сразу ставить ControlNet, десяток LoRA, FaceDetailer, Ultimate SD Upscale и три кастомных пакета. Сначала добейтесь честной картинки из базового workflow. Потом расширяйте.
Установка: не превращайте старт в археологию
Самый надёжный ориентир — официальный репозиторий ComfyUI на GitHub. Там меняются инструкции, зависимости и варианты запуска, поэтому любые пересказы быстро стареют. Смысл установки, однако, остаётся прежним: нужен Python, зависимости, папка с моделями и запуск сервера, который открывается в браузере.
На Windows многие начинают с portable-сборки, потому что она убирает часть боли с Python-окружением. На Linux и macOS чаще ставят через обычный git clone и виртуальное окружение. Для серьёзной работы лучше не смешивать ComfyUI с системным Python. Отдельное окружение — скучная, но спасительная привычка.
После установки проверьте три вещи:
- ComfyUI открывается в браузере без ошибок в terminal.
- В папке
models/checkpointsлежит хотя бы одна модель. - Базовый workflow генерирует картинку без custom nodes.
Если третий пункт не выполнен, не ставьте расширения. Сначала почините базу. Иначе вы будете искать проблему в сорока местах сразу.
Куда класть модели
У ComfyUI много папок под модели, и это нормально. Разные типы файлов должны лежать в разных местах. Checkpoint — в models/checkpoints, LoRA — в models/loras, VAE — в models/vae, ControlNet — в models/controlnet, upscale-модели — в models/upscale_models.
Начинающие часто совершают одну и ту же ошибку: скачивают файл, кладут «куда-нибудь рядом», перезапускают интерфейс и удивляются, почему в списке ничего не появилось. ComfyUI не угадывает ваши намерения. Он смотрит в конкретные папки.
Для первого запуска лучше взять одну модель и не распыляться:
- SDXL — хороший старт для общей генерации 1024×1024.
- FLUX — сильный вариант для красивых, современных кадров, но workflow и параметры могут отличаться.
- SD 1.5 — старый, лёгкий, быстрый и всё ещё полезный для множества ControlNet/AnimateDiff/legacy workflow.
Не нужно скачивать десять checkpoint сразу. Один рабочий checkpoint даёт больше пользы, чем папка на 80 ГБ, где половина файлов неизвестно откуда.
KSampler: сердце workflow
Если ComfyUI — карта, то KSampler — место, где происходит самая нервная часть маршрута. Именно здесь seed, steps, CFG, sampler, scheduler и denoise превращают шум в изображение.
Для первого workflow параметры можно держать спокойными:
| Модель | Размер | steps | CFG | sampler | scheduler | denoise |
|---|---|---|---|---|---|---|
| SD 1.5 | 512×768 или 768×768 | 20-25 | 6-8 | dpmpp_2m |
karras |
1.0 |
| SDXL | 1024×1024 | 25-35 | 5-7 | dpmpp_2m_sde |
karras |
1.0 |
| FLUX | 1024×1024 | 20-28 | 1-3 | euler |
simple |
1.0 |
Это не закон. Это безопасная стартовая площадка.
Главный совет: фиксируйте seed. Без фиксированного seed вы не понимаете, что улучшило картинку. Prompt поменялся? CFG? Sampler? Модель просто выдала другой случайный кадр? Всё смешивается.
С фиксированным seed workflow становится лабораторией. Поменяли CFG — видите влияние CFG. Поменяли sampler — видите влияние sampler. Поменяли negative prompt — видите, что именно исчезло из кадра.
Denoise: маленький ползунок, который меняет всё
В text-to-image denoise обычно стоит 1.0. Это значит: начать с полного шума и нарисовать кадр заново. В img2img, inpainting, second pass и upscaling всё интереснее.
Denoise отвечает за то, насколько глубоко модель переписывает входной латент. На 0.2 она почти уважает исходник. На 0.5 начинает переосмысливать. На 0.8 уже оставляет от исходника общую композицию. На 1.0 связь почти исчезает.
Здесь часто рождается разочарование. Человек загружает картинку, хочет лёгкую ретушь, а ComfyUI рисует новый кадр. Или наоборот: хочет сменить стиль, а результат почти не меняется. Виноват не мистический «плохой workflow», а denoise.
Для диагностики держите простую лесенку: 0.25, 0.4, 0.55, 0.7. Один seed, один prompt, одна модель. После четырёх прогонов становится ясно, где модель ещё держится за исходник, а где начинает писать новую историю.
VAE: если картинка стала серой
VAE обычно не замечают, пока он не ломает кадр. Всё вроде подключено: checkpoint загружен, prompt нормальный, KSampler отработал. Но картинка бледная, мыльная, серая или с дикими цветами.
Первое, что стоит проверить: какой VAE попадает в VAE Decode.
У многих моделей VAE встроен в checkpoint. У некоторых старых SD 1.5-моделей внешний VAE заметно улучшает цвет. У SDXL и FLUX свои особенности, и смешивать их с чужими VAE опасно. Если workflow скачан с Civitai или GitHub, в нём может быть явная нода Load VAE. Она не всегда нужна вам. Иногда она была нужна только автору workflow под конкретную модель.
Практический тест простой: один seed, один prompt, два прогона — со встроенным VAE и с внешним. Если разница в цвете и деталях драматическая, VAE важен. Если нет — лучше не усложнять схему.
Custom Nodes: ставить только после базы
ComfyUI без custom nodes уже умеет многое. Но почти все интересные workflow из интернета используют расширения. В какой-то момент вы скачаете красивую схему, бросите её на canvas и увидите красные блоки: Missing Node Types.
Это не катастрофа. Это ComfyUI говорит: «у меня нет деталей, из которых собран этот граф».
Обычно помогает ComfyUI Manager: он умеет искать и ставить missing custom nodes, обновлять пакеты и управлять расширениями. Но Manager не отменяет здравый смысл. Custom node — это Python-код. Он может конфликтовать с другими пакетами, тянуть зависимости, ломаться после update, требовать отдельные модели.
Рабочая привычка:
- Ставьте только ноды, которые нужны текущему workflow.
- После установки полностью перезапускайте ComfyUI.
- Смотрите terminal, если нода красная или ничего не происходит.
- Не обновляйте ядро, PyTorch и все custom nodes перед дедлайном.
- Для работы держите стабильную сборку, для экспериментов — отдельную.
Красивые workflow из интернета — это не всегда рецепт. Иногда это фотография чужой кухни: у автора другие модели, другая версия нод, другие пути к файлам, другая видеокарта. Переносить можно, но лучше понимать, что именно переносится.
Как чинить workflow без паники
Паника начинается, когда всё меняется сразу. Был один workflow, затем поставили пять нод, сменили модель, подняли CFG, добавили LoRA, включили ControlNet, поменяли размер, а потом картинка стала хуже. Теперь непонятно, кто виноват.
ComfyUI любит дисциплину.
Первое правило: фиксируйте seed. Второе: меняйте один параметр за раз. Третье: сохраняйте рабочие версии workflow. Не final_final_3.json, а понятные имена: sdxl-base-clean.json, sdxl-lora-portrait-v02.json, flux-controlnet-test.json.
Если workflow сломался, идите сверху вниз:
- Модель найдена? Load Checkpoint видит файл и не ругается в terminal.
- Prompt подключён? Положительный и negative CLIP Text Encode идут в KSampler.
- Latent правильного размера? Для SDXL лучше начинать с 1024, для SD 1.5 — с меньшего.
- KSampler получает model, conditioning и latent? Без одного входа схема не имеет смысла.
- VAE Decode получает правильный VAE? Особенно после скачанных workflow.
- Save Image подключён? Иногда результат есть, но его просто не сохраняют.
Звучит как чек-лист пилота. Так и должно быть. Генерация становится спокойнее, когда у неё есть предполётный осмотр.
Что добавлять после первого workflow
Когда базовая цепочка стабильна, можно расширяться.
LoRA добавляет стиль, персонажа, одежду, объект или визуальную привычку. Начинайте с веса 0.6-0.9, а не с максимума. Если лицо стало пластиковым или стиль раздавил композицию, LoRA слишком громко говорит.
ControlNet удерживает позу, глубину, линии, карту сегментации или композицию. Это полезно, когда prompt уже не справляется с точностью. Но ControlNet требует чистого входа: плохая depth map даёт плохое управление.
IP-Adapter помогает переносить визуальный референс: лицо, стиль, объект, настроение кадра. Его легко «пережечь», поэтому лучше добавлять после стабильной базовой генерации.
Upscaler / second pass нужен не всегда. Если композиция плохая, апскейл сделает плохую композицию резче. Сначала смысл, потом пиксели.
Batch и queue полезны, когда workflow уже настроен. На раннем этапе batch только ускоряет хаос: вы получаете больше вариантов, но не понимаете, почему они такие.
Первый практический маршрут
Вот маршрут, который я бы выбрал для первого серьёзного дня с ComfyUI.
Шаг 1. Установить ComfyUI по официальной инструкции и запустить без ошибок. Не ставить custom nodes.
Шаг 2. Положить один checkpoint в правильную папку. Например SDXL-модель для старта.
Шаг 3. Собрать минимальный text-to-image workflow: Load Checkpoint, два CLIP Text Encode, Empty Latent, KSampler, VAE Decode, Save Image.
Шаг 4. Зафиксировать seed и сделать четыре генерации, меняя только prompt. Понять, как модель слышит текст.
Шаг 5. Вернуть prompt, сделать четыре генерации с разным CFG. Не искать «идеальное», а почувствовать диапазон.
Шаг 6. Попробовать другой sampler или scheduler. Один раз. Не десять.
Шаг 7. Сохранить workflow как sdxl-base-clean.json. Это ваша точка возврата.
Шаг 8. Добавить одну LoRA или один ControlNet. Проверить. Сохранить отдельную версию.
Шаг 9. Только теперь ставить custom nodes под конкретную задачу, а не «на всякий случай».
После этого ComfyUI перестаёт быть страшным. Он не становится простым, но становится читаемым.
Частые ошибки новичков
Ставить всё подряд. Каждая custom node — потенциальная зависимость, конфликт и новая причина падения. Минимальная сборка часто лучше огромной.
Не смотреть terminal. Браузер показывает красную ноду, terminal показывает причину. Там живут ModuleNotFoundError, ошибка версии, отсутствие файла, CUDA-проблема.
Смешивать модели и workflow. Workflow под SD 1.5 не всегда нормально работает с SDXL. SDXL workflow не обязан подходить FLUX. Если автор workflow указал модель, это не декоративная подпись.
Крутить все параметры сразу. Это главный способ потерять контроль. ComfyUI хорош как лаборатория, но лаборатория не работает, если одновременно менять температуру, реагент, свет и время.
Игнорировать VAE. Серая картинка, странные цвета и мыло часто начинаются не в prompt, а в неправильном Decode.
Хранить workflow без порядка. Через месяц файл newtest2.json ничего не скажет. Называйте workflow по задаче, модели и версии.
Как это связано с Neurosaver
У Neurosaver уже есть отдельные статьи про ComfyUI, KSampler, VAE, Denoising Strength, Custom Nodes, ComfyUI Manager и JSON Workflow. Но словарь отвечает на вопрос «что это такое». Этот разбор отвечает на другой: как всё это собрать в живой маршрут.
ComfyUI хорош тем, что в нём можно мыслить не одной картинкой, а системой. Один workflow — для чистого SDXL. Второй — для портрета с LoRA. Третий — для ControlNet. Четвёртый — для апскейла. Постепенно у вас появляется не папка случайных настроек, а набор рабочих инструментов.
Это и есть взрослый переход: от «получилось красиво» к «я понимаю, почему получилось, и могу повторить».
Источники и куда смотреть дальше
- Официальный репозиторий ComfyUI — установка, запуск, структура проекта и актуальные изменения.
- ComfyUI Manager — установка и управление custom nodes.
- ComfyUI examples — примеры workflow для разных моделей и задач.
Главное
ComfyUI сначала пугает, потому что показывает всю механику генерации сразу. Но именно это делает его сильным. Минимальный workflow собирается из семи узлов: checkpoint, два prompt, latent, KSampler, VAE Decode и Save Image. Дальше всё добавляется слоями: LoRA для характера, ControlNet для контроля, IP-Adapter для референсов, custom nodes для специальных задач. Если фиксировать seed, менять один параметр за раз и сохранять рабочие версии, ComfyUI быстро превращается из хаоса проводов в понятную карту производства изображений.
Карта дальше — термины из словаря
Если хотите идти глубже — вот все термины, упомянутые в этом гиде. Можно открыть в новой вкладке и читать параллельно.
Подписка Neurosaver
Получать новые разборы Neurosaver
Большие материалы выходят не каждый день, зато их стоит читать спокойно. Подпишитесь, и мы пришлём новые разборы и важные обновления словаря.