Що таке ComfyUI і як він працює: вузли, воркфлоу, приклади

Оновлено:
Мова: 🇺🇦
Що таке ComfyUI і як він працює: вузли, воркфлоу, приклади

ComfyUI часто лякає новачків: замість звичної форми з полем для промпту і кнопкою «Generate» ви бачите полотно із прямокутників, з'єднаних проводами. Але за цим стоїть дуже проста ідея, яка буде знайома кожному, хто колись будував конвеєр обробки даних. Розберемося, як усе влаштовано, на прикладі генерації першого зображення.

Ця стаття — база для всього, що ви читатимете далі про локальну генерацію зображень та відео: без розуміння вузлів інструкції зі встановлення моделей перетворюються на «з'єднай ці квадратики, як на скриншоті».

Протестовано на: ComfyUI 1.1.7 (збірка 261013p26tnl6re), macOS на MacBook з Apple M1 і 16 ГБ пам'яті, дата перевірки: 14 жовтня 2026. Інтерфейс і назви деяких вузлів можуть змінюватись між версіями, тому звіряйтесь з офіційною документацією.

📚 Зміст статті

🎯 Розділ 1. Що таке ComfyUI і для чого він потрібен

ComfyUI — це відкрита програма для запуску генеративних моделей (зображення, відео, аудіо), де весь процес генерації збирається з окремих блоків-вузлів на візуальному полотні. Кожен вузол виконує одну дію, а з'єднання між ними показують, куди йдуть дані.

Замість одного «чорного ящика» з кнопкою ви бачите кожен етап: завантаження моделі, кодування тексту, власне генерацію, перетворення результату в картинку. Це дає повний контроль, але вимагає розібратись у логіці.

ComfyUI — це не «генератор картинок», а конструктор конвеєрів для генеративних моделей.

Проєкт має відкритий код і працює локально на вашому комп'ютері: моделі, промпти та результати залишаються у вас. Код доступний на GitHub. Є також настільна версія з простим встановленням і режим для запуску на сервері.

Є одна умова: «локально» діє, поки ви не підключаєте вузли, які звертаються до зовнішніх API. Якщо коротко, зовнішній API — це чужий сервер, на який програма надсилає ваш запит (промпт, а іноді й зображення), а у відповідь отримує готовий результат. Обчислення відбуваються не на вашому комп'ютері, а в хмарі, тому за такі запити зазвичай доводиться платити за використання, а ваші дані залишають вашу машину. У ComfyUI такі можливості є, але це окремі вузли, і їх потрібно підключати свідомо. Про те, як їх розпізнати, я розповідаю в розділі 7.

Скоріш за все, якщо ви читаєте цю статтю, вас цікавить саме безкоштовний варіант: запустити все у себе, без підписок і оплати за кожну генерацію. Саме на цьому шляху я і зосереджуся. Самі моделі та ComfyUI безкоштовні, а справжня «ціна» — це ваше залізо, час генерації та електроенергія. Якщо ж комусь потрібна швидкість або якість, яких не дає домашній комп'ютер, хмарні сервіси залишаються законним вибором, просто це вже інша історія.

Для чого його використовують

  • генерація зображень (Stable Diffusion, SDXL, FLUX та інші моделі);
  • image-to-image, інпейнтинг, апскейл, керування за допомогою ControlNet;
  • генерація відео з тексту або зображення;
  • автоматизація: воркфлоу можна запускати через API;
  • експерименти з новими моделями: підтримка нових релізів у ComfyUI часто з'являється дуже швидко.

Text-to-image та image-to-image: у чому різниця

Ці два терміни зустрічаються в статті постійно, тому розберемо їх одразу.

  • Text-to-image («текст у зображення») — ви пишете лише текстовий опис, і модель створює картинку з нуля. Наприклад: «затишний дерев'яний будиночок у лісі, золота година». Початкової картинки немає.
  • Image-to-image («зображення у зображення») — ви завантажуєте власне фото або малюнок і додаєте промпт, який описує бажаний результат. Модель бере вашу картинку за основу й перетворює її. Наприклад: завантажили фото будинку й написали «той самий будинок узимку, у снігу».

