---
url: /orchestration/reference/operations/InvokeComfyNodepackSnapshotStepTemplate.md
description: 'POST /v2/consumer/recipes/comfyNodepackSnapshot — POST /v2/consumer/recipes/comfyNodepackSnapshot'
---

> Documentation index: https://developer.civitai.com/llms.txt — every page on this site has a markdown version at its URL + `.md`.

# POST /v2/consumer/recipes/comfyNodepackSnapshot

`POST https://orchestration.civitai.com/v2/consumer/recipes/comfyNodepackSnapshot`

Operation `InvokeComfyNodepackSnapshotStepTemplate` · Recipes · Civitai Orchestration API, generated from the published OpenAPI spec ([v2-consumers.json](https://developer.civitai.com/openapi/v2-consumers.json)); the interactive HTML page is this URL without `.md`.

## Authentication

Send `Authorization: Bearer <token>` (the spec's `ApiKey` scheme); this operation documents `401 Unauthorized` for a missing or invalid token. See [Authentication](https://developer.civitai.com/orchestration/guide/authentication.md).

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `experimental` | query | boolean | no |  |
| `allowMatureContent` | query | boolean | no |  |
| `whatif` | query | boolean | no |  |
| `ephemeral` | query | boolean | no |  |
| `tier` | query | `WorkflowTier` (one of `paid`, `free`) | no | How a workflow is paid for. |

## Request body

Optional. Content types: `application/json`, `text/json`, `application/*+json`.

Schema `ComfyNodepackSnapshotInput` — Installs ComfyUI custom nodepacks on a comfy image and captures the resolved install and editor metadata as reusable blobs. Runs on a real worker so compiled deps match the fleet the consumer will run on.

| Field | Type | Required | Description |
|---|---|---|---|
| `comfyImage` | string, nullable | no | The comfy image to install against, as an `oci:image` AIR. The captured layer is only valid for this exact image, so it is part of the blob key; when omitted the handler uses the configured default comfy image. (pattern `^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\-\/]+):)?(?:(?<type>[a-zA-Z0-9_\-\/]+):)?(?<source>[a-zA-Z0-9_\-\/]+):(?<id>[a-zA-Z0-9_\-\/\.]+)(?:@(?<version>[a-zA-Z0-9_\-\/.=,%+:]+))?(?:\.(?<format>[a-zA-Z0-9_\-]+))?$`) |
| `nodepacks` | array of string | yes | The `comfy:nodepack` AIRs to install and snapshot, e.g. `urn:air:comfy:nodepack:comfyregistry:kijai/comfyui-kjnodes@1.4.0`. One snapshot job is produced per pack. (minItems `1`) |
| `minVramGb` | integer (int32), nullable | no | Minimum GPU VRAM (GB) the capturing worker must report, so the install happens on hardware representative of the session's tier. |
| `useSageAttention` | boolean, nullable | no | Optional Sage Attention toggle, forwarded to the worker's launch so the captured environment matches how the consumer runs the image. |

## Responses

### 200 OK

Content type: `application/json`.

Schema `ComfyNodepackSnapshotOutput` — One result per installed pack, each carrying the captured install layer, full /object_info and web assets as blobs that consumers read directly from orchestrator blob storage.

| Field | Type | Required | Description |
|---|---|---|---|
| `results` | array of `ComfyNodepackSnapshotResult` | yes |  |

### 400 Bad Request

Content type: `application/json`.

Schema `ProblemDetails`.

| Field | Type | Required | Description |
|---|---|---|---|
| `type` | string, nullable | no |  |
| `title` | string, nullable | no |  |
| `status` | integer (int32), nullable | no |  |
| `detail` | string, nullable | no |  |
| `instance` | string, nullable | no |  |

### 401 Unauthorized

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.

### 403 Forbidden

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.
