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 ограничивает белым списком):
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):
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):
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 оказался бы доступен извне). Передайте токен
или откажитесь от проверки явно:
Агент вообще не вызывает инструменты — ошибок нет, он просто разговаривает
Он описывает ваш воркфлоу вместо того, чтобы его прочитать, или предлагает написать скрипт. Ошибки нет, потому что ничего и не падало: либо инструменты не дошли до вашего клиента, либо ваш клиент блокирует вызовы, либо нужная возможность существует под именем, которое ни разу не всплыло. Снаружи все три случая выглядят одинаково, а решения у них противоположные, так что гадать хуже, чем проверить. Различить их помогают два вопроса к вашему агенту — см. Когда он ничего не говорит. Учтите, что блокировка прав на стороне клиента до этого сервера вообще не доходит, поэтому ни в одном из перечисленных ниже логов её видно не будет.Локальные модели: вызовы инструментов падают или модель «не видит» инструменты
- Первым делом: возьмите нашу дообученную модель —
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/очередь/каталоги моделей/недавние ошибки.