Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/scripts/snippets/gen-router-pricing.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ describe("public Router pricing", () => {
const routes = catalog.flatMap((model) => model.providers.map((provider) => ({ model, provider })));
expect(catalog.length).toBeGreaterThan(0);
expect(routes.length).toBeGreaterThan(0);
expect([...new Set(routes.map(({ provider }) => provider))].sort()).toEqual(["Comfy", "Higgsfield", "Runware", "WaveSpeed", "fal"].sort());
expect([...new Set(tables.map((table) => table.provider))].sort()).toEqual(["Comfy", "Higgsfield", "Runware", "WaveSpeed", "fal"].sort());
expect([...new Set(routes.map(({ provider }) => provider))].sort()).toEqual(["Comfy", "Higgsfield", "Pika", "Runware", "WaveSpeed", "fal"].sort());
expect([...new Set(tables.map((table) => table.provider))].sort()).toEqual(["Comfy", "Higgsfield", "Pika", "Runware", "WaveSpeed", "fal"].sort());
for (const { model, provider } of routes) {
expect(page).toContain(`](/${model.page})`);
expect(page).toContain(`](/${model.page}) | \`${model.id}\` |`);
Expand All @@ -83,7 +83,7 @@ describe("public Router pricing", () => {
const providersFor = (id: string) => catalog.find((model) => model.id === id)!.providers;
expect(providersFor("fal/patina")).toEqual(["fal"]);
expect(providersFor("wavespeed/seedvr2")).toEqual(["WaveSpeed"]);
expect(providersFor("openai/gpt-image-2")).toEqual(["Comfy", "fal", "Runware", "WaveSpeed"]);
expect(providersFor("openai/gpt-image-2")).toEqual(["Comfy", "fal", "Pika", "Runware", "WaveSpeed"]);
expect(providersFor("kling/kling-v3")).toEqual(["Comfy", "Higgsfield"]);
expect(page).not.toContain("Model ID prefixes identify model owners.");
expect(page).not.toContain("[See provider coverage]");
Expand Down
4 changes: 3 additions & 1 deletion development/comfy-router/limitations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
| Show progress or stream output | No live progress, streaming, or preview frames during the call. | Show an indeterminate state, or use a supported proxy operation. |
| Recover after a lost connection | Same-key collection is available when Router retained a handle to an accepted generation. | Preserve the key and follow [retry guidance](/development/comfy-router/errors#retry-outcomes). |
| Reconcile Comfy charges | No universal Comfy cost or credit-balance field on the response. | Use [workspace billing](https://platform.comfy.org). |
| Store results permanently | Asset URLs can expire, including rehosted and replayed URLs. | Download the assets; see [result assets](/development/comfy-router/reference#result-assets). |

Check warning on line 18 in development/comfy-router/limitations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/limitations.mdx#L18

Did you really mean 'rehosted'?
| Send large media inline | The request body is capped, and base64-encoded media counts against that cap. | Keep bodies under the cap; see [request body size](#request-bodies-are-capped). |

<span id="no-queued-submission" />
Expand All @@ -28,19 +28,19 @@

Four models are synchronous-only for now and are refused with `403` / `not_enabled` if you submit them to the queue: `elevenlabs/eleven_sfx_v2`, `elevenlabs/eleven_v3`, `elevenlabs/eleven_v4` and `elevenlabs/eleven_v4_turbo`. They answer raw audio bytes rather than a JSON result document, which queued delivery has nowhere to store. Run them on the synchronous route, which returns those bytes normally.

The LTX v1 text-to-video and image-to-video operations answer raw video bytes for the same reason, and queued delivery cannot store them either — but they are reachable only through the [partner proxy](#router-does-not-cover-every-partner-operation) at `/proxy/ltx/v1/…`, not through a Router model id: every `ltx/*` catalog model resolves to the queueable v2 submit-and-poll operation.

Check warning on line 31 in development/comfy-router/limitations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/limitations.mdx#L31

Did you really mean 'queueable'?

## Calls are cut off at a server deadline

Router's default deadline is **10 minutes**, configurable by the deployment. Set your client timeout above it so Router can return its error and request ID first.

`504` / `deadline_exceeded` means Router stopped waiting; `504` / `provider_timeout` means the provider timed out. A timeout or lost connection does not prove that a generation was unbilled, and it does not cancel accepted provider work. Read [timeouts and collection](/development/comfy-router/errors#timeouts-and-collection) before retrying.

Check warning on line 37 in development/comfy-router/limitations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/limitations.mdx#L37

Did you really mean 'unbilled'?

<span id="no-way-to-resume-a-call-you-lost" />

## Recovery depends on the provider

Router can retain a provider handle for an accepted submit-and-poll generation. Reuse the same `Idempotency-Key` to collect it later; completed replayable responses can also come from the key record.

Check warning on line 43 in development/comfy-router/limitations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/limitations.mdx#L43

Did you really mean 'replayable'?

Not every disconnected call is recoverable. Preserve the request and key before sending, then use the [retry outcome table](/development/comfy-router/errors#retry-outcomes). A new key creates a new call and may incur another charge.

Expand All @@ -52,7 +52,7 @@

**What the refusal looks like.** `413`, with `invalid_input` on `X-Comfy-Error-Type` and `X-Comfy-Request-Id` set as on any other response. The body is a [`RouterErrorResponse`](/development/comfy-router/reference#routererrorresponse) whose `detail` describes the bound that was exceeded. Branch on `error_type` rather than parsing `detail`, and treat what the API returns as authoritative if it and this page ever disagree about the figure. Router raises the refusal before dispatching anything, so no generation ran and nothing was charged.

The cap applies to every request, whether or not it carries an `Idempotency-Key`. It is not an idempotency limit, and re-sending the same key does not change the outcome: a body that is too large is too large on every attempt.

Check warning on line 55 in development/comfy-router/limitations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/limitations.mdx#L55

Did you really mean 'idempotency'?

**A provider can impose a lower limit of its own, and at this cap it usually does.** Providers publish their own bounds on inline media, and the binding constraint is whichever is smaller. Google's models, for example, accept up to 20 MB (decimal, 20,000,000 bytes) of inline payload, and the `Size limit: 20MB` line on the Google model pages is that per-field Google bound quoted from Google's own specification, not Router's bound on the whole request body. Router's cap sits above every partner bound it fronts deliberately, so for a single inline asset the provider's own limit is normally what you meet first; Router's cap binds across several assets in one body. A body that clears Router's cap but exceeds a provider's own limit is refused by the provider rather than by Router, and it comes back as a provider error rather than a `413`.

Expand All @@ -79,7 +79,9 @@

The response can contain provider usage or cost fields. They do not represent a universal Comfy charge. `X-Comfy-Credits-Used` is optional: a missing header means the cost was not reported, not that the run was free. A replayed response (`Idempotent-Replayed: true`) is never charged again but may restate the original run's figure, so do not add the header up across retries of one `Idempotency-Key`. Use the Comfy platform for balances, usage, and invoices.

The catalog provides billing facts, including `billing.charges_on_policy_rejection`, rather than prices. Handle `yes`, `no`, and `unknown` explicitly. See [billing](/development/comfy-router/billing#model-billing-facts).
The catalog provides billing facts, including `billing.charges_on_policy_rejection`, but no prices. Handle `yes`, `no`, and `unknown` explicitly. See [billing](/development/comfy-router/billing#model-billing-facts).

To see a price before a run, call `POST /v2/models/{provider}/{model}/estimate`, or read the `estimate` object on a queued submit's `201`. While the estimate is rolling out, the route answers `403` with `error_type: not_enabled` and the submit omits `estimate`. Each is priced from the rate card Comfy bills the run against, but it is not a price lock, a run on your own provider key is not billed by Comfy even when `/estimate` returns a figure for it, and an `unknown` estimate carries no figure; that does not mean free. `X-Comfy-Credits-Used` remains the post-hoc figure for a run. See [Pre-flight cost estimates](/development/comfy-router/reference#pre-flight-cost-estimates) for how to read `exact`, `estimated`, and `unknown`.

Check warning on line 84 in development/comfy-router/limitations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/limitations.mdx#L84

Did you really mean 'submit's'?

## Router does not cover every partner operation

Expand All @@ -89,7 +91,7 @@

Input and output fields vary by model. Moving from a provider SDK or proxy can change both the route and how you read the result.

Some assets are rehosted on Comfy storage; others are provider URLs or inline bytes. See [Result assets](/development/comfy-router/reference#result-assets) for lifetimes and replay behavior.

Check warning on line 94 in development/comfy-router/limitations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/limitations.mdx#L94

Did you really mean 'rehosted'?

## Next

Expand Down
11 changes: 10 additions & 1 deletion development/comfy-router/models.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
## Find by output

<AccordionGroup>
<Accordion title="Video (67)">
<Accordion title="Video (69)">

- [SwitchX](/development/comfy-router/models/beeble/switchx/code): `beeble/switchx`
- [FLUX 3 Video](/development/comfy-router/models/black-forest-labs/flux-3-video/code): `bfl/flux-3-video`
Expand Down Expand Up @@ -52,6 +52,8 @@
- [Text To Video](/development/comfy-router/models/moonvalley/text-to-video/code): `moonvalley/text-to-video`
- [Video To Video Resize](/development/comfy-router/models/moonvalley/video-to-video-resize/code): `moonvalley/video-to-video-resize`
- [Video To Video](/development/comfy-router/models/moonvalley/video-to-video/code): `moonvalley/video-to-video`
- [Pika 2.5 Image To Video](/development/comfy-router/models/pika/pika-2-5-image-to-video/code): `pika/pika-2.5-image-to-video`
- [Pika 2.5 Text To Video](/development/comfy-router/models/pika/pika-2-5-text-to-video/code): `pika/pika-2.5-text-to-video`
- [P Video 2](/development/comfy-router/models/pruna/p-video-2/code): `pruna/p-video-2`
- [Aleph 2](/development/comfy-router/models/runway/aleph2/code): `runway/aleph2`
- [Gen 4 Turbo](/development/comfy-router/models/runway/gen4-turbo/code): `runway/gen4_turbo`
Expand Down Expand Up @@ -300,7 +302,7 @@
| [Claude Sonnet 5.5](/development/comfy-router/models/anthropic/claude-sonnet-5-5/code) | `anthropic/claude-sonnet-5-5` | Text, Image | Text |
| [Claude Sonnet 5](/development/comfy-router/models/anthropic/claude-sonnet-5/code) | `anthropic/claude-sonnet-5` | Text, Image | Text |

## Beeble

Check warning on line 305 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L305

Did you really mean 'Beeble'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -323,7 +325,7 @@
| [Video Edit V1](/development/comfy-router/models/black-forest-labs/video-edit-v1/code) | `bfl/video-edit-v1` | Video, Text | Video |
| [VTO V1](/development/comfy-router/models/black-forest-labs/vto-v1/code) | `bfl/vto-v1` | Image | Image |

## Bria

Check warning on line 328 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L328

Did you really mean 'Bria'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand Down Expand Up @@ -369,7 +371,7 @@
| [Seedream 5.0 Flash 260915](/development/comfy-router/models/byteplus/seedream-5-0-flash-260915/code) | `byteplus/seedream-5-0-flash-260915` | Text, Image | Image |
| [Seedream 5.0 Pro 260628](/development/comfy-router/models/byteplus/seedream-5-0-pro-260628/code) | `byteplus/seedream-5-0-pro-260628` | Text, Image | Image |

## Elevenlabs

Check warning on line 374 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L374

Did you really mean 'Elevenlabs'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -378,7 +380,7 @@
| [Eleven V4 Turbo](/development/comfy-router/models/elevenlabs/eleven-v4-turbo/code) | `elevenlabs/eleven_v4_turbo` | Text | Audio |
| [Eleven V4](/development/comfy-router/models/elevenlabs/eleven-v4/code) | `elevenlabs/eleven_v4` | Text | Audio |

## fal

Check warning on line 383 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L383

Did you really mean 'fal'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -387,7 +389,7 @@
| [H3 Max](/development/comfy-router/models/fal/h3-max/code) | `fal/h3-max` | Text, Image, Video, Audio | Video + Audio |
| [Patina](/development/comfy-router/models/fal/patina/code) | `fal/patina` | Image | Image |

## Freepik

Check warning on line 392 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L392

Did you really mean 'Freepik'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand Down Expand Up @@ -423,7 +425,7 @@
| --- | --- | --- | --- |
| [Starfish](/development/comfy-router/models/heygen/starfish/code) | `heygen/starfish` | Text | Audio |

## Higgsfield

Check warning on line 428 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L428

Did you really mean 'Higgsfield'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -439,7 +441,7 @@
| [Ideogram 4.0](/development/comfy-router/models/ideogram/ideogram-v4/code) | `ideogram/ideogram-v4` | Text | Image |
| [P Image Ideogram](/development/comfy-router/models/ideogram/p-image-ideogram/code) | `ideogram/p-image-ideogram` | Text | Image |

## Kling

Check warning on line 444 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L444

Did you really mean 'Kling'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -454,7 +456,7 @@
| [Videos Lip Sync](/development/comfy-router/models/kling/videos-lip-sync/code) | `kling/videos-lip-sync` | Video, Audio | Video |
| [Videos Video Extend](/development/comfy-router/models/kling/videos-video-extend/code) | `kling/videos-video-extend` | Video, Text | Video |

## Krea

Check warning on line 459 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L459

Did you really mean 'Krea'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -470,7 +472,7 @@
| [LTX 2.5 Fast](/development/comfy-router/models/ltx/ltx-2-5-fast/code) | `ltx/ltx-2-5-fast` | Text | Video + Audio |
| [LTX 2.5 Pro](/development/comfy-router/models/ltx/ltx-2-5-pro/code) | `ltx/ltx-2-5-pro` | Text | Video + Audio |

## Luma

Check warning on line 475 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L475

Did you really mean 'Luma'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -479,14 +481,14 @@
| [Ray 2](/development/comfy-router/models/luma/ray-2/code) | `luma/ray-2` | Text, Image | Video |
| [Ray Flash 2](/development/comfy-router/models/luma/ray-flash-2/code) | `luma/ray-flash-2` | Text, Image | Video |

## Luma 2

Check warning on line 484 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L484

Did you really mean 'Luma'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
| [Uni 1 Max](/development/comfy-router/models/luma_2/uni-1-max/code) | `luma_2/uni-1-max` | Text, Image | Image |
| [Uni 1](/development/comfy-router/models/luma_2/uni-1/code) | `luma_2/uni-1` | Text, Image | Image |

## Meshy

Check warning on line 491 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L491

Did you really mean 'Meshy'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -504,7 +506,7 @@
| --- | --- | --- | --- |
| [MiniMax H3](/development/comfy-router/models/minimax/minimax-h3/code) | `minimax/minimax-h3` | Text, Image | Video + Audio |

## Moonvalley

Check warning on line 509 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L509

Did you really mean 'Moonvalley'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand Down Expand Up @@ -543,26 +545,33 @@
| [o3](/development/comfy-router/models/openai/o3/code) | `openai/o3` | Text, Image | Text |
| [o4-mini](/development/comfy-router/models/openai/o4-mini/code) | `openai/o4-mini` | Text, Image | Text |

## Openrouter

Check warning on line 548 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L548

Did you really mean 'Openrouter'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
| [Chat Completions](/development/comfy-router/models/openrouter/chat-completions/code) | `openrouter/chat-completions` | Text, Image | Text |

## Pika

| Model | ID | Input | Output |
| --- | --- | --- | --- |
| [Pika 2.5 Image To Video](/development/comfy-router/models/pika/pika-2-5-image-to-video/code) | `pika/pika-2.5-image-to-video` | Text, Image | Video |
| [Pika 2.5 Text To Video](/development/comfy-router/models/pika/pika-2-5-text-to-video/code) | `pika/pika-2.5-text-to-video` | Text | Video |

## Pruna

Check warning on line 561 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L561

Did you really mean 'Pruna'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
| [P Video 2](/development/comfy-router/models/pruna/p-video-2/code) | `pruna/p-video-2` | Text, Image, Audio | Video + Audio |

## Qwen

Check warning on line 567 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L567

Did you really mean 'Qwen'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
| [Qwen Image 3.0 Pro](/development/comfy-router/models/qwen/qwen-image-3-0-pro/code) | `qwen/qwen-image-3.0-pro` | Text, Image | Image |
| [Qwen Image 3.0](/development/comfy-router/models/qwen/qwen-image-3-0/code) | `qwen/qwen-image-3.0` | Text, Image | Image |

## Recraft

Check warning on line 574 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L574

Did you really mean 'Recraft'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand Down Expand Up @@ -591,13 +600,13 @@
| [Gen 4 Image](/development/comfy-router/models/runway/gen4-image/code) | `runway/gen4_image` | Text, Image | Image |
| [Gen 4 Turbo](/development/comfy-router/models/runway/gen4-turbo/code) | `runway/gen4_turbo` | Image, Text | Video |

## Synclabs

Check warning on line 603 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L603

Did you really mean 'Synclabs'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
| [Sync 3](/development/comfy-router/models/synclabs/sync-3/code) | `synclabs/sync-3` | Video, Image, Audio, Text | Video |

## Tencent

Check warning on line 609 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L609

Did you really mean 'Tencent'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand All @@ -606,7 +615,7 @@
| [Hunyuan 3D Texture Edit](/development/comfy-router/models/tencent/hunyuan-3d-texture-edit/code) | `tencent/hunyuan-3d-texture-edit` | 3D, Text | 3D |
| [Hunyuan 3D Uv](/development/comfy-router/models/tencent/hunyuan-3d-uv/code) | `tencent/hunyuan-3d-uv` | 3D | 3D |

## Veo

Check warning on line 618 in development/comfy-router/models.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models.mdx#L618

Did you really mean 'Veo'?

| Model | ID | Input | Output |
| --- | --- | --- | --- |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Use Dreamina Seedance 2.0 260128 with Comfy Router"

Check warning on line 2 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L2

Did you really mean 'Dreamina'?

Check warning on line 2 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L2

Did you really mean 'Seedance'?
description: "Call byteplus/dreamina-seedance-2-0-260128 through Comfy Router: endpoint, request shape and the response Router returns."
sidebarTitle: "Dreamina Seedance 2.0 260128"
---
Expand Down Expand Up @@ -82,7 +82,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 85 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L85

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -172,9 +172,10 @@
This model is served by Comfy Router directly unless the request names another provider. The providers below serve it too, on the same endpoint and with the same model ID, selected with the `model_provider` query parameter.

- **Comfy** (default): `POST https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-260128`
- **fal**, as `fal/fal-seedance-2.0`: `POST https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-260128?model_provider=fal`

Check warning on line 175 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L175

Did you really mean 'fal'?
- **Higgsfield**, as `higgsfield/higgsfield-seedance-2.0`: `POST https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-260128?model_provider=higgsfield`

Check warning on line 176 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L176

Did you really mean 'Higgsfield'?
- **Pika**, as `pika/pika-seedance-2.0`: `POST https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-260128?model_provider=pika`
- **Runware**, as `runware/runware-seedance-2.0`: `POST https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-260128?model_provider=runware`

Check warning on line 178 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L178

Did you really mean 'Runware'?
- **WaveSpeed**, as `wavespeed/wavespeed-seedance-2.0`: `POST https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-260128?model_provider=wavespeed`

`strict_mode` defaults to false, so Router translates the native request body documented on this page into the provider's own schema and translates the response back. See [`model_provider`, `strict_mode` and `fallback_provider`](/development/comfy-router/reference#post-v2modelsprovidermodel) in the API reference, and [Serving providers](/development/comfy-router/providers) for every model routed this way.
Expand All @@ -194,26 +195,26 @@
</ParamField>

<ParamField body="content[].audio_url" type="object">
Input audio object. Only Seedance 2.5, 2.0, 2.0 fast & 2.0 mini support audio input. Seedance 2.0, 2.0 fast & 2.0 mini cannot use audio alone - they must include at least 1 image or video; Seedance 2.5 supports audio-only input.

Check warning on line 198 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L198

Did you really mean 'Seedance'?

Check warning on line 198 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L198

Did you really mean 'Seedance'?

Check warning on line 198 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L198

Did you really mean 'Seedance'?
</ParamField>

<ParamField body="content[].audio_url.url" type="string" required>
Audio URL, Base64 encoding, or Asset ID.
Audio URL: Public URL of the audio (wav, mp3).

Check warning on line 203 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L203

Did you really mean 'wav'?
Base64: Format data:audio/\<format>;base64,\<content>
Asset ID: Format asset://\<ASSET_ID>
</ParamField>

<ParamField body="content[].draft_task" type="object">
Seedance 2.5 only. The Draft task to render as the final video. It must be the only content item.

Check warning on line 209 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L209

Did you really mean 'Seedance'?
The final video reuses the Draft task's prompt, input assets, duration, ratio, seed, generate_audio and omni_reference_task_type; do not send them again. resolution defaults to and only supports 1080p.

Check warning on line 210 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L210

Did you really mean 'generate_audio'?

Check warning on line 210 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L210

Did you really mean 'omni_reference_task_type'?
</ParamField>

<ParamField body="content[].draft_task.id" type="string" required>
The task ID returned when the Draft video was created with `draft` set to true.
</ParamField>

<ParamField body="content[].image_url" type="object">

Check warning on line 217 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L217

Did you really mean 'image_url'?

</ParamField>

Expand All @@ -226,9 +227,9 @@

<ParamField body="content[].role" type="string">
The role/position of the content item.
For images: first_frame, last_frame, or reference_image.

Check warning on line 230 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L230

Did you really mean 'first_frame'?

Check warning on line 230 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L230

Did you really mean 'last_frame'?

Check warning on line 230 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L230

Did you really mean 'reference_image'?
For videos: reference_video (Seedance 2.5, 2.0, 2.0 fast & 2.0 mini only).

Check warning on line 231 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L231

Did you really mean 'reference_video'?

Check warning on line 231 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L231

Did you really mean 'Seedance'?
For audio: reference_audio (Seedance 2.5, 2.0, 2.0 fast & 2.0 mini only).

Check warning on line 232 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L232

Did you really mean 'reference_audio'?

Check warning on line 232 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L232

Did you really mean 'Seedance'?

Possible values: `first_frame`, `last_frame`, `reference_image`, `reference_video`, `reference_audio`
</ParamField>
Expand All @@ -255,7 +256,7 @@
times this size on the wire. It bounds this one field, not the request:
`content` is an array, and the per-request body limit is what bounds the
whole document. Comfy Router (/v2/models/byteplus/\{model}) is the surface
that enforces it; on a direct v1 /proxy call BytePlus's own validator

Check warning on line 259 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L259

Did you really mean 'validator'?
answers instead. Set far above real traffic so it never adjudicates a
genuine prompt — raise it if a caller needs more.
</ParamField>
Expand All @@ -267,22 +268,22 @@
</ParamField>

<ParamField body="content[].video_url" type="object">
Input video object. Only Seedance 2.5, 2.0, 2.0 fast & 2.0 mini support video input.

Check warning on line 271 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L271

Did you really mean 'Seedance'?
</ParamField>

<ParamField body="content[].video_url.url" type="string" required>
Video URL or Asset ID.
Video URL: Public URL of the video (mp4, mov).

Check warning on line 276 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L276

Did you really mean 'mov'?
Asset ID: Format asset://\<ASSET_ID>
</ParamField>

<ParamField body="draft" type="boolean" default="false">
Seedance 2.5 only. Generates a 480p Draft video; resolution must be 480p.

Check warning on line 281 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L281

Did you really mean 'Seedance'?
Pass the returned task ID in a `draft_task` content item to render the final 1080p video. The Draft task ID stays valid for 7 days.
</ParamField>

<ParamField body="duration" type="`-1` | object">
Video duration in seconds. Seedance 2.5: [4,30] or -1 (auto; video editing tasks support only -1). Seedance 2.0, 2.0 fast & 2.0 mini: [4,15] or -1 (auto). Seedance 1.5 pro: [4,12] or -1. Seedance 1.0: [2,12].

Check warning on line 286 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L286

Did you really mean 'Seedance'?

Check warning on line 286 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L286

Did you really mean 'Seedance'?

Check warning on line 286 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L286

Did you really mean 'Seedance'?

Check warning on line 286 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L286

Did you really mean 'Seedance'?

Range: `2` to `30`
</ParamField>
Expand All @@ -294,34 +295,34 @@
</ParamField>

<ParamField body="generate_audio" type="boolean" default="true">
Supported by Seedance 2.5, 2.0, 2.0 fast, 2.0 mini, and 1.5 pro. Whether the generated video includes audio synchronized with the visuals.

Check warning on line 298 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L298

Did you really mean 'Seedance'?
true: The model outputs a video with synchronized audio.
false: The model outputs a silent video.
On models that support it, the generated audio track is content-checked by the provider separately from the video; a refusal there is reported as `content_policy_violation` and, because the audio differs each run, can be intermittent for an input the provider otherwise accepts. Send `false` for a silent video if that happens; this helps only when the audio was the refused modality, which a synchronous Router response names as `refusal_subject: output_audio` (a queued request does not identify it yet). A Seedance 2.5 final render inherits `generate_audio` from its Draft task, so recreate the Draft with `false` instead.

Check warning on line 301 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L301

Did you really mean 'Seedance'?
</ParamField>

<ParamField body="model" type="string">
The ID of the model to call. Supported models: seedance-1-5-pro-251215, seedance-1-0-pro-250528, seedance-1-0-pro-fast-251015, dreamina-seedance-2-0-260128, dreamina-seedance-2-0-fast-260128, dreamina-seedance-2-0-mini and dreamina-seedance-2-5-260628. A direct v1 call to POST /proxy/byteplus/api/v3/contents/generations/tasks MUST supply it — the proxy refuses any other value, and an omitted one, with a 400. It is NOT in this schema's `required` list because Comfy Router fills it from the `{model}` path segment of /v2/models/byteplus/\{model}, so a Router caller omits it.

Check warning on line 305 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L305

Did you really mean 'schema's'?
</ParamField>

<ParamField body="output_format" type="string" default="&quot;mp4&quot;">
Seedance 2.5 only. Container format of the output video.

Check warning on line 309 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L309

Did you really mean 'Seedance'?
mp4: General-purpose container (H.264/AAC, yuv420p) with broad compatibility and smaller file size.
mov: Professional container (H.264 High 4:4:4 Predictive/PCM, yuv444p) with high color precision, suited for post-production; larger file size.

Check warning on line 311 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L311

Did you really mean 'mov'?

Possible values: `mp4`, `mov`
</ParamField>

<ParamField body="ratio" type="string">
Aspect ratio of the generated video. Seedance 2.0, 2.0 fast & 2.0 mini, 1.5 pro default: adaptive.

Check warning on line 317 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L317

Did you really mean 'Seedance'?
Seedance 2.5 first-frame / first-last-frame generation: the output follows the first frame's aspect ratio, so only `adaptive` (or omitting the field) is accepted; a concrete ratio is refused with a 400 before dispatch. Seedance 2.0 accepts a concrete ratio in those modes.

Check warning on line 318 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L318

Did you really mean 'Seedance'?

Check warning on line 318 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L318

Did you really mean 'Seedance'?

Possible values: `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`, `9:21`, `adaptive`
</ParamField>

<ParamField body="resolution" type="string">
Video resolution. Seedance 2.5, 2.0, 2.0 fast & 2.0 mini, 1.5 pro, 1.0 lite default: 720p. Seedance 1.0 pro & pro-fast default: 1080p.

Check warning on line 324 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L324

Did you really mean 'Seedance'?

Check warning on line 324 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L324

Did you really mean 'Seedance'?
Note: Seedance 2.0, 2.0 fast & 2.0 mini do not support 1080p. Seedance 2.5 supports 480p, 720p, and 1080p.

Check warning on line 325 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L325

Did you really mean 'Seedance'?

Check warning on line 325 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L325

Did you really mean 'Seedance'?

Possible values: `480p`, `720p`, `1080p`, `4k`
</ParamField>
Expand All @@ -339,7 +340,7 @@
</ParamField>

<ParamField body="service_tier" type="string">
Service tier for processing. Seedance 2.5, 2.0 & 2.0 fast do not support flex (offline inference).

Check warning on line 343 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L343

Did you really mean 'Seedance'?

Possible values: `default`, `flex`
</ParamField>
Expand All @@ -353,7 +354,7 @@
### Output

<ResponseField name="content" type="object">
The output after the video generation task is completed, which contains the download URL of the output video and, when BytePlus returns one, the download URL of its last frame. Both `video_url` and `last_frame_url` are RE-HOSTED onto Comfy storage; every other field here is BytePlus's own. Nullable - BytePlus clears the URLs 24 hours after the task, and a succeeded document polled after that can carry `content` absent or null.

Check warning on line 357 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L357

Did you really mean 'Nullable'?
</ResponseField>

<ResponseField name="content.last_frame_url" type="string">
Expand All @@ -361,7 +362,7 @@
</ResponseField>

<ResponseField name="content.output_format" type="string">
Container format of the generated video (mp4 or mov), when BytePlus nests it inside `content`. Seedance models more commonly return it as a TOP-LEVEL sibling of `content` - see the top-level `output_format` field - and Router reads whichever of the two is present.

Check warning on line 365 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L365

Did you really mean 'mov'?

Check warning on line 365 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L365

Did you really mean 'Seedance'?
</ResponseField>

<ResponseField name="content.video_url" type="string">
Expand Down Expand Up @@ -397,7 +398,7 @@
</ResponseField>

<ResponseField name="output_format" type="string">
Container format of the generated video (mp4 or mov), returned at the TOP LEVEL as a sibling of `content` - this is where the Seedance video task query returns it. BytePlus's own field, forwarded unchanged.

Check warning on line 401 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L401

Did you really mean 'mov'?

Check warning on line 401 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L401

Did you really mean 'Seedance'?
</ResponseField>

<ResponseField name="resolution" type="string">
Expand Down Expand Up @@ -429,7 +430,7 @@
</ResponseField>

<ResponseField name="usage.total_tokens" type="integer">
For the video generation model, the number of input tokens is not calculated and defaults to 0. Therefore, total_tokens = completion_tokens.

Check warning on line 433 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L433

Did you really mean 'total_tokens'?

Check warning on line 433 in development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx#L433

Did you really mean 'completion_tokens'?
</ResponseField>

## Examples
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Use Nano Banana 2 with Comfy Router"

Check warning on line 2 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L2

Did you really mean 'Nano'?
description: "Python, TypeScript and cURL snippets for Nano Banana 2 (Gemini 3.1 Flash Image) image generation through Comfy Router, plus request fields"

Check warning on line 3 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L3

Did you really mean 'Nano'?
sidebarTitle: "Nano Banana 2"
---

Expand Down Expand Up @@ -63,7 +63,7 @@

// Reads COMFY_API_KEY from the environment.
// The SDK automatically creates an idempotency key and reuses it for automatic retries.
type Result = { candidates: { content: { parts: { inlineData: { data: string } }[] } }[] };

Check warning on line 66 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L66

Did you really mean 'inlineData'?
const result = await comfy.models.run<Result>("vertexai/gemini-3.1-flash-image", {
contents: [
{
Expand Down Expand Up @@ -102,7 +102,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 105 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L105

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand All @@ -121,7 +121,7 @@
],
},
],
"generationConfig": {

Check warning on line 124 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L124

Did you really mean 'generationConfig'?
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "1:1",
Expand Down Expand Up @@ -208,8 +208,9 @@
This model is served by Comfy Router directly unless the request names another provider. The providers below serve it too, on the same endpoint and with the same model ID, selected with the `model_provider` query parameter.

- **Comfy** (default): `POST https://api.comfy.org/v2/models/vertexai/gemini-3.1-flash-image`
- **fal**, as `fal/fal-nano-banana-2`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3.1-flash-image?model_provider=fal`

Check warning on line 211 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L211

Did you really mean 'fal'?
- **Pika**, as `pika/pika-nano-banana-2`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3.1-flash-image?model_provider=pika`
- **Runware**, as `runware/runware-nano-banana-2`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3.1-flash-image?model_provider=runware`

Check warning on line 213 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L213

Did you really mean 'Runware'?
- **WaveSpeed**, as `wavespeed/wavespeed-nano-banana-2`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3.1-flash-image?model_provider=wavespeed`

`strict_mode` defaults to false, so Router translates the native request body documented on this page into the provider's own schema and translates the response back. See [`model_provider`, `strict_mode` and `fallback_provider`](/development/comfy-router/reference#post-v2modelsprovidermodel) in the API reference, and [Serving providers](/development/comfy-router/providers) for every model routed this way.
Expand All @@ -226,22 +227,22 @@

</ParamField>

<ParamField body="contents[].parts[].fileData" type="object">

Check warning on line 230 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L230

Did you really mean 'fileData'?
URI based data.
</ParamField>

<ParamField body="contents[].parts[].fileData.fileUri" type="string">

Check warning on line 234 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L234

Did you really mean 'fileUri'?
URI
</ParamField>

<ParamField body="contents[].parts[].fileData.mimeType" type="string">

Check warning on line 238 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L238

Did you really mean 'mimeType'?
The media type of the file specified in the data or fileUri fields. Acceptable values include the following. For gemini-2.0-flash-lite and gemini-2.0-flash, the maximum length of an audio file is 8.4 hours and the maximum length of a video file (without audio) is one hour. For more information, see Gemini audio and video requirements. Text files must be UTF-8 encoded. The contents of the text file count toward the token limit. There is no limit on image resolution.

Possible values: `application/pdf`, `audio/mpeg`, `audio/mp3`, `audio/wav`, `image/png`, `image/jpeg`, `image/webp`, `text/plain`, `video/mov`, `video/mpeg`, `video/mp4`, `video/mpg`, `video/avi`, `video/wmv`, `video/mpegps`, `video/flv`, `image/heic`, `image/heif`, `audio/flac`, `video/webm`
</ParamField>

<ParamField body="contents[].parts[].inlineData" type="object">
Inline data in raw bytes. For gemini-2.0-flash-lite and gemini-2.0-flash, you can specify up to 3000 images by using inlineData.

Check warning on line 245 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L245

Did you really mean 'inlineData'?
</ParamField>

<ParamField body="contents[].parts[].inlineData.data" type="string (byte)">
Expand Down Expand Up @@ -293,7 +294,7 @@
</ParamField>

<ParamField body="generationConfig.imageConfig.imageOutputOptions.mimeType" type="string">
Optional. The image format that the output should be saved as, on the Vertex AI paths: requests served by Comfy's own credentials, and BYOK requests authenticated with a GCP service account. Accepted values there are `image/png` and `image/jpeg`, matched case-insensitively and normalised to lower case before the request is forwarded; any other value is rejected with a 400 naming this field. Defaults to `image/png` when omitted. A BYOK request authenticated with a Google AI Studio API key is the exception: that upstream has no such property and rejects the whole call if it is present, so the field is dropped from the request rather than honoured or rejected, and the output format is whatever AI Studio chooses. On every path, read the media type back from the response part you are given (`inlineData.mimeType`, or `fileData.mimeType` when `uploadImagesToStorage` is set) rather than assuming the value you sent.

Check warning on line 297 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L297

Did you really mean 'Comfy's'?
</ParamField>

<ParamField body="generationConfig.imageConfig.imageSize" type="string">
Expand Down Expand Up @@ -373,7 +374,7 @@
</ParamField>

<ParamField body="systemInstruction" type="object">
Instructions for the model to steer it toward better performance. For example, "Answer as concisely as possible" or "Don't use technical terms in your response". The text strings count toward the token limit. The role field of systemInstruction is ignored and doesn't affect the performance of the model. Note: Only text should be used in parts and content in each part should be in a separate paragraph.

Check warning on line 377 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L377

Did you really mean 'systemInstruction'?
</ParamField>

<ParamField body="systemInstruction.parts" type="object[]" required>
Expand Down Expand Up @@ -415,14 +416,14 @@
</ParamField>

<ParamField body="videoMetadata" type="object">
For video input, the start and end offset of the video in Duration format. For example, to specify a 10 second clip starting at 1:00, set "startOffset": \{ "seconds": 60 } and "endOffset": \{ "seconds": 70 }. The metadata should only be specified while the video data is presented in inlineData or fileData.

Check warning on line 419 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L419

Did you really mean 'startOffset'?

Check warning on line 419 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L419

Did you really mean 'endOffset'?
</ParamField>

<ParamField body="videoMetadata.endOffset" type="object">
Represents a duration offset for video timeline positions.
</ParamField>

<ParamField body="videoMetadata.endOffset.nanos" type="integer">

Check warning on line 426 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L426

Did you really mean 'nanos'?
Signed fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values.

Range: `0` to `999999999`
Expand Down Expand Up @@ -517,7 +518,7 @@
</ResponseField>

<ResponseField name="candidates[].content.parts[].inlineData" type="object">
Inline data in raw bytes. For gemini-2.0-flash-lite and gemini-2.0-flash, you can specify up to 3000 images by using inlineData.

Check warning on line 521 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L521

Did you really mean 'inlineData'?
</ResponseField>

<ResponseField name="candidates[].content.parts[].inlineData.data" type="string (byte)">
Expand Down Expand Up @@ -631,7 +632,7 @@
</ResponseField>

<ResponseField name="usageMetadata.promptTokenCount" type="integer">
Number of tokens in the request. When cachedContent is set, this is still the total effective prompt size meaning this includes the number of tokens in the cached content.

Check warning on line 635 in development/comfy-router/models/google/nano-banana-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-2/code.mdx#L635

Did you really mean 'cachedContent'?
</ResponseField>

<ResponseField name="usageMetadata.promptTokensDetails" type="object[]">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Use Nano Banana Pro with Comfy Router"

Check warning on line 2 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L2

Did you really mean 'Nano'?
description: "Python, TypeScript and cURL snippets for Nano Banana Pro (Gemini 3 Pro Image) image generation through Comfy Router, plus request fields"

Check warning on line 3 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L3

Did you really mean 'Nano'?
sidebarTitle: "Nano Banana Pro"
---

Expand Down Expand Up @@ -63,7 +63,7 @@

// Reads COMFY_API_KEY from the environment.
// The SDK automatically creates an idempotency key and reuses it for automatic retries.
type Result = { candidates: { content: { parts: { inlineData: { data: string } }[] } }[] };

Check warning on line 66 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L66

Did you really mean 'inlineData'?
const result = await comfy.models.run<Result>("vertexai/gemini-3-pro-image", {
contents: [
{
Expand Down Expand Up @@ -102,7 +102,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 105 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L105

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand All @@ -121,7 +121,7 @@
],
},
],
"generationConfig": {

Check warning on line 124 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L124

Did you really mean 'generationConfig'?
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "1:1",
Expand Down Expand Up @@ -208,8 +208,9 @@
This model is served by Comfy Router directly unless the request names another provider. The providers below serve it too, on the same endpoint and with the same model ID, selected with the `model_provider` query parameter.

- **Comfy** (default): `POST https://api.comfy.org/v2/models/vertexai/gemini-3-pro-image`
- **fal**, as `fal/fal-nano-banana-pro`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3-pro-image?model_provider=fal`

Check warning on line 211 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L211

Did you really mean 'fal'?
- **Pika**, as `pika/pika-nano-banana-pro`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3-pro-image?model_provider=pika`
- **Runware**, as `runware/runware-nano-banana-pro`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3-pro-image?model_provider=runware`

Check warning on line 213 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L213

Did you really mean 'Runware'?
- **WaveSpeed**, as `wavespeed/wavespeed-nano-banana-pro`: `POST https://api.comfy.org/v2/models/vertexai/gemini-3-pro-image?model_provider=wavespeed`

`strict_mode` defaults to false, so Router translates the native request body documented on this page into the provider's own schema and translates the response back. See [`model_provider`, `strict_mode` and `fallback_provider`](/development/comfy-router/reference#post-v2modelsprovidermodel) in the API reference, and [Serving providers](/development/comfy-router/providers) for every model routed this way.
Expand All @@ -226,22 +227,22 @@

</ParamField>

<ParamField body="contents[].parts[].fileData" type="object">

Check warning on line 230 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L230

Did you really mean 'fileData'?
URI based data.
</ParamField>

<ParamField body="contents[].parts[].fileData.fileUri" type="string">

Check warning on line 234 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L234

Did you really mean 'fileUri'?
URI
</ParamField>

<ParamField body="contents[].parts[].fileData.mimeType" type="string">

Check warning on line 238 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L238

Did you really mean 'mimeType'?
The media type of the file specified in the data or fileUri fields. Acceptable values include the following. For gemini-2.0-flash-lite and gemini-2.0-flash, the maximum length of an audio file is 8.4 hours and the maximum length of a video file (without audio) is one hour. For more information, see Gemini audio and video requirements. Text files must be UTF-8 encoded. The contents of the text file count toward the token limit. There is no limit on image resolution.

Possible values: `application/pdf`, `audio/mpeg`, `audio/mp3`, `audio/wav`, `image/png`, `image/jpeg`, `image/webp`, `text/plain`, `video/mov`, `video/mpeg`, `video/mp4`, `video/mpg`, `video/avi`, `video/wmv`, `video/mpegps`, `video/flv`, `image/heic`, `image/heif`, `audio/flac`, `video/webm`
</ParamField>

<ParamField body="contents[].parts[].inlineData" type="object">
Inline data in raw bytes. For gemini-2.0-flash-lite and gemini-2.0-flash, you can specify up to 3000 images by using inlineData.

Check warning on line 245 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L245

Did you really mean 'inlineData'?
</ParamField>

<ParamField body="contents[].parts[].inlineData.data" type="string (byte)">
Expand Down Expand Up @@ -293,7 +294,7 @@
</ParamField>

<ParamField body="generationConfig.imageConfig.imageOutputOptions.mimeType" type="string">
Optional. The image format that the output should be saved as, on the Vertex AI paths: requests served by Comfy's own credentials, and BYOK requests authenticated with a GCP service account. Accepted values there are `image/png` and `image/jpeg`, matched case-insensitively and normalised to lower case before the request is forwarded; any other value is rejected with a 400 naming this field. Defaults to `image/png` when omitted. A BYOK request authenticated with a Google AI Studio API key is the exception: that upstream has no such property and rejects the whole call if it is present, so the field is dropped from the request rather than honoured or rejected, and the output format is whatever AI Studio chooses. On every path, read the media type back from the response part you are given (`inlineData.mimeType`, or `fileData.mimeType` when `uploadImagesToStorage` is set) rather than assuming the value you sent.

Check warning on line 297 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L297

Did you really mean 'Comfy's'?
</ParamField>

<ParamField body="generationConfig.imageConfig.imageSize" type="string">
Expand Down Expand Up @@ -373,7 +374,7 @@
</ParamField>

<ParamField body="systemInstruction" type="object">
Instructions for the model to steer it toward better performance. For example, "Answer as concisely as possible" or "Don't use technical terms in your response". The text strings count toward the token limit. The role field of systemInstruction is ignored and doesn't affect the performance of the model. Note: Only text should be used in parts and content in each part should be in a separate paragraph.

Check warning on line 377 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L377

Did you really mean 'systemInstruction'?
</ParamField>

<ParamField body="systemInstruction.parts" type="object[]" required>
Expand Down Expand Up @@ -415,14 +416,14 @@
</ParamField>

<ParamField body="videoMetadata" type="object">
For video input, the start and end offset of the video in Duration format. For example, to specify a 10 second clip starting at 1:00, set "startOffset": \{ "seconds": 60 } and "endOffset": \{ "seconds": 70 }. The metadata should only be specified while the video data is presented in inlineData or fileData.

Check warning on line 419 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L419

Did you really mean 'startOffset'?

Check warning on line 419 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L419

Did you really mean 'endOffset'?
</ParamField>

<ParamField body="videoMetadata.endOffset" type="object">
Represents a duration offset for video timeline positions.
</ParamField>

<ParamField body="videoMetadata.endOffset.nanos" type="integer">

Check warning on line 426 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L426

Did you really mean 'nanos'?
Signed fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values.

Range: `0` to `999999999`
Expand Down Expand Up @@ -517,7 +518,7 @@
</ResponseField>

<ResponseField name="candidates[].content.parts[].inlineData" type="object">
Inline data in raw bytes. For gemini-2.0-flash-lite and gemini-2.0-flash, you can specify up to 3000 images by using inlineData.

Check warning on line 521 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L521

Did you really mean 'inlineData'?
</ResponseField>

<ResponseField name="candidates[].content.parts[].inlineData.data" type="string (byte)">
Expand Down Expand Up @@ -631,7 +632,7 @@
</ResponseField>

<ResponseField name="usageMetadata.promptTokenCount" type="integer">
Number of tokens in the request. When cachedContent is set, this is still the total effective prompt size meaning this includes the number of tokens in the cached content.

Check warning on line 635 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L635

Did you really mean 'cachedContent'?
</ResponseField>

<ResponseField name="usageMetadata.promptTokensDetails" type="object[]">
Expand Down Expand Up @@ -738,7 +739,7 @@

**`fileData` can appear on a response that did not ask for it.** The two shapes are per part, not per response: when `uploadImagesToStorage: true` is set, an image whose upload fails is left as `inlineData`, so one response can mix both. Branch on which key is present rather than on what you requested. The one case that cannot happen is the reverse: with the field unset or false, every generated image comes back as `inlineData` and no `fileData` image part is produced. Text parts can also appear, and the image is not guaranteed to be the first part, so select a part by the field you need rather than by index. The `candidates[0].content.parts[0].inlineData.data` path in the quickstart samples above reads the single inline part of the sample response on this page; against a real response, scan `parts` for the key you want instead of indexing position 0.

**`thoughtSignature` is a part field too, and it is large.** A part can carry `thoughtSignature`, an opaque base64 signature of the model's reasoning that exists so the thought can be replayed in a later request. It is absent from the generated schema above, which follows the request/response document Router publishes. Measured on real responses it runs roughly 1 to 2 MB per part, comparable to the image itself, so it is worth budgeting for or discarding explicitly if you are logging responses, forwarding them through a serverless function, or storing them.

Check warning on line 742 in development/comfy-router/models/google/nano-banana-pro/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/google/nano-banana-pro/code.mdx#L742

Did you really mean 'serverless'?

### `imageSize` is a class, not a width

Expand Down
4 changes: 2 additions & 2 deletions development/comfy-router/models/meshy/meshy-5/code.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Use Meshy 5 with Comfy Router"

Check warning on line 2 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L2

Did you really mean 'Meshy'?
description: "Call meshy/meshy-5 through Comfy Router: endpoint, request shape and the response Router returns."
sidebarTitle: "Meshy 5"
---
Expand Down Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -150,7 +150,7 @@
#### `preview` variant

<ParamField body="ai_model" type="string">
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DPreviewRequest, which constrains it to MeshyAiModel.

Check warning on line 153 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L153

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="art_style" type="string" default="&quot;realistic&quot;">
Expand All @@ -160,13 +160,13 @@
</ParamField>

<ParamField body="geometry_resolution" type="string" default="&quot;standard&quot;">
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k requires ai_model meshy-7, meshy-7.1 or latest; 4k requires meshy-7.1 or latest.
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k and 4k require ai_model meshy-7.1 or latest.

Check warning on line 163 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L163

Did you really mean 'ai_model'?

Possible values: `standard`, `2k`, `4k`
</ParamField>

<ParamField body="is_a_t_pose" type="boolean" default="false">
Deprecated. Use pose_mode instead. Whether to generate the model in an A/T pose.

Check warning on line 169 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L169

Did you really mean 'pose_mode'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand All @@ -190,7 +190,7 @@
</ParamField>

<ParamField body="should_remesh" type="boolean" default="false">
Controls whether to enable the remesh phase. When false, returns highest-precision triangular mesh. Defaults to true for Meshy 5 and false for Meshy 6 and 7.

Check warning on line 193 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L193

Did you really mean 'remesh'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L193

Did you really mean 'Meshy'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L193

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="symmetry_mode" type="string" default="&quot;auto&quot;">
Expand All @@ -212,17 +212,17 @@
</ParamField>

<ParamField body="ultra_mode" type="boolean" default="false">
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest.
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest. The exception is meshy-7: geometry_resolution 2k requires meshy-7.1 or latest, so on meshy-7 ultra_mode true is the way to request the Ultra pass.

Check warning on line 215 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L215

Did you really mean 'ai_model'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L215

Did you really mean 'ultra_mode'?
</ParamField>

#### `refine` variant

<ParamField body="ai_model" type="string">

Check warning on line 220 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L220

Did you really mean 'ai_model'?
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DRefineRequest, which constrains it to MeshyAiModel.

Check warning on line 221 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L221

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="enable_pbr" type="boolean" default="false">
Generate PBR Maps (metallic, roughness, normal) in addition to the base color. Note that enable_pbr should be set to false when using Sculpture style.

Check warning on line 225 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L225

Did you really mean 'enable_pbr'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand Down Expand Up @@ -258,7 +258,7 @@
### Output

<ResponseField name="art_style" type="string">
The unmodified art_style that was used to create the preview task.

Check warning on line 261 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L261

Did you really mean 'art_style'?
</ResponseField>

<ResponseField name="created_at" type="integer">
Expand All @@ -278,7 +278,7 @@
</ResponseField>

<ResponseField name="model_urls" type="object">
Downloadable URLs to the textured 3D model files generated by Meshy.

Check warning on line 281 in development/comfy-router/models/meshy/meshy-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-5/code.mdx#L281

Did you really mean 'Meshy'?
</ResponseField>

<ResponseField name="model_urls.fbx" type="string">
Expand Down
4 changes: 2 additions & 2 deletions development/comfy-router/models/meshy/meshy-6/code.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Use Meshy 6 with Comfy Router"

Check warning on line 2 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L2

Did you really mean 'Meshy'?
description: "Call meshy/meshy-6 through Comfy Router: endpoint, request shape and the response Router returns."
sidebarTitle: "Meshy 6"
---
Expand Down Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -150,7 +150,7 @@
#### `preview` variant

<ParamField body="ai_model" type="string">
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DPreviewRequest, which constrains it to MeshyAiModel.

Check warning on line 153 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L153

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="art_style" type="string" default="&quot;realistic&quot;">
Expand All @@ -160,13 +160,13 @@
</ParamField>

<ParamField body="geometry_resolution" type="string" default="&quot;standard&quot;">
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k requires ai_model meshy-7, meshy-7.1 or latest; 4k requires meshy-7.1 or latest.
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k and 4k require ai_model meshy-7.1 or latest.

Check warning on line 163 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L163

Did you really mean 'ai_model'?

Possible values: `standard`, `2k`, `4k`
</ParamField>

<ParamField body="is_a_t_pose" type="boolean" default="false">
Deprecated. Use pose_mode instead. Whether to generate the model in an A/T pose.

Check warning on line 169 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L169

Did you really mean 'pose_mode'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand All @@ -190,7 +190,7 @@
</ParamField>

<ParamField body="should_remesh" type="boolean" default="false">
Controls whether to enable the remesh phase. When false, returns highest-precision triangular mesh. Defaults to true for Meshy 5 and false for Meshy 6 and 7.

Check warning on line 193 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L193

Did you really mean 'remesh'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L193

Did you really mean 'Meshy'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L193

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="symmetry_mode" type="string" default="&quot;auto&quot;">
Expand All @@ -212,17 +212,17 @@
</ParamField>

<ParamField body="ultra_mode" type="boolean" default="false">
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest.
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest. The exception is meshy-7: geometry_resolution 2k requires meshy-7.1 or latest, so on meshy-7 ultra_mode true is the way to request the Ultra pass.

Check warning on line 215 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L215

Did you really mean 'ai_model'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L215

Did you really mean 'ultra_mode'?
</ParamField>

#### `refine` variant

<ParamField body="ai_model" type="string">

Check warning on line 220 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L220

Did you really mean 'ai_model'?
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DRefineRequest, which constrains it to MeshyAiModel.

Check warning on line 221 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L221

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="enable_pbr" type="boolean" default="false">
Generate PBR Maps (metallic, roughness, normal) in addition to the base color. Note that enable_pbr should be set to false when using Sculpture style.

Check warning on line 225 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L225

Did you really mean 'enable_pbr'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand Down Expand Up @@ -258,7 +258,7 @@
### Output

<ResponseField name="art_style" type="string">
The unmodified art_style that was used to create the preview task.

Check warning on line 261 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L261

Did you really mean 'art_style'?
</ResponseField>

<ResponseField name="created_at" type="integer">
Expand All @@ -278,7 +278,7 @@
</ResponseField>

<ResponseField name="model_urls" type="object">
Downloadable URLs to the textured 3D model files generated by Meshy.

Check warning on line 281 in development/comfy-router/models/meshy/meshy-6/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-6/code.mdx#L281

Did you really mean 'Meshy'?
</ResponseField>

<ResponseField name="model_urls.fbx" type="string">
Expand Down
4 changes: 2 additions & 2 deletions development/comfy-router/models/meshy/meshy-7-1/code.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Use Meshy 7.1 with Comfy Router"

Check warning on line 2 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L2

Did you really mean 'Meshy'?
description: "Call meshy/meshy-7.1 through Comfy Router: endpoint, request shape and the response Router returns."
sidebarTitle: "Meshy 7.1"
---
Expand Down Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -150,7 +150,7 @@
#### `preview` variant

<ParamField body="ai_model" type="string">
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DPreviewRequest, which constrains it to MeshyAiModel.

Check warning on line 153 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L153

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="art_style" type="string" default="&quot;realistic&quot;">
Expand All @@ -160,13 +160,13 @@
</ParamField>

<ParamField body="geometry_resolution" type="string" default="&quot;standard&quot;">
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k requires ai_model meshy-7, meshy-7.1 or latest; 4k requires meshy-7.1 or latest.
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k and 4k require ai_model meshy-7.1 or latest.

Check warning on line 163 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L163

Did you really mean 'ai_model'?

Possible values: `standard`, `2k`, `4k`
</ParamField>

<ParamField body="is_a_t_pose" type="boolean" default="false">
Deprecated. Use pose_mode instead. Whether to generate the model in an A/T pose.

Check warning on line 169 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L169

Did you really mean 'pose_mode'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand All @@ -190,7 +190,7 @@
</ParamField>

<ParamField body="should_remesh" type="boolean" default="false">
Controls whether to enable the remesh phase. When false, returns highest-precision triangular mesh. Defaults to true for Meshy 5 and false for Meshy 6 and 7.

Check warning on line 193 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L193

Did you really mean 'remesh'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L193

Did you really mean 'Meshy'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L193

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="symmetry_mode" type="string" default="&quot;auto&quot;">
Expand All @@ -212,17 +212,17 @@
</ParamField>

<ParamField body="ultra_mode" type="boolean" default="false">
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest.
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest. The exception is meshy-7: geometry_resolution 2k requires meshy-7.1 or latest, so on meshy-7 ultra_mode true is the way to request the Ultra pass.

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L215

Did you really mean 'ai_model'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L215

Did you really mean 'ultra_mode'?
</ParamField>

#### `refine` variant

<ParamField body="ai_model" type="string">

Check warning on line 220 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L220

Did you really mean 'ai_model'?
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DRefineRequest, which constrains it to MeshyAiModel.

Check warning on line 221 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L221

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="enable_pbr" type="boolean" default="false">
Generate PBR Maps (metallic, roughness, normal) in addition to the base color. Note that enable_pbr should be set to false when using Sculpture style.

Check warning on line 225 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L225

Did you really mean 'enable_pbr'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand Down Expand Up @@ -258,7 +258,7 @@
### Output

<ResponseField name="art_style" type="string">
The unmodified art_style that was used to create the preview task.

Check warning on line 261 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L261

Did you really mean 'art_style'?
</ResponseField>

<ResponseField name="created_at" type="integer">
Expand All @@ -278,7 +278,7 @@
</ResponseField>

<ResponseField name="model_urls" type="object">
Downloadable URLs to the textured 3D model files generated by Meshy.

Check warning on line 281 in development/comfy-router/models/meshy/meshy-7-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7-1/code.mdx#L281

Did you really mean 'Meshy'?
</ResponseField>

<ResponseField name="model_urls.fbx" type="string">
Expand Down
4 changes: 2 additions & 2 deletions development/comfy-router/models/meshy/meshy-7/code.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Use Meshy 7 with Comfy Router"

Check warning on line 2 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L2

Did you really mean 'Meshy'?
description: "Call meshy/meshy-7 through Comfy Router: endpoint, request shape and the response Router returns."
sidebarTitle: "Meshy 7"
---
Expand Down Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -150,7 +150,7 @@
#### `preview` variant

<ParamField body="ai_model" type="string">
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DPreviewRequest, which constrains it to MeshyAiModel.

Check warning on line 153 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L153

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="art_style" type="string" default="&quot;realistic&quot;">
Expand All @@ -160,13 +160,13 @@
</ParamField>

<ParamField body="geometry_resolution" type="string" default="&quot;standard&quot;">
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k requires ai_model meshy-7, meshy-7.1 or latest; 4k requires meshy-7.1 or latest.
Geometry resolution of the generated mesh. 2k and 4k run the Ultra pass for finer surface detail. 2k and 4k require ai_model meshy-7.1 or latest.

Check warning on line 163 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L163

Did you really mean 'ai_model'?

Possible values: `standard`, `2k`, `4k`
</ParamField>

<ParamField body="is_a_t_pose" type="boolean" default="false">
Deprecated. Use pose_mode instead. Whether to generate the model in an A/T pose.

Check warning on line 169 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L169

Did you really mean 'pose_mode'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand All @@ -190,7 +190,7 @@
</ParamField>

<ParamField body="should_remesh" type="boolean" default="false">
Controls whether to enable the remesh phase. When false, returns highest-precision triangular mesh. Defaults to true for Meshy 5 and false for Meshy 6 and 7.

Check warning on line 193 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L193

Did you really mean 'remesh'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L193

Did you really mean 'Meshy'?

Check warning on line 193 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L193

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="symmetry_mode" type="string" default="&quot;auto&quot;">
Expand All @@ -212,17 +212,17 @@
</ParamField>

<ParamField body="ultra_mode" type="boolean" default="false">
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest.
Deprecated. Use geometry_resolution instead; true is equivalent to geometry_resolution 2k. Only supported when ai_model is meshy-7, meshy-7.1 or latest. The exception is meshy-7: geometry_resolution 2k requires meshy-7.1 or latest, so on meshy-7 ultra_mode true is the way to request the Ultra pass.

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L215

Did you really mean 'geometry_resolution'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L215

Did you really mean 'ai_model'?

Check warning on line 215 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L215

Did you really mean 'ultra_mode'?
</ParamField>

#### `refine` variant

<ParamField body="ai_model" type="string">

Check warning on line 220 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L220

Did you really mean 'ai_model'?
The Meshy model to run. On the Comfy Router route this is supplied by the path (`/v2/models/meshy/{model}`) and may be omitted or sent as null; Router writes the path's model here after validation. On the v1 /proxy route see MeshyTextTo3DRefineRequest, which constrains it to MeshyAiModel.

Check warning on line 221 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L221

Did you really mean 'Meshy'?
</ParamField>

<ParamField body="enable_pbr" type="boolean" default="false">
Generate PBR Maps (metallic, roughness, normal) in addition to the base color. Note that enable_pbr should be set to false when using Sculpture style.

Check warning on line 225 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L225

Did you really mean 'enable_pbr'?
</ParamField>

<ParamField body="mode" type="string" required>
Expand Down Expand Up @@ -258,7 +258,7 @@
### Output

<ResponseField name="art_style" type="string">
The unmodified art_style that was used to create the preview task.

Check warning on line 261 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L261

Did you really mean 'art_style'?
</ResponseField>

<ResponseField name="created_at" type="integer">
Expand All @@ -278,7 +278,7 @@
</ResponseField>

<ResponseField name="model_urls" type="object">
Downloadable URLs to the textured 3D model files generated by Meshy.

Check warning on line 281 in development/comfy-router/models/meshy/meshy-7/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/meshy/meshy-7/code.mdx#L281

Did you really mean 'Meshy'?
</ResponseField>

<ResponseField name="model_urls.fbx" type="string">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -161,15 +161,15 @@
</ParamField>

<ParamField body="mask" type="string">
One image, as either an https URL Router fetches on the caller's behalf or a `data:image/<format>;base64,<payload>` URI carrying the bytes inline. Accepted image types are png, webp and jpeg, and that set is ENFORCED at resolve time rather than left to the provider -- an svg, gif, avif or tiff is refused here, naming the image you sent, instead of becoming a partner error two hops from the cause.

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L164

Did you really mean 'webp'?

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L164

Did you really mean 'jpeg'?

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L164

Did you really mean 'gif'?

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L164

Did you really mean 'avif'?
Prefer the URL form. A base64 payload inflates roughly 4/3 and the whole request body is capped at 100 MiB, so the inline form caps out near a 75 MB source image; a URL sidesteps that entirely. The per-image and per-request media ceilings stated at the end of this description are tighter than the body cap, so for an image of any real size they are what you meet first.
THE URL MUST RESOLVE WITHOUT YOUR CREDENTIALS. Router fetches it server-side and sends no caller credential with the request, so a presigned URL -- one whose signature is in the query string -- is the supported form. An authenticated endpoint such as `/api/assets/{id}/content` answers Router 401 rather than the image; request that URL yourself and pass the signed URL it redirects to.

Check warning on line 166 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L166

Did you really mean 'presigned'?
THE FETCH IS CONFINED TO A NAMED SET OF HOSTS rather than the open internet, and the same list is re-applied to every redirect hop as well as to the URL you send -- so a URL on any other host, or one that redirects off the list, is refused before any provider is contacted. Today that list is Comfy's own asset delivery only: a signed `storage.googleapis.com` URL under a Comfy asset bucket, which is the form `/api/assets/{id}/content` redirects you to. A partner CDN or a plain https host is NOT on the list.

Check warning on line 167 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L167

Did you really mean 'Comfy's'?
TWO WIDENINGS ARE BEING ROLLED OUT AND ARE BOTH OFF BY DEFAULT TODAY. They ship behind ONE switch and are enabled together, so treat everything below as forthcoming rather than as something to build against yet -- ask before you rely on either.
The FIRST is the bucket `POST /customers/storage` signs your upload into. Until the rollout reaches your environment an upload URL from that endpoint is refused here, even though the bucket is Comfy's own and the host is the same one -- so "upload to Comfy, then pass the URL" does NOT work yet, and the form that does is the signed URL `/api/assets/{id}/content` redirects to.

Check warning on line 169 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L169

Did you really mean 'rollout'?

Check warning on line 169 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L169

Did you really mean 'Comfy's'?
The SECOND is ENABLED PER ACCOUNT rather than for everyone at once, because the bucket behind these hosts is yours rather than ours: even once the switch above is on, an account that has not had third-party inbound media enabled is refused, and told so in those words rather than told the host is unsupported. Ask your Comfy contact to enable it for your account. It additionally admits these third-party object-storage hosts, where the bucket is yours and Router makes no ownership claim on it: Cloudflare R2 (`<account>.r2.cloudflarestorage.com`, `pub-<hash>.r2.dev`), Amazon S3 (`s3.amazonaws.com` and `s3.<region>.amazonaws.com`, in either the path-style or the `<bucket>.`-prefixed form), Azure Blob Storage (`<account>.blob.core.windows.net`) and Alibaba Cloud OSS (`<bucket>.oss-<region>.aliyuncs.com`, including the `oss-accelerate` endpoint). Those are object-storage endpoints specifically: a general-purpose endpoint on the same provider domain, such as an Alibaba Function Compute trigger, is not on the list and is refused.

Check warning on line 170 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L170

Did you really mean 'Alibaba'?

Check warning on line 170 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L170

Did you really mean 'Alibaba'?
WHAT IS MATCHED IS THE HOSTNAME FORM, NOT THE PROVIDER -- so naming a provider above does NOT mean every URL that provider can issue is accepted, and three near-misses are worth stating outright because a caller can reasonably arrive with each of them. An R2 CUSTOM DOMAIN (`cdn.example.com`) is NOT accepted: Cloudflare documents `pub-<hash>.r2.dev` as a rate-limited debug hostname and points production traffic at a custom domain instead, but a custom domain carries nothing in its hostname identifying it as R2, so Router cannot tell it from any other host and refuses it -- presign the `<account>.r2.cloudflarestorage.com` endpoint, or use the `pub-<hash>.r2.dev` form. S3's IPv6 dualstack endpoint (`s3.dualstack.<region>.amazonaws.com`) is not accepted either; use the plain regional endpoint. Nor is Azure Blob's alternate DNS zone (`<account>.z<N>.blob.storage.azure.net`); use `<account>.blob.core.windows.net`. The refusal you get back names these same forms, so you do not have to come here to read them.

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L171

Did you really mean 'hostname'?

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L171

Did you really mean 'hostname'?

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L171

Did you really mean 'presign'?

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L171

Did you really mean 'dualstack'?
The `<account>` and `pub-<hash>` placeholders above show the form you will normally arrive with; they are not a depth restriction. Matching is on the object-storage domain suffix, so a deeper name under the same namespace (`a.b.pub-<hash>.r2.dev`) is accepted as well. What is NOT widened by that is the namespace itself -- the suffix still has to be one of the ones listed.

Check warning on line 172 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L172

Did you really mean 'namespace'?

Check warning on line 172 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L172

Did you really mean 'namespace'?
The example below shows the shape only: a real value also carries the signing query parameters, which are deliberately omitted here because a published example lives in the spec forever and a real signature is both a leaked credential and a link that stops working.
Each image is capped at 25 MiB and one request's images at 64 MiB in total.
</ParamField>
Expand Down Expand Up @@ -295,7 +295,7 @@
</ResponseField>

<ResponseField name="created" type="integer">
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, pika-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.

Check warning on line 298 in development/comfy-router/models/openai/gpt-image-1-5/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1-5/code.mdx#L298

Did you really mean 'unformatted'?

Format: `int64`
</ResponseField>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -161,15 +161,15 @@
</ParamField>

<ParamField body="mask" type="string">
One image, as either an https URL Router fetches on the caller's behalf or a `data:image/<format>;base64,<payload>` URI carrying the bytes inline. Accepted image types are png, webp and jpeg, and that set is ENFORCED at resolve time rather than left to the provider -- an svg, gif, avif or tiff is refused here, naming the image you sent, instead of becoming a partner error two hops from the cause.

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L164

Did you really mean 'webp'?

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L164

Did you really mean 'jpeg'?

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L164

Did you really mean 'gif'?

Check warning on line 164 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L164

Did you really mean 'avif'?
Prefer the URL form. A base64 payload inflates roughly 4/3 and the whole request body is capped at 100 MiB, so the inline form caps out near a 75 MB source image; a URL sidesteps that entirely. The per-image and per-request media ceilings stated at the end of this description are tighter than the body cap, so for an image of any real size they are what you meet first.
THE URL MUST RESOLVE WITHOUT YOUR CREDENTIALS. Router fetches it server-side and sends no caller credential with the request, so a presigned URL -- one whose signature is in the query string -- is the supported form. An authenticated endpoint such as `/api/assets/{id}/content` answers Router 401 rather than the image; request that URL yourself and pass the signed URL it redirects to.

Check warning on line 166 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L166

Did you really mean 'presigned'?
THE FETCH IS CONFINED TO A NAMED SET OF HOSTS rather than the open internet, and the same list is re-applied to every redirect hop as well as to the URL you send -- so a URL on any other host, or one that redirects off the list, is refused before any provider is contacted. Today that list is Comfy's own asset delivery only: a signed `storage.googleapis.com` URL under a Comfy asset bucket, which is the form `/api/assets/{id}/content` redirects you to. A partner CDN or a plain https host is NOT on the list.

Check warning on line 167 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L167

Did you really mean 'Comfy's'?
TWO WIDENINGS ARE BEING ROLLED OUT AND ARE BOTH OFF BY DEFAULT TODAY. They ship behind ONE switch and are enabled together, so treat everything below as forthcoming rather than as something to build against yet -- ask before you rely on either.
The FIRST is the bucket `POST /customers/storage` signs your upload into. Until the rollout reaches your environment an upload URL from that endpoint is refused here, even though the bucket is Comfy's own and the host is the same one -- so "upload to Comfy, then pass the URL" does NOT work yet, and the form that does is the signed URL `/api/assets/{id}/content` redirects to.

Check warning on line 169 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L169

Did you really mean 'rollout'?

Check warning on line 169 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L169

Did you really mean 'Comfy's'?
The SECOND is ENABLED PER ACCOUNT rather than for everyone at once, because the bucket behind these hosts is yours rather than ours: even once the switch above is on, an account that has not had third-party inbound media enabled is refused, and told so in those words rather than told the host is unsupported. Ask your Comfy contact to enable it for your account. It additionally admits these third-party object-storage hosts, where the bucket is yours and Router makes no ownership claim on it: Cloudflare R2 (`<account>.r2.cloudflarestorage.com`, `pub-<hash>.r2.dev`), Amazon S3 (`s3.amazonaws.com` and `s3.<region>.amazonaws.com`, in either the path-style or the `<bucket>.`-prefixed form), Azure Blob Storage (`<account>.blob.core.windows.net`) and Alibaba Cloud OSS (`<bucket>.oss-<region>.aliyuncs.com`, including the `oss-accelerate` endpoint). Those are object-storage endpoints specifically: a general-purpose endpoint on the same provider domain, such as an Alibaba Function Compute trigger, is not on the list and is refused.

Check warning on line 170 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L170

Did you really mean 'Alibaba'?

Check warning on line 170 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L170

Did you really mean 'Alibaba'?
WHAT IS MATCHED IS THE HOSTNAME FORM, NOT THE PROVIDER -- so naming a provider above does NOT mean every URL that provider can issue is accepted, and three near-misses are worth stating outright because a caller can reasonably arrive with each of them. An R2 CUSTOM DOMAIN (`cdn.example.com`) is NOT accepted: Cloudflare documents `pub-<hash>.r2.dev` as a rate-limited debug hostname and points production traffic at a custom domain instead, but a custom domain carries nothing in its hostname identifying it as R2, so Router cannot tell it from any other host and refuses it -- presign the `<account>.r2.cloudflarestorage.com` endpoint, or use the `pub-<hash>.r2.dev` form. S3's IPv6 dualstack endpoint (`s3.dualstack.<region>.amazonaws.com`) is not accepted either; use the plain regional endpoint. Nor is Azure Blob's alternate DNS zone (`<account>.z<N>.blob.storage.azure.net`); use `<account>.blob.core.windows.net`. The refusal you get back names these same forms, so you do not have to come here to read them.

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L171

Did you really mean 'hostname'?

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L171

Did you really mean 'hostname'?

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L171

Did you really mean 'presign'?

Check warning on line 171 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L171

Did you really mean 'dualstack'?
The `<account>` and `pub-<hash>` placeholders above show the form you will normally arrive with; they are not a depth restriction. Matching is on the object-storage domain suffix, so a deeper name under the same namespace (`a.b.pub-<hash>.r2.dev`) is accepted as well. What is NOT widened by that is the namespace itself -- the suffix still has to be one of the ones listed.

Check warning on line 172 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L172

Did you really mean 'namespace'?

Check warning on line 172 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L172

Did you really mean 'namespace'?
The example below shows the shape only: a real value also carries the signing query parameters, which are deliberately omitted here because a published example lives in the spec forever and a real signature is both a leaked credential and a link that stops working.
Each image is capped at 25 MiB and one request's images at 64 MiB in total.
</ParamField>
Expand Down Expand Up @@ -295,7 +295,7 @@
</ResponseField>

<ResponseField name="created" type="integer">
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, pika-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.

Check warning on line 298 in development/comfy-router/models/openai/gpt-image-1/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-1/code.mdx#L298

Did you really mean 'unformatted'?

Format: `int64`
</ResponseField>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -148,8 +148,8 @@
This model is served by Comfy Router directly unless the request names another provider. The providers below serve it too, on the same endpoint and with the same model ID, selected with the `model_provider` query parameter.

- **Comfy** (default): `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-flare`
- **fal**, as `fal/fal-gpt-image-2.5-flare`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-flare?model_provider=fal`

Check warning on line 151 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L151

Did you really mean 'fal'?
- **Runware**, as `runware/runware-gpt-image-2.5-flare`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-flare?model_provider=runware`

Check warning on line 152 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L152

Did you really mean 'Runware'?
- **WaveSpeed**, as `wavespeed/wavespeed-gpt-image-2.5-flare`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-flare?model_provider=wavespeed`

`strict_mode` defaults to false, so Router translates the native request body documented on this page into the provider's own schema and translates the response back. See [`model_provider`, `strict_mode` and `fallback_provider`](/development/comfy-router/reference#post-v2modelsprovidermodel) in the API reference, and [Serving providers](/development/comfy-router/providers) for every model routed this way.
Expand All @@ -172,15 +172,15 @@
</ParamField>

<ParamField body="mask" type="string">
One image, as either an https URL Router fetches on the caller's behalf or a `data:image/<format>;base64,<payload>` URI carrying the bytes inline. Accepted image types are png, webp and jpeg, and that set is ENFORCED at resolve time rather than left to the provider -- an svg, gif, avif or tiff is refused here, naming the image you sent, instead of becoming a partner error two hops from the cause.

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L175

Did you really mean 'webp'?

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L175

Did you really mean 'jpeg'?

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L175

Did you really mean 'gif'?

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L175

Did you really mean 'avif'?
Prefer the URL form. A base64 payload inflates roughly 4/3 and the whole request body is capped at 100 MiB, so the inline form caps out near a 75 MB source image; a URL sidesteps that entirely. The per-image and per-request media ceilings stated at the end of this description are tighter than the body cap, so for an image of any real size they are what you meet first.
THE URL MUST RESOLVE WITHOUT YOUR CREDENTIALS. Router fetches it server-side and sends no caller credential with the request, so a presigned URL -- one whose signature is in the query string -- is the supported form. An authenticated endpoint such as `/api/assets/{id}/content` answers Router 401 rather than the image; request that URL yourself and pass the signed URL it redirects to.

Check warning on line 177 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L177

Did you really mean 'presigned'?
THE FETCH IS CONFINED TO A NAMED SET OF HOSTS rather than the open internet, and the same list is re-applied to every redirect hop as well as to the URL you send -- so a URL on any other host, or one that redirects off the list, is refused before any provider is contacted. Today that list is Comfy's own asset delivery only: a signed `storage.googleapis.com` URL under a Comfy asset bucket, which is the form `/api/assets/{id}/content` redirects you to. A partner CDN or a plain https host is NOT on the list.

Check warning on line 178 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L178

Did you really mean 'Comfy's'?
TWO WIDENINGS ARE BEING ROLLED OUT AND ARE BOTH OFF BY DEFAULT TODAY. They ship behind ONE switch and are enabled together, so treat everything below as forthcoming rather than as something to build against yet -- ask before you rely on either.
The FIRST is the bucket `POST /customers/storage` signs your upload into. Until the rollout reaches your environment an upload URL from that endpoint is refused here, even though the bucket is Comfy's own and the host is the same one -- so "upload to Comfy, then pass the URL" does NOT work yet, and the form that does is the signed URL `/api/assets/{id}/content` redirects to.

Check warning on line 180 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L180

Did you really mean 'rollout'?

Check warning on line 180 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L180

Did you really mean 'Comfy's'?
The SECOND is ENABLED PER ACCOUNT rather than for everyone at once, because the bucket behind these hosts is yours rather than ours: even once the switch above is on, an account that has not had third-party inbound media enabled is refused, and told so in those words rather than told the host is unsupported. Ask your Comfy contact to enable it for your account. It additionally admits these third-party object-storage hosts, where the bucket is yours and Router makes no ownership claim on it: Cloudflare R2 (`<account>.r2.cloudflarestorage.com`, `pub-<hash>.r2.dev`), Amazon S3 (`s3.amazonaws.com` and `s3.<region>.amazonaws.com`, in either the path-style or the `<bucket>.`-prefixed form), Azure Blob Storage (`<account>.blob.core.windows.net`) and Alibaba Cloud OSS (`<bucket>.oss-<region>.aliyuncs.com`, including the `oss-accelerate` endpoint). Those are object-storage endpoints specifically: a general-purpose endpoint on the same provider domain, such as an Alibaba Function Compute trigger, is not on the list and is refused.

Check warning on line 181 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L181

Did you really mean 'Alibaba'?

Check warning on line 181 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L181

Did you really mean 'Alibaba'?
WHAT IS MATCHED IS THE HOSTNAME FORM, NOT THE PROVIDER -- so naming a provider above does NOT mean every URL that provider can issue is accepted, and three near-misses are worth stating outright because a caller can reasonably arrive with each of them. An R2 CUSTOM DOMAIN (`cdn.example.com`) is NOT accepted: Cloudflare documents `pub-<hash>.r2.dev` as a rate-limited debug hostname and points production traffic at a custom domain instead, but a custom domain carries nothing in its hostname identifying it as R2, so Router cannot tell it from any other host and refuses it -- presign the `<account>.r2.cloudflarestorage.com` endpoint, or use the `pub-<hash>.r2.dev` form. S3's IPv6 dualstack endpoint (`s3.dualstack.<region>.amazonaws.com`) is not accepted either; use the plain regional endpoint. Nor is Azure Blob's alternate DNS zone (`<account>.z<N>.blob.storage.azure.net`); use `<account>.blob.core.windows.net`. The refusal you get back names these same forms, so you do not have to come here to read them.

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L182

Did you really mean 'hostname'?

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L182

Did you really mean 'hostname'?

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L182

Did you really mean 'presign'?

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L182

Did you really mean 'dualstack'?
The `<account>` and `pub-<hash>` placeholders above show the form you will normally arrive with; they are not a depth restriction. Matching is on the object-storage domain suffix, so a deeper name under the same namespace (`a.b.pub-<hash>.r2.dev`) is accepted as well. What is NOT widened by that is the namespace itself -- the suffix still has to be one of the ones listed.

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L183

Did you really mean 'namespace'?

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L183

Did you really mean 'namespace'?
The example below shows the shape only: a real value also carries the signing query parameters, which are deliberately omitted here because a published example lives in the spec forever and a real signature is both a leaked credential and a link that stops working.
Each image is capped at 25 MiB and one request's images at 64 MiB in total.
</ParamField>
Expand Down Expand Up @@ -306,7 +306,7 @@
</ResponseField>

<ResponseField name="created" type="integer">
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, pika-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.

Check warning on line 309 in development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx#L309

Did you really mean 'unformatted'?

Format: `int64`
</ResponseField>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -148,8 +148,8 @@
This model is served by Comfy Router directly unless the request names another provider. The providers below serve it too, on the same endpoint and with the same model ID, selected with the `model_provider` query parameter.

- **Comfy** (default): `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-sunburst`
- **fal**, as `fal/fal-gpt-image-2.5-sunburst`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-sunburst?model_provider=fal`

Check warning on line 151 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L151

Did you really mean 'fal'?
- **Runware**, as `runware/runware-gpt-image-2.5-sunburst`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-sunburst?model_provider=runware`

Check warning on line 152 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L152

Did you really mean 'Runware'?
- **WaveSpeed**, as `wavespeed/wavespeed-gpt-image-2.5-sunburst`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2.5-sunburst?model_provider=wavespeed`

`strict_mode` defaults to false, so Router translates the native request body documented on this page into the provider's own schema and translates the response back. See [`model_provider`, `strict_mode` and `fallback_provider`](/development/comfy-router/reference#post-v2modelsprovidermodel) in the API reference, and [Serving providers](/development/comfy-router/providers) for every model routed this way.
Expand All @@ -172,15 +172,15 @@
</ParamField>

<ParamField body="mask" type="string">
One image, as either an https URL Router fetches on the caller's behalf or a `data:image/<format>;base64,<payload>` URI carrying the bytes inline. Accepted image types are png, webp and jpeg, and that set is ENFORCED at resolve time rather than left to the provider -- an svg, gif, avif or tiff is refused here, naming the image you sent, instead of becoming a partner error two hops from the cause.

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L175

Did you really mean 'webp'?

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L175

Did you really mean 'jpeg'?

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L175

Did you really mean 'gif'?

Check warning on line 175 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L175

Did you really mean 'avif'?
Prefer the URL form. A base64 payload inflates roughly 4/3 and the whole request body is capped at 100 MiB, so the inline form caps out near a 75 MB source image; a URL sidesteps that entirely. The per-image and per-request media ceilings stated at the end of this description are tighter than the body cap, so for an image of any real size they are what you meet first.
THE URL MUST RESOLVE WITHOUT YOUR CREDENTIALS. Router fetches it server-side and sends no caller credential with the request, so a presigned URL -- one whose signature is in the query string -- is the supported form. An authenticated endpoint such as `/api/assets/{id}/content` answers Router 401 rather than the image; request that URL yourself and pass the signed URL it redirects to.

Check warning on line 177 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L177

Did you really mean 'presigned'?
THE FETCH IS CONFINED TO A NAMED SET OF HOSTS rather than the open internet, and the same list is re-applied to every redirect hop as well as to the URL you send -- so a URL on any other host, or one that redirects off the list, is refused before any provider is contacted. Today that list is Comfy's own asset delivery only: a signed `storage.googleapis.com` URL under a Comfy asset bucket, which is the form `/api/assets/{id}/content` redirects you to. A partner CDN or a plain https host is NOT on the list.

Check warning on line 178 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L178

Did you really mean 'Comfy's'?
TWO WIDENINGS ARE BEING ROLLED OUT AND ARE BOTH OFF BY DEFAULT TODAY. They ship behind ONE switch and are enabled together, so treat everything below as forthcoming rather than as something to build against yet -- ask before you rely on either.
The FIRST is the bucket `POST /customers/storage` signs your upload into. Until the rollout reaches your environment an upload URL from that endpoint is refused here, even though the bucket is Comfy's own and the host is the same one -- so "upload to Comfy, then pass the URL" does NOT work yet, and the form that does is the signed URL `/api/assets/{id}/content` redirects to.

Check warning on line 180 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L180

Did you really mean 'rollout'?

Check warning on line 180 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L180

Did you really mean 'Comfy's'?
The SECOND is ENABLED PER ACCOUNT rather than for everyone at once, because the bucket behind these hosts is yours rather than ours: even once the switch above is on, an account that has not had third-party inbound media enabled is refused, and told so in those words rather than told the host is unsupported. Ask your Comfy contact to enable it for your account. It additionally admits these third-party object-storage hosts, where the bucket is yours and Router makes no ownership claim on it: Cloudflare R2 (`<account>.r2.cloudflarestorage.com`, `pub-<hash>.r2.dev`), Amazon S3 (`s3.amazonaws.com` and `s3.<region>.amazonaws.com`, in either the path-style or the `<bucket>.`-prefixed form), Azure Blob Storage (`<account>.blob.core.windows.net`) and Alibaba Cloud OSS (`<bucket>.oss-<region>.aliyuncs.com`, including the `oss-accelerate` endpoint). Those are object-storage endpoints specifically: a general-purpose endpoint on the same provider domain, such as an Alibaba Function Compute trigger, is not on the list and is refused.

Check warning on line 181 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L181

Did you really mean 'Alibaba'?

Check warning on line 181 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L181

Did you really mean 'Alibaba'?
WHAT IS MATCHED IS THE HOSTNAME FORM, NOT THE PROVIDER -- so naming a provider above does NOT mean every URL that provider can issue is accepted, and three near-misses are worth stating outright because a caller can reasonably arrive with each of them. An R2 CUSTOM DOMAIN (`cdn.example.com`) is NOT accepted: Cloudflare documents `pub-<hash>.r2.dev` as a rate-limited debug hostname and points production traffic at a custom domain instead, but a custom domain carries nothing in its hostname identifying it as R2, so Router cannot tell it from any other host and refuses it -- presign the `<account>.r2.cloudflarestorage.com` endpoint, or use the `pub-<hash>.r2.dev` form. S3's IPv6 dualstack endpoint (`s3.dualstack.<region>.amazonaws.com`) is not accepted either; use the plain regional endpoint. Nor is Azure Blob's alternate DNS zone (`<account>.z<N>.blob.storage.azure.net`); use `<account>.blob.core.windows.net`. The refusal you get back names these same forms, so you do not have to come here to read them.

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L182

Did you really mean 'hostname'?

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L182

Did you really mean 'presign'?

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L182

Did you really mean 'dualstack'?

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L182

Did you really mean 'hostname'?
The `<account>` and `pub-<hash>` placeholders above show the form you will normally arrive with; they are not a depth restriction. Matching is on the object-storage domain suffix, so a deeper name under the same namespace (`a.b.pub-<hash>.r2.dev`) is accepted as well. What is NOT widened by that is the namespace itself -- the suffix still has to be one of the ones listed.

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L183

Did you really mean 'namespace'?

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L183

Did you really mean 'namespace'?
The example below shows the shape only: a real value also carries the signing query parameters, which are deliberately omitted here because a published example lives in the spec forever and a real signature is both a leaked credential and a link that stops working.
Each image is capped at 25 MiB and one request's images at 64 MiB in total.
</ParamField>
Expand Down Expand Up @@ -306,7 +306,7 @@
</ResponseField>

<ResponseField name="created" type="integer">
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, pika-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.

Check warning on line 309 in development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx#L309

Did you really mean 'unformatted'?

Format: `int64`
</ResponseField>
Expand Down
3 changes: 2 additions & 1 deletion development/comfy-router/models/openai/gpt-image-2/code.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
<CodeGroup>
```python Python
import asyncio
from comfy_sdk import AsyncComfy

Check warning on line 73 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L73

Did you really mean 'comfy_sdk'?

# Reads COMFY_API_KEY from the environment.
# Each submit() call mints its own Idempotency-Key and reuses it for automatic retries.
Expand Down Expand Up @@ -148,8 +148,9 @@
This model is served by Comfy Router directly unless the request names another provider. The providers below serve it too, on the same endpoint and with the same model ID, selected with the `model_provider` query parameter.

- **Comfy** (default): `POST https://api.comfy.org/v2/models/openai/gpt-image-2`
- **fal**, as `fal/fal-gpt-image-2`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2?model_provider=fal`

Check warning on line 151 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L151

Did you really mean 'fal'?
- **Pika**, as `pika/pika-gpt-image-2`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2?model_provider=pika`
- **Runware**, as `runware/runware-gpt-image-2`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2?model_provider=runware`

Check warning on line 153 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L153

Did you really mean 'Runware'?
- **WaveSpeed**, as `wavespeed/wavespeed-gpt-image-2`: `POST https://api.comfy.org/v2/models/openai/gpt-image-2?model_provider=wavespeed`

`strict_mode` defaults to false, so Router translates the native request body documented on this page into the provider's own schema and translates the response back. See [`model_provider`, `strict_mode` and `fallback_provider`](/development/comfy-router/reference#post-v2modelsprovidermodel) in the API reference, and [Serving providers](/development/comfy-router/providers) for every model routed this way.
Expand All @@ -172,15 +173,15 @@
</ParamField>

<ParamField body="mask" type="string">
One image, as either an https URL Router fetches on the caller's behalf or a `data:image/<format>;base64,<payload>` URI carrying the bytes inline. Accepted image types are png, webp and jpeg, and that set is ENFORCED at resolve time rather than left to the provider -- an svg, gif, avif or tiff is refused here, naming the image you sent, instead of becoming a partner error two hops from the cause.

Check warning on line 176 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L176

Did you really mean 'webp'?

Check warning on line 176 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L176

Did you really mean 'jpeg'?

Check warning on line 176 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L176

Did you really mean 'gif'?

Check warning on line 176 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L176

Did you really mean 'avif'?
Prefer the URL form. A base64 payload inflates roughly 4/3 and the whole request body is capped at 100 MiB, so the inline form caps out near a 75 MB source image; a URL sidesteps that entirely. The per-image and per-request media ceilings stated at the end of this description are tighter than the body cap, so for an image of any real size they are what you meet first.
THE URL MUST RESOLVE WITHOUT YOUR CREDENTIALS. Router fetches it server-side and sends no caller credential with the request, so a presigned URL -- one whose signature is in the query string -- is the supported form. An authenticated endpoint such as `/api/assets/{id}/content` answers Router 401 rather than the image; request that URL yourself and pass the signed URL it redirects to.

Check warning on line 178 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L178

Did you really mean 'presigned'?
THE FETCH IS CONFINED TO A NAMED SET OF HOSTS rather than the open internet, and the same list is re-applied to every redirect hop as well as to the URL you send -- so a URL on any other host, or one that redirects off the list, is refused before any provider is contacted. Today that list is Comfy's own asset delivery only: a signed `storage.googleapis.com` URL under a Comfy asset bucket, which is the form `/api/assets/{id}/content` redirects you to. A partner CDN or a plain https host is NOT on the list.

Check warning on line 179 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L179

Did you really mean 'Comfy's'?
TWO WIDENINGS ARE BEING ROLLED OUT AND ARE BOTH OFF BY DEFAULT TODAY. They ship behind ONE switch and are enabled together, so treat everything below as forthcoming rather than as something to build against yet -- ask before you rely on either.
The FIRST is the bucket `POST /customers/storage` signs your upload into. Until the rollout reaches your environment an upload URL from that endpoint is refused here, even though the bucket is Comfy's own and the host is the same one -- so "upload to Comfy, then pass the URL" does NOT work yet, and the form that does is the signed URL `/api/assets/{id}/content` redirects to.

Check warning on line 181 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L181

Did you really mean 'rollout'?

Check warning on line 181 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L181

Did you really mean 'Comfy's'?
The SECOND is ENABLED PER ACCOUNT rather than for everyone at once, because the bucket behind these hosts is yours rather than ours: even once the switch above is on, an account that has not had third-party inbound media enabled is refused, and told so in those words rather than told the host is unsupported. Ask your Comfy contact to enable it for your account. It additionally admits these third-party object-storage hosts, where the bucket is yours and Router makes no ownership claim on it: Cloudflare R2 (`<account>.r2.cloudflarestorage.com`, `pub-<hash>.r2.dev`), Amazon S3 (`s3.amazonaws.com` and `s3.<region>.amazonaws.com`, in either the path-style or the `<bucket>.`-prefixed form), Azure Blob Storage (`<account>.blob.core.windows.net`) and Alibaba Cloud OSS (`<bucket>.oss-<region>.aliyuncs.com`, including the `oss-accelerate` endpoint). Those are object-storage endpoints specifically: a general-purpose endpoint on the same provider domain, such as an Alibaba Function Compute trigger, is not on the list and is refused.

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L182

Did you really mean 'Alibaba'?

Check warning on line 182 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L182

Did you really mean 'Alibaba'?
WHAT IS MATCHED IS THE HOSTNAME FORM, NOT THE PROVIDER -- so naming a provider above does NOT mean every URL that provider can issue is accepted, and three near-misses are worth stating outright because a caller can reasonably arrive with each of them. An R2 CUSTOM DOMAIN (`cdn.example.com`) is NOT accepted: Cloudflare documents `pub-<hash>.r2.dev` as a rate-limited debug hostname and points production traffic at a custom domain instead, but a custom domain carries nothing in its hostname identifying it as R2, so Router cannot tell it from any other host and refuses it -- presign the `<account>.r2.cloudflarestorage.com` endpoint, or use the `pub-<hash>.r2.dev` form. S3's IPv6 dualstack endpoint (`s3.dualstack.<region>.amazonaws.com`) is not accepted either; use the plain regional endpoint. Nor is Azure Blob's alternate DNS zone (`<account>.z<N>.blob.storage.azure.net`); use `<account>.blob.core.windows.net`. The refusal you get back names these same forms, so you do not have to come here to read them.

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L183

Did you really mean 'hostname'?

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L183

Did you really mean 'hostname'?

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L183

Did you really mean 'presign'?

Check warning on line 183 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L183

Did you really mean 'dualstack'?
The `<account>` and `pub-<hash>` placeholders above show the form you will normally arrive with; they are not a depth restriction. Matching is on the object-storage domain suffix, so a deeper name under the same namespace (`a.b.pub-<hash>.r2.dev`) is accepted as well. What is NOT widened by that is the namespace itself -- the suffix still has to be one of the ones listed.

Check warning on line 184 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L184

Did you really mean 'namespace'?

Check warning on line 184 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L184

Did you really mean 'namespace'?
The example below shows the shape only: a real value also carries the signing query parameters, which are deliberately omitted here because a published example lives in the spec forever and a real signature is both a leaked credential and a link that stops working.
Each image is capped at 25 MiB and one request's images at 64 MiB in total.
</ParamField>
Expand Down Expand Up @@ -306,7 +307,7 @@
</ResponseField>

<ResponseField name="created" type="integer">
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.
Unix timestamp, in seconds, of when the generation completed. It is the one member OpenAI declares REQUIRED on an image-generation response, so it is present whenever OpenAI is the producer; a fal-, pika-, wavespeed- or runware-served response on any of the alt-backed ids omits it entirely, like the other four resolved-parameter members. Declared `int64` because a present-day epoch value is close enough to 2^31 that an unformatted `integer` generates a 32-bit field in many SDK generators.

Check warning on line 310 in development/comfy-router/models/openai/gpt-image-2/code.mdx

View check run for this annotation

Mintlify / Mintlify Validation (dripart) - vale-spellcheck

development/comfy-router/models/openai/gpt-image-2/code.mdx#L310

Did you really mean 'unformatted'?

Format: `int64`
</ResponseField>
Expand Down
Loading
Loading