> ## 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.

# Развёртывание в облаке (RunPod)

> Разверните, подключите, следите и останавливайте облачный GPU-под для ComfyUI, не покидая панель агента — развёртывание в один тап, честный переключатель хоста локально⇄под, живой статус стоимости/GPU и автостоп по простою. Или управляйте существующим подом одной командой.

Нет локального GPU — или нужен побольше по запросу? Разверните ComfyUI на
**облачном GPU-поде** и управляйте им на естественном языке из агента,
который работает на **вашей** машине, на вашей собственной подписке Claude
или ChatGPT.

<Note>
  Под обслуживает только **ComfyUI + Manager + UI панели агента**. Мозг агента
  ([оркестратор панели](/docs/docs/ru/panel)) работает **локально на вашей машине**
  на вашей собственной подписке — так что облачный под никогда не сжигает
  GPU-часы на LLM, и ни API-ключ, ни вход агента никогда не касаются коробки.
  См. [Топология](#топология-где-работает-агент).
</Note>

## Шаблон в один клик (самый быстрый путь)

Готовый образ грузится **готовым к управлению панелью агента** — ComfyUI +
[панель агента](https://github.com/artokun/comfyui-mcp-panel) +
ComfyUI-Manager v2 запечены, настройки нет:

[![Deploy on RunPod](https://img.shields.io/badge/Deploy_on-RunPod-673AB7?style=for-the-badge)](https://console.runpod.io/deploy?template=bnqtkvcer3\&ref=dkx71w9b)

1. Нажмите **Deploy on RunPod** и выберите GPU (RTX 5090 / любая карта
   Blackwell или Ada подойдёт — образ поставляет cu128 torch).
2. Оставьте значения шаблона по умолчанию: HTTP-порт **3000** открыт и
   сетевой том смонтирован в **`/workspace`**.
3. Дождитесь, пока под поднимется. Автообновляемая страница «ComfyUI is
   starting…» отдаётся, пока он не будет готов (\~30–60 с инициализации
   ComfyUI).

Затем переходите к [Подключение с вашей машины](#подключение-с-вашей-машины).

## Развернуть и управлять из панели агента (v0.44+)

Начиная с **comfyui-mcp 0.44**, вам больше не нужно трогать консоль RunPod
или запускать команду CLI вообще — у [панели агента](/docs/docs/ru/panel) есть
**панель управления RunPod**, которая разворачивает, подключает, следит и
останавливает под за вас, и тот же лист управления едет в
[мобильном приложении](/docs/docs/ru/mobile).

1. **Задайте ключ один раз.** В карточке **«API-ключи»** панели вставьте ваш
   `RUNPOD_API_KEY`. Он хранится на стороне сервера в `~/.comfyui-mcp/.env` —
   никогда в браузере.
2. **Откройте панель управления RunPod** с плашки хоста на панели
   инструментов (сначала она читается **🟢 Локально · ваша машина**).
3. **Разверните или подключите.** Нажмите **«Развернуть»** для пода в один тап
   (идёт через ссылку развёртывания шаблона и откатывается по типам GPU /
   COMMUNITY→SECURE, когда ёмкости мало) или выберите существующий под
   **по имени** из выпадающего списка и **«Подключить»**.
4. **Смотрите вживую.** Карточка статуса показывает GPU / VRAM / время работы
   / **$·ч** и обратный отсчёт **автостопа по простою**, а плашка хоста
   переключается на **🔵 RunPod · `<pod>` · GPU · $/ч** — так что где
   выполнится рендер, никогда не двусмысленно. Агент ставит ваши кастомные
   узлы + LoRA и скачивает ваши модели на под, так что вы получаете
   **точный паритет холста** с локальной установкой.
5. **Переключитесь обратно и остановите.** **«Перейти на локальный»** сразу
   перенацеливает рендер на вашу установку; **«Стоп»** гасит под. Автостоп
   по простою (`RUNPOD_IDLE_STOP_MINUTES`, по умолчанию 15; считает только
   пока вы реально рендерите на поде) — страховочная сетка стоимости, если
   вы забудете.

**Выключатель мертвеца (v0.47+).** Автостоп по простою живёт в процессе
comfyui-mcp — если этот процесс умрёт (краш, закрытый ноутбук), страховочная
сетка раньше умирала вместе с ним, и под тарифицировался вечно. Поды,
**созданные через коннектор**, теперь несут сторожевой таймер на стороне
пода: пока comfyui-mcp следит за подом, он бьёт сердцем каждые несколько
секунд; если удары прекращаются, под **останавливает себя** (никогда не
терминирует — ваш `/workspace` выживает) после льготного периода (45 мин
после загрузки без сердцебиения, затем 20 мин между ударами;
`RUNPOD_DEADMAN_BOOT_GRACE_S` / `RUNPOD_DEADMAN_BEAT_GRACE_S`). «Слежение»
переживает **«Перейти на локальный»** и **Unwatch** — они меняют только то,
что показывает UI; сторожевой таймер срабатывает, только когда самого
comfyui-mcp уже нет (или под выходит). Сторожевой таймер останавливает под
**ограниченным ключом API пода, который RunPod автоматически впрыскивает в
каждый под** — ваш ключ на весь аккаунт никогда не покидает вашу машину, и
по учётным данным отказываться не от чего. Оставьте его безоружным через
`deadman:false` на `runpod` / `action: "create"` (или `RUNPOD_DEADMAN=0`)
либо `DEADMAN_DISABLE=1` как env пода. Поды, развёрнутые из консоли, никогда
не несут токен сердцебиения, а развёртывания кастомного шаблона
(`RUNPOD_TEMPLATE_ID`) по умолчанию держат его **выключенным** — передайте
`deadman:true`, только если этот образ поставляет наш сторожевой таймер.

<Note>
  Впервые арендуете GPU для ComfyUI? Блог проводит весь поток от конца до
  конца: [Запускаем ComfyUI на арендованном облачном GPU](/docs/docs/blog/runpod-comfyui).
</Note>

Остальная часть этой страницы — **ручной / CLI-путь** — по-прежнему полностью
поддерживается и то, чем панель управления гоняет под капотом.

## Подключение с вашей машины

Когда под поднят, возьмите его публичный proxy URL (RunPod → ваш под →
HTTP-эндпоинт **:3000**, например `https://<pod-id>-3000.proxy.runpod.net`) и
выполните **одну команду** на ноутбуке:

```bash theme={null}
npx -y comfyui-mcp@latest connect https://<pod-id>-3000.proxy.runpod.net
```

Для **удалённого HTTPS-пода** `connect` автоматически открывает **защищённый
зашифрованный туннель `wss://`** (через Cloudflare) к мосту агента на вашей
машине и сам отдаёт панели пода этот URL — так что HTTPS-страница пода
достукивается до агента **без приглашения браузера, без копирования, в любом
браузере**. Для **локального** ComfyUI используется обычный петлевой мост
`ws://127.0.0.1:9180`. В любом случае агент — и ваш вход Claude/ChatGPT —
работает только на **вашей** машине; на под ничего не ставится.

Чтобы закончить, пока `connect` ещё работает на вашей машине, откройте
ComfyUI пода в браузере, откройте боковую панель **агента** и нажмите
**«Подключить»**.

Теперь управляйте графом на естественном языке.

<Note>
  **Зачем туннель?** Страница пода отдаётся по `https://`, и браузеры
  блокируют защищённой странице открытие незащищённого сокета `ws://` к вашей
  машине (mixed content / Private Network Access). Туннель даёт мосту URL
  `wss://` с валидным TLS — с гейтингом случайным токеном на сессию — так что
  это просто работает везде без приглашения.
</Note>

<Note>
  Если под сидит за аутентификацией, задайте `COMFYUI_AUTH_TOKEN` (плюс
  необязательные `COMFYUI_AUTH_HEADER` / `COMFYUI_AUTH_SCHEME`) на локальной
  команде `connect`. Для пода за **Cloudflare Access** создайте **сервисный
  токен** Access и задайте `CF_ACCESS_CLIENT_ID` + `CF_ACCESS_CLIENT_SECRET` —
  оба едут на каждом запросе ComfyUI (HTTP + WebSocket наблюдателя очереди),
  так что коннектор проходит шлюз, а страница человеческого входа остаётся для
  браузеров.
</Note>

### Держать всё на своей машине (без Cloudflare)

Предпочитаете не вести мост через Cloudflare? Доберитесь до пода через свой
**SSH port-forward**, чтобы страница была петлевым origin (обычный `ws://`
работает, туннель не нужен):

```bash theme={null}
ssh <pod-ssh> -L 3000:localhost:3000   # grab the SSH command from RunPod → Connect
npx -y comfyui-mcp@latest connect http://localhost:3000
```

Затем откройте **[http://localhost:3000](http://localhost:3000)**. Или подключайтесь по прямому https
URL пода, но принудительно используйте обычный петлевой мост через
**`--insecure-bridge`** (тогда вы сами устраиваете путь, по которому страница
пода достучится до `ws://127.0.0.1:9180`).

Нужна **стабильная, самостоятельно хостящаяся альтернатива** быстрому туннелю
Cloudflare по умолчанию — свой домен, без эфемерного имени хоста, полное
владение этим прыжком — вместо любого из вариантов выше? См.
[Собственный релей](/docs/docs/ru/self-hosted-relay).

## Топология: где работает агент

```
  YOUR LAPTOP                                   CLOUD GPU POD (RunPod)
  ┌───────────────────────────┐                ┌───────────────────────────────────┐
  │ npx comfyui-mcp connect …  │  HTTP/WS  ───▶ │ nginx :3000 ─▶ ComfyUI :3001        │
  │  └─ panel orchestrator     │                │   ├─ Manager v2 (--enable-manager) │
  │     (Claude/ChatGPT Agent  │ ◀───  events   │   └─ Agent Panel (sidebar)         │
  │      SDK on YOUR sub)      │                │                                     │
  └───────────────────────────┘                └───────────────────────────────────┘
```

Под нарочно не поставляет **ни Node.js-агента, ни Agent SDK, ни LLM-клиента**
— они сжигали бы GPU-часы впустую. Цикл рассуждения живёт на вашей машине;
под — чистый бэкенд ComfyUI. Это та же [модель удалённого управления](/docs/docs/ru/panel),
которой пользуется локальная панель агента, только ComfyUI на облачном GPU
вместо localhost.

## Что переживает (а что нет)

Образ оптимизирован под **быстрый stop/start**. Тяжёлое ПО — ComfyUI, его
venv, Manager v2 — запечено в неизменяемый образ и запускается из
`/opt/ComfyUI`, а `custom_nodes` живёт на томе `/workspace` (симлинк), так что
ваши установки переживают. Тёплый перезапуск не делает полной
установки/синхронизации/сида и просто перезапускает ComfyUI.

| Что                                           | Где живёт                               | Переживает перезапуск?   |
| --------------------------------------------- | --------------------------------------- | ------------------------ |
| Модели (включая скачивания Manager)           | том `/workspace/models`                 | **Да**                   |
| Воркфлоу + настройки ComfyUI + конфиг Manager | том `/workspace/user`                   | **Да**                   |
| Входы / выходы                                | том `/workspace/input`, `/output`       | **Да**                   |
| **Кастомные узлы** (установки агента/Manager) | том `/workspace/custom_nodes` (симлинк) | **Да**                   |
| Установка ComfyUI + venv + Manager            | образ `/opt/ComfyUI`                    | Перетягивается с образом |

<Note>
  **Кастомные узлы, установленные в рантайме, переживают перезапуск.**
  `custom_nodes` симлинкнут на `/workspace/custom_nodes`; при каждой загрузке
  запечённые узлы образа (панель агента + встроенные) сидятся/обновляются в
  него (так что обновление образа привозит актуальную панель, а ваши узлы
  сохраняются), и Python-зависимости каждого узла переустанавливаются в venv
  из **постоянного pip-кэша** на томе — быстро после первого раза. Модели тоже
  переживают. Чтобы запечь узел так, чтобы ему не нужна была работа при
  загрузке, добавьте его в `Dockerfile` и пересоберите образ (ниже).
</Note>

## Собрать и развернуть свой образ

Шаблон в один клик — это готовый образ. **Стройный готовый образ** — тот же
ComfyUI + панель агента + Manager, но без необязательных donor extras
(`runpod-uploader`/`croc`/`app-manager`) и без запечённого SDXL
spotcheck-чекпоинта, собираемый непрерывно в CI — тоже публичный на
[`ghcr.io/artokun/comfyui-mcp-runpod:cu128-lean`](https://github.com/artokun/comfyui-mcp/pkgs/container/comfyui-mcp-runpod),
если вы просто хотите нацелить шаблон RunPod на что-то, ничего не собирая
сами.

Чтобы кастомизировать — закрепить версии, запечь дополнительные кастомные
узлы, сменить раскладку моделей — соберите и запушьте свой из
[`docker/runpod/`](https://github.com/artokun/comfyui-mcp/tree/main/docker/runpod):

```bash theme={null}
cd docker/runpod
docker build -t <your-registry>/comfyui-mcp-runpod:cu128 .
docker push     <your-registry>/comfyui-mcp-runpod:cu128
```

GPU на этапе сборки не нужен. Затем создайте **шаблон пода** RunPod,
нацеленный на ваш образ, с открытым **HTTP-портом 3000** и **сетевым томом в
`/workspace`**.

[`docker/runpod/README.md`](https://github.com/artokun/comfyui-mcp/blob/main/docker/runpod/README.md)
— полный справочник сборки: многостадийный Dockerfile, точные флаги запуска
ComfyUI, маппинг тома `extra_model_paths.yaml`, шлюз удалённой установки
Manager, переменные окружения и компромиссы размера/пина.

## Другие облачные цели

Поток `connect` не специфичен для RunPod — он работает против **любого**
доступного ComfyUI, который отдаёт панель агента (другой облачный хост, VPS,
коробка в вашей LAN). Нацельте `connect` на его URL и включите переключатель
внешнего оркестратора:

```bash theme={null}
npx -y comfyui-mcp@latest connect https://your-comfyui.example.com
```

Чтобы выставить **сам comfyui-mcp** как размещённый, аутентифицированный
MCP-сервер (а не разворачивать ComfyUI), см.
[Удалённый / размещённый коннектор](/docs/docs/ru/remote-connector).
