comfyui-loop-mcp
comfyui-loop-mcp

MCP-сервер с поддержкой цикла (loop-aware) для вашего собственного ComfyUI. Он не просто вызывает API — он выполняет цикл: build → run → look → critique → fix, пока результат не будет соответствовать заданию.
Граф, работающий с нулём node_errors, — это valid, not correct. Искажённые руки,
смещённый фон, жёсткая матовая кромка, видимый шов тайлов — ничего из этого не видно в
журнале ошибок. Это видно только в пикселях. Поэтому каждое описание инструмента, каждый ответ
инструмента и собственные инструкции сервера заставляют модель смотреть перед тем, как объявить граф готовым.
Та часть, которой нет ни у кого: храповик — это инструмент, а не предложение. Большинство инструментов для агентов управляют ComfyUI. Этот управляет циклом — длинный цикл получает сжатие контекста, и в тот момент, когда это происходит, забытый "лучший на данный момент" исчезает: храповик молча перестаёт вращаться, модель повторяет изменения, которые она уже отвергла, и может выдать регрессию в качестве финального ответа. Так что лучший граф и журнал находятся на диске, а не в памяти модели. Откат — это вызов инструмента, а не акт воспоминания.
loop_start ─▶ submit ─▶ get_result ─▶ get_image ─▶ compare_images ─▶ loop_record ─┐
▲ (LOOK) (what moved?) (ratchet) │
└─────────────────── revert to best, try something else ◀─────────────────┘
↓ can't name a defect?
loop_finish + loop_report → sign-offМетод поставляется с сервером. Цикловой промпт и навык Claude Code находятся в
comfy_loop/docs/ и упакованы в wheel, поэтому
comfy_loop / comfy_skill / comfy_install подаются дословно из любого места
установки сервера — один источник, нечего синхронизировать. (Они зародились в
comfyui-onboarding-prompt, который больше не поддерживается; этот репозиторий — их
теперешний дом.)
Как это соотносится с собственными MCP-серверами Comfy — локальным и облачным, честно
Проектирование: обнаружение vs. исправление — где локальный инструмент действительно выигрывает/проигрывает, и Полярная звезда
Как это соотносится с собственными MCP-серверами Comfy
ComfyUI поставляет два официальных сервера, и этот — третий, созданный рядом с ними — независимо и с противоположного конца задачи.
Comfy-Org/comfy-mcp (первый коммит
2026-07-01, на один день позже этого, хотя он вышел в публичный доступ раньше) управляет локальным
ComfyUI через comfy-cli: все инструменты сводятся к бинарному comfy и
разбирают его JSON-обёртку. Comfy Cloud MCP (https://cloud.comfy.org/mcp) — это
удалённый HTTP-сервер, который выполняет граф на GPU от Comfy. Оба поддерживаются
и сопровождаются командой ComfyUI.
Этот говорит HTTP к /prompt и /object_info напрямую — никакого CLI, никакого
аккаунта, ничего устанавливать, кроме httpx, — и тратит свою поверхность на ту
половину работы, что начинается после выполнения графа.
Реальная разница
Их локальный сервер относится к установке ComfyUI как к вещи, которой нужно управлять: запустить её, остановить, переключить на другую версию, войти, потратить кредиты на хостинговые партнёрские модели, хвосты журнала, следить за пакетами. Это действительно более широкая поверхность, чем у этого репозитория, и это та поверхность, которой платформенному вендору лучше всего владеть — она двигается, когда движется ComfyUI, comfy-cli или партнёрские API. Если вам нужно запускать и поддерживать мою установку, используйте их.
Этот рассматривает вывод как вещь, которой нужно управлять — потому что именно эта часть была
на нашей ответственности. Он родился из собственной продакшн-работы Alienrobot (Alienrobot), где граф, который
запускается, является началом работы, а не её концом. Здесь ничего не запускает процесс и не тратит кредит.
Вместо этого: возвращайте пиксели модели, дифф-два прохода
в изображение, где дрейф не может спрятаться, оцените то, что бриф действительно спрашивает,
и держите лучшее на данный момент на диске, чтобы сжатый контекст не мог потерять
его. Этой части нет ни у кого — не потому, что сложно вызвать /view, а
потому, что "заставить агента смотреть и не дать ему построить на регрессе" — это
дисциплина, а не конечная точка.Хорошо, я переведу текст с en-US на ru-RU, сохраняя все структуры, имена и ссылки. Поехали# comfyui-loop-mcp

MCP-сервер с поддержкой цикла для вашего собственного ComfyUI. Он не просто вызывает API — он выполняет цикл: build → run → look → critique → fix, пока результат не потечёт, доводя работу до соответствия брифу.
Граф, который работает с нулём node_errors, — это валиден, а не значит верный. Искажённые руки, отодвинутый фон, жёсткое матовое ребро, видимый шов тайла — ничего из этого нет в журнале ошибок. Это видно только в пикселях. Поэтому каждое описание инструмента, каждый ответ инструмента и собственные инструкции сервера заставляют модель смотреть перед тем, как объявить граф готовым.
Та часть, которой нет ни у кого: храповик — это инструмент, а не предложение. Большинство инструментов для агентов управляют ComfyUI. А это управляет циклом — длинный цикл получает сжаттие контекста, и в тот же момент забытый запомненный "лучший на данный момент" исчезает: храповик беззвучно перестаёт щёлкаться, модель повторяет изменения, которые она уже отвергла, и может отдать вам регрессию как финальный ответ. Так что лучший граф и журнал живут на диске, а не в памяти модели. Откат — это вызов инструмента, а не акт воспоминания.
loop_start ─▶ submit ─▶ get_result ─▶ get_image ─▶ compare_images ─▶ loop_record ─┐
▲ (LOOK) (what moved?) (ratchet) │
└─────────────────── revert to best, try something else ◀─────────────────┘
↓ can't name a defect?
loop_finish + loop_report → sign-offМетод поставляется с сервером. Цикловой промпт и навык Claude Code живут в
comfy_loop/docs/ и упаковываются в wheel, поэтому
comfy_loop / comfy_skill / comfy_install подаются дословно из любого места
установки сервера — один источник, ничего не нужно синхронизировать. (Родились в
comfyui-llm-onboarding-промпте, который больше не поддерживается; этот репозиторий — их теперешний дом.)
Как это соотносится с собственными MCP-серверами Comfy — локальным и облачным, честно
Проект: обнаружение vs. исправление — где локальный противопоставленный инструмент реально выигрывает/проигрывает, и Полярная звезда
Related MCP server: ComfyPilot
Как он соотносится с собственными MCP-серверами Comfy
ComfyUI поставляет два официальных сервера, и этот — третья вещь, построенная рядом с ними — независимо, и с другого конца проблемы.
Comfy-Odm-comfy (первый коммит
2026-07-01, на один день позже этого, хотя он вышел публично раньше) управляет локальным
ComfyUI через comfy-cli: каждый инструмент вызывает бинарный файл comfy и
разбирает его JSON-оболочку. Comfy Cloud MCP (https://cloud.comfy.org/mcp) — это
удалённая HTTP-служба, которая выполняет граф на GPU от Comfy. Оба построены и
поддерживаются командой ComfyUI.
Этот говорит HTTP к /prompt и /object_info напрямую — без CLI, никакого
аккаунта, ничего устанавливать, кроме httpx, — и тратит свою площадь на ту
половину работы, которая начинается после выполнения графа.
Разница на самом деле
Их локальный сервер считает установку ComfyUI целью: запустить, остановить, переключить версию, зайти, потратить кредиты на хостинговых партнёров, хвосты журнала, поддерживать пакеты. Это действительно более широкий полок, чем у этого репозитория, и именно ту поверхность, владеть которой платформенный вендор лучше всего способен — она движется каждый раз, когда двигаются ComfyUI, comfy-cli или партнёрские API. Если вам нужно запустить и поддерживать мою установку, используйте его.
Этот рассматривает вывод как вещь, которой нужно управлять — потому что это часть,
за которую наш мяч. Он родился из собственных производственных работ Alienrobot (где
граф, который выполняется до, а не конец работы. Здесь ничего не запускает процесс и не тратит кредиты.
Вместо этого: верните пиксели модели, прогоните два прохода
в изображение, где дрейф не может спрятаться, оцените то, что бриф
действительно просит, и держите лучшее на данный момент на диске, чтобы сжатый контекст не мог
потерять. Этой части нет ни у кого — не потому, что сложно вызывать /view, а
потому, что "заставить агента смотреть и не дать ему построить на регрессе" — это
такая дисциплина, а не конечная точка.
этот репозиторий | Comfy-Org/comfy-mcp | |
Общается с ComfyUI через | его HTTP API ( | субпроцессы |
Дополнительная зависимость | нет ( |
|
Видит ComfyUI, который вы не устанавливали | да — всё, до чего добирается URL, включая машину, на которой у вас нет доступа к шеллу | частично; некоторые инструменты по своей конструкции работают только локально |
Посмотреть результат |
|
|
Оценить результат |
| — |
Оставить лучший |
| — |
Исследовать параметр |
|
|
Проверить граф перед запуском |
|
|
Шаблоны подграфов | разворачиваются и переподключаются (вынесенные виджеты сохраняются) | разворачиваются на стороне клиента |
Стоимость обнаружения в токенах | компактная нотация узлов (экономия 93% относительно | не заявленная цель |
Установить недостающее | ComfyUI-Manager: | реестровый |
От нуля до запуска | это делает агент: | говорит вам выполнить |
Запускать процесс ComfyUI | нет — только перезапуск (через Manager); шеллом владеет агент | субпроцессы |
Облачные/партнёрские модели, аккаунты, кредиты | нет, намеренно |
|
Управление заданиями |
| один инструмент |
Поверхность MCP | 43 инструмента + 2 промпта + 3 ресурса | 39 инструментов |
Размер / лицензия | ~3 700 строк, MIT | ~16 000 строк, AGPL-3.0-or-later или коммерческая |
Разработано | Alienrobot — создан для нашей собственной VFX/генеративной работы и используется в ней | команда ComfyUI, вместе с самой платформой |
Объём обязательств | цикл: обнаружение, преобразование и оценка результата | вся установка: жизненный цикл, аккаунты, партнёрские API, пакеты |
Что выбрать
Нет GPU → Cloud MCP. Ничто локальное не сравнится с оборудованием, которого у вас нет.
«Установи, запусти и поддерживай в работе» → Comfy-Org/comfy-mcp. Жизненный цикл, партнёрские модели, фоновые загрузки, закрепление версий.
«Первый результат работает, а наметанный глаз его отвергает» → этот. Шесть пальцев, поплывший фон, жёсткая кромка матов, заметный шов тайла, клип, который кипит. Это цикл, и это сервер, построенный целиком вокруг него.
Они сочетаются: ничто не мешает запускать оба, и имена инструментов не конфликтуют.
(А вот имена пакетов конфликтовали — этот тоже короткое время назывался comfy-mcp, и это проигрышный
спор с людьми, которым принадлежит пространство имён ComfyUI. Отсюда
comfyui-loop-mcp; импортируемый пакет — comfy_loop, и оба можно устанавливать
бок о бок.)
Что мы не будем добавлять
Целиком перенимать список функций конкурента — так получаются два посредственных инструмента. То, что здесь взято от них, — это то, что нужно циклу: предполётная проверка, статус заданий, чтение хвоста логов, запас VRAM, обновления. Что остаётся за рамками — намеренно:
Аккаунты, кредиты, облачные партнёрские модели. Суть в том, что «ничего не покидает вашу машину, без регистрации, без счётчика». Кредитный шлюз противоречит этому. Если вам нужны Kling или Veo, их сервер делает это правильно, со шлюзами согласия, которые этому репозиторию незачем изобретать заново.
Запуск и остановка процесса ComfyUI. HTTP-клиент не может запустить сервер, который не запущен, а направлять его на машину, на которой у вас нет доступа к шеллу, — это поддерживаемый случай, а не крайний.
restart_comfyui(через Manager) — честный предел, но «не могу» — не то же самое, что «не поможет»: агент обычно имеет шелл, поэтому недоступный сервер возвращает команды установки/запуска для этой машины и ожидает, что агент их выполнит. Ни этот сервер, ни сервер Comfy-Org не устанавливают ComfyUI за вас (их вариант указывает вам наcomfy installв терминале); разница в том, что здесь инструкции возвращаются через вызов инструмента и адресованы тому, кто может по ним действовать.Сохранение / публикация / воспроизведение воркфлоу как сервис.
save_workflowотдаёт вам файл, прошедший проверку round-trip. Где он живёт после этого — ваше дело.
Три примитива MCP в привязке к циклу
Первобытный | Что он открывает | Шаг цикла |
Инструменты |
| Открой, не угадывай |
| Расширь (установи, что нужно шаблону) | |
| Проверь до того, как будет задействован GPU | |
| Сожми (токены, экономные графы) | |
| Запусти заведомо" good template" с переопределениями (без графа в контексте) | |
| Сборка → Запуск | |
| Смотри | |
| Рэтчет + журнал, на диске | |
| Контроль | |
Подсказки |
| Вся дисциплина, одна команда |
Ресурсы |
| Доки + правда |
Три вещи делают его циклом, а не просто API-обёрткой:
get_imageвозвращает отображаемый результат модели — это шаг, который делает «взгляд» реальным. Модель видит реальные пиксели.Ответы инструментов продвигают цикл.
submit_workflowпри успехе говорит "верно, не точно — теперь СМОТРИ"; при отклонении говорит "это не итерация — фупукни и дай-верной исправь и повторно отправь."get_resultзаканчивается директивой: "не останавливайся здесь — ПОСМОТРИ, Затем поменяй один параметр или объяви, что краткое выполнено."Инструкции сервера несут политику предпочтения цикла (см.ниже), которую клиент внедряет при подключении.
Политика предпочтения цикла (инструкции сервера)
При рукопожатии сервер говорит агенту когда зацикливаться, а когда нет:
ВСЕГДА делай открытие из живого, актуального API перед записью; проверь выполнением;
node_errors— это не итерации — исправь и отправь снова.ПРЕДПОЧИТАЙ ЦИКЛ всегда, когда натренированный глаз может отвергнуть результат — композиция/количество, качество сходства, матовый/кромка, апскейл/реставрация, текстура швов, временная стабильность видео, «сделай правильно».
RATCHET — держи лучшее; сохраняй изменение только если оно побило прежнее, иначе откатись и куй другое другое; поворотный параметр → схема → работа на плапе. Проверка на объективном тесте только там, где есть определение; иначе — действуй на глаз.
SKIP цикл только для механических задач (конвертация формата, чистый API и нулевой API'news) and текст: * — Let's keep the original URL! Wait, construct: SKIP зацикливайся только для механических задач (конвертация формата, чистый API-запрос, или когда пользователь явно хочет просто исполняемый граф).
Когда не уверен, сделай как минимум один проход «посмотри-и-критикуй», прежде чем объявить готовым.
Механизм Rachet/ledger/pivot адаптирован из автоцикла Карпатого, настроен для субъективной работы с изображениями (объективный граф только там, где есть; человек чек-поинт для подписи, а не бег навсегда). Эти строки политики живут в серверных instructions + ответы инструментов; полный метод живёт в comfy_loop фразе, который служит репозиторию loop дока слабо.
MCP не может заставить поведение — он показывает возможности и подсказки. Именно поэтому цикл становить сильный, хорошо ограниченный дефолт, который агенту многократно повторяют языках. Для генеральной гарантии в Claude установи тот же текст как всегда включённый скилл:
mkdir -p ~/.claude/skills/comfyui-workflows cp comfy_loop/docs/SKILL.md ~/.claude/skills/comfyui-workflows/Skill = вечновключённая дисциплина, MCP = инструменты, которыми он управляет. Это тот же файл, который
comfy_skillиконостал, позволяет им не различаться — и он отзывает кcomfy_installдля загрузки, а не собственный устаревший рецепт.
Инструмент
Discover
Инструмент | Аргументы | Возвращает |
| — | Шаг 0 цикла и настоящая предварительная проверка. Если ничего не отвечает, возвращается что при этом сделать — применительно к этой машине: запустить найденную установку, создать новую или открыть туннель для удалённого URL (см. Устранение неполадок). Если ответ приходит, она всё равно называет, что стоит между текущим состоянием и рабочим рендером: torch на CPU (любой рендер работает, ~50x медленнее, и ничто не сообщает об ошибке), нет весов на диске (полностью функциональный ComfyUI, который не может отрендерить ничего), нет ComfyUI-Manager (с двумя командами для исправления, поскольку |
|
| Узлы, у которых класс или отображаемое имя совпадает (строгое надмножество поиска только по классам в скилле). При опущенном |
|
| Интерфейс одного узла в компактном виде |
|
| Фактические файлы моделей, которые загрузчик предлагает на диске (источник истины), считанные из его перечисления; поддерживается и устаревший список, и кодировка |
|
| Каталог загружаемых моделей (список ComfyUI-Manager) — найти чекпоинты/LoRAs/VAEs/апскейлеры, которых у вас ещё нет; для каждого результата указано, установлен ли он уже. Установка через |
|
|
|
|
| Получает шаблон. |
|
| Разворачивает текст FlowZip обратно в полный JSON litegraph. |
|
| Преобразует FlowZip/litegraph → формат API/prompt для |
|
| Перечисляет переопределяемые входы шаблона ( |
|
| Запускает проверенный шаблон с переопределениями |
Расширение (установить то, что требует шаблон, — требуется ComfyUI-Manager на хосте)
Инструмент | Аргументы | Результат |
|
| Сверяет классы узлов с |
|
| Устанавливает пакет через очередь ComfyUI-Manager (доверенный реестр, без произвольного кода). Затем требуется перезапуск. |
|
| Загружает модель из каталога (из |
| — | Перезапускает ComfyUI (через Manager), чтобы новые узлы зарегистрировались в |
|
| Обновляет ядро ComfyUI и/или все установленные пакеты через очередь Manager, затем сообщает, что требуется перезапуск. Запускает сторонний код — сначала скажите об этом. Не в середине цикла: это переносит поведение узлов под храповик, ранние проходы которого измерялись на старом коде. |
Проверка — всё, что можно узнать до того, как в дело вступает GPU
Инструмент | Аргументы | Результат |
|
| Один ответ на вопрос «запустится ли это на этой машине»: классы узлов, которых у вас нет (разрешаются в ID пакетов в том же проходе), имена файлов моделей, которых нет в списке этого загрузчика (с ближайшим, что у вас есть), не заданные обязательные входы, соединения, указывающие на отсутствующие узлы, значения вне объявленного диапазона узла и граф без выходного узла — который запускается зелёным и не даёт ничего посмотреть. |
Сборка → Запуск → Просмотр
Инструмент | Аргументы | Результат |
|
| Загружает локальное изображение в каталог |
|
| При успехе: |
|
| Опрашивает |
|
| Фактическое изображение, возвращаемое модели, чтобы она могла оценить пиксели. |
|
| Сравнение в виде изображения. |
|
| Средняя/максимальная абсолютная разница + % изменённых пикселей — контроль «я изменил только то, что хотел». Ловит «мелкую правку», которая незаметно переписывает кадр. |
|
| Объективная оценка для храповика, когда в постановке задачи есть объективный тест. |
|
| Размеры, fps и количество кадров для видеовыхода. Вызывайте его перед индексацией кадров — вам нужен диапазон, и нужно знать, одинаковой ли длины два клипа, которые вы собираетесь сравнивать. |
|
| Один кадр видеовыхода по индексу кадра, возвращаемый как изображение. Видеочасть |
|
| То же сравнение, но на одном и том же индексе кадра в обоих клипах. Сравнение по временно́й метке незаметно ломается, как только длины расходятся (ограничение кадров, обрезка, другой fps) — вы с полной уверенностью сравниваете два не связанных между собой момента. При несовпадении числа кадров предупреждение впечатывается в изображение, а не остаётся текстом, который можно пробежать глазами. |
|
| Нестабильность от кадра к кадру в виде числа — объективный критерий для вопроса «не кипит ли оно?», чего не может показать ни один отдельный кадр. Это наивная разница между соседними кадрами, поэтому реальное движение учитывается: используйте её на ОДНОМ И ТОМ ЖЕ клипе до/после изменения или передайте |
Цикл как устойчивое состояние — храповик — это инструмент, а не упражнение на память. Длинный цикл сжимается; если лучший на данный момент результат и журнал живут только в контексте модели, храповик молча перестаёт срабатывать, модель повторяет изменения, которые уже отвергла, и может выдать регрессию как финальный результат. Поэтому они живут на диске.
Инструмент | Аргументы | Результат |
|
| Открывает запуск → |
|
| Записывает проход и применяет храповик. |
|
| Прогоняет один и тот же граф по не более чем 8 значениям одного входа за один вызов — для значений, до которых не достучаться рассуждением (denoise, cfg, strength). Всё остальное держится одинаковым, так что результаты отличаются ровно одной переменной. Таблица значение → |
|
| Лучший на данный момент граф. Источник истины после сжатия — он, а не ваши воспоминания. |
|
| Журнал цикла только на добавление: каждый проход, что изменилось, что это дало. Восстанавливает нить после сжатия; это также журнал, который вы передаёте пользователю при сдаче. |
|
| Закрывает запуск на контрольной точке сходимости; возвращает финальный журнал + лучший граф для предъявления при сдаче. |
|
| Отрисовывает весь запуск одной самодостаточной HTML-страницей — каждый проход, что было сохранено, что откачено, миниатюры встроены в base64, так что она открывается при выключенном ComfyUI. Финальное изображение ничего не доказывает; именно выброшенные проходы показывают, что цикл сошёлся. |
Доставка
Инструмент | Аргументы | Результат |
|
| API → UI/litegraph, чтобы человек мог открыть и отредактировать его; сохраняется в список воркфлоу ComfyUI. Проверка round-trip: результат конвертируется обратно в API и сравнивается с вашим входом, потому что |
Управление
Инструмент | Аргументы | Результат |
| — | Устройство / VRAM (полезно при настройке разрешения/батча или после OOM). |
| — | Что выполняется и что в очереди. |
|
| Где находится один запуск без блокировки: в очереди (с его позицией), выполняется, завершён с N результатами — или ошибка выполнения, которая его остановила. То, что нужно, когда в полёте несколько запусков — например, |
|
| Убирает один ожидающий запуск из очереди или прерывает его, если этот id сейчас выполняется. Без id очищает очередь ожидания, не трогая выполняющуюся задачу. |
| — | Отменяет текущий запуск. |
|
| Выгружает модели и сбрасывает кэш исполнителя ( |
|
| Отдаёт последние строки собственного лога ComfyUI, где сбои сами себя объясняют: трейсбек внутри узла, OOM, кастомный узел, не импортировавшийся при запуске (и именно поэтому его класс отсутствует в |
Промпты: comfy_loop (полный автономный метод) и comfy_skill (компактный навык) — оба подаются дословно из markdown репозитория, плюс comfy_install — рецепт начальной настройки, сгенерированный под машину, на которой работает сервер: установка, если она уже есть; интерпретатор, из которого собирать venv (собственный интерпретатор сервера, так что Python никогда не является обязательным условием для решения задачи); наличие comfy-cli и git; и сборка torch, которая действительно нужна ускорителю этой машины (CUDA / ROCm / MPS / нет). Сервер ничего из этого выполнить не может; агент может — и именно к нему это обращено.
Ресурсы: comfyui://object_info (актуальный полный дамп), comfyui://loop-method, comfyui://skill.
Посмотрите, как цикл работает в действии
Полностью выполнен через этот MCP-сервер на реальном ComfyUI (RTX 4090, SD1.5), бриф: "чёткое, резко сфокусированное студийное макрофото одного красного яблока на тёплом деревянном столе, тонкая текстура кожицы, богатая детализация". Сид зафиксирован на 42, так что каждый проход меняет ровно одну ручку, и эффект можно приписать именно ей. Объективная метрика — дисперсия лапласиана (стандартная мера резкости/фокуса).

Проход | Одно изменение | Резкость (varLap) | Вердикт на глаз |
1 | базовый — 6 steps, cfg 2.5 | 425 | Мягкое, плоское, матовое. Самое слабое. |
2 | steps 6 → 24 | 1204 | Резче — но высокое число объясняется текстурой дерева, кожица яблока всё ещё пластиковая. |
3 | cfg 2.5 → 7.5 | 515 | Яблоко становится насыщеннее (цветастее, на кожице крапинки) — метрика падает, потому что фон смягчился. |
4 | euler → dpmpp_2m + karras | 740 | Победитель. Чёткий блик, видны лентицели, правдоподобное дерево. |
5 | steps 24 → 36 | 661 | ≈ проход 4. Убывающая отдача → стоп. |
Урок, на котором построен цикл, зафиксирован вживую: метрика достигла пика на проходе 2, но проход 2 — не лучшее изображение — его оценка оказалась завышена из‑за фоновой текстуры, а не из‑за деталей яблока. Победитель (проход 4) был выбран взглядом. Зелёное число — валидное, а не верное. (example_apple.png — это результат прохода 4.)
…и вторая половина: когда ошибается модель
Яблоко показывает, почему нельзя слепо доверять метрике. Этот запуск показывает, почему нельзя слепо доверять модели — а это и есть вся причина, по которой храповик это инструмент, а не пометка в промпте.
Задача: «бесшовная тайловая текстура брусчатки — без видимого шва на стыке краёв»,
с объективным контролем (measure_image → tile_seam). Сид одинаковый на всех проходах,
так что каждый проход меняет ровно одну вещь. Каждая текстура ниже размножена 2×2 —
шву совершенно негде спрятаться.

Проход | Одно изменение |
| Храповик |
1 | базовый SDXL | h 1.77 · v 1.23 → пограничный | оставлен (первый) |
2 |
| h 0.78 · v 1.12 → бесшовно | НОВЫЙ РЕКОРД |
3 |
| h 1.03 · v 1.56 → швы вернулись | ОТКАТЕН |
На проходе 3 модель сообщила loop_record, что результат — "better". Это было не так:
x_only тайлит по горизонтали и оставляет вертикальный стык сломанным — на правом
изображении это видно: камни срезаны ровно у горизонтального шва. Объективный
показатель пересил заявление, восстановил проход 2 и вернул хороший граф обратно.
Это тот сбой, для предотвращения которого и существует этот сервер: агент, который хочет закончить, назовёт регрессию улучшением. Если бы «лучший результат на данный момент» жил в контексте модели, а не на диске, эта регрессия стала бы финальным ответом.
Установка
Короткая версия: попросите своего агента сделать это. Вставьте это в Claude Code (или любой MCP-клиент с оболочкой) и остановитесь:
Настройте ComfyUI loop MCP из https://github.com/huikku/comfyui-loop-mcp — зарегистрируйте его у моего клиента, а также установите и запустите ComfyUI, если он ещё не запущен.
У него есть всё необходимое, чтобы сделать это без вас: регистрация сервера — это одна
команда claude mcp add, а после подключения промпт comfy_install возвращает
бутstrap для вашей машины — существующий ComfyUI для запуска, интерпретатор, из которого
собрать venv, сборку torch, которая действительно нужна вашей видеокарте, ComfyUI-Manager
и место, куда класть модели. Затем check_comfyui называет всё недостающее (нет weightsuous,
torch на CPU, нет Manager) как то, что агенту нужно исправить, а не чем-то просто ответственность.
Если вы предпочтёте вставить конфиг, а не читать описания, — сервер запускается прямо из
GitHub: ничего не нужно клонировать, ничего не нужно pip install:
{
"mcpServers": {
"comfyui": {
"command": "uvx",
"args": ["--from", "git+https://github.com/huikku/comfyui-loop-mcp", "comfyui-loop-mcp"],
"env": { "COMFYUI_URL": "http://localhost:8188" }
}
}
}Claude Code — одной строкой:
claude mcp add comfyui -- uvx --from git+https://github.com/huikku/comfyui-loop-mcp comfyui-loop-mcpСклонируйте репозиторий вместо этого, и .mcp.json уже на месте — Claude Code
предложит сервер при первом открытии, вообще без команд. После добавления переподключите
клиент; MCP-серверы считываются в момент подключения.
Для разработки на нём:
git clone https://github.com/huikku/comfyui-loop-mcp && cd comfyui-loop-mcp
pip install -e . # or: uv tool install --editable .Требуется Python ≥ 3.10 и доступный ComfyUI. Устанавливает mcp[cli], httpx,
anyio, pillow. Работает с MCP SDK 1.x и 2.x — в 2.0 FastMCP
переименован в MCPServer, а хелпер Image перенесён, и сервер импортирует его в любом случае.
Раньше было установлено как
comfy-mcp? Это имя принадлежит серверу Comfy-Org на PyPI, поэтому этот сервер теперь называетсяcomfyui-loop-mcp(импортируемый пакет —comfy_loop, команда —comfyui-loop-mcp). Сначала выполнитеpip uninstall comfy-mcpи обновите конфигурацию MCP-клиента. Уже имеющиеся на диске прогоны цикла находятся автоматически — старый каталог~/.comfy-mcp/runsпродолжает использоваться, пока вы не укажетеCOMFY_LOOP_STATE_DIRв другом месте.
Всегда активная дисциплина (Claude Code)
Метод также устанавливается как навык, поэтому он загружается по триггерным словам, а не ждёт, пока его попросят — попросите агента сделать это тоже, либо:
mkdir -p ~/.claude/skills/comfyui-workflows
cp comfy_loop/docs/SKILL.md ~/.claude/skills/comfyui-workflows/Файл используется тот же самый, что раздаёт промпт comfy_skill, так что навык и сервер не могут разойтись.
Конфигурация
Переменная окружения | По умолчанию | Назначение |
|
| Ваш сервер ComfyUI |
| корень репозитория над этим пакетом | Каталог, где промпты |
|
| Git-ссылка на |
| не задано | Задайте |
|
| Где живут храповик и журнал. Откат к прежнему |
Подключение к удалённому ComfyUI
ComfyUI обычно привязывается к 127.0.0.1, поэтому ComfyUI на другой машине недоступен
по сети по умолчанию. Два варианта:
SSH-туннель (проще всего, ComfyUI остаётся закрытым): пробросьте порт и оставьте
COMFYUI_URLна localhost:ssh -N -L 8188:localhost:8188 your-remote-host # COMFYUI_URL stays http://localhost:8188Привяжите ComfyUI к сети и указывайтесь на него напрямую (делайте это только в доверительной сети — это открывает API без аутентификации):
python main.py --listen 0.0.0.0 --port 8188 # COMFYUI_URL=http://<remote-ip>:8188
Использование
В вашем агенте загрузите промпт
comfy_loop(или позвольте ему прочитать ресурсcomfyui://loop-method), чтобы подтянуть полный метод. Если ваш клиент внедряет инструкции сервера, политика «предпочитать цикл» уже активна.Поставьте цель. Потом он выполнит
check_comfyui→list_nodes/get_node/list_models→ построит JSON-схему API →submit_workflow→get_result→get_image, затем будет критиковать и повторять — по одному изменению за проход — пока не сможет назвать ни одного дефекта, после чего представит результат на утверждение.
Устранение неполадок
«ComfyUI is NOT reachable» — ответ — это набор инструкций, а не жалоба, но они адресованы агенту, у которого есть оболочка, которой у этого сервера нет: агент ищет ComfyUI на этой машине (
$COMFYUI_PATH, рабочую область comfy-cli,~/ComfyUI,~/comfy,~/code,~/github,/opt) и либо возвращает команду запуска с использованием собственного venv-python этой установки, либо, если установки нет, дает последовательность клонирование + venv + Manager + запуск. ЕслиCOMFYUI_URL— удалённый, он намеренно не предлагает установить всё локально — от этого просто останется второй, лишний ComfyUI на той машине, — а вместо этого выдаёт SSH-туннель. Такой ответ возвращает каждый инструмент, а не толькоcheck_comfyui; совет приложен на транспортном уровне.«Node/model not found» — установите пак/модель на стороне ComfyUI, затем перезапустите ComfyUI, чтобы
/object_infoувидел его (до этого момента API устаревший).
get_imagereturns nothing — убедитесь, что в графе есть узелSaveImage/PreviewImage;get_resultперечисляет то, что было реально создано.
install_node_packзаблокирован / ничего не делает — инструментам установки нужен ComfyUI-Manager на хосте, и уровень безопасности Manager должен разрешать установку через API. После установкиrestart_comfyuiобязателен, чтобы/object_infoпоказал новые узлы.find_missing_nodesвыбирает «не тот» пак — несколько паков могут экспортировать узел с одинаковым именем; при совпадении берётся первый найденный в реестре. Если установка не даёт нужный класс, проверьте выбранный пак и установите явно правильный.
Лицензия
MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA lightweight MCP server that bridges AI agents with a local ComfyUI instance to generate and iteratively refine images, audio, and video through conversational tool calls.41MIT
- AlicenseBqualityBmaintenanceAn MCP server that bridges AI agents with ComfyUI for automated workflow building, execution, monitoring, and output routing.961MIT
- AlicenseAqualityCmaintenanceMCP server that lets OpenCode (or any MCP-compatible AI coding tool) directly control ComfyUI for AI image generation.142MIT
- AlicenseAqualityAmaintenanceThe MCP server that drafts ComfyUI workflows a human can actually read. It lets coding agents build, repair, port, validate, and run ComfyUI workflows against your own ComfyUI instance, delivering clean, organized, fully-labeled workflows.292MIT
Related MCP Connectors
MCP server for Hailuo (MiniMax) AI video generation
MCP server for Luma Dream Machine AI video generation
MCP server for Flux AI image generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/huikku/comfyui-loop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server