У image-to-image є важливе налаштування — наскільки сильно модель може змінювати оригінал. У ComfyUI це параметр denoise у вузлі KSampler: що менше значення, то більше збережеться від вашого фото; що ближче до одиниці, то вільніше модель відступає від оригіналу. Конкретні значення підбирайте експериментально під свою модель.

Те саме стосується відео: text-to-video створює ролик за одним описом, а image-to-video «оживляє» вашу картинку, використовуючи її як початковий кадр, а промпт описує рух. Як це виглядає у воркфлоу, я покажу в розділах 5 і 8.

🎯 Розділ 2. Чим він відрізняється від звичайних веб-інтерфейсів генераторів

У класичних інтерфейсах (форма з полями) процес генерації прихований і фіксований. У ComfyUI він явно намальований як граф, тому ви можете змінювати будь-який етап, комбінувати моделі та повторювати чужі воркфлоу один в один.
Критерій Інтерфейс-форма (на кшталт AUTOMATIC1111 чи онлайн-сервісів) ComfyUI
Порогом входуНижчий: заповнили поля і натиснули кнопкуВищий: треба розуміти, що з чим з'єднано
Прозорість процесуЕтапи приховані за налаштуваннямиКожен етап — окремий вузол
ГнучкістьОбмежена наявними функціями та розширеннямиБудь-яка комбінація вузлів
ВідтворюваністьПотрібно переказувати налаштуванняВоркфлоу — це файл, який можна відкрити в іншого
АвтоматизаціяЗалежить від інтерфейсу та плагінівВоркфлоу можна запускати через API
Нові моделіПідтримка залежить від розробників інтерфейсуНативна підтримка нових моделей часто з'являється одразу

Це не означає, що ComfyUI «кращий» для всіх. Якщо вам потрібна пара картинок без вивчення нічого нового, форма або онлайн-сервіс швидші. ComfyUI виграє, коли ви хочете зрозуміти процес, повторювати результат або будувати складні схеми (наприклад, генерація → апскейл → корекція облич → збереження).

🎯 Розділ 3. Як це влаштовано: граф вузлів, порти та з'єднання

Воркфлоу в ComfyUI — це спрямований граф без циклів: вузли отримують дані на входах, виконують роботу і віддають результат на виходах. З'єднати можна лише порти сумісних типів.

З чого складається вузол

  • Заголовок — назва вузла (наприклад, KSampler).
  • Входи (inputs) — точки зліва, куди приходять дані від інших вузлів.
  • Віджети (widgets) — поля налаштувань усередині вузла: числа, списки, текст.
  • Виходи (outputs) — точки справа, звідки дані йдуть далі.

Типи даних і кольори портів

Кожен порт має тип, і з'єднати можна лише збіжні. Це схоже на типізований конвеєр у коді: компілятор не дасть передати String туди, де очікується Image. Найпоширеніші типи:

ТипЩо це
MODELОсновна нейромережа, яка виконує генерацію
CLIPТекстовий кодувальник, що перетворює слова на числа
VAEКомпонент, що переводить зображення між «піксельним» і «латентним» простором
CONDITIONINGЗакодований промпт (умова генерації)
LATENTСтисле «внутрішнє» представлення зображення, з яким працює модель
IMAGEЗвичайне зображення в пікселях
MASKМаска (наприклад, для інпейнтингу)

Як виконується граф

Коли ви натискаєте «Run» (у деяких версіях — «Queue»), ComfyUI іде від вихідних вузлів (наприклад, збереження зображення) назад і обчислює лише ті вузли, від яких вони залежать. Важлива особливість: результати вузлів кешуються. Якщо ви змінили тільки текст промпту, модель повторно завантажувати не потрібно, і перерахуються лише ті вузли, що залежать від змінених даних.

Для розробника зручна аналогія: це граф залежностей із кешуванням проміжних результатів, схожий на систему збірки.

Корисні елементи полотна

  • Group — рамка, яка об'єднує вузли візуально (корисно для читабельності).
  • Reroute — точка для «перегину» дроту, щоб схема не перетворилась на спагеті.
  • Primitive / Note — вузол для спільного значення на кілька місць і нотатки до воркфлоу.

🎯 Розділ 4. Основні типи вузлів: завантаження моделі, текстове кодування, семплер, VAE, збереження результату

