Custom Nodes

custom nodes — расширения ComfyUI с дополнительными функциями

Раздел
Инструменты
Обновлено
11.08.26

Custom Nodes — сторонние расширения ComfyUI. Они добавляют новые загрузчики, модели, способы управления, обработку видео, звука и изображений. В обычной современной сборке пакеты из Registry устанавливаются через встроенный Manager; ручная установка нужна для отдельных репозиториев и ревизий.

Коротко

Коротко. Custom Nodes — расширения ComfyUI с Python-кодом и, иногда, собственной частью интерфейса. Они добавляют в граф видео, FaceID, апскейл, новые загрузчики и другие операции. Пакеты из официального Registry удобнее ставить через встроенный ComfyUI Manager; ручной git clone остаётся для форков, веток и пакетов вне реестра.

Что это такое

Дизайнер запускает базовый text-to-image workflow, а затем открывает чужой граф с нодами для видео. ComfyUI показывает отсутствующие типы. Через встроенный Manager он ищет соответствующий пакет в Registry, проверяет автора и зависимости, устанавливает совместимую версию и перезапускает приложение.

Так работают custom nodes — сторонние пакеты, которые добавляют в ComfyUI новые типы блоков.

  • Загрузчики для дополнительных моделей и форматов.
  • Управление генерацией по позе, глубине, маске или референсу.
  • Обработка изображений, видео, звука и 3D-данных.
  • Интеграции с локальными программами и внешними API.
  • Служебные ноды для логики, имён файлов, сравнения и пакетной работы.

Как это работает

Каждая custom node — это Python-файл с классом, реализующим определённый интерфейс ComfyUI. Внутри класса:

  • Метаданные: название, категория, описание, иконка.
  • INPUT_TYPES: какие входы принимает (изображение, текст, число).
  • RETURN_TYPES: что выдаёт.
  • FUNCTION: Python-функция, которая запускается при выполнении.

Файлы лежат в ComfyUI/custom_nodes/<имя_пакета>/. ComfyUI при запуске сканирует эту папку, импортирует все node-классы, добавляет их в реестр доступных операций.

Установка двумя путями:

  1. Через ComfyUI Manager. В Desktop он включён по умолчанию, а в новых portable/manual-сборках активируется как часть ядра. Manager ищет пакеты в Registry, устанавливает выбранную версию и помогает найти недостающие ноды.

  2. Вручную. Склонировать репозиторий в custom_nodes, установить зависимости именно в окружение этой сборки ComfyUI и перезапустить приложение. Точные команды берут из инструкции самого пакета.

Главные источники нод:

  • GitHub. Большинство пакетов — открытый код.
  • ComfyUI Registry. Официальный каталог опубликованных пакетов.
  • Ссылка автора workflow. Помогает найти именно тот пакет и версию, на которых собирался граф.

Пример на практике

Видеомонтажёр открывает workflow для серии обложек и видит отсутствующую ноду сравнения изображений. Вместо установки всех пакетов из чужого списка он проходит короткий маршрут:

  1. Смотрит точное имя отсутствующего типа.
  2. Находит связанный пакет через Manager и Registry.
  3. Открывает описание и проверяет, действительно ли нода нужна графу.
  4. Делает снимок рабочего окружения и устанавливает пакет.
  5. После перезапуска запускает небольшой контрольный workflow.

Если пакет меняет только удобство интерфейса, а не сам результат, его можно заменить базовой нодой и уменьшить число зависимостей.

Обновлять все пакеты вместе с ComfyUI не обязательно. Для рабочей сборки безопаснее менять небольшую группу компонентов и после каждого изменения запускать контрольный граф.

Если вы пришли из ComfyUI

Самая частая история с custom nodes выглядит так: вы скачали красивый workflow, бросили JSON на canvas, а вместо аккуратной схемы увидели красные блоки, Missing Node Types и тревожную простыню в terminal. Это не катастрофа. ComfyUI просто честно говорит: «я не знаю, из каких деталей собран этот граф».

Обычно помогает такой порядок:

  1. В workflow виден список Missing Node Types.
  2. Раздел Missing в Manager показывает совпадения из Registry.
  3. После установки нужен полный перезапуск ComfyUI, потому что обновление вкладки не перезагружает Python-код.
  4. Оставшаяся красная нода обычно сопровождается в terminal ошибкой импорта, конфликтом версии или сообщением об отсутствующей модели.
  5. При ручной установке зависимости должны попасть именно в Python-окружение, из которого запущен ComfyUI.

Быстрая диагностика:

Симптом Причина Что сделать
Красные ноды пакет отсутствует или тип переименован найти источник через Manager и автора workflow
Ошибка импорта зависимость отсутствует или конфликтует прочитать журнал и проверить окружение
Workflow не открывается несовместимая схема или пакет сравнить версии и журнал загрузки
Нода есть, результата нет нет модели или неверен путь сверить требования ноды и каталоги
После обновления всё сломалось одновременно изменилось несколько компонентов сравнить со снимком и вернуть последнюю рабочую комбинацию

