Требования к модели
Будьте честны с собой насчёт модели, которую приносите. Минимальная спецификация для полного опыта — модель с **вызовом инструментов + мышлением- vision**:
Размещённые модели, которые влезают в полную спецификацию, меняются ежемесячно
— проверяйте карточку модели у провайдера на три возможности, а не доверяйте
списку. На середину 2026: Xiaomi MiMo-V2.5 (vision + инструменты + длинный
контекст) влезает в полную спецификацию дёшево; модели класса DeepSeek-V3.x /
GLM / MiniMax имеют сильный вызов инструментов + мышление, но текстовые
варианты теряют цикл vision; небольшие локальные модели (ниже) обычно держат
вызов инструментов и бросают остальное.
Компактный режим инструментов
Полная поверхность — 37 инструментов с богатыми JSON-схемами (~200 КБ, примерно 50k токенов, наtools/list). Большинство обвязок не-Claude впрыскивают каждую
зарегистрированную схему прямо в контекст модели — нормально для передовых
моделей, смертельно для локальной 4B. Компактный режим инструментов
регистрирует ровно три мета-инструмента и держит настоящий каталог за ними:
Цикл модели:
list_tools → выбрать → describe_tool → call_tool.
Схемы входят в контекст по одному инструменту. Мета-инструменты нарочно
прощают странности небольших моделей: args может быть объектом или
JSON-строкой, принимаются обычные алиасы полей (tool_name, arguments), а
ошибки валидации возвращаются с ожидаемой схемой, чтобы модель могла себя
поправить вместо того, чтобы умирать на непрозрачной ошибке протокола.
Компактный режим — opt-in: прямая поверхность стоит по умолчанию, поэтому
небольшой модели нужно одно из этого (флаг побеждает переменную окружения):
--full по-прежнему принимается и теперь no-op.
Автовыбор: по модели, не по провайдеру
В локальных LLM-бэкендах панели (Ollama / LM Studio / llama.cpp / совместимый с OpenAI), когда вы не выбрали режим, модель выбирает один:- модель, чей id несёт число параметров 70B или выше
(
llama3.3:70b,gpt-oss:120b,mixtral:8x22b), получает полную поверхность; - всё меньшее остаётся компактным;
- id модели без читаемого числа параметров (
moonshotai/kimi-k2.5) считается неизвестным, а не маленьким, и получает задокументированный компактный запасной вариант.
COMFYUI_MCP_TOOL_MODE=full
навязывает полную поверхность 4B-модели; COMFYUI_MCP_TOOL_MODE=compact
навязывает роутер 405B. Автовыбор заполняет только пробел, где ничего не
выбрано.
Порог 70B нарочно консервативен: это единственная цифра, которую кто-либо
реально утверждал по этой оси, поэтому ничто не повышается наугад.
COMFYUI_MCP_FULL_SURFACE_MIN_PARAMS_B=30 снижает его, если хотите найти,
где на самом деле потолок вашего железа.
Системный промпт следует за режимом. Компактный промпт говорит модели, что
у неё шесть инструментов и ComfyUI идёт через call_tool; когда выбрана
полная поверхность, это просто неправда, поэтому промпт полного режима говорит,
что инструменты ComfyUI объявлены напрямую, и держит описание роутера только
для panel_*. Автовыбрать полный, отрицая, что инструменты существуют, было
бы хуже значения по умолчанию, которое он заменил.
Активный режим и его причина печатаются в строке готовности бэкенда,
например Tool mode: compact — chosen for this MODEL: "qwen3:4b" is ~4B parameters, below the 70B full-surface threshold…, так что рычаг больше
никогда не невидим.
Этот автовыбор покрывает полосу локальных LLM панели. Полоса HTTP Codex /
Gemini / Grok / Copilot остаётся прибитой к компактному по другой причине —
их собственные бюджеты инструментов иначе вытесняют инструменты
panel_* —
а значение по умолчанию автономного MCP-сервера не меняется.Вход аудио
На бэкендеollama (нативный /api/chat) аудио доходит до модели только
там, где модель реально сообщает, что умеет слышать. Перед отправкой бэкенд
спрашивает POST /api/show возможности этой модели:
audio, вложение отклоняется вслух
— со списком возможностей, который сообщил сервер, и командой pull модели,
которая умеет слышать — а не бросается в запрос, где модель ответила бы только
из вашего текста. То же относится к файлу, который не аудиоформат, или который
есть, но нулевого размера.
Доставить байты — ещё не вся работа. Измерено вживую против gemma4:e2b: WAV
демонстративно в контексте (555 токенов промпта, /api/show сообщает
audio), модель всё равно ответила «I do not have the capability to
transcribe audio — my functions are limited to operating ComfyUI». Системный
промпт панели рисует её как оператора графа, и небольшая модель сама себя
выговаривает из чувства, которое у неё на самом деле есть. Поэтому ход, чьё
аудио проверили по возможностям и прикрепили, ещё несёт короткую заметку,
говорящую модели, что аудио здесь и что она должна отвечать из того, что
слышит. С этой заметкой та же модель транскрибировала правильно в четырёх
прогонах из четырёх.
На OpenAI-совместимых бэкендах (LM Studio, llama.cpp, OpenRouter, свой)
нет эндпоинта возможностей, чтобы спросить. Аудио отправляется как часть
содержимого input_audio, и ход несёт явную строку «I cannot confirm the
model actually receives them». Отказывать значило бы отказать в аудио каждому
эндпоинту, у которого просто нет API возможностей; страж, который не может
сработать, — не вердикт, но это и не подтверждение, и формулировка так и
говорит.
См. Бэкенды → Вход аудио
про то, что делает каждый другой провайдер.
Настройка одной командой
comfyui-mcp setup <agent> записывает запись сервера в собственный конфиг-
файл обвязки (сливаясь с тем, что уже там — существующие серверы, комментарии
в YAML, всё сохраняется):
--compact / --full переопределяют значение по умолчанию на агента,
--comfyui-url <url> встраивает вашу цель ComfyUI (локальную, LAN или proxy
URL RunPod), --dry-run печатает слитый конфиг вместо записи.
Hermes Agent
~/.hermes/config.yaml (добавьте руками, если предпочитаете):
/reload-mcp (или перезапустите Hermes). Hermes ставит
префикс инструментам, так что модель видит mcp_comfyui_list_tools,
mcp_comfyui_describe_tool и mcp_comfyui_call_tool — три определения в
контексте вместо двухсот.
На передовой модели (через Nous Portal / OpenRouter) можно перезапустить
setup с
--full и по желанию использовать собственный белый список
tools.include Hermes. Компактный — правильное значение по умолчанию для
всего меньшего.comfyui, который ведёт ComfyUI
по сырому REST из Python-скриптов. Он работает, но старше этого сервера —
MCP-маршрут даёт вам создание/валидацию воркфлоу, управление моделями и
кастомными узлами, установочные пакеты, управление очередью и самодиагностику.
Отключите скилл, если агент продолжает тянуться к нему вместо MCP-инструментов.
OpenClaw
~/.openclaw/openclaw.json:
Copilot CLI
~/.copilot/mcp-config.json:
--compact, если направляете
Copilot на меньшую модель). Проверьте через /mcp show внутри copilot.
Наши дообученные локальные модели (бесплатно, рекомендуем)
Если хотите гонять агента локально бесплатно, начните здесь. Мы дообучили семейство Gemma 4 специально под comfyui-mcp: QLoRA на 1055 проверенных сервером траекториях вызова инструментов, синтезированных против живого ComfyUI — покрывая полную поверхность из 178 инструментов (113 MCP- 65 панели) — так что модель знает этот точный набор инструментов нативно, вместо того чтобы встречать его холодной.
Каждая ступень теперь обыгрывает свою стоковую базу. Переобучение
:e2b v2
(обучение с двух видов: прямые вызовы инструментов И конверт развёрнутого
роутера) исправило регрессию формата call_tool v1 — ноль кривых конвертов
по вердиктным прогонам. Рекомендации по размеру стоят: :e4b — сладкая точка
(всего ~1,5 ГБ больше e2b и +4 на арене); :e2b теперь легитимный выбор для
тесная VRAM; :12b покупает стабильность на длинных многошаговых задачах, а
не сырой балл.
Бэкенд Ollama панели по умолчанию на
:e4b — выберите Ollama
(локально) в выборе бэкенда, и это просто работает, как только модель
подтянута. Без аккаунта, без API-ключа, без стоимости за токен.
Окно контекста: теги поставляют запечённое окно 65 536 токенов, и
оркестратор ему уступает (стоковые модели получают 16K). Архитектура
поддерживает до 128K (:e2b/:e4b) и 256K (:12b) — поднимите через
COMFYUI_MCP_OLLAMA_NUM_CTX=131072, если есть VRAM (KV-кэш растёт с
окном). Если агент начинает «забывать» посреди разговора, смотрите лог
оркестратора: он предупреждает, когда ход заполняет ≥85% окна. Веса, LoRA-
адаптеры и конвейер обучения открыты: artokun/gemma4-comfyui-mcp
(датасет: artokun/comfyui-mcp-trajectories).
LM Studio
Панель говорит с LM Studio нативно: выберите LM Studio в выборе бэкенда, и оркестратор ведёт его локальный сервер (http://127.0.0.1:1234/v1,
переопределяется через COMFYUI_MCP_LMSTUDIO_HOST). Настройка в два клика:
установите с lmstudio.ai, затем Developer → Start
Server с загруженной моделью с вызовом инструментов. Выбор модели
зеркалирует то, что предлагает сервер; без заданного значения по умолчанию
первая отданная модель принимается автоматически. Оркестратор ведёт
полный жизненный цикл без рук: сам стартует сервер, когда нужно,
JIT-загружает вашу модель, освобождает её VRAM, пока идёт рендер ComfyUI
(чат держится и отвечает, когда рендер закончится), выгружает уходящую
модель при смене модели и отпускает всё, когда вы переключаетесь на другого
провайдера.
Наши дообученные GGUF работают и здесь — ищите artokun/gemma4-comfyui-mcp в
загрузчике моделей LM Studio и берите model-q4_k_m.gguf. Ждите ту же паузу
холодной JIT-загрузки на первом сообщении, что и у Ollama (30 с+ нормально).
llama.cpp (llama-server)
Гоняете сыройllama.cpp? Выберите llama.cpp в выборе бэкенда —
оркестратор ведёт OpenAI-совместимый эндпоинт llama-server
(http://127.0.0.1:8080/v1, переопределяется через COMFYUI_MCP_LLAMACPP_HOST):
-c) — агент предупреждает,
если сервер работает ниже 16K (полезная нагрузка инструментов это требует).
Вызов инструментов включён по умолчанию в текущих сборках; старым сборкам
нужен --jinja (панель обнаруживает неспособный к инструментам сервер при
подключении и говорит именно это). Единственная загруженная модель
принимается автоматически — выбирать не нужно.
На коробке с одним GPU локальный llama-server (или llama-swap перед ним)
входит в ту же передачу VRAM, что Ollama и LM Studio: пока идёт рендер
ComfyUI, ваш чат держится и отвечает в момент окончания рендера. Поскольку
у llama-server нет API выгрузки (а llama-swap меняет модели апстрим по
запросу), передача только держит — явно ничего не выгружается и не греется.
Удалённый COMFYUI_MCP_LLAMACPP_HOST — чужой GPU и никогда не
гейтится. Передача включена по умолчанию для всех трёх локальных бэкендов;
откажитесь через COMFYUI_MCP_PAUSE_LOCAL_ON_GEN=0 (устаревший
COMFYUI_MCP_OLLAMA_PAUSE_ON_GEN=0 всё ещё чтится).
Свой эндпоинт (любой OpenAI-совместимый сервер)
Всё, что говорит на/v1/chat/completions — vLLM, DeepSeek, Together, Azure
OpenAI, llama-server на другой коробке, корпоративный шлюз — втыкается как
провайдер Свой эндпоинт:
- Настройки ComfyUI → Comfy MCP Agent → Свой эндпоинт → задайте
базовый URL эндпоинта (включите
/v1, напримерhttp://192.168.1.20:8000/v1). - Если серверу нужен ключ: Задать ключ API… — маскированный ввод; ключ
хранится
0600оркестратором в~/.comfyui-mcp, никогда в настройках ComfyUI или чате. - Выберите Свой эндпоинт в выборе бэкенда и нажмите «Подключить».
/v1/models сервера; серверы с одной моделью
принимаются автоматически, или задайте id модели по умолчанию явно для
эндпоинтов, которые не перечисляют модели. Аварийные люки env:
COMFYUI_MCP_CUSTOM_BASE_URL, COMFYUI_MCP_CUSTOM_MODEL,
COMFYUI_MCP_CUSTOM_API_KEY. Модель должна поддерживать вызов
инструментов.
Ollama и локальные модели — LLM Arena
Любая MCP-обвязка, которая говорит с Ollama (или OpenAI-совместимым эндпоинтом), может вести компактный режим с локальной моделью. Две повторяемые обвязки едут в репозитории:npm run test:local-llm (быстрая
проверка одной модели) и node scripts/llm-arena.mjs — ComfyUI LLM Arena,
которая гоняет поле моделей через идентичный набор задач против живого
ComfyUI и проверяет каждый исход против сервера, никогда против заявлений
модели.
Баллы локального яруса на полной лестнице из 10 сценариев (RTX 4090, ComfyUI
0.27, температура 0 — см. страницу Арены про лестницу задач
и таблицу лидеров всех ярусов, включая передовые и размещённые модели):
Выводы: класс qwen3/gemma4 уверенно закрывает одноинструментные задачи
(здоровье, установленные модели, поиск в реестре, очередь) и набирает баллы
на более трудных полосах, но многостадийная композиция графа (один граф с
двумя связанными выходами, двухступенчатый конвейер img2img) всё ещё
территория передовых/B-tier. Дисциплина формата инструментов llama3.1:8b
рушится на этом каталоге (она выдумывает имена инструментов и печатает JSON
вызова инструментов как текст). Gemma 4 поставила нативный function calling
по всему семейству (Ollama ≥ v0.20);
e4b или больше — сладкая точка.
Помните лестницу возможностей выше: эти небольшие модели держат вызов
инструментов, но имеют ограниченный/никакой vision и мышление, так что они
могут генерировать и управлять воркфлоу, но не могут визуально критиковать
результаты.
Боковая панель на локальной модели
Агент панели получает бэкенд Ollama рядом с Claude / ChatGPT / Gemini: выберите Ollama (локально) в выборе бэкенда, и оркестратор ведёт ваш живой граф локальной моделью — без аккаунта, без API-ключа, полностью офлайн. Модель видит роутер из 6 инструментов (3 компактных мета-инструмента comfyui плюсpanel_list_tools /
panel_describe_tool / panel_call_tool для живого холста), так что даже
4B-модель не тонет в схемах. Модель по умолчанию:
artokun/gemma4-comfyui-mcp:e4b — наш дообученный gemma4,
обученный на этом точном наборе инструментов (сменяет стоковый gemma4:e4b,
прежнего лидера Арены); переопределите через COMFYUI_MCP_OLLAMA_MODEL или
выбор модели панели, который перечисляет то, что вы подтянули локально. Ждите
честных компромиссов против передовых бэкендов: более медленные ходы
(особенно первый, пока модель грузится), нет vision, нет отката разговора.
Что вы получаете (и не получаете)
Любой MCP-клиент получает полную поверхность инструментов — генерацию, создание воркфлоу, модели, кастомные узлы, очередь, диагностику — в любом режиме инструментов. Дополнения плагина Claude Code (скиллы, слэш-команды, хуки, установочные пакеты, агент боковой панели) — возможности плагина и не едут в другие обвязки. Каталогlist_tools спроектирован нести
достаточно ориентации, чтобы агенты без этого слоя знаний всё равно находили
дорогу.
Устранение неполадок
- Модель вызывает
call_toolсо строковымargs— поддерживается; сервер автоматически разбирает JSON-строки. - Модель выдумывает имена инструментов — неизвестные имена возвращают
предложения близких совпадений плюс указатель обратно на
list_tools. - Неверные/отсутствующие параметры — ошибка включает JSON Schema инструмента; способные модели себя правят на следующей попытке.
- Модель отвечает из каталога, ничего не запуская — известный режим отказа небольших моделей; подтолкните её («записи каталога — имена инструментов, а не данные — запусти инструмент через call_tool»).
- ComfyUI недоступен — компактный режим меняет только регистрацию инструментов; конфиг подключения идентичен любой другой настройке (см. Настройки).