diff --git a/.github/scripts/snippets/README.md b/.github/scripts/snippets/README.md index ef15aae56..6086cada8 100644 --- a/.github/scripts/snippets/README.md +++ b/.github/scripts/snippets/README.md @@ -13,13 +13,12 @@ Pages come in two kinds, and both are generated: `router-schemas//.json` alone, the document the spec-sync bot commits from `GET /v2/models///openapi.json`. -A derived page says only what Router has authored. The OUTPUT schema is authored -for every model, so the response is documented in full. The INPUT schema usually -is not (`x-comfy-input-schema-authored: false` means Router forwards the body to -the provider unvalidated and cannot state its fields), so the page says exactly -that and points at the provider instead of inventing a request shape, and it -carries no example unless the served document has one. Writing a `code.yaml` -upgrades a derived page to a curated one; nothing else has to change. +A derived page uses the synced Router schema. When +`x-comfy-input-schema-authored` is false, Router forwards the open input object +without model-specific validation, so the page links to the provider's input +documentation. Provider validation still applies. Output schemas and examples +remain available when published. Without a non-empty request example, the page +shows **Request setup** instead of runnable snippets with an empty body. These pages live in the **developer** section, not under `tutorials/`: the tutorials tree is for end users driving the nodes in the app, and mixing API @@ -78,17 +77,22 @@ commit. ## Schema sections -Every Code page ends with a Schema section (Input, Output) and an Examples -section (Input, Output). They render from `router-schemas//.json`, +Every Code page includes a Schema section and the examples available for it. +Schema fields render from `router-schemas//.json`, which is the exact body of `GET https://api.comfy.org/v2/models///openapi.json` (a standalone OpenAPI document; the spec-sync bot drops these in, do not hand write them). When the file is absent, or reports `x-comfy-input-schema-authored: false`, the page falls back to the spec's `input` / `output` JSON Schema blocks (rendered as the same ParamField / -ResponseField list) and `example` / `result.example`, with a note that Router +ResponseField list), with a note that Router has not published the schema yet. Variants that resolve to the same schema share one block; variants with different schemas get tabs. +Curated pages pair their `example` with `result.example`. +Derived pages use the synced examples with provider model identifiers adjusted for the page. +Fix other incorrect fixture data in the source contract rather than +editing synced JSON snapshots. + ## Provider drift check `pnpm code-pages:check-providers` (`check-provider-schemas.ts`) fetches each diff --git a/.github/scripts/snippets/gen-code-pages.ts b/.github/scripts/snippets/gen-code-pages.ts index b2fa2bb72..7d0acdd85 100644 --- a/.github/scripts/snippets/gen-code-pages.ts +++ b/.github/scripts/snippets/gen-code-pages.ts @@ -309,8 +309,8 @@ function pythonSnippet(model: string, example: Record, files: F .join("\n"); return `${files.length ? "import base64\n\n" : ""}from comfy_sdk import Comfy ${reads ? `\n${reads}\n` : ""} -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "${model}", @@ -331,8 +331,8 @@ function typescriptSnippet(model: string, example: Record, file .map(([k, v]) => ` ${/^[a-zA-Z_$][\w$]*$/.test(k) ? k : JSON.stringify(k)}: ${tsLiteral(v, 2, files, k)},`) .join("\n"); return `${imports} -${reads ? `${reads}\n\n` : ""}// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +${reads ? `${reads}\n\n` : ""}// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = ${tsResultType(resultPath)}; const { data } = await comfy.models.run("${model}", { ${body} @@ -426,7 +426,9 @@ function deref(schema: any, components: Record, depth = 0): any { function typeLabel(schema: any, components: Record): string { const s = deref(schema, components); - if (s.oneOf || s.anyOf) return (s.oneOf ?? s.anyOf).map((x: any) => typeLabel(x, components)).join(" | "); + if (s.oneOf || s.anyOf) { + return [...new Set((s.oneOf ?? s.anyOf).map((x: any) => typeLabel(x, components)))].join(" | "); + } if (s.const !== undefined) return JSON.stringify(s.const); if (s.enum) return s.enum.map((v: unknown) => `\`${String(v)}\``).join(", "); if (s.type === "array") return `${typeLabel(s.items ?? {}, components)}[]`; @@ -457,6 +459,13 @@ const mdxText = (v: unknown) => /** Render a JSON Schema object as Mintlify ParamField (input) or ResponseField (output) blocks. */ function schemaFields(schema: any, components: Record, kind: "param" | "response", docBase?: string): string { + const root = deref(schema, components); + const variants = Object.entries(root.discriminator?.mapping ?? {}); + if (variants.length) { + return variants + .map(([name, ref]) => `#### \`${name}\` variant\n\n${schemaFields({ $ref: ref }, components, kind, docBase)}`) + .join("\n\n"); + } const blocks: string[] = []; const walk = (s: any, prefix: string, depth: number) => { s = deref(s, components); @@ -500,7 +509,7 @@ function schemaFields(schema: any, components: Record, kind: "param } }; walk(schema, "", 0); - if (!blocks.length) return "_The schema declares no fixed fields: any JSON object is accepted._"; + if (!blocks.length) return "_This schema does not declare named properties._"; return blocks.join("\n\n"); } @@ -518,8 +527,7 @@ function sectionBlocks(v: Variant, spec: Spec) { const notPublished = checked ? `_Fields follow ${possessive(spec.provider)} published API specification and are checked against it in CI. Router's own schema for this model is not published yet, so requests are forwarded to the provider unvalidated._` : `\nRouter has not published an authored input schema for this model yet: \`GET ${ROUTE}/${v.model}/openapi.json\` returns an open object with \`x-comfy-input-schema-authored: false\`. The fields below follow the provider's own API documentation and are not yet validated server side.\n`; - // `x-comfy-input-schema-authored: false` disqualifies the whole served document, not just its input - // half: the page then reads its fields AND its examples from the spec, as the README describes. + // Curated provider fields replace an unauthored Router input schema. const published = s?.authored ? s : null; let input: string; const docBase = PROVIDER_DOC_BASE[providerOf(v.model)]; @@ -530,7 +538,7 @@ function sectionBlocks(v: Variant, spec: Spec) { } else { input = `${notPublished}\n\n${fields}`; } - const inputExample = JSON.stringify(published?.inputExample ?? example, null, 2).replace(/"@file:([^"]+)"/g, '""'); + const inputExample = JSON.stringify(example, null, 2).replace(/"@file:([^"]+)"/g, '""'); let output: string; if (published?.output) { output = schemaFields(published.output, published.components, "response", docBase); @@ -539,7 +547,7 @@ function sectionBlocks(v: Variant, spec: Spec) { } else { output = `Router returns ${possessive(spec.provider)} native output unchanged and does not publish an output schema for this model. The ${spec.result.label} is at \`${spec.result.path}\`; the example below is representative of the provider's response.`; } - const outputExample = JSON.stringify(published?.outputExample ?? spec.result.example, null, 2); + const outputExample = JSON.stringify(spec.result.example, null, 2); return { input, inputExample, output, outputExample }; } @@ -661,18 +669,11 @@ ${body} // its page from that document alone, so the sidebar tracks the catalog instead of // tracking who found time to write a spec. // -// What such a page can honestly say is bounded by what Router has authored. The -// OUTPUT schema is authored for every model, so the response is documented in -// full. The INPUT schema mostly is not (`x-comfy-input-schema-authored: false` -// means Router forwards the body to the provider unvalidated and cannot state its -// fields), so the page says exactly that and points at the provider rather than -// inventing a request shape. No example is fabricated: a derived page shows an -// example only when the served document carries one. +// Document only the schemas and examples that are available. A missing request +// example produces setup guidance, not an empty executable request. Provider +// validation still applies when Router has no authored input schema. // --------------------------------------------------------------------------- -/** The one-line body placeholder for a model whose request fields Router does not publish. */ -const BODY_HINT = "Request fields are the provider's own \u2014 see Input below."; - /** * The published input example, when it is a JSON object we can render as a body. * @@ -683,9 +684,9 @@ const BODY_HINT = "Request fields are the provider's own \u2014 see Input below. * field. Inlining it is what makes the quick start copy-pasteable rather than a * shape the reader has to assemble from the Input table below. * - * Anything else -- absent, null, or a non-object -- falls back to BODY_HINT. - * That is the unauthored case, where Router genuinely cannot state the fields - * and a fabricated body would be worse than an honest placeholder. + * Anything else -- absent, null, an empty object or a non-object -- cannot make + * a runnable snippet. The page keeps the value as reference data and renders + * request setup guidance instead of fabricating a body. */ function bodyExample(example: unknown): Record | undefined { if (example === null || typeof example !== "object" || Array.isArray(example)) return undefined; @@ -699,22 +700,13 @@ function derivedSnippets(model: string, example?: unknown): string { // the JSON in the Examples section -- the invariant stated at the top of this // file. Derived pages have no file inputs, so the FileInput list is empty. const body = bodyExample(example); - const pyBody = body - ? Object.entries(body).map(([k, v]) => ` ${JSON.stringify(k)}: ${pyLiteral(v, 12, [], k)},`).join("\n") - : ` # ${BODY_HINT}`; - const tsBody = body - ? Object.entries(body).map(([k, v]) => ` ${/^[a-zA-Z_$][\w$]*$/.test(k) ? k : JSON.stringify(k)}: ${tsLiteral(v, 2, [], k)},`).join("\n") - : ` // ${BODY_HINT}`; - const esc = (v: unknown) => JSON.stringify(v).replace(/[\\$`"]/g, (c) => `\\${c}`); - const curlJson = body - ? `{${Object.entries(body).map(([k, v]) => `${esc(k)}: ${esc(v)}`).join(", ")}}` - : "{}"; - const curlHint = body ? "" : `# ${BODY_HINT}\n`; - + if (!body) return ""; + const pyBody = Object.entries(body).map(([k, v]) => ` ${JSON.stringify(k)}: ${pyLiteral(v, 12, [], k)},`).join("\n"); + const tsBody = Object.entries(body).map(([k, v]) => ` ${/^[a-zA-Z_$][\w$]*$/.test(k) ? k : JSON.stringify(k)}: ${tsLiteral(v, 2, [], k)},`).join("\n"); const python = `from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "${model}", @@ -726,18 +718,14 @@ ${pyBody} print(result)`; const typescript = `import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("${model}", { ${tsBody} }); console.log(data);`; - const curl = `${curlHint}curl ${BASE_URL}${ROUTE}/${model} \\ - -H "X-API-Key: $COMFY_API_KEY" \\ - -H "Idempotency-Key: $(uuidgen)" \\ - -H "Content-Type: application/json" \\ - -d "${curlJson}"`; + const curl = curlSnippet(model, body, []); return ` \`\`\`python Python ${python} @@ -753,20 +741,51 @@ ${curl} `; } +// Adapt shared response fixtures for display only; never rewrite synced schemas. +// Provider ID/version rules: https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions +// https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/models/inference +function responseExampleForModel(model: string, example: unknown): unknown { + if (!example || typeof example !== "object" || Array.isArray(example)) return example; + const provider = providerOf(model); + if (!["anthropic", "vertexai", "byteplus", "luma", "luma_2", "xai"].includes(provider)) return example; + const aliases: Record = { + // https://docs.x.ai/developers/models/grok-imagine-video-1.5-preview + "xai/grok-imagine-video-1.5-preview": "grok-imagine-video-1.5", + // https://docs.byteplus.com/en/docs/Byteplus_LAS/video_gen_enhanced + "byteplus/dreamina-seedance-2-0-mini": "dreamina-seedance-2-0-mini-260615", + }; + const id = aliases[model] ?? modelOf(model); + const sample = { ...example } as Record; + const field = provider === "vertexai" ? "modelVersion" : "model"; + if (typeof sample[field] === "string") sample[field] = id; + if (provider === "luma" && typeof sample.request?.model === "string") { + sample.request = { ...sample.request, model: id }; + } + return sample; +} + function renderDerivedPage(model: string, s: ModelSchema): string { const provider = providerLabel(providerOf(model)); - const setup = `Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as \`COMFY_API_KEY\`. The Python and TypeScript snippets use the Comfy SDKs (\`pip install comfy-sdk\`, \`npm install @comfyorg/sdk\`); the cURL snippet is the same call over raw HTTP.`; + const requestExample = bodyExample(s.inputExample); + const clients = requestExample + ? `The Python and TypeScript snippets use the Comfy SDKs (\`pip install comfy-sdk\`, \`npm install @comfyorg/sdk\`); the cURL snippet is the same call over raw HTTP.` + : `For Python, run \`pip install comfy-sdk\`. For TypeScript, run \`npm install @comfyorg/sdk\`. cURL uses raw HTTP.`; + const setup = `Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as \`COMFY_API_KEY\`. ${clients}`; const docBase = PROVIDER_DOC_BASE[providerOf(model)]; const apiDocs = PROVIDER_API_DOCS[providerOf(model)]; const input = s.authored && s.input ? `${schemaFields(s.input, s.components, "param", docBase)}\n\nGenerated from the schema Router serves at \`GET ${ROUTE}/${model}/openapi.json\`, the same document it validates a call against before the request reaches the provider.` - : `\nRouter has not published an authored input schema for this model yet: \`GET ${ROUTE}/${model}/openapi.json\` returns an open object with \`x-comfy-input-schema-authored: false\`. Router forwards the body to ${provider} unchanged, so ${apiDocs ? `[${provider}'s own API reference](${apiDocs})` : `${provider}'s own API documentation`} is authoritative for the request fields, and nothing is validated server side.\n`; + : `\nRouter has not published an authored input schema for this model yet: \`GET ${ROUTE}/${model}/openapi.json\` returns an open object with \`x-comfy-input-schema-authored: false\`. Router forwards the body to ${provider} unchanged, so ${apiDocs ? `[${provider}'s own API reference](${apiDocs})` : `${provider}'s own API documentation`} is authoritative for the request fields, and Router does not perform model-specific input validation. Provider validation still applies.\n`; const output = s.output ? schemaFields(s.output, s.components, "response", docBase) : `Router does not publish an output schema for this model.`; + const outputExample = responseExampleForModel(model, s.outputExample); const examples = s.inputExample !== undefined || s.outputExample !== undefined - ? `\n\n## Examples\n${s.inputExample !== undefined ? `\n### Input\n\n\`\`\`json\n${JSON.stringify(s.inputExample, null, 2)}\n\`\`\`\n` : ""}${s.outputExample !== undefined ? `\n### Output\n\n\`\`\`json\n${JSON.stringify(s.outputExample, null, 2)}\n\`\`\`\n` : ""}` + ? `\n\n## Examples\n${s.inputExample !== undefined ? `\n### Input\n\n\`\`\`json\n${JSON.stringify(s.inputExample, null, 2)}\n\`\`\`\n` : ""}${s.outputExample !== undefined ? `\n### Output\n\n\`\`\`json\n${JSON.stringify(outputExample, null, 2)}\n\`\`\`\n` : ""}` : ""; + const requestSetup = requestExample + ? derivedSnippets(model, requestExample) + : `\nThis model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart).\n`; const title = modelTitle(model); return `--- title: ${JSON.stringify(`Use ${title} with Comfy Router`)} @@ -780,7 +799,7 @@ ${previewNotice.imports}import RouterCodeFooter from "/snippets/comfy-router/mod API Reference for \`${model}\`, served by Comfy Router from ${provider}. ${previewNotice.body} -## Quick start +## ${requestExample ? "Quick start" : "Request setup"} ${setup} @@ -788,7 +807,7 @@ ${setup} **Endpoint:** \`POST ${BASE_URL}${ROUTE}/${model}\` -${derivedSnippets(model, s.inputExample)} +${requestSetup} ## Schema diff --git a/development/comfy-router/models/anthropic/claude-fable-5-1/code.mdx b/development/comfy-router/models/anthropic/claude-fable-5-1/code.mdx index 21ea10921..189bd699d 100644 --- a/development/comfy-router/models/anthropic/claude-fable-5-1/code.mdx +++ b/development/comfy-router/models/anthropic/claude-fable-5-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-fable-5-1", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-fable-5-1", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-fabl } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-fable-5-1", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-fable-5/code.mdx b/development/comfy-router/models/anthropic/claude-fable-5/code.mdx index 73366ed52..ffa54bcab 100644 --- a/development/comfy-router/models/anthropic/claude-fable-5/code.mdx +++ b/development/comfy-router/models/anthropic/claude-fable-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-fable-5", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-fable-5", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-fabl } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-fable-5", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-haiku-4-5-20251001/code.mdx b/development/comfy-router/models/anthropic/claude-haiku-4-5-20251001/code.mdx index 1d0ed7d25..b5bce9071 100644 --- a/development/comfy-router/models/anthropic/claude-haiku-4-5-20251001/code.mdx +++ b/development/comfy-router/models/anthropic/claude-haiku-4-5-20251001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-haiku-4-5-20251001", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-haiku-4-5-20251001", { max_tokens: 16, messages: [ diff --git a/development/comfy-router/models/anthropic/claude-opus-4-6/code.mdx b/development/comfy-router/models/anthropic/claude-opus-4-6/code.mdx index b6f686395..a757c88da 100644 --- a/development/comfy-router/models/anthropic/claude-opus-4-6/code.mdx +++ b/development/comfy-router/models/anthropic/claude-opus-4-6/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-opus-4-6", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-opus-4-6", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-opus } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-opus-4-6", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-opus-4-7/code.mdx b/development/comfy-router/models/anthropic/claude-opus-4-7/code.mdx index ccbbef882..2602a189d 100644 --- a/development/comfy-router/models/anthropic/claude-opus-4-7/code.mdx +++ b/development/comfy-router/models/anthropic/claude-opus-4-7/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-opus-4-7", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-opus-4-7", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-opus } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-opus-4-7", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-opus-4-8/code.mdx b/development/comfy-router/models/anthropic/claude-opus-4-8/code.mdx index 121dcda65..4c87d7dde 100644 --- a/development/comfy-router/models/anthropic/claude-opus-4-8/code.mdx +++ b/development/comfy-router/models/anthropic/claude-opus-4-8/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-opus-4-8", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-opus-4-8", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-opus } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-opus-4-8", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-opus-5/code.mdx b/development/comfy-router/models/anthropic/claude-opus-5/code.mdx index 6598043aa..952a05303 100644 --- a/development/comfy-router/models/anthropic/claude-opus-5/code.mdx +++ b/development/comfy-router/models/anthropic/claude-opus-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-opus-5", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-opus-5", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-opus } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-opus-5", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-sonnet-4-5-20250929/code.mdx b/development/comfy-router/models/anthropic/claude-sonnet-4-5-20250929/code.mdx index 185f46596..de2095a0f 100644 --- a/development/comfy-router/models/anthropic/claude-sonnet-4-5-20250929/code.mdx +++ b/development/comfy-router/models/anthropic/claude-sonnet-4-5-20250929/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-sonnet-4-5-20250929", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-sonnet-4-5-20250929", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-sonn } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-sonnet-4-5-20250929", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-sonnet-4-6/code.mdx b/development/comfy-router/models/anthropic/claude-sonnet-4-6/code.mdx index fc30089f4..7403eaa37 100644 --- a/development/comfy-router/models/anthropic/claude-sonnet-4-6/code.mdx +++ b/development/comfy-router/models/anthropic/claude-sonnet-4-6/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-sonnet-4-6", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-sonnet-4-6", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-sonn } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-sonnet-4-6", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/anthropic/claude-sonnet-5/code.mdx b/development/comfy-router/models/anthropic/claude-sonnet-5/code.mdx index 0240a0443..471b18f21 100644 --- a/development/comfy-router/models/anthropic/claude-sonnet-5/code.mdx +++ b/development/comfy-router/models/anthropic/claude-sonnet-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "anthropic/claude-sonnet-5", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("anthropic/claude-sonnet-5", { max_tokens: 16, messages: [ @@ -199,7 +199,7 @@ Generated from the schema Router serves at `GET /v2/models/anthropic/claude-sonn } ], "id": "msg_01ExampleInvalidPlaceholder", - "model": "claude-haiku-4-5-20251001", + "model": "claude-sonnet-5", "role": "assistant", "stop_reason": "end_turn", "stop_sequence": null, diff --git a/development/comfy-router/models/beeble/switchx/code.mdx b/development/comfy-router/models/beeble/switchx/code.mdx index 1104d4272..24e047d5c 100644 --- a/development/comfy-router/models/beeble/switchx/code.mdx +++ b/development/comfy-router/models/beeble/switchx/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "beeble/switchx", @@ -42,8 +42,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("beeble/switchx", { alpha_mode: "auto", generation_type: "image", diff --git a/development/comfy-router/models/black-forest-labs/erase-v1/code.mdx b/development/comfy-router/models/black-forest-labs/erase-v1/code.mdx index 9ef48dd66..e7234f8f6 100644 --- a/development/comfy-router/models/black-forest-labs/erase-v1/code.mdx +++ b/development/comfy-router/models/black-forest-labs/erase-v1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/erase-v1", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/erase-v1", { image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", mask: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAB+UlEQVR42u3TMQ0AAAzDsPIn3d7DMBtCpKTwWCTAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAbAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGgGvctyzUB/Dz3wAAAABJRU5ErkJggg==", diff --git a/development/comfy-router/models/black-forest-labs/flux-1-1-pro-ultra-image/code.mdx b/development/comfy-router/models/black-forest-labs/flux-1-1-pro-ultra-image/code.mdx index 70f9ec27b..8bc25b567 100644 --- a/development/comfy-router/models/black-forest-labs/flux-1-1-pro-ultra-image/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-1-1-pro-ultra-image/code.mdx @@ -26,8 +26,8 @@ Pick the model you want to call. Everything below, from the snippets to the sche ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-pro-1.1-ultra", @@ -44,8 +44,8 @@ print("image:", result["result"]["sample"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = { result: { sample: string } }; const { data } = await comfy.models.run("bfl/flux-pro-1.1-ultra", { prompt: "a single red maple leaf on a plain white background, studio lighting", @@ -197,8 +197,9 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-pro-1.1-ultr ```json { + "prompt": "a single red maple leaf on a plain white background, studio lighting", "aspect_ratio": "16:9", - "prompt": "A lighthouse on a rocky coast at golden hour, cinematic" + "raw": false } ``` @@ -206,19 +207,13 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-pro-1.1-ultr ```json { - "cost": null, - "id": "b2e0c1a4-0f2f-4a55-9f2e-2f9a1c0d4e77", - "progress": null, + "id": "0a1b2c3d-...", + "status": "Ready", "result": { - "cost": null, - "duration": 3.4, - "end_time": 1767225603.4, - "prompt": "A watercolor painting of a lighthouse at dawn, soft light on the water", - "sample": "https://example.invalid/bfl/flux-pro-1.1/sample.png", - "seed": 2784347701, - "start_time": 1767225600 - }, - "status": "Ready" + "sample": "https://.../out.jpeg", + "prompt": "a single red maple leaf on a plain white background, studio lighting", + "seed": 1234567890 + } } ``` @@ -233,8 +228,8 @@ The URL is temporary. Download the image promptly if you need to keep it. ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-pro-1.1", @@ -251,8 +246,8 @@ print("image:", result["result"]["sample"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = { result: { sample: string } }; const { data } = await comfy.models.run("bfl/flux-pro-1.1", { prompt: "a single red maple leaf on a plain white background, studio lighting", @@ -402,9 +397,9 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-pro-1.1/open ```json { - "height": 768, - "prompt": "An impressionist landscape of rolling hills under a summer sky", - "width": 1024 + "prompt": "a single red maple leaf on a plain white background, studio lighting", + "width": 1024, + "height": 768 } ``` @@ -412,19 +407,13 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-pro-1.1/open ```json { - "cost": null, - "id": "b2e0c1a4-0f2f-4a55-9f2e-2f9a1c0d4e77", - "progress": null, + "id": "0a1b2c3d-...", + "status": "Ready", "result": { - "cost": null, - "duration": 3.4, - "end_time": 1767225603.4, - "prompt": "A watercolor painting of a lighthouse at dawn, soft light on the water", - "sample": "https://example.invalid/bfl/flux-pro-1.1/sample.png", - "seed": 2784347701, - "start_time": 1767225600 - }, - "status": "Ready" + "sample": "https://.../out.jpeg", + "prompt": "a single red maple leaf on a plain white background, studio lighting", + "seed": 1234567890 + } } ``` diff --git a/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.mdx b/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.mdx index 83492553a..7440f8008 100644 --- a/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.mdx @@ -1,14 +1,14 @@ --- -title: "Use Flux.1 Kontext with Comfy Router" -description: "Python, TypeScript and cURL snippets for calling Flux.1 Kontext Pro and Kontext Max over HTTP through Comfy Router, plus the request fields and the result shape" -sidebarTitle: "Flux.1 Kontext" +title: "Use FLUX.1 Kontext with Comfy Router" +description: "Python, TypeScript and cURL snippets for calling FLUX.1 Kontext Pro and Kontext Max over HTTP through Comfy Router, plus the request fields and the result shape" +sidebarTitle: "FLUX.1 Kontext" --- {/* GENERATED FILE. Edit code.yaml in this directory and run `pnpm code-pages:gen`. */} import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; -API Reference for Flux.1 Kontext. Flux.1 Kontext is Black Forest Labs' instruction-driven image editing model: send an image and a text instruction, get the edited image back with the rest of the scene preserved. +API Reference for FLUX.1 Kontext. FLUX.1 Kontext is Black Forest Labs' instruction-driven image editing model: send an image and a text instruction, get the edited image back with the rest of the scene preserved. ## Quick start @@ -31,8 +31,8 @@ from comfy_sdk import Comfy with open("input.jpg", "rb") as f: input_image = base64.b64encode(f.read()).decode() -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-kontext-pro", @@ -52,8 +52,8 @@ import { readFile } from "node:fs/promises"; const inputImage = (await readFile("input.jpg")).toString("base64"); -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = { result: { sample: string } }; const { data } = await comfy.models.run("bfl/flux-kontext-pro", { prompt: "replace the background with a sunlit beach, keep the subject unchanged", @@ -209,7 +209,9 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-kontext-pro/ ```json { - "prompt": "A watercolor painting of a lighthouse at dawn, soft light on the water" + "prompt": "replace the background with a sunlit beach, keep the subject unchanged", + "input_image": "", + "aspect_ratio": "1:1" } ``` @@ -217,19 +219,13 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-kontext-pro/ ```json { - "cost": null, - "id": "b2e0c1a4-0f2f-4a55-9f2e-2f9a1c0d4e77", - "progress": null, + "id": "0a1b2c3d-...", + "status": "Ready", "result": { - "cost": null, - "duration": 3.4, - "end_time": 1767225603.4, - "prompt": "A watercolor painting of a lighthouse at dawn, soft light on the water", - "sample": "https://example.invalid/bfl/flux-pro-1.1/sample.png", - "seed": 2784347701, - "start_time": 1767225600 - }, - "status": "Ready" + "sample": "https://.../out.png", + "prompt": "replace the background with a sunlit beach, keep the subject unchanged", + "seed": 1234567890 + } } ``` @@ -249,8 +245,8 @@ from comfy_sdk import Comfy with open("input.jpg", "rb") as f: input_image = base64.b64encode(f.read()).decode() -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-kontext-max", @@ -270,8 +266,8 @@ import { readFile } from "node:fs/promises"; const inputImage = (await readFile("input.jpg")).toString("base64"); -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = { result: { sample: string } }; const { data } = await comfy.models.run("bfl/flux-kontext-max", { prompt: "replace the background with a sunlit beach, keep the subject unchanged", @@ -427,7 +423,9 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-kontext-max/ ```json { - "prompt": "A watercolor painting of a lighthouse at dawn, soft light on the water" + "prompt": "replace the background with a sunlit beach, keep the subject unchanged", + "input_image": "", + "aspect_ratio": "1:1" } ``` @@ -435,19 +433,13 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-kontext-max/ ```json { - "cost": null, - "id": "b2e0c1a4-0f2f-4a55-9f2e-2f9a1c0d4e77", - "progress": null, + "id": "0a1b2c3d-...", + "status": "Ready", "result": { - "cost": null, - "duration": 3.4, - "end_time": 1767225603.4, - "prompt": "A watercolor painting of a lighthouse at dawn, soft light on the water", - "sample": "https://example.invalid/bfl/flux-pro-1.1/sample.png", - "seed": 2784347701, - "start_time": 1767225600 - }, - "status": "Ready" + "sample": "https://.../out.png", + "prompt": "replace the background with a sunlit beach, keep the subject unchanged", + "seed": 1234567890 + } } ``` diff --git a/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.yaml b/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.yaml index 2cf579dde..6023434b2 100644 --- a/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.yaml +++ b/development/comfy-router/models/black-forest-labs/flux-1-kontext/code.yaml @@ -2,13 +2,13 @@ # `pnpm code-pages:gen`; never edit code.mdx by hand (CI checks it is fresh). # `input` / `output` are the provider's documented shapes (JSON Schema in YAML) and # are the fallback until Router publishes the model's schema in router-schemas/. -name: Flux.1 Kontext +name: FLUX.1 Kontext provider: Black Forest Labs description: >- - Python, TypeScript and cURL snippets for calling Flux.1 Kontext Pro and Kontext Max over HTTP through + Python, TypeScript and cURL snippets for calling FLUX.1 Kontext Pro and Kontext Max over HTTP through Comfy Router, plus the request fields and the result shape summary: >- - Flux.1 Kontext is Black Forest Labs' instruction-driven image editing model: send an image and a text instruction, get the edited image back with the rest of the scene preserved. + FLUX.1 Kontext is Black Forest Labs' instruction-driven image editing model: send an image and a text instruction, get the edited image back with the rest of the scene preserved. task: image editing variants: - title: Kontext Pro diff --git a/development/comfy-router/models/black-forest-labs/flux-2-max/code.mdx b/development/comfy-router/models/black-forest-labs/flux-2-max/code.mdx index 4261ed01b..1299c4ca5 100644 --- a/development/comfy-router/models/black-forest-labs/flux-2-max/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-2-max/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-2-max", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/flux-2-max", { prompt: "A single red maple leaf on a plain white background.", }); diff --git a/development/comfy-router/models/black-forest-labs/flux-2-pro/code.mdx b/development/comfy-router/models/black-forest-labs/flux-2-pro/code.mdx index 23d2e0b86..3e2077443 100644 --- a/development/comfy-router/models/black-forest-labs/flux-2-pro/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-2-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-2-pro", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/flux-2-pro", { prompt: "A single red maple leaf on a plain white background.", }); diff --git a/development/comfy-router/models/black-forest-labs/flux-3-video/code.mdx b/development/comfy-router/models/black-forest-labs/flux-3-video/code.mdx index f0191eddc..54badb690 100644 --- a/development/comfy-router/models/black-forest-labs/flux-3-video/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-3-video/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-3-video", @@ -42,8 +42,8 @@ print("video:", result["result"]["sample"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = { result: { sample: string } }; const { data } = await comfy.models.run("bfl/flux-3-video", { mode: "t2v", @@ -145,7 +145,7 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-3-video/open Format: `float` - + The finished generation. Exactly one of the two URL leaves is populated: `sample` in the default mode, `draft_cache` in `draft: true` mode. @@ -178,7 +178,10 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-3-video/open ```json { "mode": "t2v", - "prompt": "A slow dolly shot through a rain-soaked neon street at night" + "prompt": "a single red maple leaf falling onto still water, slow motion", + "duration": 5, + "aspect_ratio": "16:9", + "generate_audio": true } ``` @@ -186,17 +189,14 @@ Generated from the schema Router serves at `GET /v2/models/bfl/flux-3-video/open ```json { - "cost": null, - "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "progress": null, + "id": "0a1b2c3d-...", + "status": "Ready", "result": { - "cost": null, - "draft_cache": "https://example.invalid/bfl/flux-3-video/draft.mp4" - }, - "status": "Ready" + "sample": "https://.../out.mp4" + } } ``` -`result.sample` is a signed URL that expires roughly two hours after the result is ready. Download the MP4 promptly. +`result.sample` is normally a Comfy-hosted signed URL, valid for up to 24 hours from creation. A replay can return an older URL, and an asset that could not be re-hosted keeps its shorter-lived provider URL. Download the MP4 promptly rather than storing the link. With `draft: true`, read `result.draft_cache` instead of expecting `result.sample`. diff --git a/development/comfy-router/models/black-forest-labs/flux-3-video/code.yaml b/development/comfy-router/models/black-forest-labs/flux-3-video/code.yaml index 32f3b4ece..d76033e80 100644 --- a/development/comfy-router/models/black-forest-labs/flux-3-video/code.yaml +++ b/development/comfy-router/models/black-forest-labs/flux-3-video/code.yaml @@ -122,8 +122,7 @@ output: properties: sample: type: string - description: Signed URL of the generated MP4. Expires roughly two hours after the result is - ready. + description: Temporary signed URL of the generated MP4. Download it promptly. format: uri result: path: result.sample @@ -134,8 +133,10 @@ result: result: sample: https://.../out.mp4 note: >- - `result.sample` is a signed URL that expires roughly two hours after the result is ready. Download - the MP4 promptly. + `result.sample` is normally a Comfy-hosted signed URL, valid for up to 24 hours from creation. + A replay can return an older URL, and an asset that could not be re-hosted keeps its shorter-lived + provider URL. Download the MP4 promptly rather than storing the link. + With `draft: true`, read `result.draft_cache` instead of expecting `result.sample`. provider_spec: url: https://api.bfl.ai/openapi.json operation: POST /v1/flux-3-video diff --git a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-canny/code.mdx b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-canny/code.mdx index 3c8372476..b1a3cc3c0 100644 --- a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-canny/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-canny/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-pro-1.0-canny", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/flux-pro-1.0-canny", { control_image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-depth/code.mdx b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-depth/code.mdx index 9c9562b86..84125cbc5 100644 --- a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-depth/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-depth/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-pro-1.0-depth", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/flux-pro-1.0-depth", { control_image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-expand/code.mdx b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-expand/code.mdx index 4fd1d30ed..4ee8894c5 100644 --- a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-expand/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-expand/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-pro-1.0-expand", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/flux-pro-1.0-expand", { image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", prompt: "extend the plain white background upward", diff --git a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-fill/code.mdx b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-fill/code.mdx index 8f724c01a..1e9394528 100644 --- a/development/comfy-router/models/black-forest-labs/flux-pro-1-0-fill/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-pro-1-0-fill/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/flux-pro-1.0-fill", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/flux-pro-1.0-fill", { image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", mask: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAB+UlEQVR42u3TMQ0AAAzDsPIn3d7DMBtCpKTwWCTAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAbAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGgGvctyzUB/Dz3wAAAABJRU5ErkJggg==", diff --git a/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.mdx b/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.mdx index 3e684b348..8a5665ecb 100644 --- a/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.mdx +++ b/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/video-upscale-v1", @@ -40,8 +40,8 @@ print("video:", result["result"]["sample"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = { result: { sample: string } }; const { data } = await comfy.models.run("bfl/video-upscale-v1", { input_video: "https://your-host.example/clip.mp4", @@ -179,8 +179,9 @@ Generated from the schema Router serves at `GET /v2/models/bfl/video-upscale-v1/ ```json { - "input_video": "https://example.com/clip.mp4", - "upscale_factor": 2 + "input_video": "https://your-host.example/clip.mp4", + "upscale_factor": 2, + "creativity": 1 } ``` @@ -188,22 +189,14 @@ Generated from the schema Router serves at `GET /v2/models/bfl/video-upscale-v1/ ```json { - "cost": null, - "id": "b2e0c1a4-0f2f-4a55-9f2e-2f9a1c0d4e77", - "progress": null, + "id": "0a1b2c3d-...", + "status": "Ready", "result": { - "cost": null, - "duration": 3.4, - "end_time": 1767225603.4, - "prompt": "A watercolor painting of a lighthouse at dawn, soft light on the water", - "sample": "https://example.invalid/bfl/flux-pro-1.1/sample.png", - "seed": 2784347701, - "start_time": 1767225600 - }, - "status": "Ready" + "sample": "https://.../upscaled.mp4" + } } ``` -`result.sample` is a signed URL that expires roughly two hours after the result is ready. Download the MP4 promptly. +`result.sample` is normally a Comfy-hosted signed URL, valid for up to 24 hours from creation. A replay can return an older URL, and an asset that could not be re-hosted keeps its shorter-lived provider URL. Download the MP4 promptly rather than storing the link. diff --git a/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.yaml b/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.yaml index defd916cd..e4599d77b 100644 --- a/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.yaml +++ b/development/comfy-router/models/black-forest-labs/flux-video-upscale/code.yaml @@ -73,8 +73,7 @@ output: properties: sample: type: string - description: Signed URL of the generated MP4. Expires roughly two hours after the result is - ready. + description: Temporary signed URL of the generated MP4. Download it promptly. format: uri result: path: result.sample @@ -85,8 +84,9 @@ result: result: sample: https://.../upscaled.mp4 note: >- - `result.sample` is a signed URL that expires roughly two hours after the result is ready. Download - the MP4 promptly. + `result.sample` is normally a Comfy-hosted signed URL, valid for up to 24 hours from creation. + A replay can return an older URL, and an asset that could not be re-hosted keeps its shorter-lived + provider URL. Download the MP4 promptly rather than storing the link. provider_spec: url: https://api.bfl.ai/openapi.json operation: POST /v1/flux-tools/video-upscale-v1 diff --git a/development/comfy-router/models/black-forest-labs/vto-v1/code.mdx b/development/comfy-router/models/black-forest-labs/vto-v1/code.mdx index 86b01824c..d2b93aded 100644 --- a/development/comfy-router/models/black-forest-labs/vto-v1/code.mdx +++ b/development/comfy-router/models/black-forest-labs/vto-v1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bfl/vto-v1", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bfl/vto-v1", { garment: "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", person: "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", diff --git a/development/comfy-router/models/bria/fibo/code.mdx b/development/comfy-router/models/bria/fibo/code.mdx index 869e8af85..552659aa3 100644 --- a/development/comfy-router/models/bria/fibo/code.mdx +++ b/development/comfy-router/models/bria/fibo/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/fibo", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/fibo", { images: ["iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg=="], instruction: "make the background light blue", diff --git a/development/comfy-router/models/bria/image-edit-erase/code.mdx b/development/comfy-router/models/bria/image-edit-erase/code.mdx index ea52784b3..0cfe0fbc2 100644 --- a/development/comfy-router/models/bria/image-edit-erase/code.mdx +++ b/development/comfy-router/models/bria/image-edit-erase/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/image-edit-erase", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/image-edit-erase", { image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", mask: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAB+UlEQVR42u3TMQ0AAAzDsPIn3d7DMBtCpKTwWCTAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAbAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGgGvctyzUB/Dz3wAAAABJRU5ErkJggg==", diff --git a/development/comfy-router/models/bria/image-edit-expand/code.mdx b/development/comfy-router/models/bria/image-edit-expand/code.mdx index e59762db9..20c025752 100644 --- a/development/comfy-router/models/bria/image-edit-expand/code.mdx +++ b/development/comfy-router/models/bria/image-edit-expand/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/image-edit-expand", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/image-edit-expand", { aspect_ratio: "3:2", image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", diff --git a/development/comfy-router/models/bria/image-edit-gen-fill/code.mdx b/development/comfy-router/models/bria/image-edit-gen-fill/code.mdx index 7cee3ac91..8c94b39d2 100644 --- a/development/comfy-router/models/bria/image-edit-gen-fill/code.mdx +++ b/development/comfy-router/models/bria/image-edit-gen-fill/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/image-edit-gen-fill", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/image-edit-gen-fill", { image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", mask: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAB+UlEQVR42u3TMQ0AAAzDsPIn3d7DMBtCpKTwWCTAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAbAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGgGvctyzUB/Dz3wAAAABJRU5ErkJggg==", diff --git a/development/comfy-router/models/bria/image-edit-increase-resolution/code.mdx b/development/comfy-router/models/bria/image-edit-increase-resolution/code.mdx index c824c31a6..7ab096869 100644 --- a/development/comfy-router/models/bria/image-edit-increase-resolution/code.mdx +++ b/development/comfy-router/models/bria/image-edit-increase-resolution/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/image-edit-increase-resolution", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/image-edit-increase-resolution", { desired_increase: 2, image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", diff --git a/development/comfy-router/models/bria/image-edit-remove-background/code.mdx b/development/comfy-router/models/bria/image-edit-remove-background/code.mdx index a026a5205..69286826d 100644 --- a/development/comfy-router/models/bria/image-edit-remove-background/code.mdx +++ b/development/comfy-router/models/bria/image-edit-remove-background/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/image-edit-remove-background", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/image-edit-remove-background", { image: "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", }); diff --git a/development/comfy-router/models/bria/structured-instruction/code.mdx b/development/comfy-router/models/bria/structured-instruction/code.mdx index 4cb9fb45f..ebdc71055 100644 --- a/development/comfy-router/models/bria/structured-instruction/code.mdx +++ b/development/comfy-router/models/bria/structured-instruction/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/structured-instruction", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/structured-instruction", { images: ["iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg=="], instruction: "make the background light blue", diff --git a/development/comfy-router/models/bria/video-edit-green-screen/code.mdx b/development/comfy-router/models/bria/video-edit-green-screen/code.mdx index d93934e7b..041aa960d 100644 --- a/development/comfy-router/models/bria/video-edit-green-screen/code.mdx +++ b/development/comfy-router/models/bria/video-edit-green-screen/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/video-edit-green-screen", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/video-edit-green-screen", { green_shade: "broadcast_green", video: "https://example.com/input.mp4", diff --git a/development/comfy-router/models/bria/video-edit-remove-background/code.mdx b/development/comfy-router/models/bria/video-edit-remove-background/code.mdx index f48f109dc..d47d8d413 100644 --- a/development/comfy-router/models/bria/video-edit-remove-background/code.mdx +++ b/development/comfy-router/models/bria/video-edit-remove-background/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/video-edit-remove-background", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/video-edit-remove-background", { background_color: "Transparent", output_container_and_codec: "webm_vp9", diff --git a/development/comfy-router/models/bria/video-edit-replace-background/code.mdx b/development/comfy-router/models/bria/video-edit-replace-background/code.mdx index e2a8686ba..37fbaf436 100644 --- a/development/comfy-router/models/bria/video-edit-replace-background/code.mdx +++ b/development/comfy-router/models/bria/video-edit-replace-background/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "bria/video-edit-replace-background", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("bria/video-edit-replace-background", { background_url: "https://example.com/background.mp4", video: "https://example.com/input.mp4", diff --git a/development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx b/development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx index aaa3c2212..2f2b59365 100644 --- a/development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx +++ b/development/comfy-router/models/byteplus/dreamina-seedance-2-0-260128/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/dreamina-seedance-2-0-260128", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/dreamina-seedance-2-0-260128", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-260128 \ Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/dreamina-see "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "dreamina-seedance-2-0-260128", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/dreamina-seedance-2-0-fast-260128/code.mdx b/development/comfy-router/models/byteplus/dreamina-seedance-2-0-fast-260128/code.mdx index 777486995..d08799b11 100644 --- a/development/comfy-router/models/byteplus/dreamina-seedance-2-0-fast-260128/code.mdx +++ b/development/comfy-router/models/byteplus/dreamina-seedance-2-0-fast-260128/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/dreamina-seedance-2-0-fast-260128", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/dreamina-seedance-2-0-fast-260128", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-fast-260128 Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/dreamina-see "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "dreamina-seedance-2-0-fast-260128", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/dreamina-seedance-2-0-mini/code.mdx b/development/comfy-router/models/byteplus/dreamina-seedance-2-0-mini/code.mdx index c7148c3f0..af91351cd 100644 --- a/development/comfy-router/models/byteplus/dreamina-seedance-2-0-mini/code.mdx +++ b/development/comfy-router/models/byteplus/dreamina-seedance-2-0-mini/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/dreamina-seedance-2-0-mini", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/dreamina-seedance-2-0-mini", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-0-mini \ Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/dreamina-see "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "dreamina-seedance-2-0-mini-260615", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/dreamina-seedance-2-5-260628/code.mdx b/development/comfy-router/models/byteplus/dreamina-seedance-2-5-260628/code.mdx index 24a9f5e2f..28db07234 100644 --- a/development/comfy-router/models/byteplus/dreamina-seedance-2-5-260628/code.mdx +++ b/development/comfy-router/models/byteplus/dreamina-seedance-2-5-260628/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/dreamina-seedance-2-5-260628", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/dreamina-seedance-2-5-260628", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/dreamina-seedance-2-5-260628 \ Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/dreamina-see "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "dreamina-seedance-2-5-260628", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/seed-audio-1-0-multilingual/code.mdx b/development/comfy-router/models/byteplus/seed-audio-1-0-multilingual/code.mdx index d27afb0fe..4d68686bf 100644 --- a/development/comfy-router/models/byteplus/seed-audio-1-0-multilingual/code.mdx +++ b/development/comfy-router/models/byteplus/seed-audio-1-0-multilingual/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seed-audio-1.0-multilingual", @@ -42,8 +42,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seed-audio-1.0-multilingual", { audio_config: { format: "wav", diff --git a/development/comfy-router/models/byteplus/seed-audio-1-0/code.mdx b/development/comfy-router/models/byteplus/seed-audio-1-0/code.mdx index eb7108c03..1c3f2c97f 100644 --- a/development/comfy-router/models/byteplus/seed-audio-1-0/code.mdx +++ b/development/comfy-router/models/byteplus/seed-audio-1-0/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seed-audio-1.0", @@ -42,8 +42,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seed-audio-1.0", { audio_config: { format: "wav", diff --git a/development/comfy-router/models/byteplus/seedance-1-0-lite-i2v-250428/code.mdx b/development/comfy-router/models/byteplus/seedance-1-0-lite-i2v-250428/code.mdx index 8fa5a970e..d201d719a 100644 --- a/development/comfy-router/models/byteplus/seedance-1-0-lite-i2v-250428/code.mdx +++ b/development/comfy-router/models/byteplus/seedance-1-0-lite-i2v-250428/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedance-1-0-lite-i2v-250428", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedance-1-0-lite-i2v-250428", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/seedance-1-0-lite-i2v-250428 \ Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/seedance-1-0 "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "seedance-1-0-lite-i2v-250428", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/seedance-1-0-lite-t2v-250428/code.mdx b/development/comfy-router/models/byteplus/seedance-1-0-lite-t2v-250428/code.mdx index 782ab2a23..159dd06fc 100644 --- a/development/comfy-router/models/byteplus/seedance-1-0-lite-t2v-250428/code.mdx +++ b/development/comfy-router/models/byteplus/seedance-1-0-lite-t2v-250428/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedance-1-0-lite-t2v-250428", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedance-1-0-lite-t2v-250428", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/seedance-1-0-lite-t2v-250428 \ Format: `uri` - + The input content for the model to generate a video diff --git a/development/comfy-router/models/byteplus/seedance-1-0-pro-250528/code.mdx b/development/comfy-router/models/byteplus/seedance-1-0-pro-250528/code.mdx index 275f894cb..7c43d40ff 100644 --- a/development/comfy-router/models/byteplus/seedance-1-0-pro-250528/code.mdx +++ b/development/comfy-router/models/byteplus/seedance-1-0-pro-250528/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedance-1-0-pro-250528", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedance-1-0-pro-250528", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/seedance-1-0-pro-250528 \ Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/seedance-1-0 "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "seedance-1-0-pro-250528", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/seedance-1-0-pro-fast-251015/code.mdx b/development/comfy-router/models/byteplus/seedance-1-0-pro-fast-251015/code.mdx index 9643107f6..c59af8b27 100644 --- a/development/comfy-router/models/byteplus/seedance-1-0-pro-fast-251015/code.mdx +++ b/development/comfy-router/models/byteplus/seedance-1-0-pro-fast-251015/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedance-1-0-pro-fast-251015", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedance-1-0-pro-fast-251015", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/seedance-1-0-pro-fast-251015 \ Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/seedance-1-0 "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "seedance-1-0-pro-fast-251015", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/seedance-1-5-pro-251215/code.mdx b/development/comfy-router/models/byteplus/seedance-1-5-pro-251215/code.mdx index 7ebe333c2..a16438def 100644 --- a/development/comfy-router/models/byteplus/seedance-1-5-pro-251215/code.mdx +++ b/development/comfy-router/models/byteplus/seedance-1-5-pro-251215/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedance-1-5-pro-251215", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedance-1-5-pro-251215", { content: [ { @@ -82,7 +82,7 @@ curl https://api.comfy.org/v2/models/byteplus/seedance-1-5-pro-251215 \ Format: `uri` - + The input content for the model to generate a video @@ -329,7 +329,7 @@ Generated from the schema Router serves at `GET /v2/models/byteplus/seedance-1-5 "duration": 5, "error": null, "id": "3f7a1b28-5c0d-4e91-8a6f-1b2c3d4e5f60", - "model": "seedance-1-0-lite-t2v-250428", + "model": "seedance-1-5-pro-251215", "output_format": "mp4", "resolution": "1080p", "seed": 1234567890123, diff --git a/development/comfy-router/models/byteplus/seededit-3-0-i2i-250628/code.mdx b/development/comfy-router/models/byteplus/seededit-3-0-i2i-250628/code.mdx index e350e5a9b..d3c4466f3 100644 --- a/development/comfy-router/models/byteplus/seededit-3-0-i2i-250628/code.mdx +++ b/development/comfy-router/models/byteplus/seededit-3-0-i2i-250628/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seededit-3-0-i2i-250628", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seededit-3-0-i2i-250628", { prompt: "A red fox trotting through a snowy pine forest, cinematic lighting", response_format: "url", @@ -298,7 +298,7 @@ In the layer-separation scenario, the first element of the array is the base ima "url": "https://example.invalid/byteplus/seedream-3-0-t2i-250415/generated.png" } ], - "model": "seedream-3-0-t2i-250415", + "model": "seededit-3-0-i2i-250628", "usage": { "generated_images": 1 } diff --git a/development/comfy-router/models/byteplus/seedream-3-0-t2i-250415/code.mdx b/development/comfy-router/models/byteplus/seedream-3-0-t2i-250415/code.mdx index e4ece4dfb..e5beb63a9 100644 --- a/development/comfy-router/models/byteplus/seedream-3-0-t2i-250415/code.mdx +++ b/development/comfy-router/models/byteplus/seedream-3-0-t2i-250415/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedream-3-0-t2i-250415", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedream-3-0-t2i-250415", { prompt: "A red fox trotting through a snowy pine forest, cinematic lighting", response_format: "url", diff --git a/development/comfy-router/models/byteplus/seedream-4-0-250828/code.mdx b/development/comfy-router/models/byteplus/seedream-4-0-250828/code.mdx index 5099d7ca9..f077d6804 100644 --- a/development/comfy-router/models/byteplus/seedream-4-0-250828/code.mdx +++ b/development/comfy-router/models/byteplus/seedream-4-0-250828/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedream-4-0-250828", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedream-4-0-250828", { prompt: "A red fox trotting through a snowy pine forest, cinematic lighting", response_format: "url", @@ -298,7 +298,7 @@ In the layer-separation scenario, the first element of the array is the base ima "url": "https://example.invalid/byteplus/seedream-3-0-t2i-250415/generated.png" } ], - "model": "seedream-3-0-t2i-250415", + "model": "seedream-4-0-250828", "usage": { "generated_images": 1 } diff --git a/development/comfy-router/models/byteplus/seedream-4-5-251128/code.mdx b/development/comfy-router/models/byteplus/seedream-4-5-251128/code.mdx index cfd037891..11f1b1869 100644 --- a/development/comfy-router/models/byteplus/seedream-4-5-251128/code.mdx +++ b/development/comfy-router/models/byteplus/seedream-4-5-251128/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedream-4-5-251128", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedream-4-5-251128", { prompt: "A red fox trotting through a snowy pine forest, cinematic lighting", response_format: "url", @@ -298,7 +298,7 @@ In the layer-separation scenario, the first element of the array is the base ima "url": "https://example.invalid/byteplus/seedream-3-0-t2i-250415/generated.png" } ], - "model": "seedream-3-0-t2i-250415", + "model": "seedream-4-5-251128", "usage": { "generated_images": 1 } diff --git a/development/comfy-router/models/byteplus/seedream-5-0-260128/code.mdx b/development/comfy-router/models/byteplus/seedream-5-0-260128/code.mdx index 8db6be0dd..24acf21b3 100644 --- a/development/comfy-router/models/byteplus/seedream-5-0-260128/code.mdx +++ b/development/comfy-router/models/byteplus/seedream-5-0-260128/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedream-5-0-260128", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedream-5-0-260128", { prompt: "A red fox trotting through a snowy pine forest, cinematic lighting", response_format: "url", @@ -298,7 +298,7 @@ In the layer-separation scenario, the first element of the array is the base ima "url": "https://example.invalid/byteplus/seedream-3-0-t2i-250415/generated.png" } ], - "model": "seedream-3-0-t2i-250415", + "model": "seedream-5-0-260128", "usage": { "generated_images": 1 } diff --git a/development/comfy-router/models/byteplus/seedream-5-0-pro-260628/code.mdx b/development/comfy-router/models/byteplus/seedream-5-0-pro-260628/code.mdx index 0c1f4ef62..f7bf58137 100644 --- a/development/comfy-router/models/byteplus/seedream-5-0-pro-260628/code.mdx +++ b/development/comfy-router/models/byteplus/seedream-5-0-pro-260628/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "byteplus/seedream-5-0-pro-260628", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("byteplus/seedream-5-0-pro-260628", { prompt: "A red fox trotting through a snowy pine forest, cinematic lighting", response_format: "url", @@ -298,7 +298,7 @@ In the layer-separation scenario, the first element of the array is the base ima "url": "https://example.invalid/byteplus/seedream-3-0-t2i-250415/generated.png" } ], - "model": "seedream-3-0-t2i-250415", + "model": "seedream-5-0-pro-260628", "usage": { "generated_images": 1 } diff --git a/development/comfy-router/models/elevenlabs/eleven-sfx-v2/code.mdx b/development/comfy-router/models/elevenlabs/eleven-sfx-v2/code.mdx index 5be087652..e70da2f76 100644 --- a/development/comfy-router/models/elevenlabs/eleven-sfx-v2/code.mdx +++ b/development/comfy-router/models/elevenlabs/eleven-sfx-v2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "elevenlabs/eleven_sfx_v2", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("elevenlabs/eleven_sfx_v2", { duration_seconds: 5, text: "A distant rumble of thunder rolling across a valley.", diff --git a/development/comfy-router/models/elevenlabs/eleven-v3/code.mdx b/development/comfy-router/models/elevenlabs/eleven-v3/code.mdx index 5f1ef3a02..0b14962bd 100644 --- a/development/comfy-router/models/elevenlabs/eleven-v3/code.mdx +++ b/development/comfy-router/models/elevenlabs/eleven-v3/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "elevenlabs/eleven_v3", @@ -43,8 +43,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("elevenlabs/eleven_v3", { inputs: [ { diff --git a/development/comfy-router/models/fal/h3-max-turbo/code.mdx b/development/comfy-router/models/fal/h3-max-turbo/code.mdx index 88f604ee4..9f2cdc3a5 100644 --- a/development/comfy-router/models/fal/h3-max-turbo/code.mdx +++ b/development/comfy-router/models/fal/h3-max-turbo/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "fal/h3-max-turbo", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("fal/h3-max-turbo", { duration: 5, prompt: "a red fox running through a snowy forest", diff --git a/development/comfy-router/models/fal/h3-max/code.mdx b/development/comfy-router/models/fal/h3-max/code.mdx index 5b02eb245..303a1e670 100644 --- a/development/comfy-router/models/fal/h3-max/code.mdx +++ b/development/comfy-router/models/fal/h3-max/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "fal/h3-max", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("fal/h3-max", { duration: 5, prompt: "a red fox running through a snowy forest", diff --git a/development/comfy-router/models/fal/patina/code.mdx b/development/comfy-router/models/fal/patina/code.mdx index c7283703f..f858deb9e 100644 --- a/development/comfy-router/models/fal/patina/code.mdx +++ b/development/comfy-router/models/fal/patina/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "fal/patina", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("fal/patina", { image_url: "https://storage.googleapis.com/falserverless/gallery/patina-blog-hero-render.png", }); diff --git a/development/comfy-router/models/freepik/ai-image-upscaler-precision-v2/code.mdx b/development/comfy-router/models/freepik/ai-image-upscaler-precision-v2/code.mdx index 5976db20e..0335141a5 100644 --- a/development/comfy-router/models/freepik/ai-image-upscaler-precision-v2/code.mdx +++ b/development/comfy-router/models/freepik/ai-image-upscaler-precision-v2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "freepik/ai-image-upscaler-precision-v2", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("freepik/ai-image-upscaler-precision-v2", { image: "https://img.magnific.com/free-photo/light-through-mountains_395237-33.jpg?semt=ais_hybrid&w=740&q=80", scale_factor: 8, diff --git a/development/comfy-router/models/freepik/ai-skin-enhancer-creative/code.mdx b/development/comfy-router/models/freepik/ai-skin-enhancer-creative/code.mdx index 651b0b51c..aeeb92edd 100644 --- a/development/comfy-router/models/freepik/ai-skin-enhancer-creative/code.mdx +++ b/development/comfy-router/models/freepik/ai-skin-enhancer-creative/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "freepik/ai-skin-enhancer-creative", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("freepik/ai-skin-enhancer-creative", { image: "https://img.magnific.com/free-photo/portrait-woman_395237-33.jpg?w=740&q=80", }); diff --git a/development/comfy-router/models/freepik/ai-skin-enhancer-faithful/code.mdx b/development/comfy-router/models/freepik/ai-skin-enhancer-faithful/code.mdx index 6300fdd25..f60b7ea92 100644 --- a/development/comfy-router/models/freepik/ai-skin-enhancer-faithful/code.mdx +++ b/development/comfy-router/models/freepik/ai-skin-enhancer-faithful/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "freepik/ai-skin-enhancer-faithful", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("freepik/ai-skin-enhancer-faithful", { image: "https://img.magnific.com/free-photo/portrait-woman_395237-33.jpg?w=740&q=80", }); diff --git a/development/comfy-router/models/freepik/ai-skin-enhancer-flexible/code.mdx b/development/comfy-router/models/freepik/ai-skin-enhancer-flexible/code.mdx index 14409e1be..b46c9af4d 100644 --- a/development/comfy-router/models/freepik/ai-skin-enhancer-flexible/code.mdx +++ b/development/comfy-router/models/freepik/ai-skin-enhancer-flexible/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "freepik/ai-skin-enhancer-flexible", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("freepik/ai-skin-enhancer-flexible", { image: "https://img.magnific.com/free-photo/portrait-woman_395237-33.jpg?w=740&q=80", }); diff --git a/development/comfy-router/models/gemini-interactions/gemini-omni-1-1-flash/code.mdx b/development/comfy-router/models/gemini-interactions/gemini-omni-1-1-flash/code.mdx index 2f55316ae..ab4971602 100644 --- a/development/comfy-router/models/gemini-interactions/gemini-omni-1-1-flash/code.mdx +++ b/development/comfy-router/models/gemini-interactions/gemini-omni-1-1-flash/code.mdx @@ -10,59 +10,24 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `gemini-interactions/gemini-omni-1.1-flash`, served by Comfy Router from Gemini Interactions. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `gemini-interactions/gemini-omni-1.1-flash` **Endpoint:** `POST https://api.comfy.org/v2/models/gemini-interactions/gemini-omni-1.1-flash` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "gemini-interactions/gemini-omni-1.1-flash", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("gemini-interactions/gemini-omni-1.1-flash", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/gemini-interactions/gemini-omni-1.1-flash \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema ### Input -Router has not published an authored input schema for this model yet: `GET /v2/models/gemini-interactions/gemini-omni-1.1-flash/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to Gemini Interactions unchanged, so [Gemini Interactions's own API reference](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference) is authoritative for the request fields, and nothing is validated server side. +Router has not published an authored input schema for this model yet: `GET /v2/models/gemini-interactions/gemini-omni-1.1-flash/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to Gemini Interactions unchanged, so [Gemini Interactions's own API reference](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference) is authoritative for the request fields, and Router does not perform model-specific input validation. Provider validation still applies. ### Output diff --git a/development/comfy-router/models/gemini-interactions/gemini-omni-flash-preview/code.mdx b/development/comfy-router/models/gemini-interactions/gemini-omni-flash-preview/code.mdx index 4b3592cd0..e4fa423cd 100644 --- a/development/comfy-router/models/gemini-interactions/gemini-omni-flash-preview/code.mdx +++ b/development/comfy-router/models/gemini-interactions/gemini-omni-flash-preview/code.mdx @@ -10,59 +10,24 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `gemini-interactions/gemini-omni-flash-preview`, served by Comfy Router from Gemini Interactions. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `gemini-interactions/gemini-omni-flash-preview` **Endpoint:** `POST https://api.comfy.org/v2/models/gemini-interactions/gemini-omni-flash-preview` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "gemini-interactions/gemini-omni-flash-preview", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("gemini-interactions/gemini-omni-flash-preview", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/gemini-interactions/gemini-omni-flash-preview \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema ### Input -Router has not published an authored input schema for this model yet: `GET /v2/models/gemini-interactions/gemini-omni-flash-preview/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to Gemini Interactions unchanged, so [Gemini Interactions's own API reference](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference) is authoritative for the request fields, and nothing is validated server side. +Router has not published an authored input schema for this model yet: `GET /v2/models/gemini-interactions/gemini-omni-flash-preview/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to Gemini Interactions unchanged, so [Gemini Interactions's own API reference](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference) is authoritative for the request fields, and Router does not perform model-specific input validation. Provider validation still applies. ### Output diff --git a/development/comfy-router/models/google/gemini-2-5-flash-image/code.mdx b/development/comfy-router/models/google/gemini-2-5-flash-image/code.mdx index 7efe928d7..54444d183 100644 --- a/development/comfy-router/models/google/gemini-2-5-flash-image/code.mdx +++ b/development/comfy-router/models/google/gemini-2-5-flash-image/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-2.5-flash-image", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("vertexai/gemini-2.5-flash-image", { contents: [ { diff --git a/development/comfy-router/models/google/gemini-3-1-flash-lite/code.mdx b/development/comfy-router/models/google/gemini-3-1-flash-lite/code.mdx index b28ae7212..6af2dfffc 100644 --- a/development/comfy-router/models/google/gemini-3-1-flash-lite/code.mdx +++ b/development/comfy-router/models/google/gemini-3-1-flash-lite/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3.1-flash-lite", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("vertexai/gemini-3.1-flash-lite", { contents: [ { @@ -552,7 +552,7 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.1-f "finishReason": "STOP" } ], - "modelVersion": "gemini-2.5-flash", + "modelVersion": "gemini-3.1-flash-lite", "responseId": "0d1f2a3b-4c5d-6e7f-8a9b-0c1d2e3f4a5b", "usageMetadata": { "candidatesTokenCount": 21, diff --git a/development/comfy-router/models/google/gemini-3-7-flash/code.mdx b/development/comfy-router/models/google/gemini-3-7-flash/code.mdx index e71614bf7..b4d5275e1 100644 --- a/development/comfy-router/models/google/gemini-3-7-flash/code.mdx +++ b/development/comfy-router/models/google/gemini-3-7-flash/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3.7-flash", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("vertexai/gemini-3.7-flash", { contents: [ { @@ -552,7 +552,7 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.7-f "finishReason": "STOP" } ], - "modelVersion": "gemini-2.5-flash", + "modelVersion": "gemini-3.7-flash", "responseId": "0d1f2a3b-4c5d-6e7f-8a9b-0c1d2e3f4a5b", "usageMetadata": { "candidatesTokenCount": 21, diff --git a/development/comfy-router/models/google/gemini-3-8-flash/code.mdx b/development/comfy-router/models/google/gemini-3-8-flash/code.mdx index c0f632ae7..b3688e846 100644 --- a/development/comfy-router/models/google/gemini-3-8-flash/code.mdx +++ b/development/comfy-router/models/google/gemini-3-8-flash/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3.8-flash", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("vertexai/gemini-3.8-flash", { contents: [ { @@ -552,7 +552,7 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.8-f "finishReason": "STOP" } ], - "modelVersion": "gemini-2.5-flash", + "modelVersion": "gemini-3.8-flash", "responseId": "0d1f2a3b-4c5d-6e7f-8a9b-0c1d2e3f4a5b", "usageMetadata": { "candidatesTokenCount": 21, diff --git a/development/comfy-router/models/google/gemini/code.mdx b/development/comfy-router/models/google/gemini/code.mdx index 8aed39280..7095ed65f 100644 --- a/development/comfy-router/models/google/gemini/code.mdx +++ b/development/comfy-router/models/google/gemini/code.mdx @@ -26,8 +26,8 @@ Pick the model you want to call. The models share one request and response shape ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3.1-pro-preview", @@ -55,8 +55,8 @@ print("text:", result["candidates"][0]["content"]["parts"][0]["text"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// 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: { text: string }[] } }[] }; const { data } = await comfy.models.run("vertexai/gemini-3.1-pro-preview", { contents: [ @@ -96,8 +96,8 @@ curl https://api.comfy.org/v2/models/vertexai/gemini-3.1-pro-preview \ ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3.5-flash", @@ -125,8 +125,8 @@ print("text:", result["candidates"][0]["content"]["parts"][0]["text"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// 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: { text: string }[] } }[] }; const { data } = await comfy.models.run("vertexai/gemini-3.5-flash", { contents: [ @@ -166,8 +166,8 @@ curl https://api.comfy.org/v2/models/vertexai/gemini-3.5-flash \ ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-2.5-pro", @@ -195,8 +195,8 @@ print("text:", result["candidates"][0]["content"]["parts"][0]["text"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// 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: { text: string }[] } }[] }; const { data } = await comfy.models.run("vertexai/gemini-2.5-pro", { contents: [ @@ -236,8 +236,8 @@ curl https://api.comfy.org/v2/models/vertexai/gemini-2.5-pro \ ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-2.5-flash", @@ -265,8 +265,8 @@ print("text:", result["candidates"][0]["content"]["parts"][0]["text"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// 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: { text: string }[] } }[] }; const { data } = await comfy.models.run("vertexai/gemini-2.5-flash", { contents: [ @@ -749,14 +749,18 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.1-p { "contents": [ { + "role": "user", "parts": [ { - "text": "Describe a robot learning to paint, in two sentences." + "text": "Describe a single red maple leaf on a white background in one sentence." } - ], - "role": "user" + ] } - ] + ], + "generationConfig": { + "temperature": 0.7, + "maxOutputTokens": 256 + } } ``` @@ -767,22 +771,19 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.1-p "candidates": [ { "content": { + "role": "model", "parts": [ { - "text": "A lighthouse stands at the edge of the harbour, its lamp still turning as the sun comes up." + "text": "A single red maple leaf rests on a plain white background, its edges sharp and its color deep." } - ], - "role": "model" + ] }, "finishReason": "STOP" } ], - "modelVersion": "gemini-2.5-flash", - "responseId": "0d1f2a3b-4c5d-6e7f-8a9b-0c1d2e3f4a5b", "usageMetadata": { - "candidatesTokenCount": 21, - "promptTokenCount": 12, - "totalTokenCount": 33 + "promptTokenCount": 18, + "candidatesTokenCount": 24 } } ``` diff --git a/development/comfy-router/models/google/gemini/code.yaml b/development/comfy-router/models/google/gemini/code.yaml index 7a568dcfb..c946280d8 100644 --- a/development/comfy-router/models/google/gemini/code.yaml +++ b/development/comfy-router/models/google/gemini/code.yaml @@ -185,8 +185,8 @@ output: promptFeedback: type: object description: >- - Present when the prompt itself was blocked. It is the only field returned in that case, so - check for it before reading the result. + Present when the prompt itself was blocked. Check whether `candidates` is present before + reading the result; `usageMetadata` can also appear on a blocked response. properties: blockReason: type: string diff --git a/development/comfy-router/models/google/imagen-3-0-fast-generate-001/code.mdx b/development/comfy-router/models/google/imagen-3-0-fast-generate-001/code.mdx index 043336ee8..7f9f223cd 100644 --- a/development/comfy-router/models/google/imagen-3-0-fast-generate-001/code.mdx +++ b/development/comfy-router/models/google/imagen-3-0-fast-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/imagen-3.0-fast-generate-001", @@ -45,8 +45,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("vertexai/imagen-3.0-fast-generate-001", { instances: [ { diff --git a/development/comfy-router/models/google/imagen-3-0-generate-001/code.mdx b/development/comfy-router/models/google/imagen-3-0-generate-001/code.mdx index 20de399cb..b475080ba 100644 --- a/development/comfy-router/models/google/imagen-3-0-generate-001/code.mdx +++ b/development/comfy-router/models/google/imagen-3-0-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/imagen-3.0-generate-001", @@ -45,8 +45,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("vertexai/imagen-3.0-generate-001", { instances: [ { diff --git a/development/comfy-router/models/google/imagen-3-0-generate-002/code.mdx b/development/comfy-router/models/google/imagen-3-0-generate-002/code.mdx index 1ae287c58..267d69e00 100644 --- a/development/comfy-router/models/google/imagen-3-0-generate-002/code.mdx +++ b/development/comfy-router/models/google/imagen-3-0-generate-002/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/imagen-3.0-generate-002", @@ -45,8 +45,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("vertexai/imagen-3.0-generate-002", { instances: [ { diff --git a/development/comfy-router/models/google/nano-banana-2-lite/code.mdx b/development/comfy-router/models/google/nano-banana-2-lite/code.mdx index 6363f0591..ff6606fa1 100644 --- a/development/comfy-router/models/google/nano-banana-2-lite/code.mdx +++ b/development/comfy-router/models/google/nano-banana-2-lite/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3.1-flash-lite-image", @@ -53,8 +53,8 @@ print("image (base64):", result["candidates"][0]["content"]["parts"][0]["inlineD ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// 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 } }[] } }[] }; const { data } = await comfy.models.run("vertexai/gemini-3.1-flash-lite-image", { contents: [ @@ -537,14 +537,22 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.1-f { "contents": [ { + "role": "user", "parts": [ { - "text": "Describe a robot learning to paint, in two sentences." + "text": "a single red maple leaf on a plain white background, studio lighting" } - ], - "role": "user" + ] + } + ], + "generationConfig": { + "responseModalities": [ + "IMAGE" + ], + "imageConfig": { + "aspectRatio": "1:1" } - ] + } } ``` @@ -555,29 +563,26 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.1-f "candidates": [ { "content": { + "role": "model", "parts": [ { "inlineData": { - "data": "PGJhc2U2ND4=", - "mimeType": "image/png" + "mimeType": "image/png", + "data": "PGJhc2U2ND4=" } } - ], - "role": "model" + ] }, "finishReason": "STOP" } ], - "modelVersion": "gemini-2.5-flash-image", - "responseId": "7c6b5a49-3827-1605-f4e3-d2c1b0a99887", "usageMetadata": { - "candidatesTokenCount": 1290, - "promptTokenCount": 11, - "totalTokenCount": 1301 + "promptTokenCount": 12, + "candidatesTokenCount": 1290 } } ``` -The image comes back inline as base64 in `inlineData.data`, with its `mimeType` beside it. Decode it and write it to a file; there is no URL to download. +By default, generated image parts contain base64 bytes in `inlineData.data` and a media type in `inlineData.mimeType`. Decode the bytes and save them to a file. With `uploadImagesToStorage: true`, uploaded images instead use `fileData.fileUri` for a signed URL and `fileData.mimeType` for the media type. Download these images before the URLs expire, 24 hours after they are created. An upload failure leaves that image inline, so inspect each part for `inlineData` or `fileData`; text parts can also appear, and the image is not guaranteed to be the first part. diff --git a/development/comfy-router/models/google/nano-banana-2-lite/code.yaml b/development/comfy-router/models/google/nano-banana-2-lite/code.yaml index 0013eb811..996437a4b 100644 --- a/development/comfy-router/models/google/nano-banana-2-lite/code.yaml +++ b/development/comfy-router/models/google/nano-banana-2-lite/code.yaml @@ -136,8 +136,8 @@ output: description: Media type of the image, typically `image/png`. data: type: string - description: Base64-encoded image bytes. Decode and write to a file; there is - no URL. + description: Base64-encoded image bytes. Decode and write to a file when this part + contains `inlineData`. text: type: string description: Present when `TEXT` was among the requested modalities. @@ -157,8 +157,8 @@ output: promptFeedback: type: object description: >- - Present when the prompt itself was blocked. It is the only field returned in that case, so - check for it before reading the result. + Present when the prompt itself was blocked. Check whether `candidates` is present before + reading the result; `usageMetadata` can also appear on a blocked response. properties: blockReason: type: string @@ -179,14 +179,18 @@ result: parts: - inlineData: mimeType: image/png - data: iVBORw0KGgoAAAANSUhEUgAA... + data: PGJhc2U2ND4= finishReason: STOP usageMetadata: promptTokenCount: 12 candidatesTokenCount: 1290 note: >- - The image comes back inline as base64 in `inlineData.data`, with its `mimeType` beside it. Decode - it and write it to a file; there is no URL to download. + By default, generated image parts contain base64 bytes in `inlineData.data` and a media type in + `inlineData.mimeType`. Decode the bytes and save them to a file. With `uploadImagesToStorage: true`, + uploaded images instead use `fileData.fileUri` for a signed URL and `fileData.mimeType` for the media + type. Download these images before the URLs expire, 24 hours after they are created. An upload + failure leaves that image inline, so inspect each part for `inlineData` or `fileData`; text parts + can also appear, and the image is not guaranteed to be the first part. provider_spec: url: https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta request: GenerateContentRequest diff --git a/development/comfy-router/models/google/nano-banana-2/code.mdx b/development/comfy-router/models/google/nano-banana-2/code.mdx index f18075f3d..572224f6d 100644 --- a/development/comfy-router/models/google/nano-banana-2/code.mdx +++ b/development/comfy-router/models/google/nano-banana-2/code.mdx @@ -8,7 +8,7 @@ sidebarTitle: "Nano Banana 2" import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; -API Reference for Nano Banana 2. Nano Banana 2 (Gemini 3.1 Flash Image) is Google's image generation and editing model, balancing quality and speed. +API Reference for Nano Banana 2. Nano Banana 2 (Gemini 3.1 Flash Image) generates images from text and edits an input image when one is provided. ## Quick start @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3.1-flash-image", @@ -53,8 +53,8 @@ print("image (base64):", result["candidates"][0]["content"]["parts"][0]["inlineD ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// 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 } }[] } }[] }; const { data } = await comfy.models.run("vertexai/gemini-3.1-flash-image", { contents: [ @@ -537,14 +537,22 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.1-f { "contents": [ { + "role": "user", "parts": [ { - "text": "Describe a robot learning to paint, in two sentences." + "text": "a single red maple leaf on a plain white background, studio lighting" } - ], - "role": "user" + ] + } + ], + "generationConfig": { + "responseModalities": [ + "IMAGE" + ], + "imageConfig": { + "aspectRatio": "1:1" } - ] + } } ``` @@ -555,29 +563,26 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3.1-f "candidates": [ { "content": { + "role": "model", "parts": [ { "inlineData": { - "data": "PGJhc2U2ND4=", - "mimeType": "image/png" + "mimeType": "image/png", + "data": "PGJhc2U2ND4=" } } - ], - "role": "model" + ] }, "finishReason": "STOP" } ], - "modelVersion": "gemini-2.5-flash-image", - "responseId": "7c6b5a49-3827-1605-f4e3-d2c1b0a99887", "usageMetadata": { - "candidatesTokenCount": 1290, - "promptTokenCount": 11, - "totalTokenCount": 1301 + "promptTokenCount": 12, + "candidatesTokenCount": 1290 } } ``` -The image comes back inline as base64 in `inlineData.data`, with its `mimeType` beside it. Decode it and write it to a file; there is no URL to download. +By default, generated image parts contain base64 bytes in `inlineData.data` and a media type in `inlineData.mimeType`. Decode the bytes and save them to a file. With `uploadImagesToStorage: true`, uploaded images instead use `fileData.fileUri` for a signed URL and `fileData.mimeType` for the media type. Download these images before the URLs expire, 24 hours after they are created. An upload failure leaves that image inline, so inspect each part for `inlineData` or `fileData`; text parts can also appear, and the image is not guaranteed to be the first part. diff --git a/development/comfy-router/models/google/nano-banana-2/code.yaml b/development/comfy-router/models/google/nano-banana-2/code.yaml index 4e57279d5..314bbac88 100644 --- a/development/comfy-router/models/google/nano-banana-2/code.yaml +++ b/development/comfy-router/models/google/nano-banana-2/code.yaml @@ -8,7 +8,7 @@ description: >- Python, TypeScript and cURL snippets for generating images with Nano Banana 2 (Gemini 3.1 Flash Image) over HTTP through Comfy Router, plus the request fields and the result shape summary: >- - Nano Banana 2 (Gemini 3.1 Flash Image) is Google's image generation and editing model, balancing quality and speed. + Nano Banana 2 (Gemini 3.1 Flash Image) generates images from text and edits an input image when one is provided. task: generation variants: - title: Nano Banana 2 @@ -136,8 +136,8 @@ output: description: Media type of the image, typically `image/png`. data: type: string - description: Base64-encoded image bytes. Decode and write to a file; there is - no URL. + description: Base64-encoded image bytes. Decode and write to a file when this part + contains `inlineData`. text: type: string description: Present when `TEXT` was among the requested modalities. @@ -157,8 +157,8 @@ output: promptFeedback: type: object description: >- - Present when the prompt itself was blocked. It is the only field returned in that case, so - check for it before reading the result. + Present when the prompt itself was blocked. Check whether `candidates` is present before + reading the result; `usageMetadata` can also appear on a blocked response. properties: blockReason: type: string @@ -179,14 +179,18 @@ result: parts: - inlineData: mimeType: image/png - data: iVBORw0KGgoAAAANSUhEUgAA... + data: PGJhc2U2ND4= finishReason: STOP usageMetadata: promptTokenCount: 12 candidatesTokenCount: 1290 note: >- - The image comes back inline as base64 in `inlineData.data`, with its `mimeType` beside it. Decode - it and write it to a file; there is no URL to download. + By default, generated image parts contain base64 bytes in `inlineData.data` and a media type in + `inlineData.mimeType`. Decode the bytes and save them to a file. With `uploadImagesToStorage: true`, + uploaded images instead use `fileData.fileUri` for a signed URL and `fileData.mimeType` for the media + type. Download these images before the URLs expire, 24 hours after they are created. An upload + failure leaves that image inline, so inspect each part for `inlineData` or `fileData`; text parts + can also appear, and the image is not guaranteed to be the first part. provider_spec: url: https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta request: GenerateContentRequest diff --git a/development/comfy-router/models/google/nano-banana-pro/code.mdx b/development/comfy-router/models/google/nano-banana-pro/code.mdx index db798d76c..daf2eff0c 100644 --- a/development/comfy-router/models/google/nano-banana-pro/code.mdx +++ b/development/comfy-router/models/google/nano-banana-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "vertexai/gemini-3-pro-image", @@ -53,8 +53,8 @@ print("image (base64):", result["candidates"][0]["content"]["parts"][0]["inlineD ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// 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 } }[] } }[] }; const { data } = await comfy.models.run("vertexai/gemini-3-pro-image", { contents: [ @@ -537,14 +537,22 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3-pro { "contents": [ { + "role": "user", "parts": [ { - "text": "Describe a robot learning to paint, in two sentences." + "text": "a single red maple leaf on a plain white background, studio lighting" } - ], - "role": "user" + ] + } + ], + "generationConfig": { + "responseModalities": [ + "IMAGE" + ], + "imageConfig": { + "aspectRatio": "1:1" } - ] + } } ``` @@ -555,29 +563,26 @@ Generated from the schema Router serves at `GET /v2/models/vertexai/gemini-3-pro "candidates": [ { "content": { + "role": "model", "parts": [ { "inlineData": { - "data": "PGJhc2U2ND4=", - "mimeType": "image/png" + "mimeType": "image/png", + "data": "PGJhc2U2ND4=" } } - ], - "role": "model" + ] }, "finishReason": "STOP" } ], - "modelVersion": "gemini-2.5-flash-image", - "responseId": "7c6b5a49-3827-1605-f4e3-d2c1b0a99887", "usageMetadata": { - "candidatesTokenCount": 1290, - "promptTokenCount": 11, - "totalTokenCount": 1301 + "promptTokenCount": 12, + "candidatesTokenCount": 1290 } } ``` -The image comes back inline as base64 in `inlineData.data`, with its `mimeType` beside it. Decode it and write it to a file; there is no URL to download. +By default, generated image parts contain base64 bytes in `inlineData.data` and a media type in `inlineData.mimeType`. Decode the bytes and save them to a file. With `uploadImagesToStorage: true`, uploaded images instead use `fileData.fileUri` for a signed URL and `fileData.mimeType` for the media type. Download these images before the URLs expire, 24 hours after they are created. An upload failure leaves that image inline, so inspect each part for `inlineData` or `fileData`; text parts can also appear, and the image is not guaranteed to be the first part. diff --git a/development/comfy-router/models/google/nano-banana-pro/code.yaml b/development/comfy-router/models/google/nano-banana-pro/code.yaml index 678592963..a2350140c 100644 --- a/development/comfy-router/models/google/nano-banana-pro/code.yaml +++ b/development/comfy-router/models/google/nano-banana-pro/code.yaml @@ -143,8 +143,8 @@ output: description: Media type of the image, typically `image/png`. data: type: string - description: Base64-encoded image bytes. Decode and write to a file; there is - no URL. + description: Base64-encoded image bytes. Decode and write to a file when this part + contains `inlineData`. text: type: string description: Present when `TEXT` was among the requested modalities. @@ -164,8 +164,8 @@ output: promptFeedback: type: object description: >- - Present when the prompt itself was blocked. It is the only field returned in that case, so - check for it before reading the result. + Present when the prompt itself was blocked. Check whether `candidates` is present before + reading the result; `usageMetadata` can also appear on a blocked response. properties: blockReason: type: string @@ -186,14 +186,18 @@ result: parts: - inlineData: mimeType: image/png - data: iVBORw0KGgoAAAANSUhEUgAA... + data: PGJhc2U2ND4= finishReason: STOP usageMetadata: promptTokenCount: 12 candidatesTokenCount: 1290 note: >- - The image comes back inline as base64 in `inlineData.data`, with its `mimeType` beside it. Decode - it and write it to a file; there is no URL to download. + By default, generated image parts contain base64 bytes in `inlineData.data` and a media type in + `inlineData.mimeType`. Decode the bytes and save them to a file. With `uploadImagesToStorage: true`, + uploaded images instead use `fileData.fileUri` for a signed URL and `fileData.mimeType` for the media + type. Download these images before the URLs expire, 24 hours after they are created. An upload + failure leaves that image inline, so inspect each part for `inlineData` or `fileData`; text parts + can also appear, and the image is not guaranteed to be the first part. provider_spec: url: https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta request: GenerateContentRequest diff --git a/development/comfy-router/models/heygen/starfish/code.mdx b/development/comfy-router/models/heygen/starfish/code.mdx index c436a9d88..33e408410 100644 --- a/development/comfy-router/models/heygen/starfish/code.mdx +++ b/development/comfy-router/models/heygen/starfish/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "heygen/starfish", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("heygen/starfish", { text: "This is a billing verification test for HeyGen speech generation.", voice_id: "d2f4f24783d04e22ab49ee8fdc3715e0", diff --git a/development/comfy-router/models/ideogram/ideogram-v4/code.mdx b/development/comfy-router/models/ideogram/ideogram-v4/code.mdx index d2f30864a..06e58de8a 100644 --- a/development/comfy-router/models/ideogram/ideogram-v4/code.mdx +++ b/development/comfy-router/models/ideogram/ideogram-v4/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "ideogram/ideogram-v4", @@ -40,8 +40,8 @@ print("image:", result["data"][0]["url"]) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. type Result = { data: { url: string }[] }; const { data } = await comfy.models.run("ideogram/ideogram-v4", { text_prompt: "a single red maple leaf on a plain white background, studio lighting", @@ -131,8 +131,9 @@ Generated from the schema Router serves at `GET /v2/models/ideogram/ideogram-v4/ ```json { - "rendering_speed": "DEFAULT", - "text_prompt": "A poster for a jazz festival, bold typography, warm colours" + "text_prompt": "a single red maple leaf on a plain white background, studio lighting", + "resolution": "1024x1024", + "rendering_speed": "DEFAULT" } ``` @@ -140,15 +141,15 @@ Generated from the schema Router serves at `GET /v2/models/ideogram/ideogram-v4/ ```json { - "created": "2026-01-01T00:00:00Z", + "response_type": "url", + "created": "2026-08-27T21:00:00Z", "data": [ { - "is_image_safe": true, - "prompt": "A poster for a jazz festival, bold typography, warm colours", - "resolution": "2048x2048", - "seed": 918273645, - "style_type": "REALISTIC", - "url": "https://example.invalid/ideogram/ideogram-v4/generated.png" + "url": "https://.../image.png", + "prompt": "a single red maple leaf on a plain white background, studio lighting", + "resolution": "1024x1024", + "seed": 1234567890, + "is_image_safe": true } ] } diff --git a/development/comfy-router/models/ideogram/p-image-ideogram/code.mdx b/development/comfy-router/models/ideogram/p-image-ideogram/code.mdx index 0c732b88c..fda5fde4b 100644 --- a/development/comfy-router/models/ideogram/p-image-ideogram/code.mdx +++ b/development/comfy-router/models/ideogram/p-image-ideogram/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "ideogram/p-image-ideogram", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("ideogram/p-image-ideogram", { prompt: "A beautiful mountain landscape", }); diff --git a/development/comfy-router/models/kling/kling-3-0-turbo/code.mdx b/development/comfy-router/models/kling/kling-3-0-turbo/code.mdx index 9ca10e287..8c1ccf53d 100644 --- a/development/comfy-router/models/kling/kling-3-0-turbo/code.mdx +++ b/development/comfy-router/models/kling/kling-3-0-turbo/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-3.0-turbo", @@ -43,8 +43,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-3.0-turbo", { prompt: "A neon-lit alley in the rain, slow dolly forward.", settings: { diff --git a/development/comfy-router/models/kling/kling-image-o1/code.mdx b/development/comfy-router/models/kling/kling-image-o1/code.mdx index 2bac67ad9..7ec0ce7df 100644 --- a/development/comfy-router/models/kling/kling-image-o1/code.mdx +++ b/development/comfy-router/models/kling/kling-image-o1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-image-o1", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-image-o1", { aspect_ratio: "1:1", n: 1, diff --git a/development/comfy-router/models/kling/kling-v1-5/code.mdx b/development/comfy-router/models/kling/kling-v1-5/code.mdx index 4ef0efc64..11a7ab6ba 100644 --- a/development/comfy-router/models/kling/kling-v1-5/code.mdx +++ b/development/comfy-router/models/kling/kling-v1-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v1-5", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v1-5", { duration: "5", image: "https://example.invalid/kling/reference.png", diff --git a/development/comfy-router/models/kling/kling-v1-6/code.mdx b/development/comfy-router/models/kling/kling-v1-6/code.mdx index bf52d06d0..c8ec2e999 100644 --- a/development/comfy-router/models/kling/kling-v1-6/code.mdx +++ b/development/comfy-router/models/kling/kling-v1-6/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v1-6", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v1-6", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-v1/code.mdx b/development/comfy-router/models/kling/kling-v1/code.mdx index 6955cf018..b2f1ae090 100644 --- a/development/comfy-router/models/kling/kling-v1/code.mdx +++ b/development/comfy-router/models/kling/kling-v1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v1", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v1", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-v2-1-master/code.mdx b/development/comfy-router/models/kling/kling-v2-1-master/code.mdx index 7e0db5be3..6166da812 100644 --- a/development/comfy-router/models/kling/kling-v2-1-master/code.mdx +++ b/development/comfy-router/models/kling/kling-v2-1-master/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v2-1-master", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v2-1-master", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-v2-1/code.mdx b/development/comfy-router/models/kling/kling-v2-1/code.mdx index 44ff7579d..57594cd5f 100644 --- a/development/comfy-router/models/kling/kling-v2-1/code.mdx +++ b/development/comfy-router/models/kling/kling-v2-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v2-1", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v2-1", { duration: "5", image: "https://example.invalid/kling/reference.png", diff --git a/development/comfy-router/models/kling/kling-v2-5-turbo/code.mdx b/development/comfy-router/models/kling/kling-v2-5-turbo/code.mdx index 0fa555f2c..c81663e58 100644 --- a/development/comfy-router/models/kling/kling-v2-5-turbo/code.mdx +++ b/development/comfy-router/models/kling/kling-v2-5-turbo/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v2-5-turbo", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v2-5-turbo", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-v2-6/code.mdx b/development/comfy-router/models/kling/kling-v2-6/code.mdx index 92c02511b..384a65618 100644 --- a/development/comfy-router/models/kling/kling-v2-6/code.mdx +++ b/development/comfy-router/models/kling/kling-v2-6/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v2-6", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v2-6", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-v2-master/code.mdx b/development/comfy-router/models/kling/kling-v2-master/code.mdx index 574016eb8..5eadc437d 100644 --- a/development/comfy-router/models/kling/kling-v2-master/code.mdx +++ b/development/comfy-router/models/kling/kling-v2-master/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v2-master", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v2-master", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-v3-omni/code.mdx b/development/comfy-router/models/kling/kling-v3-omni/code.mdx index e8b6e1dd0..68240c6f6 100644 --- a/development/comfy-router/models/kling/kling-v3-omni/code.mdx +++ b/development/comfy-router/models/kling/kling-v3-omni/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v3-omni", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v3-omni", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-v3/code.mdx b/development/comfy-router/models/kling/kling-v3/code.mdx index b33dabf5e..6377fb06d 100644 --- a/development/comfy-router/models/kling/kling-v3/code.mdx +++ b/development/comfy-router/models/kling/kling-v3/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-v3", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-v3", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/kling-video-o1/code.mdx b/development/comfy-router/models/kling/kling-video-o1/code.mdx index 01b85a47f..a1ac68557 100644 --- a/development/comfy-router/models/kling/kling-video-o1/code.mdx +++ b/development/comfy-router/models/kling/kling-video-o1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/kling-video-o1", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/kling-video-o1", { aspect_ratio: "16:9", duration: "5", diff --git a/development/comfy-router/models/kling/videos-avatar-image2video/code.mdx b/development/comfy-router/models/kling/videos-avatar-image2video/code.mdx index 1497eeaa0..c35484b7c 100644 --- a/development/comfy-router/models/kling/videos-avatar-image2video/code.mdx +++ b/development/comfy-router/models/kling/videos-avatar-image2video/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/videos-avatar-image2video", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/videos-avatar-image2video", { image: "https://example.invalid/kling/avatar.png", mode: "std", diff --git a/development/comfy-router/models/kling/videos-lip-sync/code.mdx b/development/comfy-router/models/kling/videos-lip-sync/code.mdx index d9b29e8af..8e69afea7 100644 --- a/development/comfy-router/models/kling/videos-lip-sync/code.mdx +++ b/development/comfy-router/models/kling/videos-lip-sync/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/videos-lip-sync", @@ -45,8 +45,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/videos-lip-sync", { input: { mode: "text2video", @@ -80,7 +80,7 @@ curl https://api.comfy.org/v2/models/kling/videos-lip-sync \ Format: `uri` - + diff --git a/development/comfy-router/models/kling/videos-video-extend/code.mdx b/development/comfy-router/models/kling/videos-video-extend/code.mdx index df8eaf8e8..8b12784ae 100644 --- a/development/comfy-router/models/kling/videos-video-extend/code.mdx +++ b/development/comfy-router/models/kling/videos-video-extend/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "kling/videos-video-extend", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("kling/videos-video-extend", { cfg_scale: 0.5, prompt: "The camera keeps drifting forward down the alley.", diff --git a/development/comfy-router/models/krea/krea-2-large/code.mdx b/development/comfy-router/models/krea/krea-2-large/code.mdx index 5d3670150..ffc0955f3 100644 --- a/development/comfy-router/models/krea/krea-2-large/code.mdx +++ b/development/comfy-router/models/krea/krea-2-large/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "krea/krea-2-large", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("krea/krea-2-large", { aspect_ratio: "1:1", prompt: "a red circle", diff --git a/development/comfy-router/models/krea/krea-2-medium-turbo/code.mdx b/development/comfy-router/models/krea/krea-2-medium-turbo/code.mdx index a5ed46642..3270b5f8d 100644 --- a/development/comfy-router/models/krea/krea-2-medium-turbo/code.mdx +++ b/development/comfy-router/models/krea/krea-2-medium-turbo/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "krea/krea-2-medium-turbo", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("krea/krea-2-medium-turbo", { aspect_ratio: "1:1", prompt: "a red circle", diff --git a/development/comfy-router/models/krea/krea-2-medium/code.mdx b/development/comfy-router/models/krea/krea-2-medium/code.mdx index 916be1c00..ff5effab1 100644 --- a/development/comfy-router/models/krea/krea-2-medium/code.mdx +++ b/development/comfy-router/models/krea/krea-2-medium/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "krea/krea-2-medium", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("krea/krea-2-medium", { aspect_ratio: "1:1", prompt: "a red circle", diff --git a/development/comfy-router/models/krea/krea-2/code.mdx b/development/comfy-router/models/krea/krea-2/code.mdx index 782cdb235..c95d7664d 100644 --- a/development/comfy-router/models/krea/krea-2/code.mdx +++ b/development/comfy-router/models/krea/krea-2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "krea/krea-2", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("krea/krea-2", { aspect_ratio: "1:1", prompt: "a red circle", diff --git a/development/comfy-router/models/ltx/ltx-2-5-fast/code.mdx b/development/comfy-router/models/ltx/ltx-2-5-fast/code.mdx index 31281545a..b8f25fb83 100644 --- a/development/comfy-router/models/ltx/ltx-2-5-fast/code.mdx +++ b/development/comfy-router/models/ltx/ltx-2-5-fast/code.mdx @@ -10,59 +10,24 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `ltx/ltx-2-5-fast`, served by Comfy Router from LTX. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `ltx/ltx-2-5-fast` **Endpoint:** `POST https://api.comfy.org/v2/models/ltx/ltx-2-5-fast` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "ltx/ltx-2-5-fast", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("ltx/ltx-2-5-fast", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/ltx/ltx-2-5-fast \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema ### Input -Router has not published an authored input schema for this model yet: `GET /v2/models/ltx/ltx-2-5-fast/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to LTX unchanged, so LTX's own API documentation is authoritative for the request fields, and nothing is validated server side. +Router has not published an authored input schema for this model yet: `GET /v2/models/ltx/ltx-2-5-fast/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to LTX unchanged, so LTX's own API documentation is authoritative for the request fields, and Router does not perform model-specific input validation. Provider validation still applies. ### Output diff --git a/development/comfy-router/models/ltx/ltx-2-5-pro/code.mdx b/development/comfy-router/models/ltx/ltx-2-5-pro/code.mdx index bbe62e582..565fcd0e9 100644 --- a/development/comfy-router/models/ltx/ltx-2-5-pro/code.mdx +++ b/development/comfy-router/models/ltx/ltx-2-5-pro/code.mdx @@ -10,59 +10,24 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `ltx/ltx-2-5-pro`, served by Comfy Router from LTX. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `ltx/ltx-2-5-pro` **Endpoint:** `POST https://api.comfy.org/v2/models/ltx/ltx-2-5-pro` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "ltx/ltx-2-5-pro", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("ltx/ltx-2-5-pro", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/ltx/ltx-2-5-pro \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema ### Input -Router has not published an authored input schema for this model yet: `GET /v2/models/ltx/ltx-2-5-pro/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to LTX unchanged, so LTX's own API documentation is authoritative for the request fields, and nothing is validated server side. +Router has not published an authored input schema for this model yet: `GET /v2/models/ltx/ltx-2-5-pro/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to LTX unchanged, so LTX's own API documentation is authoritative for the request fields, and Router does not perform model-specific input validation. Provider validation still applies. ### Output diff --git a/development/comfy-router/models/luma/photon-1/code.mdx b/development/comfy-router/models/luma/photon-1/code.mdx index 0b0d90951..9af3092b1 100644 --- a/development/comfy-router/models/luma/photon-1/code.mdx +++ b/development/comfy-router/models/luma/photon-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "luma/photon-1", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("luma/photon-1", { aspect_ratio: "1:1", prompt: "a red circle on a plain white background", diff --git a/development/comfy-router/models/luma/photon-flash-1/code.mdx b/development/comfy-router/models/luma/photon-flash-1/code.mdx index d0e0adfd1..c183abb42 100644 --- a/development/comfy-router/models/luma/photon-flash-1/code.mdx +++ b/development/comfy-router/models/luma/photon-flash-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "luma/photon-flash-1", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("luma/photon-flash-1", { aspect_ratio: "1:1", prompt: "a red circle on a plain white background", @@ -306,14 +306,14 @@ Generated from the schema Router serves at `GET /v2/models/luma/photon-flash-1/o "failure_reason": null, "generation_type": "image", "id": "5e8b06d7-91c4-4a2f-8b3d-6f7a8b9c0d1e", - "model": "photon-1", + "model": "photon-flash-1", "request": { "aspect_ratio": "1:1", "callback_url": null, "character_ref": null, "generation_type": "image", "image_ref": null, - "model": "photon-1", + "model": "photon-flash-1", "modify_image_ref": null, "prompt": "a red circle on a plain white background", "style_ref": null diff --git a/development/comfy-router/models/luma/ray-2/code.mdx b/development/comfy-router/models/luma/ray-2/code.mdx index 5a62417a8..97095a8b4 100644 --- a/development/comfy-router/models/luma/ray-2/code.mdx +++ b/development/comfy-router/models/luma/ray-2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "luma/ray-2", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("luma/ray-2", { aspect_ratio: "16:9", duration: "5s", @@ -90,11 +90,11 @@ curl https://api.comfy.org/v2/models/luma/ray-2 \ The keyframes of the generation - + A keyframe can be either a Generation reference, an Image, or a Video - + A keyframe can be either a Generation reference, an Image, or a Video @@ -164,7 +164,7 @@ Generated from the schema Router serves at `GET /v2/models/luma/ray-2/openapi.js The model used for the generation - + The request of the generation diff --git a/development/comfy-router/models/luma/ray-flash-2/code.mdx b/development/comfy-router/models/luma/ray-flash-2/code.mdx index 2c55aa78c..9b8825f01 100644 --- a/development/comfy-router/models/luma/ray-flash-2/code.mdx +++ b/development/comfy-router/models/luma/ray-flash-2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "luma/ray-flash-2", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("luma/ray-flash-2", { aspect_ratio: "16:9", duration: "5s", @@ -90,11 +90,11 @@ curl https://api.comfy.org/v2/models/luma/ray-flash-2 \ The keyframes of the generation - + A keyframe can be either a Generation reference, an Image, or a Video - + A keyframe can be either a Generation reference, an Image, or a Video @@ -164,7 +164,7 @@ Generated from the schema Router serves at `GET /v2/models/luma/ray-flash-2/open The model used for the generation - + The request of the generation @@ -197,7 +197,7 @@ Generated from the schema Router serves at `GET /v2/models/luma/ray-flash-2/open "created_at": "2027-01-01T00:00:00Z", "generation_type": "video", "id": "3f2a7c1e-8b40-4d59-9f6a-1c2d3e4f5a60", - "model": "ray-2", + "model": "ray-flash-2", "state": "completed" } ``` diff --git a/development/comfy-router/models/luma_2/uni-1-max/code.mdx b/development/comfy-router/models/luma_2/uni-1-max/code.mdx index e6d9b76f5..f7d7ba47f 100644 --- a/development/comfy-router/models/luma_2/uni-1-max/code.mdx +++ b/development/comfy-router/models/luma_2/uni-1-max/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "luma_2/uni-1-max", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("luma_2/uni-1-max", { prompt: "a red circle on a plain white background", type: "image", @@ -275,7 +275,7 @@ Generated from the schema Router serves at `GET /v2/models/luma_2/uni-1-max/open "failure_code": null, "failure_reason": null, "id": "gen-luma-agents-3f2a7c1e8b40", - "model": "uni-1", + "model": "uni-1-max", "output": [ { "type": "image", diff --git a/development/comfy-router/models/luma_2/uni-1/code.mdx b/development/comfy-router/models/luma_2/uni-1/code.mdx index f49bac09e..11def073e 100644 --- a/development/comfy-router/models/luma_2/uni-1/code.mdx +++ b/development/comfy-router/models/luma_2/uni-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "luma_2/uni-1", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("luma_2/uni-1", { prompt: "a red circle on a plain white background", type: "image", diff --git a/development/comfy-router/models/meshy/animations/code.mdx b/development/comfy-router/models/meshy/animations/code.mdx index c45a36192..cd2835c25 100644 --- a/development/comfy-router/models/meshy/animations/code.mdx +++ b/development/comfy-router/models/meshy/animations/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "meshy/animations", @@ -43,8 +43,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("meshy/animations", { action_id: 92, post_process: { diff --git a/development/comfy-router/models/meshy/meshy-5/code.mdx b/development/comfy-router/models/meshy/meshy-5/code.mdx index 798c6c501..1eae31b83 100644 --- a/development/comfy-router/models/meshy/meshy-5/code.mdx +++ b/development/comfy-router/models/meshy/meshy-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "meshy/meshy-5", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("meshy/meshy-5", { art_style: "realistic", mode: "preview", @@ -64,7 +64,105 @@ curl https://api.comfy.org/v2/models/meshy/meshy-5 \ ### Input -_The schema declares no fixed fields: any JSON object is accepted._ +#### `preview` variant + + + 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. + + + + Describe your desired art style of the object. + + Possible values: `realistic`, `sculpture` + + + + Deprecated. Use pose_mode instead. Whether to generate the model in an A/T pose. + + + + This field should be set to "preview" when creating a preview task. + + Possible values: `preview` + + + + When true, input content will be screened for potentially harmful content. + + + + Specify the pose mode for the generated model. + + Possible values: `a-pose`, `t-pose`, `` + + + + Describe what kind of object the 3D model is. Maximum 600 characters. + + + + Controls whether to enable the remesh phase. When false, returns highest-precision triangular mesh. + + + + Controls symmetry behavior during model generation. + + Possible values: `off`, `auto`, `on` + + + + Specify the target number of polygons in the generated model. Valid range is 100 to 300,000. + + Range: `100` to `300000` + + + + Specify the topology of the generated model. + + Possible values: `quad`, `triangle` + + + + Enables Ultra generation for higher-fidelity geometry with finer surface detail. Only supported when ai_model is meshy-7 or latest. + + +#### `refine` variant + + + 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. + + + + 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. + + + + This field should be set to "refine" when creating a refine task. + + Possible values: `refine` + + + + When true, input content will be screened for potentially harmful content. + + + + The corresponding preview task id. The status of the given preview task must be SUCCEEDED. + + + + Provide a 2d image to guide the texturing process. Supports .jpg, .jpeg, .png formats or base64-encoded data URI. + + + + Provide an additional text prompt to guide the texturing process. Maximum 600 characters. + + + + Texture resolution of the generated textures. One of 2k, 4k or 8k. 4k and 8k require ai_model meshy-6, meshy-7 or latest. + + Possible values: `2k`, `4k`, `8k` + Generated from the schema Router serves at `GET /v2/models/meshy/meshy-5/openapi.json`, the same document it validates a call against before the request reaches the provider. diff --git a/development/comfy-router/models/meshy/meshy-6/code.mdx b/development/comfy-router/models/meshy/meshy-6/code.mdx index 49c4d32d9..521755d3e 100644 --- a/development/comfy-router/models/meshy/meshy-6/code.mdx +++ b/development/comfy-router/models/meshy/meshy-6/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "meshy/meshy-6", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("meshy/meshy-6", { art_style: "realistic", mode: "preview", @@ -64,7 +64,105 @@ curl https://api.comfy.org/v2/models/meshy/meshy-6 \ ### Input -_The schema declares no fixed fields: any JSON object is accepted._ +#### `preview` variant + + + 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. + + + + Describe your desired art style of the object. + + Possible values: `realistic`, `sculpture` + + + + Deprecated. Use pose_mode instead. Whether to generate the model in an A/T pose. + + + + This field should be set to "preview" when creating a preview task. + + Possible values: `preview` + + + + When true, input content will be screened for potentially harmful content. + + + + Specify the pose mode for the generated model. + + Possible values: `a-pose`, `t-pose`, `` + + + + Describe what kind of object the 3D model is. Maximum 600 characters. + + + + Controls whether to enable the remesh phase. When false, returns highest-precision triangular mesh. + + + + Controls symmetry behavior during model generation. + + Possible values: `off`, `auto`, `on` + + + + Specify the target number of polygons in the generated model. Valid range is 100 to 300,000. + + Range: `100` to `300000` + + + + Specify the topology of the generated model. + + Possible values: `quad`, `triangle` + + + + Enables Ultra generation for higher-fidelity geometry with finer surface detail. Only supported when ai_model is meshy-7 or latest. + + +#### `refine` variant + + + 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. + + + + 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. + + + + This field should be set to "refine" when creating a refine task. + + Possible values: `refine` + + + + When true, input content will be screened for potentially harmful content. + + + + The corresponding preview task id. The status of the given preview task must be SUCCEEDED. + + + + Provide a 2d image to guide the texturing process. Supports .jpg, .jpeg, .png formats or base64-encoded data URI. + + + + Provide an additional text prompt to guide the texturing process. Maximum 600 characters. + + + + Texture resolution of the generated textures. One of 2k, 4k or 8k. 4k and 8k require ai_model meshy-6, meshy-7 or latest. + + Possible values: `2k`, `4k`, `8k` + Generated from the schema Router serves at `GET /v2/models/meshy/meshy-6/openapi.json`, the same document it validates a call against before the request reaches the provider. diff --git a/development/comfy-router/models/meshy/meshy-7/code.mdx b/development/comfy-router/models/meshy/meshy-7/code.mdx index d728e163e..2c57da455 100644 --- a/development/comfy-router/models/meshy/meshy-7/code.mdx +++ b/development/comfy-router/models/meshy/meshy-7/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "meshy/meshy-7", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("meshy/meshy-7", { art_style: "realistic", mode: "preview", @@ -64,7 +64,105 @@ curl https://api.comfy.org/v2/models/meshy/meshy-7 \ ### Input -_The schema declares no fixed fields: any JSON object is accepted._ +#### `preview` variant + + + 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. + + + + Describe your desired art style of the object. + + Possible values: `realistic`, `sculpture` + + + + Deprecated. Use pose_mode instead. Whether to generate the model in an A/T pose. + + + + This field should be set to "preview" when creating a preview task. + + Possible values: `preview` + + + + When true, input content will be screened for potentially harmful content. + + + + Specify the pose mode for the generated model. + + Possible values: `a-pose`, `t-pose`, `` + + + + Describe what kind of object the 3D model is. Maximum 600 characters. + + + + Controls whether to enable the remesh phase. When false, returns highest-precision triangular mesh. + + + + Controls symmetry behavior during model generation. + + Possible values: `off`, `auto`, `on` + + + + Specify the target number of polygons in the generated model. Valid range is 100 to 300,000. + + Range: `100` to `300000` + + + + Specify the topology of the generated model. + + Possible values: `quad`, `triangle` + + + + Enables Ultra generation for higher-fidelity geometry with finer surface detail. Only supported when ai_model is meshy-7 or latest. + + +#### `refine` variant + + + 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. + + + + 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. + + + + This field should be set to "refine" when creating a refine task. + + Possible values: `refine` + + + + When true, input content will be screened for potentially harmful content. + + + + The corresponding preview task id. The status of the given preview task must be SUCCEEDED. + + + + Provide a 2d image to guide the texturing process. Supports .jpg, .jpeg, .png formats or base64-encoded data URI. + + + + Provide an additional text prompt to guide the texturing process. Maximum 600 characters. + + + + Texture resolution of the generated textures. One of 2k, 4k or 8k. 4k and 8k require ai_model meshy-6, meshy-7 or latest. + + Possible values: `2k`, `4k`, `8k` + Generated from the schema Router serves at `GET /v2/models/meshy/meshy-7/openapi.json`, the same document it validates a call against before the request reaches the provider. diff --git a/development/comfy-router/models/meshy/remesh/code.mdx b/development/comfy-router/models/meshy/remesh/code.mdx index 7d31206e3..d7cf2e0aa 100644 --- a/development/comfy-router/models/meshy/remesh/code.mdx +++ b/development/comfy-router/models/meshy/remesh/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "meshy/remesh", @@ -43,8 +43,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("meshy/remesh", { input_task_id: "0193abcd-0000-0000-0000-000000000000", origin_at: "bottom", diff --git a/development/comfy-router/models/meshy/rigging/code.mdx b/development/comfy-router/models/meshy/rigging/code.mdx index 2346e54c0..f1a5ac03e 100644 --- a/development/comfy-router/models/meshy/rigging/code.mdx +++ b/development/comfy-router/models/meshy/rigging/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "meshy/rigging", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("meshy/rigging", { height_meters: 1.8, input_task_id: "0193abcd-0000-0000-0000-000000000000", diff --git a/development/comfy-router/models/minimax/minimax-h3/code.mdx b/development/comfy-router/models/minimax/minimax-h3/code.mdx index 385d68edd..2d01b790e 100644 --- a/development/comfy-router/models/minimax/minimax-h3/code.mdx +++ b/development/comfy-router/models/minimax/minimax-h3/code.mdx @@ -10,59 +10,24 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `minimax/minimax-h3`, served by Comfy Router from MiniMax. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `minimax/minimax-h3` **Endpoint:** `POST https://api.comfy.org/v2/models/minimax/minimax-h3` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "minimax/minimax-h3", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("minimax/minimax-h3", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/minimax/minimax-h3 \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema ### Input -Router has not published an authored input schema for this model yet: `GET /v2/models/minimax/minimax-h3/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to MiniMax unchanged, so [MiniMax's own API reference](https://platform.minimax.io/docs/api-reference) is authoritative for the request fields, and nothing is validated server side. +Router has not published an authored input schema for this model yet: `GET /v2/models/minimax/minimax-h3/openapi.json` returns an open object with `x-comfy-input-schema-authored: false`. Router forwards the body to MiniMax unchanged, so [MiniMax's own API reference](https://platform.minimax.io/docs/api-reference) is authoritative for the request fields, and Router does not perform model-specific input validation. Provider validation still applies. ### Output diff --git a/development/comfy-router/models/moonvalley/image-to-video/code.mdx b/development/comfy-router/models/moonvalley/image-to-video/code.mdx index b6da1c598..fe09d8a95 100644 --- a/development/comfy-router/models/moonvalley/image-to-video/code.mdx +++ b/development/comfy-router/models/moonvalley/image-to-video/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "moonvalley/image-to-video", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("moonvalley/image-to-video", { image_url: "https://yavuzceliker.github.io/sample-images/image-1021.jpg", prompt_text: "a single red maple leaf falling onto still water", diff --git a/development/comfy-router/models/moonvalley/text-to-image/code.mdx b/development/comfy-router/models/moonvalley/text-to-image/code.mdx index e8b7a522f..c9b16df7b 100644 --- a/development/comfy-router/models/moonvalley/text-to-image/code.mdx +++ b/development/comfy-router/models/moonvalley/text-to-image/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "moonvalley/text-to-image", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("moonvalley/text-to-image", { prompt_text: "a single red maple leaf resting on still water", }); diff --git a/development/comfy-router/models/moonvalley/text-to-video/code.mdx b/development/comfy-router/models/moonvalley/text-to-video/code.mdx index 70f6fb9a4..95f869ee8 100644 --- a/development/comfy-router/models/moonvalley/text-to-video/code.mdx +++ b/development/comfy-router/models/moonvalley/text-to-video/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "moonvalley/text-to-video", @@ -38,8 +38,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("moonvalley/text-to-video", { prompt_text: "a single red maple leaf", }); diff --git a/development/comfy-router/models/moonvalley/video-to-video-resize/code.mdx b/development/comfy-router/models/moonvalley/video-to-video-resize/code.mdx index a54e88975..36f329eed 100644 --- a/development/comfy-router/models/moonvalley/video-to-video-resize/code.mdx +++ b/development/comfy-router/models/moonvalley/video-to-video-resize/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "moonvalley/video-to-video-resize", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("moonvalley/video-to-video-resize", { control_type: "motion_control", prompt_text: "Apply motion control to enhance this video", diff --git a/development/comfy-router/models/moonvalley/video-to-video/code.mdx b/development/comfy-router/models/moonvalley/video-to-video/code.mdx index 8c00a7c01..d93d9b954 100644 --- a/development/comfy-router/models/moonvalley/video-to-video/code.mdx +++ b/development/comfy-router/models/moonvalley/video-to-video/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "moonvalley/video-to-video", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("moonvalley/video-to-video", { control_type: "motion_control", prompt_text: "Apply motion control to enhance this video", diff --git a/development/comfy-router/models/openai/gpt-4-1-mini/code.mdx b/development/comfy-router/models/openai/gpt-4-1-mini/code.mdx index 200be37ef..2823ae83e 100644 --- a/development/comfy-router/models/openai/gpt-4-1-mini/code.mdx +++ b/development/comfy-router/models/openai/gpt-4-1-mini/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-4.1-mini", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-4.1-mini", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-4-1-nano/code.mdx b/development/comfy-router/models/openai/gpt-4-1-nano/code.mdx index fdfcef142..58dc4ccc4 100644 --- a/development/comfy-router/models/openai/gpt-4-1-nano/code.mdx +++ b/development/comfy-router/models/openai/gpt-4-1-nano/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-4.1-nano", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-4.1-nano", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-4-1/code.mdx b/development/comfy-router/models/openai/gpt-4-1/code.mdx index 7d3eb9856..0ac5d580c 100644 --- a/development/comfy-router/models/openai/gpt-4-1/code.mdx +++ b/development/comfy-router/models/openai/gpt-4-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-4.1", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-4.1", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-4o/code.mdx b/development/comfy-router/models/openai/gpt-4o/code.mdx index 53f311565..5d5c79a7c 100644 --- a/development/comfy-router/models/openai/gpt-4o/code.mdx +++ b/development/comfy-router/models/openai/gpt-4o/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-4o", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-4o", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5-5-pro/code.mdx b/development/comfy-router/models/openai/gpt-5-5-pro/code.mdx index bf8f92234..efa5d580f 100644 --- a/development/comfy-router/models/openai/gpt-5-5-pro/code.mdx +++ b/development/comfy-router/models/openai/gpt-5-5-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5.5-pro", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5.5-pro", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5-5/code.mdx b/development/comfy-router/models/openai/gpt-5-5/code.mdx index 22d607206..0f2893146 100644 --- a/development/comfy-router/models/openai/gpt-5-5/code.mdx +++ b/development/comfy-router/models/openai/gpt-5-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5.5", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5.5", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5-6-luna/code.mdx b/development/comfy-router/models/openai/gpt-5-6-luna/code.mdx index cf796255c..3f2ddd9d1 100644 --- a/development/comfy-router/models/openai/gpt-5-6-luna/code.mdx +++ b/development/comfy-router/models/openai/gpt-5-6-luna/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5.6-luna", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5.6-luna", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5-6-sol/code.mdx b/development/comfy-router/models/openai/gpt-5-6-sol/code.mdx index 28894e665..d0b551405 100644 --- a/development/comfy-router/models/openai/gpt-5-6-sol/code.mdx +++ b/development/comfy-router/models/openai/gpt-5-6-sol/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5.6-sol", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5.6-sol", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5-6-terra/code.mdx b/development/comfy-router/models/openai/gpt-5-6-terra/code.mdx index 777d95e65..b54072401 100644 --- a/development/comfy-router/models/openai/gpt-5-6-terra/code.mdx +++ b/development/comfy-router/models/openai/gpt-5-6-terra/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5.6-terra", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5.6-terra", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5-mini/code.mdx b/development/comfy-router/models/openai/gpt-5-mini/code.mdx index 3af5a9738..92b0cb1b4 100644 --- a/development/comfy-router/models/openai/gpt-5-mini/code.mdx +++ b/development/comfy-router/models/openai/gpt-5-mini/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5-mini", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5-mini", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5-nano/code.mdx b/development/comfy-router/models/openai/gpt-5-nano/code.mdx index 32c47fac0..05b40a41c 100644 --- a/development/comfy-router/models/openai/gpt-5-nano/code.mdx +++ b/development/comfy-router/models/openai/gpt-5-nano/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5-nano", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5-nano", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-5/code.mdx b/development/comfy-router/models/openai/gpt-5/code.mdx index b61a2a310..01076717d 100644 --- a/development/comfy-router/models/openai/gpt-5/code.mdx +++ b/development/comfy-router/models/openai/gpt-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-5", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-5", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-6-astra/code.mdx b/development/comfy-router/models/openai/gpt-6-astra/code.mdx index 7757cdf7f..53f1ab754 100644 --- a/development/comfy-router/models/openai/gpt-6-astra/code.mdx +++ b/development/comfy-router/models/openai/gpt-6-astra/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-6-astra", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-6-astra", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/gpt-image-1-5/code.mdx b/development/comfy-router/models/openai/gpt-image-1-5/code.mdx index 4748307f7..c2a8c23ed 100644 --- a/development/comfy-router/models/openai/gpt-image-1-5/code.mdx +++ b/development/comfy-router/models/openai/gpt-image-1-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-image-1.5", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-image-1.5", { n: 1, prompt: "a red circle", diff --git a/development/comfy-router/models/openai/gpt-image-1/code.mdx b/development/comfy-router/models/openai/gpt-image-1/code.mdx index 6cb04b69e..839d7e6b4 100644 --- a/development/comfy-router/models/openai/gpt-image-1/code.mdx +++ b/development/comfy-router/models/openai/gpt-image-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-image-1", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-image-1", { n: 1, prompt: "a red circle", diff --git a/development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx b/development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx index 1bbc001c3..6039723d2 100644 --- a/development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx +++ b/development/comfy-router/models/openai/gpt-image-2-5-flare/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-image-2.5-flare", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-image-2.5-flare", { n: 1, prompt: "a red circle", diff --git a/development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx b/development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx index 4c8669526..dd54df7cc 100644 --- a/development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx +++ b/development/comfy-router/models/openai/gpt-image-2-5-sunburst/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-image-2.5-sunburst", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-image-2.5-sunburst", { n: 1, prompt: "a red circle", diff --git a/development/comfy-router/models/openai/gpt-image-2/code.mdx b/development/comfy-router/models/openai/gpt-image-2/code.mdx index 752ac4e3b..13f086f3b 100644 --- a/development/comfy-router/models/openai/gpt-image-2/code.mdx +++ b/development/comfy-router/models/openai/gpt-image-2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/gpt-image-2", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/gpt-image-2", { n: 1, prompt: "a red circle", diff --git a/development/comfy-router/models/openai/o1-pro/code.mdx b/development/comfy-router/models/openai/o1-pro/code.mdx index 9046d9d89..7b14ea85d 100644 --- a/development/comfy-router/models/openai/o1-pro/code.mdx +++ b/development/comfy-router/models/openai/o1-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/o1-pro", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/o1-pro", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/o1/code.mdx b/development/comfy-router/models/openai/o1/code.mdx index 91f6f341d..dd0e3636c 100644 --- a/development/comfy-router/models/openai/o1/code.mdx +++ b/development/comfy-router/models/openai/o1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/o1", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/o1", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/o3/code.mdx b/development/comfy-router/models/openai/o3/code.mdx index 475d15387..f137d713a 100644 --- a/development/comfy-router/models/openai/o3/code.mdx +++ b/development/comfy-router/models/openai/o3/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/o3", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/o3", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/openai/o4-mini/code.mdx b/development/comfy-router/models/openai/o4-mini/code.mdx index 4a43b2262..e557e6d8c 100644 --- a/development/comfy-router/models/openai/o4-mini/code.mdx +++ b/development/comfy-router/models/openai/o4-mini/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "openai/o4-mini", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("openai/o4-mini", { input: "Reply with the single word: ok", max_output_tokens: 1024, @@ -237,7 +237,7 @@ One of `auto`, `concise`, or `detailed`. - + An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, @@ -257,13 +257,13 @@ is preferred for models that support it. Constrains the verbosity of the model's response. One of `low`, `medium`, or `high`. - + How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call. - + @@ -337,7 +337,7 @@ the model can call. Possible values: `response` - + An array of content items generated by the model. - The length and order of items in the `output` array is dependent diff --git a/development/comfy-router/models/qwen/qwen-image-3-0-pro/code.mdx b/development/comfy-router/models/qwen/qwen-image-3-0-pro/code.mdx index e36f95fd2..f02baa127 100644 --- a/development/comfy-router/models/qwen/qwen-image-3-0-pro/code.mdx +++ b/development/comfy-router/models/qwen/qwen-image-3-0-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "qwen/qwen-image-3.0-pro", @@ -49,8 +49,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("qwen/qwen-image-3.0-pro", { input: { messages: [ diff --git a/development/comfy-router/models/qwen/qwen-image-3-0/code.mdx b/development/comfy-router/models/qwen/qwen-image-3-0/code.mdx index 60e12b01d..a97168a6b 100644 --- a/development/comfy-router/models/qwen/qwen-image-3-0/code.mdx +++ b/development/comfy-router/models/qwen/qwen-image-3-0/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "qwen/qwen-image-3.0", @@ -49,8 +49,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("qwen/qwen-image-3.0", { input: { messages: [ diff --git a/development/comfy-router/models/recraft/recraftv2/code.mdx b/development/comfy-router/models/recraft/recraftv2/code.mdx index e6d99d859..58edb45a8 100644 --- a/development/comfy-router/models/recraft/recraftv2/code.mdx +++ b/development/comfy-router/models/recraft/recraftv2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv2", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv2", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv3/code.mdx b/development/comfy-router/models/recraft/recraftv3/code.mdx index 92a7ffeef..273e3afe7 100644 --- a/development/comfy-router/models/recraft/recraftv3/code.mdx +++ b/development/comfy-router/models/recraft/recraftv3/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv3", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv3", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1-pro-vector/code.mdx b/development/comfy-router/models/recraft/recraftv4-1-pro-vector/code.mdx index d79650ab6..e54073f5d 100644 --- a/development/comfy-router/models/recraft/recraftv4-1-pro-vector/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1-pro-vector/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1_pro_vector", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1_pro_vector", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1-pro/code.mdx b/development/comfy-router/models/recraft/recraftv4-1-pro/code.mdx index 589020c48..c72271d0b 100644 --- a/development/comfy-router/models/recraft/recraftv4-1-pro/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1_pro", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1_pro", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1-utility-pro-vector/code.mdx b/development/comfy-router/models/recraft/recraftv4-1-utility-pro-vector/code.mdx index 420c45226..81c8a4b51 100644 --- a/development/comfy-router/models/recraft/recraftv4-1-utility-pro-vector/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1-utility-pro-vector/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1_utility_pro_vector", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1_utility_pro_vector", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1-utility-pro/code.mdx b/development/comfy-router/models/recraft/recraftv4-1-utility-pro/code.mdx index ed17de911..af6925b99 100644 --- a/development/comfy-router/models/recraft/recraftv4-1-utility-pro/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1-utility-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1_utility_pro", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1_utility_pro", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1-utility-vector/code.mdx b/development/comfy-router/models/recraft/recraftv4-1-utility-vector/code.mdx index c59d732d7..812d0a255 100644 --- a/development/comfy-router/models/recraft/recraftv4-1-utility-vector/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1-utility-vector/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1_utility_vector", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1_utility_vector", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1-utility/code.mdx b/development/comfy-router/models/recraft/recraftv4-1-utility/code.mdx index 883c0a325..e1a55b2f0 100644 --- a/development/comfy-router/models/recraft/recraftv4-1-utility/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1-utility/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1_utility", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1_utility", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1-vector/code.mdx b/development/comfy-router/models/recraft/recraftv4-1-vector/code.mdx index b8e9f0908..1ae840c6c 100644 --- a/development/comfy-router/models/recraft/recraftv4-1-vector/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1-vector/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1_vector", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1_vector", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-1/code.mdx b/development/comfy-router/models/recraft/recraftv4-1/code.mdx index a607b23b5..f583cf384 100644 --- a/development/comfy-router/models/recraft/recraftv4-1/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-1/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_1", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_1", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-pro/code.mdx b/development/comfy-router/models/recraft/recraftv4-pro/code.mdx index fc71e0467..e07bcf596 100644 --- a/development/comfy-router/models/recraft/recraftv4-pro/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_pro", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_pro", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-styles-pro-vector/code.mdx b/development/comfy-router/models/recraft/recraftv4-styles-pro-vector/code.mdx index 1581164e2..45ca2e715 100644 --- a/development/comfy-router/models/recraft/recraftv4-styles-pro-vector/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-styles-pro-vector/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_styles_pro_vector", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_styles_pro_vector", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-styles-pro/code.mdx b/development/comfy-router/models/recraft/recraftv4-styles-pro/code.mdx index cc2393186..27eb2d3a0 100644 --- a/development/comfy-router/models/recraft/recraftv4-styles-pro/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-styles-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_styles_pro", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_styles_pro", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-styles-vector/code.mdx b/development/comfy-router/models/recraft/recraftv4-styles-vector/code.mdx index 75510a6de..619fcbc09 100644 --- a/development/comfy-router/models/recraft/recraftv4-styles-vector/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-styles-vector/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_styles_vector", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_styles_vector", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4-styles/code.mdx b/development/comfy-router/models/recraft/recraftv4-styles/code.mdx index 9f81d6e60..e6b0d3b4f 100644 --- a/development/comfy-router/models/recraft/recraftv4-styles/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4-styles/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4_styles", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4_styles", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/recraft/recraftv4/code.mdx b/development/comfy-router/models/recraft/recraftv4/code.mdx index 5f8f82ce9..a3b736c08 100644 --- a/development/comfy-router/models/recraft/recraftv4/code.mdx +++ b/development/comfy-router/models/recraft/recraftv4/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "recraft/recraftv4", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("recraft/recraftv4", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/runway/aleph2/code.mdx b/development/comfy-router/models/runway/aleph2/code.mdx index 25f679f1b..0a48e6263 100644 --- a/development/comfy-router/models/runway/aleph2/code.mdx +++ b/development/comfy-router/models/runway/aleph2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "runway/aleph2", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("runway/aleph2", { promptText: "recolor the scene in cool blue tones", videoUri: "https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/360/Big_Buck_Bunny_360_10s_1MB.mp4", @@ -72,7 +72,7 @@ curl https://api.comfy.org/v2/models/runway/aleph2 \ Possible values: `auto`, `low` - + Timed guidance images placed at specific points in the input video. Up to 5 keyframes. @@ -84,7 +84,7 @@ curl https://api.comfy.org/v2/models/runway/aleph2 \ A list of up to 5 image keyframes for guiding the edit at specific points in the video. - + The position in the output video where the image should apply. diff --git a/development/comfy-router/models/runway/gen4-image/code.mdx b/development/comfy-router/models/runway/gen4-image/code.mdx index cd8c99c26..921f1aa07 100644 --- a/development/comfy-router/models/runway/gen4-image/code.mdx +++ b/development/comfy-router/models/runway/gen4-image/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "runway/gen4_image", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("runway/gen4_image", { promptText: "a red circle", ratio: "1024:1024", diff --git a/development/comfy-router/models/runway/gen4-turbo/code.mdx b/development/comfy-router/models/runway/gen4-turbo/code.mdx index fd16ebd2c..a5fd398ed 100644 --- a/development/comfy-router/models/runway/gen4-turbo/code.mdx +++ b/development/comfy-router/models/runway/gen4-turbo/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "runway/gen4_turbo", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("runway/gen4_turbo", { duration: 5, promptImage: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAC2klEQVR42u3TQQ0AQAgEMeTgX8W5gi8OjoROVgGhUdLhwgkEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAAkACQAJAAkACQAJAAkACQAJAAkACQAFjSy7SPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8IIAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABIAEgASABIAEgASABIAEgASABIAEgASABIAAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAadSRm+WukYdfewAAAABJRU5ErkJggg==", diff --git a/development/comfy-router/models/tencent/hunyuan-3d-part/code.mdx b/development/comfy-router/models/tencent/hunyuan-3d-part/code.mdx index ecf2297a8..c50663161 100644 --- a/development/comfy-router/models/tencent/hunyuan-3d-part/code.mdx +++ b/development/comfy-router/models/tencent/hunyuan-3d-part/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "tencent/hunyuan-3d-part", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("tencent/hunyuan-3d-part", { File: { Type: "FBX", diff --git a/development/comfy-router/models/tencent/hunyuan-3d-smart-topology/code.mdx b/development/comfy-router/models/tencent/hunyuan-3d-smart-topology/code.mdx index 5ecf3be4c..6be7bef3a 100644 --- a/development/comfy-router/models/tencent/hunyuan-3d-smart-topology/code.mdx +++ b/development/comfy-router/models/tencent/hunyuan-3d-smart-topology/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "tencent/hunyuan-3d-smart-topology", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("tencent/hunyuan-3d-smart-topology", { File3D: { Type: "GLB", diff --git a/development/comfy-router/models/tencent/hunyuan-3d-texture-edit/code.mdx b/development/comfy-router/models/tencent/hunyuan-3d-texture-edit/code.mdx index c3133f7ec..b5158f481 100644 --- a/development/comfy-router/models/tencent/hunyuan-3d-texture-edit/code.mdx +++ b/development/comfy-router/models/tencent/hunyuan-3d-texture-edit/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "tencent/hunyuan-3d-texture-edit", @@ -42,8 +42,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("tencent/hunyuan-3d-texture-edit", { File3D: { Type: "FBX", diff --git a/development/comfy-router/models/tencent/hunyuan-3d-uv/code.mdx b/development/comfy-router/models/tencent/hunyuan-3d-uv/code.mdx index 708b5f5d3..b7dcc57aa 100644 --- a/development/comfy-router/models/tencent/hunyuan-3d-uv/code.mdx +++ b/development/comfy-router/models/tencent/hunyuan-3d-uv/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "tencent/hunyuan-3d-uv", @@ -41,8 +41,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("tencent/hunyuan-3d-uv", { File: { Type: "GLB", diff --git a/development/comfy-router/models/veo/veo-2-0-generate-001/code.mdx b/development/comfy-router/models/veo/veo-2-0-generate-001/code.mdx index 783ba8c8a..cbe0cedc2 100644 --- a/development/comfy-router/models/veo/veo-2-0-generate-001/code.mdx +++ b/development/comfy-router/models/veo/veo-2-0-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "veo/veo-2.0-generate-001", @@ -46,8 +46,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("veo/veo-2.0-generate-001", { instances: [ { @@ -80,7 +80,7 @@ curl https://api.comfy.org/v2/models/veo/veo-2.0-generate-001 \ - + Optional image to guide video generation diff --git a/development/comfy-router/models/veo/veo-3-0-fast-generate-001/code.mdx b/development/comfy-router/models/veo/veo-3-0-fast-generate-001/code.mdx index 4895f3b2e..2e0dce1de 100644 --- a/development/comfy-router/models/veo/veo-3-0-fast-generate-001/code.mdx +++ b/development/comfy-router/models/veo/veo-3-0-fast-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "veo/veo-3.0-fast-generate-001", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("veo/veo-3.0-fast-generate-001", { instances: [ { @@ -88,7 +88,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-fast-generate-001 \ Possible values: `fixed`, `pan_left`, `pan_right`, `tilt_up`, `tilt_down`, `truck_left`, `truck_right`, `pedestal_up`, `pedestal_down`, `push_in`, `pull_out` - + Optional first frame image to guide video generation @@ -108,7 +108,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-fast-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional last frame image. Used with image to generate video between first and last frames. Supported by Veo 3.0+ models. @@ -128,7 +128,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-fast-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional mask for video editing. Applies to input video. @@ -160,7 +160,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-fast-generate-001 \ Optional reference images to guide video generation. Supports up to 3 asset images or 1 style image. Supported by Veo 3.1 models (preview). - + @@ -190,7 +190,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-fast-generate-001 \ Possible values: `asset`, `style` - + Optional input video for video extension or editing. Incompatible with image and referenceImages. diff --git a/development/comfy-router/models/veo/veo-3-0-generate-001/code.mdx b/development/comfy-router/models/veo/veo-3-0-generate-001/code.mdx index 182da72b1..c0ec698da 100644 --- a/development/comfy-router/models/veo/veo-3-0-generate-001/code.mdx +++ b/development/comfy-router/models/veo/veo-3-0-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "veo/veo-3.0-generate-001", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("veo/veo-3.0-generate-001", { instances: [ { @@ -88,7 +88,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-generate-001 \ Possible values: `fixed`, `pan_left`, `pan_right`, `tilt_up`, `tilt_down`, `truck_left`, `truck_right`, `pedestal_up`, `pedestal_down`, `push_in`, `pull_out` - + Optional first frame image to guide video generation @@ -108,7 +108,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional last frame image. Used with image to generate video between first and last frames. Supported by Veo 3.0+ models. @@ -128,7 +128,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional mask for video editing. Applies to input video. @@ -160,7 +160,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-generate-001 \ Optional reference images to guide video generation. Supports up to 3 asset images or 1 style image. Supported by Veo 3.1 models (preview). - + @@ -190,7 +190,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.0-generate-001 \ Possible values: `asset`, `style` - + Optional input video for video extension or editing. Incompatible with image and referenceImages. diff --git a/development/comfy-router/models/veo/veo-3-1-fast-generate-001/code.mdx b/development/comfy-router/models/veo/veo-3-1-fast-generate-001/code.mdx index 6a7741ccc..1c29e7f98 100644 --- a/development/comfy-router/models/veo/veo-3-1-fast-generate-001/code.mdx +++ b/development/comfy-router/models/veo/veo-3-1-fast-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "veo/veo-3.1-fast-generate-001", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("veo/veo-3.1-fast-generate-001", { instances: [ { @@ -88,7 +88,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-fast-generate-001 \ Possible values: `fixed`, `pan_left`, `pan_right`, `tilt_up`, `tilt_down`, `truck_left`, `truck_right`, `pedestal_up`, `pedestal_down`, `push_in`, `pull_out` - + Optional first frame image to guide video generation @@ -108,7 +108,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-fast-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional last frame image. Used with image to generate video between first and last frames. Supported by Veo 3.0+ models. @@ -128,7 +128,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-fast-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional mask for video editing. Applies to input video. @@ -160,7 +160,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-fast-generate-001 \ Optional reference images to guide video generation. Supports up to 3 asset images or 1 style image. Supported by Veo 3.1 models (preview). - + @@ -190,7 +190,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-fast-generate-001 \ Possible values: `asset`, `style` - + Optional input video for video extension or editing. Incompatible with image and referenceImages. diff --git a/development/comfy-router/models/veo/veo-3-1-generate-001/code.mdx b/development/comfy-router/models/veo/veo-3-1-generate-001/code.mdx index fc4bd2774..f84e5af8f 100644 --- a/development/comfy-router/models/veo/veo-3-1-generate-001/code.mdx +++ b/development/comfy-router/models/veo/veo-3-1-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "veo/veo-3.1-generate-001", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("veo/veo-3.1-generate-001", { instances: [ { @@ -88,7 +88,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-generate-001 \ Possible values: `fixed`, `pan_left`, `pan_right`, `tilt_up`, `tilt_down`, `truck_left`, `truck_right`, `pedestal_up`, `pedestal_down`, `push_in`, `pull_out` - + Optional first frame image to guide video generation @@ -108,7 +108,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional last frame image. Used with image to generate video between first and last frames. Supported by Veo 3.0+ models. @@ -128,7 +128,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional mask for video editing. Applies to input video. @@ -160,7 +160,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-generate-001 \ Optional reference images to guide video generation. Supports up to 3 asset images or 1 style image. Supported by Veo 3.1 models (preview). - + @@ -190,7 +190,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-generate-001 \ Possible values: `asset`, `style` - + Optional input video for video extension or editing. Incompatible with image and referenceImages. diff --git a/development/comfy-router/models/veo/veo-3-1-lite-generate-001/code.mdx b/development/comfy-router/models/veo/veo-3-1-lite-generate-001/code.mdx index fa43ed593..11a9927c7 100644 --- a/development/comfy-router/models/veo/veo-3-1-lite-generate-001/code.mdx +++ b/development/comfy-router/models/veo/veo-3-1-lite-generate-001/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "veo/veo-3.1-lite-generate-001", @@ -47,8 +47,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("veo/veo-3.1-lite-generate-001", { instances: [ { @@ -88,7 +88,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-lite-generate-001 \ Possible values: `fixed`, `pan_left`, `pan_right`, `tilt_up`, `tilt_down`, `truck_left`, `truck_right`, `pedestal_up`, `pedestal_down`, `push_in`, `pull_out` - + Optional first frame image to guide video generation @@ -108,7 +108,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-lite-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional last frame image. Used with image to generate video between first and last frames. Supported by Veo 3.0+ models. @@ -128,7 +128,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-lite-generate-001 \ Possible values: `image/jpeg`, `image/png` - + Optional mask for video editing. Applies to input video. @@ -160,7 +160,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-lite-generate-001 \ Optional reference images to guide video generation. Supports up to 3 asset images or 1 style image. Supported by Veo 3.1 models (preview). - + @@ -190,7 +190,7 @@ curl https://api.comfy.org/v2/models/veo/veo-3.1-lite-generate-001 \ Possible values: `asset`, `style` - + Optional input video for video extension or editing. Incompatible with image and referenceImages. diff --git a/development/comfy-router/models/wan/happyhorse-1-0-i2v/code.mdx b/development/comfy-router/models/wan/happyhorse-1-0-i2v/code.mdx index db6dfcc0b..2ccfd6938 100644 --- a/development/comfy-router/models/wan/happyhorse-1-0-i2v/code.mdx +++ b/development/comfy-router/models/wan/happyhorse-1-0-i2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/happyhorse-1.0-i2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/happyhorse-1.0-i2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/happyhorse-1.0-i2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/happyhorse-1.0-i2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/happyhorse-1.0-i2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/happyhorse-1.0-i2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/happyhorse-1-0-r2v/code.mdx b/development/comfy-router/models/wan/happyhorse-1-0-r2v/code.mdx index 00b98e96d..8cf2cfbfa 100644 --- a/development/comfy-router/models/wan/happyhorse-1-0-r2v/code.mdx +++ b/development/comfy-router/models/wan/happyhorse-1-0-r2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/happyhorse-1.0-r2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/happyhorse-1.0-r2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/happyhorse-1.0-r2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/happyhorse-1.0-r2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/happyhorse-1.0-r2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/happyhorse-1.0-r2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/happyhorse-1-0-t2v/code.mdx b/development/comfy-router/models/wan/happyhorse-1-0-t2v/code.mdx index ea311f73d..ca958bf58 100644 --- a/development/comfy-router/models/wan/happyhorse-1-0-t2v/code.mdx +++ b/development/comfy-router/models/wan/happyhorse-1-0-t2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/happyhorse-1.0-t2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/happyhorse-1.0-t2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/happyhorse-1.0-t2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/happyhorse-1.0-t2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/happyhorse-1.0-t2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/happyhorse-1.0-t2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/happyhorse-1-0-video-edit/code.mdx b/development/comfy-router/models/wan/happyhorse-1-0-video-edit/code.mdx index 367ab77d3..7c8397939 100644 --- a/development/comfy-router/models/wan/happyhorse-1-0-video-edit/code.mdx +++ b/development/comfy-router/models/wan/happyhorse-1-0-video-edit/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/happyhorse-1.0-video-edit`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/happyhorse-1.0-video-edit` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/happyhorse-1.0-video-edit` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/happyhorse-1.0-video-edit", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/happyhorse-1.0-video-edit", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/happyhorse-1.0-video-edit \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/happyhorse-1-1-i2v/code.mdx b/development/comfy-router/models/wan/happyhorse-1-1-i2v/code.mdx index b5ce87a09..7b6c9c3ea 100644 --- a/development/comfy-router/models/wan/happyhorse-1-1-i2v/code.mdx +++ b/development/comfy-router/models/wan/happyhorse-1-1-i2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/happyhorse-1.1-i2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/happyhorse-1.1-i2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/happyhorse-1.1-i2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/happyhorse-1.1-i2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/happyhorse-1.1-i2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/happyhorse-1.1-i2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/happyhorse-1-1-r2v/code.mdx b/development/comfy-router/models/wan/happyhorse-1-1-r2v/code.mdx index 0099cccd0..a15bfee6d 100644 --- a/development/comfy-router/models/wan/happyhorse-1-1-r2v/code.mdx +++ b/development/comfy-router/models/wan/happyhorse-1-1-r2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/happyhorse-1.1-r2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/happyhorse-1.1-r2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/happyhorse-1.1-r2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/happyhorse-1.1-r2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/happyhorse-1.1-r2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/happyhorse-1.1-r2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/happyhorse-1-1-t2v/code.mdx b/development/comfy-router/models/wan/happyhorse-1-1-t2v/code.mdx index 6675cdbf3..63a731eeb 100644 --- a/development/comfy-router/models/wan/happyhorse-1-1-t2v/code.mdx +++ b/development/comfy-router/models/wan/happyhorse-1-1-t2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/happyhorse-1.1-t2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/happyhorse-1.1-t2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/happyhorse-1.1-t2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/happyhorse-1.1-t2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/happyhorse-1.1-t2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/happyhorse-1.1-t2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-5-i2i-preview/code.mdx b/development/comfy-router/models/wan/wan2-5-i2i-preview/code.mdx index 0c4669314..0c705a9e0 100644 --- a/development/comfy-router/models/wan/wan2-5-i2i-preview/code.mdx +++ b/development/comfy-router/models/wan/wan2-5-i2i-preview/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "wan/wan2.5-i2i-preview", @@ -45,8 +45,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("wan/wan2.5-i2i-preview", { input: { images: ["https://example.invalid/red-maple-leaf.png"], diff --git a/development/comfy-router/models/wan/wan2-5-i2v-preview/code.mdx b/development/comfy-router/models/wan/wan2-5-i2v-preview/code.mdx index ccab8a461..3130f8754 100644 --- a/development/comfy-router/models/wan/wan2-5-i2v-preview/code.mdx +++ b/development/comfy-router/models/wan/wan2-5-i2v-preview/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.5-i2v-preview`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.5-i2v-preview` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.5-i2v-preview` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.5-i2v-preview", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.5-i2v-preview", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.5-i2v-preview \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-5-t2i-preview/code.mdx b/development/comfy-router/models/wan/wan2-5-t2i-preview/code.mdx index 97b9b99a4..7a87dbde2 100644 --- a/development/comfy-router/models/wan/wan2-5-t2i-preview/code.mdx +++ b/development/comfy-router/models/wan/wan2-5-t2i-preview/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "wan/wan2.5-t2i-preview", @@ -44,8 +44,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("wan/wan2.5-t2i-preview", { input: { prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/wan/wan2-5-t2v-preview/code.mdx b/development/comfy-router/models/wan/wan2-5-t2v-preview/code.mdx index 246cae581..96d9b05a1 100644 --- a/development/comfy-router/models/wan/wan2-5-t2v-preview/code.mdx +++ b/development/comfy-router/models/wan/wan2-5-t2v-preview/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.5-t2v-preview`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.5-t2v-preview` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.5-t2v-preview` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.5-t2v-preview", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.5-t2v-preview", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.5-t2v-preview \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-6-i2v/code.mdx b/development/comfy-router/models/wan/wan2-6-i2v/code.mdx index ef5314cc6..ced5a7b3f 100644 --- a/development/comfy-router/models/wan/wan2-6-i2v/code.mdx +++ b/development/comfy-router/models/wan/wan2-6-i2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.6-i2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.6-i2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.6-i2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.6-i2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.6-i2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.6-i2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-6-r2v/code.mdx b/development/comfy-router/models/wan/wan2-6-r2v/code.mdx index 14d555978..6e9ea52b6 100644 --- a/development/comfy-router/models/wan/wan2-6-r2v/code.mdx +++ b/development/comfy-router/models/wan/wan2-6-r2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.6-r2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.6-r2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.6-r2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.6-r2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.6-r2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.6-r2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-6-t2v/code.mdx b/development/comfy-router/models/wan/wan2-6-t2v/code.mdx index 0a0f5f345..d03d90d5e 100644 --- a/development/comfy-router/models/wan/wan2-6-t2v/code.mdx +++ b/development/comfy-router/models/wan/wan2-6-t2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.6-t2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.6-t2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.6-t2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.6-t2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.6-t2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.6-t2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-7-i2v/code.mdx b/development/comfy-router/models/wan/wan2-7-i2v/code.mdx index 504965b96..963ef5ad7 100644 --- a/development/comfy-router/models/wan/wan2-7-i2v/code.mdx +++ b/development/comfy-router/models/wan/wan2-7-i2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.7-i2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.7-i2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.7-i2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.7-i2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.7-i2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.7-i2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-7-r2v/code.mdx b/development/comfy-router/models/wan/wan2-7-r2v/code.mdx index 7d8473e2d..9345543d6 100644 --- a/development/comfy-router/models/wan/wan2-7-r2v/code.mdx +++ b/development/comfy-router/models/wan/wan2-7-r2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.7-r2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.7-r2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.7-r2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.7-r2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.7-r2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.7-r2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-7-t2v/code.mdx b/development/comfy-router/models/wan/wan2-7-t2v/code.mdx index 97ef0b880..69d06df2b 100644 --- a/development/comfy-router/models/wan/wan2-7-t2v/code.mdx +++ b/development/comfy-router/models/wan/wan2-7-t2v/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.7-t2v`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.7-t2v` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.7-t2v` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.7-t2v", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.7-t2v", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.7-t2v \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan2-7-videoedit/code.mdx b/development/comfy-router/models/wan/wan2-7-videoedit/code.mdx index 909c735af..e93b6e7d8 100644 --- a/development/comfy-router/models/wan/wan2-7-videoedit/code.mdx +++ b/development/comfy-router/models/wan/wan2-7-videoedit/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan2.7-videoedit`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan2.7-videoedit` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan2.7-videoedit` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan2.7-videoedit", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan2.7-videoedit", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan2.7-videoedit \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan3-0-video-prime/code.mdx b/development/comfy-router/models/wan/wan3-0-video-prime/code.mdx index e728a0f8d..38d8666ba 100644 --- a/development/comfy-router/models/wan/wan3-0-video-prime/code.mdx +++ b/development/comfy-router/models/wan/wan3-0-video-prime/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan3.0-video-prime`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan3.0-video-prime` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan3.0-video-prime` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan3.0-video-prime", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan3.0-video-prime", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan3.0-video-prime \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wan/wan3-0-video/code.mdx b/development/comfy-router/models/wan/wan3-0-video/code.mdx index d055f25fd..148c1e52f 100644 --- a/development/comfy-router/models/wan/wan3-0-video/code.mdx +++ b/development/comfy-router/models/wan/wan3-0-video/code.mdx @@ -10,52 +10,17 @@ import RouterCodeFooter from "/snippets/comfy-router/model-code-footer.mdx"; API Reference for `wan/wan3.0-video`, served by Comfy Router from Wan. -## Quick start +## Request setup -Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. The Python and TypeScript snippets use the Comfy SDKs (`pip install comfy-sdk`, `npm install @comfyorg/sdk`); the cURL snippet is the same call over raw HTTP. +Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org/profile/api-keys) and export it as `COMFY_API_KEY`. For Python, run `pip install comfy-sdk`. For TypeScript, run `npm install @comfyorg/sdk`. cURL uses raw HTTP. **Model ID:** `wan/wan3.0-video` **Endpoint:** `POST https://api.comfy.org/v2/models/wan/wan3.0-video` - -```python Python -from comfy_sdk import Comfy - -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. -with Comfy() as client: - result = client.models.run( - "wan/wan3.0-video", - { - # Request fields are the provider's own — see Input below. - }, - ) - -print(result) -``` - -```typescript TypeScript -import { comfy } from "@comfyorg/sdk"; - -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. -const { data } = await comfy.models.run("wan/wan3.0-video", { - // Request fields are the provider's own — see Input below. -}); - -console.log(data); -``` - -```bash cURL -# Request fields are the provider's own — see Input below. -curl https://api.comfy.org/v2/models/wan/wan3.0-video \ - -H "X-API-Key: $COMFY_API_KEY" \ - -H "Idempotency-Key: $(uuidgen)" \ - -H "Content-Type: application/json" \ - -d "{}" -``` - + +This model has no runnable request example. Build the body from the input documentation below, then use it with the [Router quickstart](/development/comfy-router/quickstart). + ## Schema diff --git a/development/comfy-router/models/wavespeed/flashvsr/code.mdx b/development/comfy-router/models/wavespeed/flashvsr/code.mdx index 95dbf2882..76aad6e64 100644 --- a/development/comfy-router/models/wavespeed/flashvsr/code.mdx +++ b/development/comfy-router/models/wavespeed/flashvsr/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "wavespeed/flashvsr", @@ -40,8 +40,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("wavespeed/flashvsr", { duration: 4, target_resolution: "1080p", diff --git a/development/comfy-router/models/wavespeed/seedvr2/code.mdx b/development/comfy-router/models/wavespeed/seedvr2/code.mdx index c464fee07..788bf18f9 100644 --- a/development/comfy-router/models/wavespeed/seedvr2/code.mdx +++ b/development/comfy-router/models/wavespeed/seedvr2/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "wavespeed/seedvr2", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("wavespeed/seedvr2", { image: "https://images.pexels.com/photos/346529/pexels-photo-346529.jpeg", target_resolution: "4k", diff --git a/development/comfy-router/models/wavespeed/ultimate-image-upscaler/code.mdx b/development/comfy-router/models/wavespeed/ultimate-image-upscaler/code.mdx index f9d06e8ec..d192fc3f2 100644 --- a/development/comfy-router/models/wavespeed/ultimate-image-upscaler/code.mdx +++ b/development/comfy-router/models/wavespeed/ultimate-image-upscaler/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "wavespeed/ultimate-image-upscaler", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("wavespeed/ultimate-image-upscaler", { image: "https://images.pexels.com/photos/346529/pexels-photo-346529.jpeg", target_resolution: "4k", diff --git a/development/comfy-router/models/xai/grok-imagine-image-2-0/code.mdx b/development/comfy-router/models/xai/grok-imagine-image-2-0/code.mdx index d36fac6bd..2a173f80b 100644 --- a/development/comfy-router/models/xai/grok-imagine-image-2-0/code.mdx +++ b/development/comfy-router/models/xai/grok-imagine-image-2-0/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "xai/grok-imagine-image-2.0", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("xai/grok-imagine-image-2.0", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/xai/grok-imagine-image-pro/code.mdx b/development/comfy-router/models/xai/grok-imagine-image-pro/code.mdx index 5b423dd54..9f3450935 100644 --- a/development/comfy-router/models/xai/grok-imagine-image-pro/code.mdx +++ b/development/comfy-router/models/xai/grok-imagine-image-pro/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "xai/grok-imagine-image-pro", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("xai/grok-imagine-image-pro", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/xai/grok-imagine-image-quality/code.mdx b/development/comfy-router/models/xai/grok-imagine-image-quality/code.mdx index b56773f18..fef920159 100644 --- a/development/comfy-router/models/xai/grok-imagine-image-quality/code.mdx +++ b/development/comfy-router/models/xai/grok-imagine-image-quality/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "xai/grok-imagine-image-quality", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("xai/grok-imagine-image-quality", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/xai/grok-imagine-image/code.mdx b/development/comfy-router/models/xai/grok-imagine-image/code.mdx index c72c28a58..8e4b133f6 100644 --- a/development/comfy-router/models/xai/grok-imagine-image/code.mdx +++ b/development/comfy-router/models/xai/grok-imagine-image/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "xai/grok-imagine-image", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("xai/grok-imagine-image", { n: 1, prompt: "A single red maple leaf on a plain white background.", diff --git a/development/comfy-router/models/xai/grok-imagine-video-1-5-preview/code.mdx b/development/comfy-router/models/xai/grok-imagine-video-1-5-preview/code.mdx index a52e5e46e..460949824 100644 --- a/development/comfy-router/models/xai/grok-imagine-video-1-5-preview/code.mdx +++ b/development/comfy-router/models/xai/grok-imagine-video-1-5-preview/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "xai/grok-imagine-video-1.5-preview", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("xai/grok-imagine-video-1.5-preview", { duration: 4, prompt: "a single red maple leaf falling onto still water, slow motion", @@ -177,7 +177,7 @@ Generated from the schema Router serves at `GET /v2/models/xai/grok-imagine-vide ```json { - "model": "grok-imagine-video", + "model": "grok-imagine-video-1.5", "status": "done", "usage": { "cost_in_usd_ticks": 3500000000 diff --git a/development/comfy-router/models/xai/grok-imagine-video-1-5/code.mdx b/development/comfy-router/models/xai/grok-imagine-video-1-5/code.mdx index 30594f9d4..aba3fd118 100644 --- a/development/comfy-router/models/xai/grok-imagine-video-1-5/code.mdx +++ b/development/comfy-router/models/xai/grok-imagine-video-1-5/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "xai/grok-imagine-video-1.5", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("xai/grok-imagine-video-1.5", { duration: 4, prompt: "a single red maple leaf falling onto still water, slow motion", @@ -177,7 +177,7 @@ Generated from the schema Router serves at `GET /v2/models/xai/grok-imagine-vide ```json { - "model": "grok-imagine-video", + "model": "grok-imagine-video-1.5", "status": "done", "usage": { "cost_in_usd_ticks": 3500000000 diff --git a/development/comfy-router/models/xai/grok-imagine-video/code.mdx b/development/comfy-router/models/xai/grok-imagine-video/code.mdx index 954e19598..c200ab1b0 100644 --- a/development/comfy-router/models/xai/grok-imagine-video/code.mdx +++ b/development/comfy-router/models/xai/grok-imagine-video/code.mdx @@ -22,8 +22,8 @@ Create a key at [platform.comfy.org/profile/api-keys](https://platform.comfy.org ```python Python from comfy_sdk import Comfy -# Reads COMFY_API_KEY from the environment. Each call sends a fresh -# Idempotency-Key and waits up to 10 minutes for the finished result. +# Reads COMFY_API_KEY from the environment. +# The SDK automatically creates an idempotency key and reuses it for automatic retries. with Comfy() as client: result = client.models.run( "xai/grok-imagine-video", @@ -39,8 +39,8 @@ print(result) ```typescript TypeScript import { comfy } from "@comfyorg/sdk"; -// Reads COMFY_API_KEY from the environment. Each call sends a fresh -// Idempotency-Key and waits up to 10 minutes for the finished result. +// Reads COMFY_API_KEY from the environment. +// The SDK automatically creates an idempotency key and reuses it for automatic retries. const { data } = await comfy.models.run("xai/grok-imagine-video", { duration: 4, prompt: "a single red maple leaf falling onto still water, slow motion", diff --git a/snippets/comfy-router/model-code-footer.mdx b/snippets/comfy-router/model-code-footer.mdx index ba3d64663..56e02883b 100644 --- a/snippets/comfy-router/model-code-footer.mdx +++ b/snippets/comfy-router/model-code-footer.mdx @@ -1,13 +1,15 @@ ## Before you ship -The snippets above are the shortest working call. Three things are the same for every model and are documented once on the [Comfy Router headers](/development/comfy-router/headers) page: send an `Idempotency-Key` on every paid call and reuse it when you retry, expect the connection to be held up to Router's 10 minute deadline, and keep `X-Comfy-Request-Id` from every response. The SDKs do all three for you; the cURL tab does none of them. On failure, `X-Comfy-Error-Type` names the bucket, and a `422` means the body failed the model's schema and was never billed. +The SDKs create an `Idempotency-Key` and reuse it for automatic retries. For manual retries, reuse the original key. Router can hold the connection for up to 10 minutes. + +When a request fails, Router sends an `X-Comfy-Error-Type` response header explaining why. A `422` means Router rejected the input before calling the provider. Download generated assets promptly because [result URLs can expire](/development/comfy-router/reference#result-assets). Authentication, idempotency, request IDs, error buckets, retry pacing, spend limits. - - Typed error handling in Python and TypeScript, reading the 422, walking the catalog. + + Model discovery, validation errors, retries, and billing. What Router does not do today, and what to use instead.