Базовий воркфлоу для зображення складається з шести вузлів: завантаження моделі, два кодування тексту, порожній латентний простір, семплер, VAE-декодер і збереження.
ВузолЩо робитьНа що звернути увагу
Load Checkpoint Завантажує файл моделі й віддає три виходи: MODEL, CLIP, VAE Файл має лежати у відповідній папці моделей. У новіших моделях ці компоненти часто завантажуються окремими вузлами (завантаження diffusion-моделі, текстового кодувальника, VAE).
CLIP Text Encode Перетворює текст промпту на CONDITIONING Зазвичай два вузли: позитивний і негативний промпт. Деякі сучасні моделі обходяться без негативного.
Empty Latent Image Створює порожню «заготовку» потрібного розміру Тут задаються ширина, висота та кількість зображень у пакеті. Розмір впливає на пам'ять і якість.
KSampler Серце генерації: поступово «проявляє» зображення з шуму за вашим промптом Налаштування описані нижче.
VAE Decode Перетворює латентне зображення на звичайні пікселі Потрібен VAE, сумісний з моделлю.
Save Image / Preview Image Зберігає результат у папку output або лише показує його Без вихідного вузла граф нічого не виконає.

Налаштування KSampler простими словами

  • seed — початкове число для шуму. Те саме значення з тими самими налаштуваннями дає повторюваний результат (в межах тієї ж версії та обладнання).
  • control_after_generate — що робити із seed після запуску: залишити (fixed) чи змінювати (randomize).
  • steps — кількість кроків «проявлення». Більше не завжди краще: після певного порогу різниця непомітна.
  • cfg — наскільки сильно модель слідує промпту. Оптимальне значення залежить від моделі: дивіться рекомендації її автора.
  • sampler_name і scheduler — алгоритм і розклад кроків. Починайте з рекомендацій для вашої моделі.
  • denoise — скільки шуму «перемальовувати»: для генерації з нуля зазвичай 1.0, для image-to-image менше.

Що ще є в екосистемі

Окрім базових вузлів, є завантаження LoRA, ControlNet, вузли для завантаження вхідного зображення, апскейлери, вузли для масок, умовної логіки та інше. Усе це збирається за тим самим принципом: тип виходу має збігатись із типом входу.

🎯 Розділ 5. Як проходить генерація зображення крок за кроком (діаграма потоку даних)

Модель не малює картинку одразу: вона починає з випадкового шуму в латентному просторі та за кілька кроків «очищає» його відповідно до промпту, а потім VAE перетворює результат на звичайне зображення.

Ось схема базового воркфлоу «текст → зображення» (кольори ліній відповідають типам даних):

Схема потоку даних у базовому воркфлоу ComfyUI Load Checkpoint передає MODEL у KSampler, CLIP у два вузли CLIP Text Encode та VAE у VAE Decode. Empty Latent Image та кодовані промпти надходять у KSampler, результат проходить VAE Decode і зберігається у Save Image. Load Checkpoint CLIP MODEL VAE CLIP Text Encode позитивний промпт CLIP Text Encode негативний промпт Empty Latent Image ширина × висота KSampler seed, steps, cfg, sampler, scheduler, denoise VAE Decode латент → пікселі Save Image результат у файл Лінії: MODEL · CLIP · VAE · CONDITIONING · LATENT · IMAGE

Що відбувається по кроках

  1. Load Checkpoint читає файл моделі й віддає три компоненти: саму модель, текстовий кодувальник і VAE.
  2. CLIP Text Encode (двічі) перетворює позитивний і негативний тексти на закодовані умови.
  3. Empty Latent Image створює «порожнє полотно» у латентному просторі заданого розміру.
  4. KSampler бере модель, обидві умови і латент, а потім за N кроків прибирає шум відповідно до промпту.
  5. VAE Decode перетворює готовий латент на зображення в пікселях.
  6. Save Image записує файл у папку output.

Навіщо потрібен «латентний простір»

Працювати з повнорозмірними пікселями дуже дорого. Тому модель оперує стисненим представленням, яке менше за розміром, а VAE на початку й наприкінці переводить дані між двома просторами. Саме тому розмір картинки в Empty Latent Image так сильно впливає на споживання пам'яті.

Варіація: image-to-image

Замість Empty Latent Image ви беретесь за Load Image і VAE Encode: вхідна картинка переводиться в латент, а в KSampler ви ставите denoise менше одиниці. Чим менше значення, тим більше від оригіналу збережеться.

