---
path: /studio/isis/comfyui-nodes
surface: studio
domain: isis
auth:
  signed-in + studio entitlement (AAA-gated — segment `comfyui-nodes` in
  `AAA_ONLY_STUDIO_ROUTES`)
source: apps/oshun/web/src/app/studio/isis/comfyui-nodes/page.tsx
status: walked
last_walked:
  '2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data
  (2xx), console/page-errors, expected content, screenshot verified; live
  screen-reader, touch, offline, and telemetry-delivery checks pending a manual
  AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body
  re-derived 2026-06-03 from current source (lane-console architecture)'
---

# Isis ComfyUI Nodes

## Purpose

Admin lane console over the typed ComfyUI node catalog. It reads each node's
input/output schema, the workflow classes that depend on it, and its deprecation
posture from the node-registry service, then lets an operator deprecate or
restore a node — deprecating a depended-on node requires a migration
alternative.

## Entry points

- Breadcrumb / quick-action card from `/studio/isis/comfyui-integration`
- Studio index (`/studio`)
- Direct URL / bookmark

## Layout regions

`page.tsx` mounts `ShellLayout active="studio"` with a breadcrumb panel.

- **Breadcrumb panel** (`data-isis-comfyui-nodes-breadcrumbs`): Studio → Isis
  ComfyUI Integration → (current)
- **Workspace panel** (`data-isis-comfyui-nodes-workspace`):
  - `<h1>` "Isis ComfyUI Nodes Workspace" (`WorkspaceHeading`)
  - Summary paragraph (`data-isis-comfyui-nodes-summary`)
  - Registry summary (`data-comfy-summary`) with category chips
    (`data-comfy-category-count={category}`)
  - Filters (`data-comfy-search`, `data-comfy-category-filter`,
    `data-comfy-deprecated-filter`)
  - Selected-node detail with the deprecation form (`data-comfy-deprecation-form`)
- **Route map panel** (`data-isis-comfyui-nodes-route-map`): `<h2>` "Route Map"
  enumerating `STUDIO_ISIS_COMFYUI_NODES_ROUTE_MAP`
- **Quick-actions panel**: `quickAction` links to
  `/studio/isis/comfyui-integration`, `/studio/isis/controlnet`,
  `/studio/isis/ip-adapter`, and "Back to Studio workspace index" → `/studio`

## States

- [ ] **Loading** — `data-comfy-loading` "Loading node registry…"
- [ ] **Unauthorized** — `data-comfy-unauthorized` (admin-scope fail-closed on
      401/403)
- [ ] **Error** — `data-comfy-error` on non-OK / malformed response
- [ ] **Ready** — summary + filters + node detail render
- [ ] **Result** — `data-comfy-deprecation-result` with
      `data-comfy-deprecation-status` (`ok` / `error`); deprecating a depended-on
      node without an alternative is rejected

## Interactions

### Filters

- [ ] **Search** — `data-comfy-search` search input (class / name / description
      / tag)
- [ ] **Category** — `data-comfy-category-filter` select
- [ ] **Status** — `data-comfy-deprecated-filter` select (includes
      `deprecated`); prefs persisted locally

### Deprecation form (`data-comfy-deprecation-form`)

- [ ] **Migration alternative (required when depended-on)** —
      `data-comfy-alternative-select` select
- [ ] **Deprecate node / Restore node** — `data-comfy-deprecation-submit`
      button; POSTs to `/v1/admin/isis/comfy-nodes/deprecation`, then reloads the
      registry

### Route map

- [ ] **Route-map articles** — non-interactive path + purpose entries

### Quick-actions

- [ ] **Open Isis ComfyUI Integration workspace** →
      `/studio/isis/comfyui-integration`
- [ ] **Open Isis ControlNet workspace** → `/studio/isis/controlnet`
- [ ] **Open Isis IP Adapter workspace** → `/studio/isis/ip-adapter`
- [ ] **Back to Studio workspace index** → `/studio`

## Data & contracts

- **Reads**: `GET /v1/admin/isis/comfy-nodes` (`COMFY_NODES_ENDPOINT`) on mount
  — node catalog
- **Writes**: `POST /v1/admin/isis/comfy-nodes/deprecation`
  (`COMFY_DEPRECATION_ENDPOINT`) — deprecate / restore a node
- **Realtime**: None
- **Caching**: client `fetch` on mount, `cache: 'no-store'`,
  `buildBffAuthHeaders()`; filter prefs persisted locally
- **Auth**: admin-scoped fail-closed (401/403 → unauthorized state); AAA-gated
  studio route behind the signed-in + studio proxy gate
- **Component sources**:
  - `apps/oshun/web/src/components/studio/StudioIsisComfyuiNodesWorkspace.tsx`
  - `apps/oshun/web/src/components/studio/StudioIsisComfyuiNodesRouteMap.ts`

## Cross-references

- Studio overview: [`../../studio-overview.md`](../../studio-overview.md)
- Sibling routes:
  - [`studio-isis-comfyui-integration.md`](./studio-isis-comfyui-integration.md)
  - [`studio-isis-controlnet.md`](./studio-isis-controlnet.md)
  - [`studio-isis-ip-adapter.md`](./studio-isis-ip-adapter.md)

## Open questions / known gaps

- [ ] Migration alternative is required only when the node is used by ≥1
      workflow class; confirm the depended-on detection source
- [ ] Deprecation posture is mutated in the node-registry service — confirm
      durability across restarts