С чем часто путают

  • Custom Nodes и Workflow — Workflow это граф из соединённых нод. Custom Nodes — отдельные строительные блоки для этого графа. Один Workflow часто использует много custom nodes.
  • Custom Node и Model — Node это код-расширение. Model — это веса (.safetensors). Часто ноды требуют конкретных моделей, но это разные сущности.
  • Custom Node и Plugin — в ComfyUI это синонимы. В других программах (Photoshop) — разное.
  • Custom Nodes и ComfyUI Core — Core это базовый ComfyUI без расширений. Custom Nodes добавляются поверх.
  • JS-extensions и Python-nodes — некоторые ноды имеют ещё JavaScript-часть для UI (Mask Editor, Image Comparer). Это разные слои одного пакета.

Частые ошибки и заблуждения

  • «Чем больше нод, тем лучше». Каждый пакет добавляет зависимости, время старта и ещё одну точку отказа. Компактная сборка проще воспроизводится и чинится.
  • «Все custom nodes безопасны». Custom node — произвольный Python-код. Registry и известный автор снижают риск, но не превращают пакет в изолированный плагин.
  • «Можно ставить и удалять без последствий». Зависимости (Python-пакеты) обычно остаются. Удалить custom node не удаляет установленные через pip библиотеки.
  • «Все ноды работают со всеми моделями». Многие ноды рассчитаны на конкретную архитектуру, формат тензоров или набор весов. Похожее название не гарантирует совместимость.
  • «Для любой функции уже есть готовая нода». Иногда нужный пакет отсутствует, заброшен или не подходит лицензией. Тогда процесс собирают из базовых блоков либо пишут и сопровождают собственное расширение.

Связанные термины

  • ComfyUI — основа, для которой создаются custom nodes.
  • ComfyUI с нуля — большой маршрут по базовому workflow и диагностике красных нод.
  • ComfyUI Manager — главный инструмент установки и обновления пакетов.
  • Workflow — граф, в котором используются custom nodes.
  • JSON Workflow — формат сохранения workflow'а и переноски схем между людьми.
  • Node Pack — обычно несколько связанных нод в одном пакете.
  • AnimateDiff / IP-Adapter / ControlNet — популярные custom node-пакеты и семейства расширений.
  • KSampler — базовая нода генерации, вокруг которой часто строятся расширенные workflow.
  • Stable Diffusion / SDXL / FLUX — модели, под которые custom nodes часто ставят отдельные загрузчики, патчеры и workflow.
  • GitHub — главный хостинг custom nodes.

Частые вопросы

Где искать custom nodes? В Registry через встроенный Manager и по ссылке автора workflow. Каталоги и подборки помогают найти кандидатов, но перед установкой проверяются репозиторий, дата обновления, зависимости и требуемые права.

Что делать, если workflow пишет Missing Node Types? Откройте поиск отсутствующих нод во встроенном Manager. Если совпадения нет, скопируйте название типа и найдите его в репозитории или описании исходного workflow. Нода могла переехать в другой пакет или сменить имя.

Почему custom node установилась, но всё равно не работает? Чаще всего не поставились зависимости из requirements.txt или они поставились не в тот venv. Смотрите terminal, а не только браузер: там будет конкретная ошибка вроде ModuleNotFoundError, ImportError или конфликта версии numpy, torch, opencv.

Как удалить custom node? Отключите или удалите пакет через встроенный Manager. Ручное удаление каталога убирает код нод, но установленные Python-библиотеки и загруженные модели могут остаться в окружении.

Что делать, если custom node ломает ComfyUI? Сначала отключите пакет через Manager или штатный безопасный режим запуска. Затем откройте журнал импорта и сравните состояние со снимком. Ручной способ зависит от загрузчика и версии, поэтому его лучше брать из документации текущей сборки.

Можно ли держать несколько установок ComfyUI? Да. Одну установку можно оставить стабильной для рабочих проектов, а вторую использовать для новых нод и рискованных обновлений. Так эксперимент с зависимостями не ломает проверенную сборку.

Можно ли запустить custom nodes на Mac? Только если пакет и все его операции поддерживают доступный backend. Зависимость от CUDA, собственного расширения или неподдерживаемого типа данных может помешать запуску на другой платформе.

Сколько custom nodes можно ставить? Фиксированного безопасного числа нет. Каждый лишний пакет увеличивает время загрузки, поверхность атаки и вероятность конфликта, поэтому в рабочей сборке оставляют только используемые зависимости.

Кто пишет custom nodes? Сообщество: разработчики, художники, исследователи. Некоторые ноды от компаний (Stability AI, Black Forest Labs), другие — от частных лиц.

Главное

Custom Nodes превращают базовый ComfyUI в конструктор для видео, лиц, контроля, апскейла, аудио, 3D и LLM. Встроенный Manager сделал установку заметно спокойнее, но не отменил конфликты зависимостей и риск стороннего Python-кода. Missing Node Types, Registry, terminal и snapshot дают понятную цепочку диагностики, а отдельная экспериментальная сборка оставляет рабочие workflow воспроизводимыми.