💼 Розділ 6. Воркфлоу: збереження, імпорт, JSON, готові шаблони

Воркфлоу — це звичайний JSON-файл, який можна зберігати, передавати й відкривати. Крім того, ComfyUI зазвичай записує воркфлоу в метадані згенерованих PNG, тому картинку можна перетягнути на полотно й одразу відновити схему, якою її створили.

Як зберегти й відкрити

  • Зберегти воркфлоу через меню інтерфейсу (файл .json).
  • Відкрити: меню відкриття файлу або перетягнути .json чи PNG на полотно.
  • Готові шаблони: у сучасних версіях є вбудований каталог шаблонів (розділ Templates / Browse Templates у меню).

Два формати JSON

UI-формат зберігає всю візуальну схему: позиції вузлів, розміри, групи. API-формат — спрощений опис графа без візуальних деталей, який використовують для запуску воркфлоу з коду. Експортувати його можна через відповідний пункт меню (Export API / Save (API Format), назва залежить від версії).

Спрощений приклад API-формату для нашого базового воркфлоу:


{
  "4": {
    "class_type": "CheckpointLoaderSimple",
    "inputs": { "ckpt_name": "model.safetensors" }
  },
  "6": {
    "class_type": "CLIPTextEncode",
    "inputs": { "text": "a cozy cabin in the forest, golden hour", "clip": ["4", 1] }
  },
  "7": {
    "class_type": "CLIPTextEncode",
    "inputs": { "text": "blurry, low quality", "clip": ["4", 1] }
  },
  "5": {
    "class_type": "EmptyLatentImage",
    "inputs": { "width": 1024, "height": 1024, "batch_size": 1 }
  },
  "3": {
    "class_type": "KSampler",
    "inputs": {
      "model": ["4", 0], "positive": ["6", 0], "negative": ["7", 0],
      "latent_image": ["5", 0],
      "seed": 42, "steps": 20, "cfg": 7.0,
      "sampler_name": "euler", "scheduler": "normal", "denoise": 1.0
    }
  },
  "8": {
    "class_type": "VAEDecode",
    "inputs": { "samples": ["3", 0], "vae": ["4", 2] }
  },
  "9": {
    "class_type": "SaveImage",
    "inputs": { "images": ["8", 0], "filename_prefix": "demo" }
  }
}

Зверніть увагу на запис ["4", 1]: це посилання «вузол №4, вихід з індексом 1» (тобто CLIP із Load Checkpoint). Саме так у JSON кодуються дроти. Значення параметрів (cfg, steps, sampler_name) тут ілюстративні: підбирайте їх під свою модель.

На що звернути увагу при імпорті чужого воркфлоу

  • Назви моделей. Воркфлоу посилається на файли, яких у вас може не бути: їх треба завантажити й покласти у відповідні папки.
  • Кастомні вузли. Якщо воркфлоу використовує сторонні вузли, ви побачите червоні блоки (див. розділ 9).
  • Конфіденційність. Метадані в PNG можуть містити ваш промпт і всю схему. Якщо публікуєте картинки, а воркфлоу показувати не хочете, видаліть метадані (багато соцмереж і сервісів роблять це автоматично, але покладатись на це не варто).
  • Довіра. Воркфлоу сам по собі лише опис, але він може підтягнути кастомні вузли, які виконують код (розділ 7).

💼 Розділ 7. Кастомні вузли та ComfyUI Manager: користь і ризики

Кастомні вузли — це розширення, написані спільнотою, які додають нові можливості. Вони виконують код на вашому комп'ютері, тому встановлювати їх варто так само обережно, як будь-який сторонній застосунок.

Що таке ComfyUI Manager

Це розширення (в багатьох збірках воно вже вбудоване або встановлюється одним кроком), яке дозволяє знаходити й встановлювати кастомні вузли, оновлювати їх і підтягувати відсутні вузли для імпортованого воркфлоу. Зручно, але саме тому важливо розуміти, що ви ставите.

Користь

  • Підтримка функцій, яких немає в базовому ComfyUI (спеціальні апскейлери, робота з відео, інтеграції).
  • Можливість запускати воркфлоу, зібрані спільнотою.

