Skip to main content
Каждый пункт на этой странице вырос из реального баг-репорта. Если вашей проблемы здесь нет, заведите issue — скорее всего, она тоже окажется на этой странице.

install_custom_node падает с 405 Method Not Allowed на /v2/manager/queue/task

Причина: существует два поколения ComfyUI-Manager. API /v2/manager/* относится к линейке v4 (pip-пакет comfyui_manager ≥ 4.x); выпущенный Manager 3.x — то, что ComfyUI-Manager устанавливает по умолчанию, — обслуживает ту же очередь по другим маршрутам. Решение: обновите comfyui-mcp до 0.24.3 или новее — он сам определяет поколение Manager для каждой цели и говорит на обоих диалектах. Менять Manager не нужно. Необязательно, но рекомендуется — обновитесь до Manager v4 ради возможностей, которых 3.x не умеет удалённо (в первую очередь загрузка моделей по произвольному URL, которую 3.x ограничивает белым списком):
В образе RunPod Manager v4 уже есть. Замечание про useCmCli: true: запасной путь через cm-cli запускает CLI Manager отдельным процессом, поэтому ему нужна локальная файловая система — он не сработает с удалённой целью или с --tunnel, и ему нужен COMFYUI_PYTHON, указывающий на интерпретатор venv вашего ComfyUI, если python нет в PATH. Для удалённых целей правильный механизм — HTTP-путь через Manager (он же по умолчанию).

Кастомный узел, установленный по git-URL, так и не появляется

Установка по идентификатору из реестра работает, а установка по прямой ссылке на GitHub сообщает об успехе, но пакет так и не появляется. Причина: Manager считает установку по произвольному git-URL высокорисковой и молча её пропускает, если уровень безопасности недостаточно свободный (задачу в очереди он при этом всё равно помечает как «done»). В Manager 3.x дополнительно есть отдельный флаг конфигурации allow_git_url_install. Решение: в config.ini Manager (в пользовательском каталоге ComfyUI):
После этого перезапустите ComfyUI. В образе RunPod это значение стоит по умолчанию начиная с образа 1.6 (переменная окружения COMFY_SECURITY_LEVEL его переопределяет; уровень заново выставляется при каждой загрузке). В образах 1.4/1.5 так было задумано, но зашитая переменная COMFY_SECURITY_LEVEL=normal- переопределяла значение по умолчанию из загрузочного скрипта — на этих образах задайте COMFY_SECURITY_LEVEL=weak в окружении пода. Ослабляйте эту настройку только на машине, которую контролируете вы: она снимает защитные ограничения Manager при установке.

RunPod: вкладка панели агента пуста — файлы на месте, но все по 0 байт

ComfyUI показывает comfyui-mcp-panel, но вкладка на боковой панели не загружается; ls -la /workspace/custom_nodes/comfyui-mcp-panel показывает у каждого файла 0 байт. Узлы, установленные пользователем, могут оказаться пустыми точно так же. Причина: на сетевом томе в какой-то момент закончилось место (часто это копирование spotcheck-модели на ~7 ГБ при первой загрузке на маленьком томе или скачивание крупной модели). При ENOSPC cp/git всё равно создают каждый файл, но ничего в него не пишут — а поскольку том сохраняется, эти пустые оболочки переживают любое переразвёртывание. Решение: освободите или увеличьте том, затем перезапустите под. Начиная с образа 1.6 загрузочный скрипт предупреждает, когда на томе мало места или его нет, пропускает копирование spotcheck-модели, если она не помещается, и автоматически восстанавливает панель нулевого размера (повторный клон с GitHub, а без сети — сид из образа). Он также пишет в лог WARN: custom nodes with 0-byte __init__.py с именами остальных сломанных узлов — их переустановите через Manager. На образах <= 1.5 удалите папку панели и перезапустите: rm -rf /workspace/custom_nodes/comfyui-mcp-panel.

Панель пишет «На мосту (ws://127.0.0.1:9180) не слушает ни один агент»

Вы открываете ComfyUI в браузере на другой машине, не на той, где работает оркестратор. Мост по замыслу доступен только по петлевому интерфейсу, а 127.0.0.1 в вашем браузере — это машина браузера, а не сервера. Решение — запустите оркестратор на машине С браузером (это поддерживаемая топология: агент работает на вашей машине и управляет удалённым ComfyUI):
Затем нажмите «Подключить» в панели. На машине с ComfyUI не нужно запускать ничего, кроме самого ComfyUI и кастомного узла панели. Для ComfyUI по https (прокси RunPod) оркестратор сам поднимает мост до защищённого туннеля wss:// — команда та же. Либо запустите оркестратор на стороне сервера (≥ 0.24.5) — вариант для круглосуточной headless-машины (например, отдельного сервера Ollama/OpenClaw), где агент должен жить рядом с ComfyUI, а браузеры подключаются откуда угодно в локальной сети:
Он выведет готовый для вставки ws://<server-ip>:9180/?token=… — впишите его в Настройки → Дополнительно → URL моста в панели на любой машине и нажмите «Подключить». Привязка не к петлевому адресу не запустится без токена, а каждое соединение проверяется на этапе WebSocket-апгрейда (за постоянное время). Относитесь к этому URL как к паролю: кто им владеет, тот управляет агентом.

Вышел новый релиз, но поведение осталось старым

npx агрессивно кэширует пакеты — npx -y comfyui-mcp@latest может отдать сборку многонедельной давности из ~/.npm/_npx.
Проверьте также кастомный узел панели: если он остался от более старой установки на сетевом томе (/workspace на RunPod), эта копия перекрывает автообновляемую копию из образа. Выполните git -C <panel-dir> fetch && git -C <panel-dir> reset --hard origin/main или переустановите comfyui-agent-panel из ComfyUI-Manager, затем перезапустите ComfyUI и жёстко обновите вкладку браузера (Ctrl+Shift+R).

Проброшенный по порту удалённый ComfyUI определяется как локальный (dstack, SSH-туннели)

Удалённый ComfyUI, доступный по localhost:8188 (dstack, ssh -L, kubectl port-forward), сбивает эвристику петлевого адреса: comfyui-mcp считает установку локальной и включает инструменты только для локального режима против файловой системы, на которой ComfyUI нет. Решение (≥ 0.24.1): передайте --force-remote (или COMFYUI_MCP_FORCE_REMOTE=1):
История генераций для удалённых целей хранится в ~/.comfyui-mcp/instances/<host_port>/ (переопределяется через COMFYUI_MCP_DATA_DIR).

Docker: контейнер сразу завершается в режиме HTTP

Привязка к непетлевому хосту без аутентификации намеренно завершается с ошибкой (открытый эндпоинт /mcp на 0.0.0.0 оказался бы доступен извне). Передайте токен или откажитесь от проверки явно:
Режиму stdio (он используется по умолчанию, и именно его используют MCP-клиенты) ничего из этого не нужно.

Агент вообще не вызывает инструменты — ошибок нет, он просто разговаривает

Он описывает ваш воркфлоу вместо того, чтобы его прочитать, или предлагает написать скрипт. Ошибки нет, потому что ничего и не падало: либо инструменты не дошли до вашего клиента, либо ваш клиент блокирует вызовы, либо нужная возможность существует под именем, которое ни разу не всплыло. Снаружи все три случая выглядят одинаково, а решения у них противоположные, так что гадать хуже, чем проверить. Различить их помогают два вопроса к вашему агенту — см. Когда он ничего не говорит. Учтите, что блокировка прав на стороне клиента до этого сервера вообще не доходит, поэтому ни в одном из перечисленных ниже логов её видно не будет.

Локальные модели: вызовы инструментов падают или модель «не видит» инструменты

  • Первым делом: возьмите нашу дообученную модельollama pull artokun/gemma4-comfyui-mcp:e4b (значение Ollama по умолчанию в панели). Это Gemma 4, обученная на самом наборе инструментов comfyui-mcp, что сразу убирает большинство отказов вида «не тот инструмент / кривые аргументы» (:e2b для ~2 ГБ VRAM, :12b для ~8 ГБ — каждая ступень обыгрывает свою исходную базовую модель на арене; :e4b остаётся оптимальным выбором).
  • У gemma3 в Ollama нет нативного вызова инструментов — не поддерживается; используйте наш дообученный вариант выше, стоковую gemma4 (e4b и выше), qwen3 или llama3.1+.
  • Для небольших моделей включайте компактный режим инструментов — по умолчанию он выключен, поэтому запускайте сервер с --compact (или COMFYUI_MCP_TOOL_MODE=compact). Без него полная схема инструментов переполняет маленький контекст, и модель начинает выдумывать имена инструментов.
  • Холодная загрузка модели может занять 30 с и больше до первого токена — сторожевой таймер панели это учитывает, но запрос, который падает мгновенно, обычно означает, что тег модели не скачан (ollama pull <tag>).
  • Все запросы вдруг падают / соединение на 11434 отклоняется — не запущено приложение или демон Ollama. Выход из приложения в трее убивает вместе с ним и API, а это легко сделать случайно, пока агент работает (панель никак не предупреждает, что используется локальный бэкенд). Запустите приложение заново (или ollama serve) и переподключитесь — сессии продолжаются, перезапускать панель не нужно.

Где искать логи

  • Оркестратор: терминал, в котором запущен connect / --panel-orchestrator.
  • Сторона ComfyUI: MCP-инструмент get_system_stats (action:"logs") или поток логов пода на RunPod.
  • JS панели: консоль devtools в браузере (клиент моста пишет в лог переходы подключения/переподключения).
  • Здоровье одним вызовом: инструмент get_system_stats (action:"health") собирает версию/GPU/VRAM/очередь/каталоги моделей/недавние ошибки.