Custom Nodes
custom nodes — расширения ComfyUI с дополнительными функциями
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.
- Служебные ноды для логики, имён файлов, сравнения и пакетной работы.
Как это работает
Пакет обычно содержит Python-код операций, а иногда ещё и JavaScript для интерфейса. Одна нода не обязательно равна одному файлу: пакет может регистрировать несколько типов нод из разных модулей.
В распространённом классическом API класс описывает входы через INPUT_TYPES, выходы через RETURN_TYPES, а имя выполняемого метода — через FUNCTION. Он становится доступен ComfyUI после регистрации в NODE_CLASS_MAPPINGS. В других версиях API схема описания отличается; пример расширения должен соответствовать выбранному API.
При запуске ComfyUI загружает разрешённые пакеты из custom_nodes. Ошибка импорта может оставить пакет на диске, но не добавить его ноды в список доступных. Поэтому наличие папки ещё не означает успешную установку.
Установка двумя путями:
-
Через ComfyUI Manager. В Desktop он включён по умолчанию, для portable/manual-установок могут понадобиться зависимости Manager и параметр запуска
--enable-manager. Это описано в инструкции встроенного Manager. Manager ищет пакеты в Registry, устанавливает выбранную версию и помогает найти недостающие ноды. -
Вручную. Склонировать репозиторий в
custom_nodes, установить зависимости именно в окружение этой сборки ComfyUI и перезапустить приложение. Точные команды берут из инструкции самого пакета.
Главные источники нод:
- GitHub. Большинство пакетов — открытый код.
- ComfyUI Registry. Официальный каталог опубликованных пакетов.
- Ссылка автора workflow. Помогает найти именно тот пакет и версию, на которых собирался граф.
Пример на практике
Видеомонтажёр открывает workflow для серии обложек и видит отсутствующую ноду сравнения изображений. Вместо установки всех пакетов из чужого списка он проходит короткий маршрут:
- Смотрит точное имя отсутствующего типа.
- Находит связанный пакет через Manager и Registry.
- Открывает описание и проверяет, действительно ли нода нужна графу.
- Сохраняет рабочую конфигурацию и резервную копию важных файлов, затем устанавливает пакет.
- После перезапуска запускает небольшой контрольный workflow.
Иногда отсутствующий блок нужен только для просмотра или сравнения результата. Если его можно убрать либо заменить штатными средствами без изменения вычислений, дополнительный пакет не понадобится.
Обновлять все пакеты вместе с ComfyUI не обязательно. Для рабочей сборки безопаснее менять небольшую группу компонентов и после каждого изменения запускать контрольный граф.
Если вы пришли из ComfyUI
После загрузки чужого JSON на рабочем поле могут появиться красные блоки и сообщение Missing Node Types. Оно означает, что ComfyUI не смог сопоставить типы из графа с доступными нодами. Пакет может отсутствовать, не загрузиться из-за ошибки или больше не содержать нужный тип.
Обычно помогает такой порядок:
- В workflow виден список
Missing Node Types. - Раздел
Missingв Manager показывает совпадения из Registry. - После установки нужен полный перезапуск ComfyUI, потому что обновление вкладки не перезагружает Python-код.
- Если тип всё ещё не найден, в журнале запуска стоит проверить ошибки импорта и конфликт версий. Отсутствие весов модели — отдельная проблема: сама нода при этом может быть доступна.
- При ручной установке зависимости должны попасть именно в Python-окружение, из которого запущен ComfyUI.
Быстрая диагностика:
| Симптом | Возможная причина | Что проверить |
|---|---|---|
| Красные ноды | пакет отсутствует или тип переименован | найти источник через Manager и автора workflow |
| Ошибка импорта | зависимость отсутствует или конфликтует | прочитать журнал и проверить окружение |
| Workflow не открывается | несовместимая схема или пакет | сравнить версии и журнал загрузки |
| Нода есть, результата нет | ошибка выполнения, отсутствующие веса, неверные входы или путь | прочитать ошибку, сверить входы и требования ноды |
| После обновления всё сломалось | одновременно изменилось несколько компонентов | сравнить со снимком и вернуть последнюю рабочую комбинацию |
С чем часто путают
- Custom Nodes и Workflow — Workflow это граф из соединённых нод. Custom Nodes — отдельные строительные блоки для этого графа. Один Workflow часто использует много custom nodes.
- Custom Node и Model — Node это код-расширение. Model — это веса (
.safetensors). Часто ноды требуют конкретных моделей, но это разные сущности. - Custom Node и плагин — пакет нод можно назвать расширением. Но расширение интерфейса не обязательно добавляет вычислительные ноды, поэтому эти слова не всегда обозначают одно и то же.
- 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-пакеты) обычно остаются. Удаление пакета нод не обязательно удаляет библиотеки, установленные через pip.
- «Все ноды работают со всеми моделями». Многие ноды рассчитаны на конкретную архитектуру, формат тензоров или набор весов. Похожее название не гарантирует совместимость.
- «Для любой функции уже есть готовая нода». Иногда нужный пакет отсутствует, заброшен или не подходит лицензией. Тогда процесс собирают из базовых блоков либо пишут и сопровождают собственное расширение.
Связанные термины
- ComfyUI — основа, для которой создаются custom nodes.
- ComfyUI с нуля — большой маршрут по базовому workflow и диагностике красных нод.
- ComfyUI Manager — главный инструмент установки и обновления пакетов.
- Workflow — граф, в котором используются custom nodes.
- JSON Workflow — формат сохранения и передачи схемы между установками.
- Node Pack — обычно несколько связанных нод в одном пакете.
- AnimateDiff / IP-Adapter / ControlNet — методы и адаптеры, поддержка которых может быть встроенной или предоставляться дополнительными пакетами.
- 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 или они поставились не в то Python-окружение. Важен журнал запуска, а не только сообщение в браузере: там будет конкретная ошибка вроде ModuleNotFoundError, ImportError или конфликта версии numpy, torch, opencv.
Как удалить custom node? Отключите или удалите пакет через встроенный Manager. Ручное удаление каталога убирает код нод, но установленные Python-библиотеки и загруженные модели могут остаться в окружении.
Что делать, если custom node ломает ComfyUI? Сначала отключите пакет через Manager или штатный безопасный режим запуска. Затем откройте журнал импорта и сравните состояние со снимком. Ручной способ зависит от загрузчика и версии, поэтому его лучше брать из документации текущей сборки.
Можно ли держать несколько установок ComfyUI? Да. Одну установку можно оставить стабильной для рабочих проектов, а вторую использовать для новых нод и рискованных обновлений. Для этого установки должны использовать раздельные Python-окружения. Две папки с одним общим окружением не защищают от конфликта библиотек.
Можно ли запустить custom nodes на Mac? Только если пакет и все его операции поддерживают доступный способ вычислений на CPU или GPU. Зависимость от CUDA, собственного расширения или неподдерживаемого типа данных может помешать запуску на другой платформе.
Сколько custom nodes можно ставить? Фиксированного безопасного числа нет. Каждый лишний пакет увеличивает время загрузки, поверхность атаки и вероятность конфликта, поэтому в рабочей сборке оставляют только используемые зависимости.
Кто пишет custom nodes? Сообщество: разработчики, художники, исследователи. Пакеты могут выпускать как компании, так и отдельные авторы.
Главное
Custom Nodes превращают базовый ComfyUI в конструктор для видео, лиц, контроля, апскейла, аудио, 3D и LLM. Встроенный Manager помогает найти и установить пакет, но не отменяет конфликты зависимостей и риск стороннего кода. При сбое полезно связать точное имя ноды с её пакетом и прочитать ошибку импорта. Рабочую конфигурацию проще сохранить, если проверять обновления в отдельном окружении и держать резервные копии.
Описание интерфейса нод и примеры регистрации находятся в документации разработчика ComfyUI.