Ризики

  • Виконання довільного коду. Кастомний вузол — це Python-код із доступом до ваших файлів і мережі. Були випадки шкідливих розширень для інструментів цього типу, тому довіряти слід перевіреним авторам.
  • Залежності та стабільність. Вузли встановлюють власні пакети, що може зламати середовище або конфліктувати з іншими вузлами.
  • Застарілі вузли. Після оновлення ComfyUI частина вузлів перестає працювати.
  • Зовнішні запити. Деякі вузли звертаються до хмарних API, що суперечить ідеї «повністю локально».
  • Формат моделей. Файли у форматі .ckpt можуть містити виконуваний код, тому за можливості обирайте .safetensors.

Практичні правила безпеки

  1. Дивіться на репозиторій: активність, кількість користувачів, відгуки, зрозумілий опис.
  2. Не встановлюйте відсутні вузли «слідом за кожним» чужим воркфлоу, не розібравшись, що саме вони роблять.
  3. Експериментуйте в окремому середовищі (віртуальне середовище, контейнер або окрема копія ComfyUI), а не там, де лежать ваші робочі проєкти.
  4. Перед великими оновленнями робіть копію папки з вузлами та списком залежностей.
  5. Перевіряйте, чи не звертається вузол до зовнішніх сервісів, якщо потрібна повністю локальна робота.
  6. Завантажуйте моделі лише з надійних джерел і віддавайте перевагу .safetensors.

💼 Розділ 8. Як працює відео в ComfyUI і чим воно відрізняється від картинок

Принцип той самий: латент → семплер → декодер → збереження. Різниця в тому, що замість одного кадру модель працює з послідовністю кадрів, тому латент має додатковий вимір (час), а вимоги до пам'яті й часу зростають.

Що змінюється у воркфлоу

  • Латент для відео. Замість Empty Latent Image використовується вузол, який створює латент із вказаною кількістю кадрів (залежить від моделі).
  • Спеціальні вузли моделі. Кожне сімейство моделей (Wan, LTX, HunyuanVideo та інші) має власні вузли та шаблони воркфлоу.
  • Image-to-video. Вхідне зображення кодується й використовується як початковий кадр, а промпт описує рух.
  • Збірка відео. Після декодування послідовності кадрів окремий вузол збирає їх у відеофайл.

Обмеження на кількість кадрів

Багато відеомоделей вимагають, щоб кількість кадрів відповідала певній формулі (наприклад, виду «кратне N плюс один»). Точне правило залежить від моделі, тому дивіться документацію та шаблони воркфлоу саме вашої моделі.

Чому відео важче

Кількість даних росте разом з розв'язністю й кількістю кадрів, і так само зростають споживання пам'яті та час генерації. Окремо стоять обмеження на Mac: через особливості оптимізації рушія Metal у зв'язці з PyTorch, система не підтримує специфічний підтип тензорів Float8_e4m3fn. Через це офіційні FP8-моделі та деякі нові текстові енкодери викликають помилку інференсу, тому власникам Apple Silicon доводиться шукати обхідні шляхи — наприклад, використовувати моделі у форматі GGUF. [lilting.ch: LTX-2 vs Wan 2.2 on Mac] Про те, чи вистачить вашого заліза, читайте у статті AI-відео на Mac M1 16 ГБ: чи вистачить?

Покрокове налаштування image-to-video — в окремій інструкції: Як генерувати відео з фото локально.

💼 Розділ 9. Типові помилки новачків: червоні вузли, відсутні моделі, нестача пам'яті

