> ## Documentation Index
> Fetch the complete documentation index at: https://comfyui-mcp.artokun.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Боковая панель

> ComfyUI Agent Panel — автономный ИИ-агент в боковой панели ComfyUI, который управляет вашим холстом на ЛЮБОЙ LLM: Claude, ChatGPT или Gemini по вашей подписке (без API-ключа), бесплатная локальная модель через Ollama (вообще без аккаунта) или любая облачная модель через эндпоинт, совместимый с OpenAI. Доступна в Comfy Registry под именем comfyui-agent-panel.

<Note>
  **Теперь в Comfy Registry.** Установите **ComfyUI Agent Panel**
  (`comfyui-agent-panel`) из ComfyUI-Manager или поставьте из git, чтобы получить
  самую свежую сборку (см. [Настройка](#настройка) ниже).
</Note>

**[comfyui-mcp-panel](https://github.com/artokun/comfyui-mcp-panel)** помещает
автономного агента в боковую панель ComfyUI. Попросите у него изображение,
воркфлоу или правку — он работает с вашим ComfyUI и отвечает прямо здесь.
Выберите провайдера — **Claude**, **ChatGPT**, **Gemini** или **Ollama
(локально)** — и соответствующий агент запустится в фоне: подписки **без
API-ключа**, локальные модели **вообще без аккаунта** (а бэкенд Ollama достучится
и до любого облачного эндпоинта, совместимого с OpenAI). Матрицу смотрите в
[Бэкендах](/docs/docs/backends), а о том, как на деле показывают себя модели разных
классов, — в [LLM Arena](/docs/docs/arena).

```
you ⇄ panel (pick a provider) ⇄ loopback bridge ⇄ panel orchestrator ⇄ background agent: Claude · ChatGPT · Gemini · any LLM
```

У провайдеров с подпиской — **никаких API-ключей и оплаты за токены**, а на
локальных моделях всё полностью бесплатно и офлайн. Агент авторизуется вашим
входом, сохранённым на диске (а в случае Ollama просто общается с локальным
демоном). Один оркестратор на одном порту loopback-моста
(`ws://127.0.0.1:9180`) обслуживает всех провайдеров; каждая вкладка панели
выбирает своего провайдера при рукопожатии. Мост доступен только через loopback,
а панель выполняет **фиксированный список разрешённых** команд графа (никакого
произвольного JavaScript).

<Note>
  Впервые здесь? В разделе [Бэкенды / провайдеры](/docs/docs/backends) разобраны выбор провайдера,
  нейтральный к провайдеру порт `AgentBackend` и матрица возможностей (что одинаково у Claude
  и ChatGPT и чем различаются немногие оставшиеся вещи).
</Note>

## Настройка

1. **Установите пакет** — найдите `comfyui-agent-panel` в ComfyUI-Manager или поставьте из git:

   ```bash theme={null}
   cd ComfyUI/custom_nodes
   git clone https://github.com/artokun/comfyui-mcp-panel
   ```

   <Warning>
     **В выпадающем списке версий Manager выбирайте `Latest`, а не `Nightly`.** Вопреки
     названию, **Nightly** в Manager не собирается по ночам: он клонирует репозиторий
     **один раз** при установке и больше никогда не следит за веткой. Он фиксирует вас
     на том коммите, который в тот день оказался в `main`, тогда как `Latest` идёт в ногу
     с каждым релизом — поэтому Nightly обычно *старее* Latest и тихо отстаёт тем сильнее,
     чем дольше вы его не трогаете. Он сообщает, что обновлений нет, потому что с его
     точки зрения их и правда нет.

     Чтобы понять, где вы на самом деле, сравните SHA в **Node Pack Info →
     Version** с [историей коммитов
     репозитория](https://github.com/artokun/comfyui-mcp-panel/commits/main). Чтобы
     выбраться, либо выберите `Latest (x.y.z)` в том же списке, либо — если хотите остаться
     на git — выполните `git pull` в `custom_nodes/comfyui-mcp-panel`, он корректно
     перемотается вперёд.
   </Warning>

2. **Один раз войдите у нужного провайдера**, чтобы фоновый агент мог пользоваться
   вашей подпиской:

   ```bash theme={null}
   claude        # Claude — or: claude setup-token
   codex login   # ChatGPT (Codex)
   ```

3. **Запустите оркестратор** на своей машине и оставьте его работать — см.
   [Запуск оркестратора панели](/docs/docs/ru/installation#3-запуск-оркестратора-панели):

   ```bash theme={null}
   npx -y comfyui-mcp@latest connect
   ```

4. **Перезапустите ComfyUI**, откройте вкладку **Агент**, **выберите провайдера**
   (чипы Claude / ChatGPT) и нажмите **«Подключить»**. Панель свяжется с
   loopback-мостом оркестратора. Напишите запрос — агент ответит. **«Отключить»**
   разрывает связь; оркестратор продолжает работать, пока вы его не остановите.

Ни `claude mcp add`, ни API-ключа не нужно. Панель — чисто фронтендовое расширение
и не умеет сама запускать оркестратор, поэтому его процесс всегда запускаете вы, а
панель автоматически подключается к уже работающему мосту. Из предварительных
требований — Node.js/`npx` в PATH и вход у провайдера, описанный выше. Порт моста
меняется переменной `COMFYUI_MCP_BRIDGE_PORT`.

<Note>
  **Управляете удалённым ComfyUI** (облачный GPU-под, другая машина в вашей локальной
  сети)? Настройка выше остаётся в силе, но оркестратор запускайте **на своей машине**,
  а не на удалённой: `npx -y comfyui-mcp@latest connect <remote-url>` сделает остальное,
  включая защищённый туннель к HTTPS-странице пода. Затем нажмите «Подключить» в панели.
  Полное пошаговое описание — в [Развёртывании в облаке](/docs/docs/cloud-deployment).
</Note>

<Note>
  **Онбординг провайдера.** При подключении панель проверяет готовность каждого провайдера
  (его CLI в PATH + вход на диске; связка ключей macOS тоже учитывается). Карточка
  онбординга появляется, только если **ни у одного** провайдера нет входа. Если сохранённый
  вами выбор непригоден, панель **автоматически переключится на готового провайдера**
  (сохранённое предпочтение при этом остаётся), а в строке неготового провайдера появится
  действие **«настроить»**, которое подставит однократный шаг `claude` / `codex login`.
  См. [Бэкенды → готовность и онбординг](/docs/docs/backends#connect-time-readiness--onboarding).
</Note>

## Что он умеет

Агент (Claude *или* ChatGPT) подгружает скиллы моделей из comfyui-mcp (IDEOGRAM,
WAN, LTX, Qwen и другие), поэтому он уже знает модели, с которыми вы работаете:
Claude — нативно, ChatGPT — через те же знания, выставленные как MCP-инструменты
([паритет знаний](/docs/docs/tools/skills-knowledge)). Он умеет генерировать изображения,
видео и звук, изучать ваш ComfyUI и управлять им, рассуждать о вашей конфигурации —
и отвечать прямо в чате панели.

Он также умеет **загрузить целый воркфлоу или установочный пакет за один раз**
(`panel_load_workflow pack:<name>`) и **следит за стоимостью**: встроенные пакеты
рассчитаны на локальный GPU и бесплатны, а для графа, собранного на ходу, агент
проверяет рантайм (`list_packs` с `action:"check_runtime"`) и **спрашивает, прежде
чем тратить платные API-кредиты**. См.
[Скиллы, пакеты и стоимость выполнения](/docs/docs/tools/skills-knowledge).

## Работа с живым графом

Автономный агент работает с вашим живым ComfyUI через **фиксированный список
разрешённых** команд `panel_*` — без произвольного JavaScript. Каждое изменение
графа проходит через отслеживание изменений в LiteGraph, поэтому любое из них
отменяется по **Ctrl+Z**. Один и тот же набор `panel_*` выставлен одинаково для
обоих бэкендов (внутри процесса — для Claude, через loopback HTTP MCP — для
ChatGPT/Codex), поэтому [паритет](/docs/docs/backends) обеспечивается сам собой.

### Чтение

| Инструмент                     | Что делает                                                                                                                                                                                      |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `panel_query_graph`            | Запрос к просматриваемому графу — фильтрация/обход/агрегация, с ограничением по токенам                                                                                                         |
| `panel_get_subgraph`           | Чтение внутреннего графа узла-подграфа                                                                                                                                                          |
| `panel_view_selected`          | Чтение узлов, **выделенных** пользователем — отвечает на «этот узел» одним вызовом                                                                                                              |
| `panel_view_nodes_in_viewport` | Чтение только того, что **на экране** (прямоугольник вьюпорта + зум) — сужает область работы на большом графе                                                                                   |
| `panel_get_errors`             | **Почему** узел красный — каждый ошибочный узел сопоставлен со своей причиной (отсутствующая модель + URL для скачивания, отсутствующее медиа, валидация, `exception_type` во время выполнения) |
| `panel_list_workflows`         | Список открытых вкладок воркфлоу и того, какая из них активна                                                                                                                                   |
| `panel_list_nodes`             | Список установленных пакетов кастомных узлов                                                                                                                                                    |
| `panel_list_mcp`               | Список подключённых MCP-серверов                                                                                                                                                                |
| `panel_get_content_mode`       | Чтение состояния согласия на контент для взрослых (NSFW)                                                                                                                                        |

### Правка графа (с отменой)

| Инструмент                           | Что делает                                                                                                                                                                                           |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `panel_add_node`                     | Добавить узел по class\_type                                                                                                                                                                         |
| `panel_remove_node`                  | Удалить узел                                                                                                                                                                                         |
| `panel_connect` / `panel_disconnect` | Соединить / разъединить слоты по имени или индексу (если в `panel_connect` не указать оба слота, они подберутся автоматически по типу; `auto_match:false` возвращает прежнее поведение с индексом 0) |
| `panel_set_widget`                   | Изменить значение виджета (steps, cfg, промпты, …)                                                                                                                                                   |
| `panel_edit_node`                    | Атомарно переместить, изменить размер, переименовать, перекрасить, изменить форму, свернуть или закрепить один или несколько узлов                                                                   |
| `panel_auto_layout`                  | Автоматически расставить весь граф (или его часть) в аккуратную схему потока/сетки по топологии связей — `dry_run` для предпросмотра                                                                 |
| `panel_clear`                        | Удалить все узлы — вся очистка отменяется одним Ctrl+Z                                                                                                                                               |

### Подграфы

| Инструмент              | Что делает                                                             |
| ----------------------- | ---------------------------------------------------------------------- |
| `panel_select_nodes`    | Выделить узлы на холсте (множественное выделение)                      |
| `panel_create_subgraph` | Объединить выделенные узлы в подграф («Convert to Subgraph»)           |
| `panel_enter_subgraph`  | Войти в подграф, чтобы прочитать / отредактировать его внутренние узлы |
| `panel_exit_subgraph`   | Вернуться в родительский / корневой граф                               |

### Пространственная компоновка

Агент видит геометрию узлов — подробные строки `panel_query_graph` возвращают
`pos`/`size` каждого узла, а также входные/выходные `rails` подграфов, `groups` и
`color`/`collapsed` по каждому узлу — и раскладывает холст соответствующим набором
операций записи, а затем делает **скриншот** результата, чтобы оценить собственную
компоновку. Скилл `workflow-layout` связывает всё это в автокомпоновку по слоям
зависимостей и без пересечений, главное правило которой — *всегда оставлять входы
и выходы открытыми*, чтобы вы могли сразу включиться в работу.

| Инструмент                                                                            | Что делает                                                                                                                                     |
| ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `panel_move_rail`                                                                     | Переместить входную / выходную рейку подграфа, чтобы связи на границе оставались короткими                                                     |
| `panel_create_group` / `panel_move_group` / `panel_edit_group` / `panel_remove_group` | Создать, переместить, переименовать/перекрасить или удалить подписанную рамку группы (передайте `node_ids`, чтобы обернуть узлы автоматически) |
| `panel_screenshot`                                                                    | Отрисовать холст в PNG и вернуть его как изображение, чтобы агент мог проверить свою компоновку                                                |

### Вкладки воркфлоу

| Инструмент              | Что делает                                                                                     |
| ----------------------- | ---------------------------------------------------------------------------------------------- |
| `panel_new_workflow`    | Открыть новый пустой воркфлоу в НОВОЙ вкладке (текущую никогда не затирает)                    |
| `panel_open_workflow`   | Переключиться на воркфлоу по пути / имени файла                                                |
| `panel_rename_workflow` | Переименовать воркфлоу                                                                         |
| `panel_close_workflow`  | Закрыть вкладку (при несохранённых изменениях откажется, если не указать принудительный режим) |
| `panel_save_workflow`   | Сохранить / сохранить как — программно, без всплывающих диалогов                               |

### Загрузка воркфлоу за один раз

| Инструмент            | Что делает                                                                                                                                                                                                                                                         |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `panel_load_workflow` | Заменить живой граф целым воркфлоу за один вызов — лучше использовать `pack:<name>`, чтобы загрузить воркфлоу для локального GPU из встроенного установочного пакета, не гоняя JSON через чат. Заменённый граф становится точкой отмены (двойной Esc / `/revert`). |

### Знания и учёт стоимости

Агент находит встроенную экспертизу и проверяет стоимость выполнения, прежде чем
тратить кредиты (на обоих бэкендах те же инструменты — см.
[Скиллы, пакеты и стоимость выполнения](/docs/docs/tools/skills-knowledge)):

| Инструмент                                                   | Что делает                                                                                                                                    |
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_packs` (`action:"skill_list"` / `action:"skill_read"`) | Найти и прочитать встроенные скиллы по семействам моделей и воркфлоу                                                                          |
| `list_packs` (`action:"list"` / `action:"read_workflow"`)    | Перечислить установочные пакеты в одну команду (локальный GPU / бесплатно) и прочитать граф пакета                                            |
| `list_packs` (`action:"list_templates"`)                     | Перечислить официальные шаблоны воркфлоу ComfyUI на подключённом сервере                                                                      |
| `list_packs` (`action:"check_runtime"`)                      | Классифицировать граф как **local** (бесплатно) или **api/mixed/unknown** (платно) — агент спрашивает, прежде чем тратить платные API-кредиты |

### Запуск и просмотр

| Инструмент     | Что делает                                                             |
| -------------- | ---------------------------------------------------------------------- |
| `panel_run`    | Поставить открытый воркфлоу в очередь (то же, что нажать Queue Prompt) |
| `panel_canvas` | Вписать вид, отцентрировать на узле, сдвинуть или изменить масштаб     |

### Кастомные узлы (встроенный ComfyUI Manager)

| Инструмент                | Что делает                                                                                                         |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `panel_search_nodes`      | Поиск устанавливаемых пакетов узлов через собственный Manager пользователя                                         |
| `panel_install_node`      | Поставить установку пакета в очередь (id в реестре или git-URL)                                                    |
| `panel_node_queue_status` | Проверить очередь установки / обновления в Manager                                                                 |
| `panel_restart_comfyui`   | Перезапустить ComfyUI, чтобы загрузить новые узлы — панель переподключится автоматически, и агент продолжит работу |

### MCP и сессия

| Инструмент                           | Что делает                                                                                       |
| ------------------------------------ | ------------------------------------------------------------------------------------------------ |
| `panel_add_mcp` / `panel_remove_mcp` | Подключить / удалить MCP-сервер в MCP-конфиге агента пользователя (Claude или Codex)             |
| `panel_request_secret`               | Безопасно получить API-токен — агент никогда не видит его значение                               |
| `panel_reload`                       | Мягко перезагрузить оркестратор (новый код/инструменты) или интерфейс панели и продолжить работу |

### Работа с пользователем

| Инструмент                                                 | Что делает                                                                              |
| ---------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| `panel_ask`                                                | Предложить пользователю выбрать из вариантов (рисует карточку с вопросом и ждёт выбора) |
| `panel_set_todo`                                           | Показать живой TODO-чеклист в нижнем трее панели                                        |
| `panel_request_adult_consent` / `panel_disable_adult_mode` | Включить или выключить проверку согласия 18+ (NSFW)                                     |

<Note>
  Каждый инструмент принимает необязательный `tab_id` — у каждой вкладки браузера
  своё соединение, а маршрутизация по умолчанию идёт в единственную вкладку или в
  ту, где пользователь печатал последней.
</Note>

## Отмотка и откат

Прошлые сообщения не заморожены. Наведите курсор на любое сообщение — кнопка
**✎ Изменить** открывает окно отката: откатить **код** (вернуть граф к снимку того
хода), **разговор** (форкнуть сессию обратно к этой точке) или **и то и другое**, а
затем отправить оттуда изменённое сообщение. Откат графа работает на снимках по
ходам, поэтому отмена хода восстанавливает ровно тот граф, с которого этот ход
начался.

Два сокращения покрывают самые частые случаи:

* **`/revert`** — отменить правки графа за последний ход.
* **Двойной Esc** — быстрая отмотка последнего хода: откатить граф и вернуть
  сообщение в поле ввода, чтобы изменить его и отправить заново.

<Note>
  Откат **кода** (графа) работает у **обоих** провайдеров — он живёт в оркестраторе
  на снимках по ходам. Откат **разговора** (форк чата обратно к прошлому ходу) пока
  доступен **только в Claude**: бэкенд ChatGPT/Codex умеет возобновлять только целые
  треды, поэтому панель закрывает для него эту область. См.
  [матрицу возможностей](/docs/docs/backends#capability-matrix).
</Note>

## Трей отложенных сообщений

Пишите, пока агент занят, — ваше сообщение не потеряется в чате: оно подождёт в
закреплённом трее **«В ожидании»** над треем загрузок, вне потока чата. У каждого
отложенного сообщения есть кнопки **изменить**, **отправить сейчас** и **удалить**,
а также ручка перетаскивания (≡, слева), чтобы **менять порядок**, в котором агент
их разбирает. **Отправить сейчас** прерывает текущий ход, чтобы сразу задать ему
направление. Когда отложенное сообщение выходит из очереди, оно появляется
**внизу** чата, поэтому переписка читается ровно в том порядке, в котором её
обработал агент (Claude или ChatGPT).

## Подтверждение необратимых операций

Необратимые действия сначала спрашивают. `panel_clear` (удаление всех узлов) и
`panel_restart_comfyui` показывают карточку «да / нет» и срабатывают только по
**«да»** — так агент не сможет молча снести ваш граф или перезапустить ComfyUI.

## Устойчивость переподключения

Зависший оркестратор больше не оставляет панель без связи. Если порт моста всё ещё
держит предыдущий оркестратор, нажатие **«Подключить»** забирает этот зомби-процесс
себе вместо того, чтобы завершиться ошибкой, — панель переподключается, а не
оставляет вас в тупике.

## Вложения в поле ввода

Прикрепляйте файлы, перетаскивайте их или вставляйте прямо в поле ввода. Кроме
изображений, поле ввода теперь принимает **видео**, **воркфлоу `.json`** и
**текстовые** файлы — так что можно передать агенту референсный ролик, воркфлоу для
доработки или файл с заметками напрямую.

## Медиа в ответах агента

Когда медиа с запуска возвращается агенту, на выходе не просто блок с картинкой — он
несёт **метаданные**, о которых агент может рассуждать: путь каждого выхода
(относительно подпапки), размер файла, размеры в пикселях и **группировку набора
ассетов** («выход K из N в этом запуске» с именами соседних файлов или «единственный
выход»), а также длительность рендера и время завершения. Для видеораскадровок
добавляются формат и настоящее количество кадров / fps, если они есть в полезной
нагрузке. Благодаря этому агент точно называет реально сохранённый результат и может
говорить о размере, разрешении и о том, сколько файлов дал запуск.

## Копирование и перенос строк в блоках кода

У отрисованных блоков кода появляется кнопка **«Копировать»** при наведении и
глобальный переключатель **переноса строк**, который запоминается (по умолчанию
выключен — пока вы его не включите, длинные строки прокручиваются по горизонтали).
У инлайн-кода своя кнопка копирования. И то и другое оформлено в стиле панели.

## Предупреждение о зависшем рендере

Оркестратор пассивно следит за очередью вашего ComfyUI: рендер, у которого перестают
меняться узел и прогресс, помечается как **зависший**, и агенту об этом сообщают
(чтобы он не складывал вслепую новые задачи за застрявшей). Порог задаётся настройкой
**«Предупреждение о зависшем рендере (секунды)»** в **Настройки → Comfy MCP Agent →
Общие** (по умолчанию 180 с, диапазон 15–3600). Значение отправляется при подключении
и приходит **вживую** — изменение применяется без переподключения. См.
[Настройки → `COMFYUI_MCP_STALL_S`](/docs/docs/configuration#panel-orchestrator--the-bridge).

## Надёжность в фоновой вкладке

Потоковые ответы теперь отрисовываются, даже когда вкладка ComfyUI находится в
**фоне**. Раньше эффект печатной машинки работал на `requestAnimationFrame`, который
браузер приостанавливает в скрытой вкладке, — поэтому, если переключиться во время
долгого многоэтапного запуска, пузырь оставался пустым с застывшим курсором потока, и
казалось, будто агент «завис в раздумьях», хотя ход уже завершился. Теперь при скрытии
вкладки ответ завершается синхронно, а обработчик `visibilitychange` при скрытии
сбрасывает все ожидающие ответы и снова запускает печатную машинку при возврате.
Анимация в активной вкладке не изменилась.

## Управление облаком RunPod

**Плашка хоста** на панели инструментов показывает **🟢 Локально · ваша машина** или
\*\*🔵 RunPod · `<pod>` · GPU · $/ч** и открывает **панель управления RunPod**: живую
карточку состояния (GPU / VRAM / время работы / $·ч / URL ComfyUI / обратный отсчёт
до автостопа по простою), выпадающий список ваших подов **по именам**, кнопки
«Подключить» / «Старт» / «Стоп» / **«Перейти на локальный»** и **«Развернуть»** с
подтверждением. Задайте `RUNPOD_API_KEY` один раз в карточке API-ключей — и можно
разворачивать, следить, переключаться локально⇄под и останавливать облачный GPU, не
заходя в консоль RunPod; плашка хоста всегда показывает, где выполнится следующий
рендер. См. [Развёртывание в облаке](/docs/docs/cloud-deployment) и статью в блоге
[Запускаем ComfyUI на арендованном облачном GPU](/docs/docs/blog/runpod-comfyui).

## Браузер CivitAI

Кнопка **Civitai** на панели инструментов открывает полноценный браузер CivitAI —
изображения, видео, чекпоинты, LoRA и воркфлоу с поиском, фильтрами и полноэкранным
просмотром. Выберите результат, чтобы **показать его агенту**, **скачать к себе на
машину** или **сохранить встроенный воркфлоу** на холст. Подробная история:
[CivitAI внутри ComfyUI](/docs/docs/blog/civitai-in-comfyui).

## См. также

* [Мобильное приложение (бета)](/docs/docs/mobile) — свяжите телефон с панелью и общайтесь с агентом на ходу
* [Бэкенды / провайдеры](/docs/docs/backends) — Claude против ChatGPT, выбор провайдера, паритет возможностей
* [Скиллы, пакеты и стоимость выполнения](/docs/docs/tools/skills-knowledge) — паритет знаний + защита от лишних трат
* [Настройка моста](/docs/docs/configuration)
* [Развёртывание в облаке](/docs/docs/cloud-deployment) — управляйте панелью, работая с удалённым подом ComfyUI (RunPod и т. п.)
* [Собственный релей](/docs/docs/self-hosted-relay) — поднимите свою туннельную инфраструктуру для моста
* [Плагин для Claude Code](/docs/docs/plugin) — скиллы моделей, слэш-команды, агенты
* [comfyui-mcp на GitHub](https://github.com/artokun/comfyui-mcp) · [comfyui-mcp-panel на GitHub](https://github.com/artokun/comfyui-mcp-panel)