Більшість проблем новачків зводиться до трьох причин: відсутній вузол, відсутній або неправильно розташований файл моделі та нестача пам'яті. Повідомлення в консолі ComfyUI майже завжди підказує, що саме не так.
СимптомЙмовірна причинаЩо робити
Червоні вузли після імпорту воркфлоу Не встановлені кастомні вузли, які використовує воркфлоу Подивіться, які вузли відсутні, і встановіть їх через Manager (після перевірки репозиторію), потім перезапустіть ComfyUI.
У вузлі завантаження моделі повідомлення про значення, якого немає у списку Файл моделі відсутній або лежить не в тій папці Завантажте модель, покладіть у відповідну папку (checkpoints, loras, vae тощо; назви папок для diffusion-моделей і текстових кодувальників залежать від версії), оновіть список моделей у ComfyUI.
З'єднання підсвічується червоним або видає помилку сумісності Типи портів несумісні Перевірте типи (MODEL, CLIP, LATENT тощо). В сучасній ComfyUI просто витягніть дріт на порожнє місце — програма сама запропонує сумісний проміжний вузол (наприклад, VAE Decode між латентом і зображенням).
Воркфлоу запускається, але результату немає Немає вихідного вузла Додайте Save Image або Preview Image і підключіть до них зображення.
Помилка «out of memory» або система «зависає» Нестача пам'яті: завелика розв'язність, кількість кадрів або важка модель Зменште розмір і кількість кадрів, використайте легшу або квантовану модель, закрийте інші програми. Для відео перегляньте вимоги до заліза.
Чорне або спотворене зображення Несумісний VAE чи проблеми з точністю обчислень Використайте VAE, рекомендований для вашої моделі, та перевірте налаштування точності.
Дуже повільний перший запуск Модель завантажується з диска в пам'ять Це нормально: наступні запуски швидші завдяки кешуванню.
На Mac не працює FP8-модель (Помилка Undefined type Float8_e4m3fn) Специфічний підтип тензорів FP8 не підтримується рушієм Metal у PyTorch для Apple Silicon Замініть модель та текстовий енкодер на квантований формат GGUF (наприклад, версії Q4_K_M або Q5_K_M) — він чудово працює на Mac.
Усе зламалось після оновлення Несумісність кастомних вузлів із новою версією Оновіть або тимчасово вимкніть проблемні вузли, відкотіться до робочої копії.

Звичка №1: читайте консоль. Саме там ComfyUI пише, який вузол і який параметр викликали помилку.

❓ Часті питання (FAQ)

Що таке вузли (nodes) у ComfyUI?

Це окремі блоки, кожен з яких виконує одну дію: завантажує модель, кодує текст, генерує зображення, зберігає файл. Вузли з'єднуються дротами, які показують, куди передаються дані.

Що таке воркфлоу?

Це схема з вузлів і з'єднань, яка описує весь процес генерації. Її можна зберегти в JSON, передати іншій людині або відкрити з метаданих PNG.

Чи потрібно вміти програмувати, щоб працювати з ComfyUI?

Ні. Для використання готових воркфлоу достатньо розуміти, що з чим з'єднано. Програмування знадобиться, якщо ви пишете власні вузли або автоматизуєте запуск через API.

Чи працює ComfyUI без інтернету?

Після встановлення та завантаження моделей базові воркфлоу можуть працювати локально. Але кастомні вузли можуть звертатись до зовнішніх сервісів, тому якщо локальність критична, перевіряйте, що саме встановлено.

Чим ComfyUI відрізняється від AUTOMATIC1111?

AUTOMATIC1111 — інтерфейс у вигляді форми, де етапи приховані. ComfyUI показує кожен етап як окремий вузол, що дає більше гнучкості, але потребує більше часу на освоєння.

Чи можна запускати ComfyUI на Mac?

Так, на Apple Silicon через Metal (MPS). Зображення зазвичай працюють добре, а для відео існують обмеження за форматами моделей і швидкістю. Детальніше — у статті про тест на Mac M1 16 ГБ.

Як запустити воркфлоу з коду?

Експортуйте воркфлоу в API-форматі й надсилайте його на сервер ComfyUI через його HTTP-інтерфейс. Конкретні адреси та формат запитів дивіться в документації.

✅ Висновки

ComfyUI — це візуальний конструктор конвеєрів для генеративних моделей. Розібравшись із базовими типами вузлів, портів і графом виконання, ви зможете читати чужі воркфлоу, шукати причини помилок і будувати власні схеми.
  • Базовий воркфлоу складається з шести вузлів: завантаження моделі, два кодування тексту, порожній латент, семплер, декодер і збереження.
  • З'єднувати можна лише порти сумісних типів, а граф виконується від вихідних вузлів назад із кешуванням результатів.
  • Воркфлоу — це JSON-файл (його можна відновити й з PNG), і при імпорті чужих схем варто перевіряти модель і кастомні вузли.
  • Кастомні вузли виконують код на вашому комп'ютері: встановлюйте їх обдумано.
  • Відео будується за тим самим принципом, але з послідовністю кадрів і значно вищими вимогами до пам'яті.

Що читати далі:

📖 Джерела