{
"openapi": "3.1.1",
"info": {
"title": "Civitai Orchestration Consumer API",
"description": "The Civitai Orchestration API is a RESTful API that allows you to interact with the Civitai Orchestration system. The API is designed to be simple and easy to use, and is built on top of the OpenAPI specification.",
"version": "v2"
},
"paths": {
"/v2/consumer/blobs/{blobId}": {
"get": {
"tags": [
"Blobs"
],
"summary": "Get blob by ID. This will redirect to a cacheable content URL.",
"operationId": "GetBlob",
"parameters": [
{
"name": "blobId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "workflowId",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "nsfwLevel",
"in": "query",
"description": "Maximum NSFW level. When set, a blob with no level or a level above it is an error.",
"schema": {
"$ref": "#/components/schemas/NSFWLevel"
}
},
{
"name": "filename",
"in": "query",
"description": "Optional filename for the Content-Disposition header. Path components and control characters are stripped.",
"schema": {
"type": "string"
}
},
{
"name": "download",
"in": "query",
"description": "When true, the blob is served with Content-Disposition: attachment to prompt a download. Defaults to inline.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"308": {
"description": "Permanent Redirect"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Blobs"
],
"summary": "Handles HTTP HEAD requests for a specific blob, checking its existence and NSFW level.",
"operationId": "HeadBlob",
"parameters": [
{
"name": "blobId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/blobs/upload": {
"get": {
"tags": [
"Blobs"
],
"summary": "Get a presigned URL for browser uploads.\nThe returned URL points to POST /v2/consumer/blobs with a signature for authentication.",
"operationId": "GetConsumerBlobUploadUrl",
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConsumerBlobPresignResponse"
}
}
}
}
}
}
},
"/v2/consumer/blobs": {
"post": {
"tags": [
"Blobs"
],
"summary": "Upload a blob directly with on-the-fly moderation.\nSupports both authenticated requests (Bearer token) and presigned URLs (sig query param).",
"operationId": "UploadConsumerBlob",
"parameters": [
{
"name": "public",
"in": "query",
"description": "Store the blob in the public tier and return a durable, unsigned URL for it. Privileged callers only: nothing gates a read of that URL, so a block decided after the fact cannot take it back.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Blob"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Content Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Content",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/blobs/ingest": {
"post": {
"tags": [
"Blobs"
],
"summary": "Copy a trusted url into a blob named after that source, so the caller can ask for it again\nwithout holding the bytes. 200 when it already existed, 201 when copied.",
"operationId": "IngestConsumerBlob",
"parameters": [
{
"name": "sourceUrl",
"in": "query",
"description": "Object to copy; must resolve to a configured trusted source.",
"schema": {
"type": "string"
}
},
{
"name": "public",
"in": "query",
"description": "Store in the public tier and return a durable, unsigned URL.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Blob"
}
}
}
},
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Blob"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Content",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"502": {
"description": "Bad Gateway"
}
},
"security": []
}
},
"/v2/consumer/blobs/content/{encryptedToken}": {
"get": {
"tags": [
"Blobs"
],
"summary": "Serves cacheable blob content using a deterministic encrypted token",
"operationId": "GetBlobContent",
"parameters": [
{
"name": "encryptedToken",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
},
"security": []
}
},
"/v2/consumer/blobs/blocked/{encryptedToken}": {
"get": {
"tags": [
"Blobs"
],
"summary": "Serves a blocked placeholder image with the specified dimensions",
"operationId": "GetBlockedContent",
"parameters": [
{
"name": "encryptedToken",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"security": []
}
},
"/v2/consumer/blobs/archive/{encryptedToken}": {
"get": {
"tags": [
"Blobs"
],
"summary": "Streams an archive (zip or tar) of the blobs referenced by a signed archive token.\nTokens are produced by the `blobArchive` workflow step.",
"operationId": "GetBlobArchive",
"parameters": [
{
"name": "encryptedToken",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK"
},
"410": {
"description": "Gone",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"security": []
}
},
"/v2/consumer/blobs/{blobId}/refresh": {
"post": {
"tags": [
"Blobs"
],
"summary": "Refresh a blob's URL and debounce its lifetime.\nReturns a fresh presigned URL and resets the 30-day TTL.",
"operationId": "RefreshBlob",
"parameters": [
{
"name": "blobId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Blob"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/civitai/{userId}": {
"delete": {
"tags": [
"CivitaiConsumer"
],
"operationId": "InvalidateUserCache",
"parameters": [
{
"name": "userId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"default": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/civitai/{userId}/tokens": {
"delete": {
"tags": [
"CivitaiConsumer"
],
"operationId": "InvalidateUserTokens",
"parameters": [
{
"name": "userId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"default": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/free-tier": {
"get": {
"tags": [
"Free tier"
],
"summary": "Get the free-tier models and the caller's remaining quota. Use them with `tier: \"free\"` on a workflow,\n`?tier=free` on a recipe, or `X-Civitai-Tier: free` on the OpenAI-compatible chat endpoint.",
"operationId": "GetFreeTier",
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FreeTierResponse"
}
}
}
}
}
}
},
"/v2/consumer/recipes/aceStepAudio": {
"post": {
"tags": [
"Recipes"
],
"summary": "Generates full songs from text descriptions and structured lyrics with ACE Step 1.5.",
"operationId": "InvokeAceStepAudioStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AceStepAudioInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/AceStepAudioInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/AceStepAudioInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AceStepAudioOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/ageClassification": {
"post": {
"tags": [
"Recipes"
],
"summary": "Age classification",
"description": "Detects minors in media content. Returns a boolean value indicating whether the content contains minors as well as details on where minors are detected.",
"operationId": "InvokeAgeClassificationStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgeClassificationInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/AgeClassificationInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/AgeClassificationInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgeClassificationOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/audioCaptioning": {
"post": {
"tags": [
"Recipes"
],
"summary": "Audio Captioning",
"description": "Generates music captions, lyrics, and metadata by running the ACE-Step captioner and transcriber models.",
"operationId": "InvokeAudioCaptioningStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudioCaptioningInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/AudioCaptioningInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/AudioCaptioningInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudioCaptioningOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/batchOCRSafetyClassification": {
"post": {
"tags": [
"Recipes"
],
"operationId": "InvokeBatchOCRSafetyClassificationStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BatchOCRSafetyClassificationInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/BatchOCRSafetyClassificationInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/BatchOCRSafetyClassificationInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BatchOCRSafetyClassificationOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/blobArchive": {
"post": {
"tags": [
"Recipes"
],
"summary": "Bundles blobs into a single zip or tar that callers download from a signed streaming URL.\n/// Runs in-process in the orchestrator; no worker job is dispatched.",
"operationId": "InvokeBlobArchiveStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BlobArchiveInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/BlobArchiveInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/BlobArchiveInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BlobArchiveOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/chatCompletion": {
"post": {
"tags": [
"Recipes"
],
"summary": "ChatCompletion",
"description": "Generate chat completions using language models with support for text and image inputs.\n/// Compatible with OpenAI Chat Completions API format.",
"operationId": "InvokeChatCompletionStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/comfy": {
"post": {
"tags": [
"Recipes"
],
"summary": "Comfy workflows",
"description": "Runs a comfy workflow. Currently there are limited nodes available. Contact support for more information.",
"operationId": "InvokeComfyStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ComfyInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ComfyInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ComfyInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ComfyOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/comfyNodepackSnapshot": {
"post": {
"tags": [
"Recipes"
],
"operationId": "InvokeComfyNodepackSnapshotStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/composeMedia": {
"post": {
"tags": [
"Recipes"
],
"summary": "Compose Media",
"description": "Composes audio and/or video elements onto one timeline and canvas: overlay and stack videos, mix and place audio,\n/// and apply per-element transformers (fades, volume). Produces a video blob when any element is video, otherwise an audio blob.",
"operationId": "InvokeComposeMediaStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ComposeMediaInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ComposeMediaInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ComposeMediaInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ComposeMediaOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/convertImage": {
"post": {
"tags": [
"Recipes"
],
"summary": "A workflow step that converts images to different formats and applies optional transforms.",
"operationId": "InvokeConvertImageStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConvertImageInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ConvertImageInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ConvertImageInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConvertImageOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/customComfy": {
"post": {
"tags": [
"Recipes"
],
"summary": "CustomComfy",
"description": "Submit a raw ComfyUI workflow graph for execution. Every resource the workflow uses, including comfy:nodepack URNs\n/// for custom nodes, must be declared in resources; the orchestrator does not scan the workflow. Billed after execution\n/// on actual ComfyUI runtime; infra failures don't charge.",
"operationId": "InvokeCustomComfyStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomComfyInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomComfyInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CustomComfyInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomComfyOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/echo": {
"post": {
"tags": [
"Recipes"
],
"summary": "Echo",
"description": "A workflow step that takes a message string and retuns it.\n/// This step is intended for testing purposes.",
"operationId": "InvokeEchoStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EchoInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EchoInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EchoInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EchoOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/humanoidImageMask": {
"post": {
"tags": [
"Recipes"
],
"operationId": "InvokeHumanoidImageMaskStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HumanoidImageMaskInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/HumanoidImageMaskInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/HumanoidImageMaskInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HumanoidImageMaskOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/imageBackgroundRemoval": {
"post": {
"tags": [
"Recipes"
],
"summary": "Removes the background from an image using BiRefNet.",
"operationId": "InvokeImageBackgroundRemovalStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageBackgroundRemovalInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ImageBackgroundRemovalInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ImageBackgroundRemovalInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageBackgroundRemovalOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/imageGen": {
"post": {
"tags": [
"Recipes"
],
"summary": "Image Generation",
"description": "Generate images through text/image inputs using any of our supported engines",
"operationId": "InvokeImageGenStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageGenInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ImageGenInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ImageGenInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageGenOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/imageResourceTraining": {
"post": {
"tags": [
"Recipes"
],
"summary": "LORA Training",
"description": "Train LORA's",
"operationId": "InvokeImageResourceTrainingStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageResourceTrainingInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ImageResourceTrainingInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ImageResourceTrainingInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageResourceTrainingOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/imageScanning": {
"post": {
"tags": [
"Recipes"
],
"summary": "Image scanning",
"description": "Classifies one image for safety, origin, tags, human presence, and apparent age.",
"operationId": "InvokeImageScanningStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageScanningInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ImageScanningInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ImageScanningInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageScanningOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/imageToSvg": {
"post": {
"tags": [
"Recipes"
],
"summary": "Converts a raster image to an SVG using a local StarVector or OmniSVG model.",
"operationId": "InvokeImageToSvgStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageToSvgInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ImageToSvgInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ImageToSvgInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageToSvgOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/imageUpload": {
"post": {
"tags": [
"Recipes"
],
"summary": "Image upload",
"description": "Uploads an image to be used in a workflow",
"operationId": "InvokeImageUploadStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/*+json": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageUploadOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/imageUpscaler": {
"post": {
"tags": [
"Recipes"
],
"operationId": "InvokeImageUpscalerStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageUpscalerInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ImageUpscalerInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ImageUpscalerInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageUpscalerOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/liveTextToSpeech": {
"post": {
"tags": [
"Recipes"
],
"summary": "Live text to speech",
"description": "Append text to output.inputUrl and play output.audioUrl; billed per character once the session ends.",
"operationId": "InvokeLiveTextToSpeechStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiveTextToSpeechInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/LiveTextToSpeechInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/LiveTextToSpeechInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiveTextToSpeechOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/liveTranscription": {
"post": {
"tags": [
"Recipes"
],
"summary": "Live transcription",
"description": "Transcribes speech while it is recorded: append audio to output.inputUrl and read text from\n/// output.transcriptUrl as it decodes. Billed per second of audio once the session ends.",
"operationId": "InvokeLiveTranscriptionStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiveTranscriptionInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/LiveTranscriptionInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/LiveTranscriptionInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiveTranscriptionOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/mediaCaptioning": {
"post": {
"tags": [
"Recipes"
],
"summary": "Media Captioning",
"description": "Generates a descriptive caption for a single media item using the JoyCaption model.",
"operationId": "InvokeMediaCaptioningStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaCaptioningInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MediaCaptioningInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/MediaCaptioningInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaCaptioningOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/mediaHash": {
"post": {
"tags": [
"Recipes"
],
"summary": "MediaHash",
"description": "Generates perceptual hashes for media content to enable similarity detection and duplicate identification.",
"operationId": "InvokeMediaHashStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaHashInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MediaHashInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/MediaHashInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaHashOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/mediaRating": {
"post": {
"tags": [
"Recipes"
],
"summary": "MediaRating",
"description": "Performs NSFW level detection and content safety classification on media content.",
"operationId": "InvokeMediaRatingStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaRatingInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MediaRatingInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/MediaRatingInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaRatingOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/merge": {
"post": {
"tags": [
"Recipes"
],
"summary": "Merge",
"description": "Also waits for every step the referenced steps generate, such as each iteration of a repeat.",
"operationId": "InvokeMergeStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MergeInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MergeInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/MergeInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MergeOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/miniMaxMusic3": {
"post": {
"tags": [
"Recipes"
],
"summary": "Generate a complete song from a structured caption and lyrics with MiniMax Music 3.",
"operationId": "InvokeMiniMaxMusic3StepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MiniMaxMusic3Input"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MiniMaxMusic3Input"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/MiniMaxMusic3Input"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MiniMaxMusic3Output"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/model3DPreview": {
"post": {
"tags": [
"Recipes"
],
"summary": "3D model preview",
"description": "Renders screenshots of a 3D model from predefined or supplied camera poses.",
"operationId": "InvokeModel3DPreviewStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Model3DPreviewInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Model3DPreviewInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/Model3DPreviewInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Model3DPreviewOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/modelClamScan": {
"post": {
"tags": [
"Recipes"
],
"summary": "ModelClamScan",
"description": "Runs ClamAV malware scanning against a model file.",
"operationId": "InvokeModelClamScanStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelClamScanInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ModelClamScanInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ModelClamScanInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelClamScanOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/modelHash": {
"post": {
"tags": [
"Recipes"
],
"summary": "ModelHash",
"description": "Computes Civitai content hashes (SHA256, AutoV1/2/3, Blake3, CRC32) of a model file.",
"operationId": "InvokeModelHashStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelHashInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ModelHashInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ModelHashInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelHashOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/modelParseMetadata": {
"post": {
"tags": [
"Recipes"
],
"summary": "ModelParseMetadata",
"description": "Extracts the embedded JSON metadata header from a safetensors model file.",
"operationId": "InvokeModelParseMetadataStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelParseMetadataInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ModelParseMetadataInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ModelParseMetadataInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelParseMetadataOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/modelPickleScan": {
"post": {
"tags": [
"Recipes"
],
"summary": "ModelPickleScan",
"description": "Runs picklescan against a model file to detect dangerous pickle imports.",
"operationId": "InvokeModelPickleScanStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelPickleScanInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ModelPickleScanInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ModelPickleScanInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelPickleScanOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/polyGen": {
"post": {
"tags": [
"Recipes"
],
"summary": "3D model generation",
"description": "Generate 3D models through text or image inputs using any of our supported engines.",
"operationId": "InvokePolyGenStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PolyGenInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PolyGenInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/PolyGenInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PolyGenOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/prepareResource": {
"post": {
"tags": [
"Recipes"
],
"summary": "Prepare Resource",
"description": "Loads a resource into a provider so later work needing it does not pay the cold-start download. Succeeds immediately when the resource is already available on the fleet.",
"operationId": "InvokePrepareResourceStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrepareResourceInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PrepareResourceInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/PrepareResourceInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrepareResourceOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/preprocessImage": {
"post": {
"tags": [
"Recipes"
],
"operationId": "InvokePreprocessImageStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PreprocessImageInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PreprocessImageInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/PreprocessImageInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PreprocessImageOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/preprocessVideo": {
"post": {
"tags": [
"Recipes"
],
"operationId": "InvokePreprocessVideoStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PreprocessVideoInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PreprocessVideoInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/PreprocessVideoInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PreprocessVideoOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/promptEnhancement": {
"post": {
"tags": [
"Recipes"
],
"summary": "PromptEnhancement",
"description": "Analyzes and enhances user prompts for a specific AI ecosystem.\n/// Returns detected issues, recommendations, and improved prompt variants.",
"operationId": "InvokePromptEnhancementStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptEnhancementInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PromptEnhancementInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/PromptEnhancementInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptEnhancementOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/promptModeration": {
"post": {
"tags": [
"Recipes"
],
"summary": "PromptModeration",
"description": "Evaluate CR, Young and Sexual together with Civitai Imajev's fixed BF16 model and packaged policies.",
"operationId": "InvokePromptModerationStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptModerationInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PromptModerationInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/PromptModerationInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptModerationOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/qwenImageBench": {
"post": {
"tags": [
"Recipes"
],
"summary": "Qwen Image Bench",
"description": "Scores generated images against their prompts using Qwen-Image-Bench.",
"operationId": "InvokeQwenImageBenchStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QwenImageBenchInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/QwenImageBenchInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/QwenImageBenchInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QwenImageBenchOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/repeat": {
"post": {
"tags": [
"Recipes"
],
"summary": "Repeat workflow step.",
"operationId": "InvokeRepeatStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepeatInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/RepeatInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/RepeatInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepeatOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/shieldstralModeration": {
"post": {
"tags": [
"Recipes"
],
"summary": "ShieldstralModeration",
"description": "Evaluate text or generation prompts against configurable natural-language Shieldstral policies.\n/// Generates one single-token yes/no ChatCompletion job per policy and returns normalized policy scores.",
"operationId": "InvokeShieldstralModerationStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ShieldstralModerationInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ShieldstralModerationInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ShieldstralModerationInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ShieldstralModerationOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/soniloAudioGen": {
"post": {
"tags": [
"Recipes"
],
"summary": "Generate music or a standalone sound effect from a text prompt with Sonilo.",
"operationId": "InvokeSoniloAudioGenStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SoniloAudioGenInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/SoniloAudioGenInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/SoniloAudioGenInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SoniloAudioGenOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/textToImage": {
"post": {
"tags": [
"Recipes"
],
"summary": "TextToImage",
"description": "Generate images using text as input",
"operationId": "InvokeTextToImageStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TextToImageInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TextToImageInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/TextToImageInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TextToImageOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/textToSpeech": {
"post": {
"tags": [
"Recipes"
],
"summary": "Text-to-Speech",
"description": "Synthesizes speech from text, supporting both voice cloning (Base mode with reference audio) and built-in speakers (CustomVoice mode).",
"operationId": "InvokeTextToSpeechStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TextToSpeechInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TextToSpeechInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/TextToSpeechInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TextToSpeechOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/training": {
"post": {
"tags": [
"Recipes"
],
"summary": "Training",
"description": "Trains models (LoRAs, checkpoints) on images, videos or audio, one job per epoch.",
"operationId": "InvokeTrainingStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TrainingInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TrainingInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/TrainingInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TrainingOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/transcode": {
"post": {
"tags": [
"Recipes"
],
"summary": "Transcoding",
"operationId": "InvokeTranscodeStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscodeInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TranscodeInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/TranscodeInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscodeOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/transcription": {
"post": {
"tags": [
"Recipes"
],
"summary": "Transcription",
"description": "Performs automatic speech recognition (ASR) on audio media, returning transcribed text with optional timestamps.",
"operationId": "InvokeTranscriptionStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscriptionInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TranscriptionInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/TranscriptionInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscriptionOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/tryOnU": {
"post": {
"tags": [
"Recipes"
],
"operationId": "InvokeTryOnUStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TryOnUInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TryOnUInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/TryOnUInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TryOnUOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/videoBackgroundRemoval": {
"post": {
"tags": [
"Recipes"
],
"summary": "Tracks a prompted foreground object across a video and returns a lossless animated WebP with transparency.",
"operationId": "InvokeVideoBackgroundRemovalStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoBackgroundRemovalInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VideoBackgroundRemovalInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/VideoBackgroundRemovalInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoBackgroundRemovalOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/videoEnhancement": {
"post": {
"tags": [
"Recipes"
],
"summary": "Upscale videos and/or interpolate frames",
"operationId": "InvokeVideoEnhancementStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhancementInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhancementInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhancementInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoEnhancementOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/videoFrameExtraction": {
"post": {
"tags": [
"Recipes"
],
"summary": "Video Frame Extraction",
"description": "Extracts unique frames from a video at a specified rate, filtering near-duplicates by perceptual hash.",
"operationId": "InvokeVideoFrameExtractionStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoFrameExtractionInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VideoFrameExtractionInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/VideoFrameExtractionInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoFrameExtractionOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/videoGen": {
"post": {
"tags": [
"Recipes"
],
"summary": "Video generation",
"description": "Generate videos through text/image inputs using any of our supported engines",
"operationId": "InvokeVideoGenStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoGenInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VideoGenInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/VideoGenInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoGenOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/videoInterpolation": {
"post": {
"tags": [
"Recipes"
],
"summary": "Interpolate videos using VFI Mamba",
"operationId": "InvokeVideoInterpolationStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoInterpolationInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VideoInterpolationInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/VideoInterpolationInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoInterpolationOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/videoMetadata": {
"post": {
"tags": [
"Recipes"
],
"summary": "Extract metadata from videos including width, height, FPS, and duration",
"operationId": "InvokeVideoMetadataStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoMetadataInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VideoMetadataInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/VideoMetadataInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoMetadataOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/videoUpscaler": {
"post": {
"tags": [
"Recipes"
],
"summary": "Upscale videos using FlashVSR",
"operationId": "InvokeVideoUpscalerStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoUpscalerInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VideoUpscalerInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/VideoUpscalerInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VideoUpscalerOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/wdTagging": {
"post": {
"tags": [
"Recipes"
],
"summary": "WDTagging",
"description": "Performs Waifu Diffusion tagging on media content to identify characteristics, objects, and themes.",
"operationId": "InvokeWDTaggingStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WDTaggingInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/WDTaggingInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/WDTaggingInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WDTaggingOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/webScrape": {
"post": {
"tags": [
"Recipes"
],
"summary": "WebScrape",
"description": "Fetches and renders a single web page, returning its content as markdown and/or HTML.",
"operationId": "InvokeWebScrapeStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebScrapeInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/WebScrapeInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/WebScrapeInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebScrapeOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/webSearch": {
"post": {
"tags": [
"Recipes"
],
"summary": "WebSearch",
"description": "Searches the web, returning result titles, URLs and descriptions, optionally with the scraped content of each result page.",
"operationId": "InvokeWebSearchStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebSearchInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/WebSearchInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/WebSearchInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebSearchOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/xGuardModeration": {
"post": {
"tags": [
"Recipes"
],
"summary": "XGuardModeration",
"description": "Evaluate text or generation prompts against XGuard content moderation policies.\n/// Generates one ChatCompletion job per label and aggregates results with logprob-based scoring.",
"operationId": "InvokeXGuardModerationStepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/XGuardModerationInput"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/XGuardModerationInput"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/XGuardModerationInput"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/XGuardModerationOutput"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/recipes/yuE2": {
"post": {
"tags": [
"Recipes"
],
"summary": "Generate a song from style and lyrics with YuE2.",
"operationId": "InvokeYuE2StepTemplate",
"parameters": [
{
"name": "experimental",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "allowMatureContent",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "whatif",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "ephemeral",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "tier",
"in": "query",
"description": "How a workflow is paid for.",
"schema": {
"$ref": "#/components/schemas/WorkflowTier"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/YuE2Input"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/YuE2Input"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/YuE2Input"
}
}
}
},
"responses": {
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/YuE2Output"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/resources": {
"get": {
"tags": [
"Resources"
],
"summary": "List resources: `view=Queue` is what the orchestrator is loading now, `view=Loaded`\nwhat at least one worker holds and can use now. Each page is a fresh snapshot.",
"operationId": "QueryResources",
"parameters": [
{
"name": "view",
"in": "query",
"description": "A projection of the resource collection. There is no view that lists every known resource — resources\nare addressed by AIR and only materialise once something asks for them.",
"required": true,
"schema": {
"$ref": "#/components/schemas/ResourceView"
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "take",
"in": "query",
"schema": {
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "type",
"in": "query",
"description": "Repeatable, OR'd. Matches the AIR's type segment literally with no alias expansion, so `checkpoint`\ndoes not cover base weights arriving as `diffusion_model`, `diffusionmodel` or `unet`.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "excludeType",
"in": "query",
"description": "Repeatable, OR'd, and wins over `type`. `other`, `torchcompilecache` and\n`nodepacklayer` are the generated artifacts rather than models.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "source",
"in": "query",
"description": "Repeatable, OR'd, matched against the AIR's source segment. `civitai` is the cheapest\nway to drop everything the orchestrator generated itself.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "minSizeBytes",
"in": "query",
"description": "Inclusive. 1073741824 (1 GiB) is where a resource starts taking the large download lane. A\nresource whose provider never reported a byte count has size 0 and is excluded by any value.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "maxSizeBytes",
"in": "query",
"description": "Inclusive.",
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CursedArrayOfStringAndResourceInfo"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Service Unavailable"
}
}
}
},
"/v2/resources/{air}": {
"get": {
"tags": [
"Resources"
],
"summary": "Get an existing resource.",
"operationId": "GetResource",
"parameters": [
{
"name": "air",
"in": "path",
"description": "A unique ID for the resource being requested. See https://developer.civitai.com/docs/getting-started/ai-resource-identifier for more info on AIRs.",
"required": true,
"schema": {
"pattern": "^(?!huggingface/).*$",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResourceInfo"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/services": {
"get": {
"tags": [
"Services"
],
"summary": "List services, optionally filtered.",
"operationId": "ListServices",
"parameters": [
{
"name": "category",
"in": "query",
"description": "Restrict to a category (image, video, chat, audio, text, 3d, model, utility).",
"schema": {
"type": "string"
}
},
{
"name": "prefix",
"in": "query",
"description": "Restrict to a subtree of the id, e.g. \"image/flux2\".",
"schema": {
"type": "string"
}
},
{
"name": "tags",
"in": "query",
"description": "Only services carrying all of these tags.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "query",
"in": "query",
"description": "Free-text over id, name, description and tags.",
"schema": {
"type": "string"
}
},
{
"name": "status",
"in": "query",
"description": "Only services currently in this state.",
"schema": {
"$ref": "#/components/schemas/ServiceStatus"
}
},
{
"name": "window",
"in": "query",
"description": "Window the metrics and status are computed over: 1h, 24h or 7d.",
"schema": {
"type": "string",
"default": "24h"
}
},
{
"name": "limit",
"in": "query",
"description": "Maximum number of services to return.",
"schema": {
"type": "integer",
"format": "int32",
"default": 50
}
},
{
"name": "offset",
"in": "query",
"description": "Number of services to skip.",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedResponseOfServiceResponse"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"security": []
}
},
"/v2/services/{serviceId}": {
"get": {
"tags": [
"Services"
],
"summary": "Get a single service by id, e.g. \"image/flux2/klein/createImage/9b\", with its bucketed\nhistory over the window.",
"operationId": "GetService",
"parameters": [
{
"name": "serviceId",
"in": "path",
"description": "The service id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "window",
"in": "query",
"description": "Window the summary metrics and history cover: 1h, 24h or 7d.",
"schema": {
"type": "string",
"default": "24h"
}
},
{
"name": "interval",
"in": "query",
"description": "History bucket size: 5m, 1h or 1d.",
"schema": {
"type": "string",
"default": "1h"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"security": []
}
},
"/v2/consumer/streaming-blobs/{blobKey}": {
"post": {
"tags": [
"StreamingBlobs"
],
"description": "Number chunks from `seq=0`; a resent seq is a no-op, a gap returns 409 with the expected seq,\nand `final=true` closes the blob.",
"operationId": "AppendStreamingBlob",
"parameters": [
{
"name": "blobKey",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "seq",
"in": "query",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "final",
"in": "query",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StreamingBlobAppendResponse"
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StreamingBlobAppendResponse"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Content Too Large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"security": []
},
"get": {
"tags": [
"StreamingBlobs"
],
"operationId": "GetStreamingBlob",
"parameters": [
{
"name": "blobKey",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"security": []
}
},
"/v2/consumer/workflows": {
"post": {
"tags": [
"Workflows"
],
"summary": "Submit workflow",
"operationId": "SubmitWorkflow",
"parameters": [
{
"name": "wait",
"in": "query",
"description": "Seconds to wait for the workflow to complete before returning. If it has not completed by then a 202 is\nreturned and the client should query the workflow by its id.",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "whatif",
"in": "query",
"description": "Whether to actually submit the workflow or return an estimate on what would happen upon submission",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "hideMatureContent",
"in": "query",
"description": "When set to true, any blob that has mature won't be available and won't have a URL",
"schema": {
"type": "boolean",
"default": false
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowTemplate"
},
"examples": {
"TextToImage": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"quantity": 2,
"batchSize": 4,
"model": "urn:air:sdxl:model:civitai:101055@128078",
"additionalNetworks": {
"urn:air:sd1:embedding:civitai:7808@9208": {
"triggerWord": "easynegative"
}
},
"controlNets": [],
"prompt": "A curious cat",
"negativePrompt": "nsfw",
"scheduler": "eulerA",
"steps": 30,
"cfgScale": 7.5,
"width": 512,
"height": 512,
"seed": 1790693947,
"clipSkip": 2,
"outputFormat": "jpeg",
"sourceImageDenoiseStrenght": 0.8
},
"priority": "high",
"timeout": "00:05:00",
"retries": 5
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
},
"LORA training": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"maxTrainEpochs": 5,
"numRepeats": 8,
"resolution": 512,
"enableBucket": true,
"shuffleCaption": false,
"keepTokens": 0,
"clipSkip": 1,
"flipAugmentation": false,
"unetLR": 0.00005,
"textEncoderLR": 0.00005,
"lrSchedulerNumCycles": 3,
"engine": "kohya",
"model": "urn:air:sdxl:model:civitai:101055@128078",
"trainingData": "https://example.com/training-data",
"trainingDataImagesCount": 10,
"loraName": "mylora",
"samplePrompts": []
},
"priority": "normal",
"retries": 1
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
},
"Comfy job": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"comfyWorkflow": {
"3": {
"class_type": "KSampler",
"inputs": {
"sampler_name": "euler",
"scheduler": "normal",
"seed": 740593329207015,
"steps": 20,
"cfg": 8,
"denoise": 1,
"model": [
"4",
0
],
"positive": [
"6",
0
],
"negative": [
"7",
0
],
"latent_image": [
"5",
0
]
}
},
"4": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "@civitai/46846"
}
},
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "beautiful scenery nature glass bottle landscape, purple galaxy bottle",
"clip": [
"4",
1
]
}
},
"7": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "text, watermark",
"clip": [
"4",
1
]
}
},
"8": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"3",
0
],
"vae": [
"4",
2
]
}
},
"9": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI",
"images": [
"8",
0
]
}
}
},
"quantity": 1
}
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
}
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowTemplate"
},
"examples": {
"TextToImage": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"quantity": 2,
"batchSize": 4,
"model": "urn:air:sdxl:model:civitai:101055@128078",
"additionalNetworks": {
"urn:air:sd1:embedding:civitai:7808@9208": {
"triggerWord": "easynegative"
}
},
"controlNets": [],
"prompt": "A curious cat",
"negativePrompt": "nsfw",
"scheduler": "eulerA",
"steps": 30,
"cfgScale": 7.5,
"width": 512,
"height": 512,
"seed": 1790693947,
"clipSkip": 2,
"outputFormat": "jpeg",
"sourceImageDenoiseStrenght": 0.8
},
"priority": "high",
"timeout": "00:05:00",
"retries": 5
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
},
"LORA training": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"maxTrainEpochs": 5,
"numRepeats": 8,
"resolution": 512,
"enableBucket": true,
"shuffleCaption": false,
"keepTokens": 0,
"clipSkip": 1,
"flipAugmentation": false,
"unetLR": 0.00005,
"textEncoderLR": 0.00005,
"lrSchedulerNumCycles": 3,
"engine": "kohya",
"model": "urn:air:sdxl:model:civitai:101055@128078",
"trainingData": "https://example.com/training-data",
"trainingDataImagesCount": 10,
"loraName": "mylora",
"samplePrompts": []
},
"priority": "normal",
"retries": 1
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
},
"Comfy job": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"comfyWorkflow": {
"3": {
"class_type": "KSampler",
"inputs": {
"sampler_name": "euler",
"scheduler": "normal",
"seed": 740593329207015,
"steps": 20,
"cfg": 8,
"denoise": 1,
"model": [
"4",
0
],
"positive": [
"6",
0
],
"negative": [
"7",
0
],
"latent_image": [
"5",
0
]
}
},
"4": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "@civitai/46846"
}
},
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "beautiful scenery nature glass bottle landscape, purple galaxy bottle",
"clip": [
"4",
1
]
}
},
"7": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "text, watermark",
"clip": [
"4",
1
]
}
},
"8": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"3",
0
],
"vae": [
"4",
2
]
}
},
"9": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI",
"images": [
"8",
0
]
}
}
},
"quantity": 1
}
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
}
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/WorkflowTemplate"
},
"examples": {
"TextToImage": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"quantity": 2,
"batchSize": 4,
"model": "urn:air:sdxl:model:civitai:101055@128078",
"additionalNetworks": {
"urn:air:sd1:embedding:civitai:7808@9208": {
"triggerWord": "easynegative"
}
},
"controlNets": [],
"prompt": "A curious cat",
"negativePrompt": "nsfw",
"scheduler": "eulerA",
"steps": 30,
"cfgScale": 7.5,
"width": 512,
"height": 512,
"seed": 1790693947,
"clipSkip": 2,
"outputFormat": "jpeg",
"sourceImageDenoiseStrenght": 0.8
},
"priority": "high",
"timeout": "00:05:00",
"retries": 5
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
},
"LORA training": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"maxTrainEpochs": 5,
"numRepeats": 8,
"resolution": 512,
"enableBucket": true,
"shuffleCaption": false,
"keepTokens": 0,
"clipSkip": 1,
"flipAugmentation": false,
"unetLR": 0.00005,
"textEncoderLR": 0.00005,
"lrSchedulerNumCycles": 3,
"engine": "kohya",
"model": "urn:air:sdxl:model:civitai:101055@128078",
"trainingData": "https://example.com/training-data",
"trainingDataImagesCount": 10,
"loraName": "mylora",
"samplePrompts": []
},
"priority": "normal",
"retries": 1
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
},
"Comfy job": {
"value": {
"metadata": {
"key1": "value1",
"key2": 2
},
"steps": [
{
"input": {
"comfyWorkflow": {
"3": {
"class_type": "KSampler",
"inputs": {
"sampler_name": "euler",
"scheduler": "normal",
"seed": 740593329207015,
"steps": 20,
"cfg": 8,
"denoise": 1,
"model": [
"4",
0
],
"positive": [
"6",
0
],
"negative": [
"7",
0
],
"latent_image": [
"5",
0
]
}
},
"4": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "@civitai/46846"
}
},
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "beautiful scenery nature glass bottle landscape, purple galaxy bottle",
"clip": [
"4",
1
]
}
},
"7": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "text, watermark",
"clip": [
"4",
1
]
}
},
"8": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"3",
0
],
"vae": [
"4",
2
]
}
},
"9": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI",
"images": [
"8",
0
]
}
}
},
"quantity": 1
}
}
],
"callbacks": [
{
"url": "https://example.com/callback",
"type": [
"workflow:succeeded",
"workflow:failed"
]
}
],
"tier": "paid",
"upgradeMode": "automatic",
"currencies": []
}
}
}
}
}
},
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workflow"
}
}
}
},
"202": {
"description": "Accepted",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workflow"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
}
}
},
"get": {
"tags": [
"Workflows"
],
"summary": "Query workflows",
"operationId": "QueryWorkflows",
"parameters": [
{
"name": "cursor",
"in": "query",
"description": "An optional cursor to continue querying workflows from a previous query.",
"schema": {
"type": "string"
}
},
{
"name": "take",
"in": "query",
"schema": {
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "tags",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "excludeTags",
"in": "query",
"description": "An optional list of tags; workflows with any of these tags are excluded",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "query",
"in": "query",
"description": "An optional additional query that is used to match workflows through metadata",
"schema": {
"type": "string"
}
},
{
"name": "ascending",
"in": "query",
"description": "Whether to return data from oldest to newest",
"schema": {
"type": "boolean"
}
},
{
"name": "hideMatureContent",
"in": "query",
"description": "When set to true, any blob that has mature won't be available and won't have a URL",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "fromDate",
"in": "query",
"description": "An optional start date to filter workflows created on or after this date",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "toDate",
"in": "query",
"description": "An optional end date to filter workflows created on or before this date",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "excludeFailed",
"in": "query",
"description": "When set to true, excludes workflows with Failed, Expired, or Canceled status",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "Accept",
"in": "header",
"description": "Specify 'application/zip' to get the response as a zip file",
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CursedArrayOfTelemetryCursorAndWorkflow"
}
},
"application/zip": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/v2/consumer/workflows/{workflowId}": {
"get": {
"tags": [
"Workflows"
],
"summary": "Get workflow",
"operationId": "GetWorkflow",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "wait",
"in": "query",
"description": "Seconds to wait for the workflow to complete before returning. If it has not completed by then a 202 is\nreturned and the client should query the workflow by its id.",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "until",
"in": "query",
"description": "What wait waits for: `completion` (the default) returns once the workflow reaches a\nfinal status, `change` as soon as its status or any of its steps changes.",
"schema": {
"$ref": "#/components/schemas/WorkflowWaitUntil"
}
},
{
"name": "hideMatureContent",
"in": "query",
"description": "When set to true, any blob that has mature won't be available and won't have a URL",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workflow"
}
}
}
},
"202": {
"description": "Accepted",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workflow"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"Workflows"
],
"summary": "Update workflow",
"description": "Updates a workflow. This can currently be used to cancel a workflow or override metadata and/or tags",
"operationId": "UpdateWorkflow",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "whatif",
"in": "query",
"description": "Whether to apply the update or return what it would cost.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateWorkflowRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateWorkflowRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateWorkflowRequest"
}
}
}
},
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workflow"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"patch": {
"tags": [
"Workflows"
],
"summary": "Patch workflow",
"description": "Patches a workflow using JSON Patch. This can currently be used to cancel a workflow, update metadata and add additional tags",
"operationId": "PatchWorkflow",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/JsonPatchDocument"
}
}
}
},
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Workflows"
],
"summary": "Delete workflow",
"description": "May trigger a refund if the work requested with this workflow has not yet started",
"operationId": "DeleteWorkflow",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/workflows/{workflowId}/tags": {
"post": {
"tags": [
"Workflows"
],
"summary": "Add workflow tag",
"operationId": "AddWorkflowTag",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/*+json": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Workflows"
],
"summary": "Delete all workflow tags",
"operationId": "RemoveAllWorkflowTags",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/workflows/{workflowId}/tags/{tag}": {
"delete": {
"tags": [
"Workflows"
],
"summary": "Delete workflow tag",
"operationId": "RemoveWorkflowTag",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/consumer/workflows/{workflowId}/steps/{stepName}": {
"get": {
"tags": [
"WorkflowSteps"
],
"summary": "Get the status of a workflow step",
"operationId": "GetWorkflowStep",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "stepName",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowStep"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"WorkflowSteps"
],
"summary": "Updates a step within a particular workflow.",
"operationId": "UpdateWorkflowStep",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "stepName",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateWorkflowStepRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateWorkflowStepRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateWorkflowStepRequest"
}
}
}
},
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"patch": {
"tags": [
"WorkflowSteps"
],
"operationId": "PatchWorkflowStep",
"parameters": [
{
"name": "workflowId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "stepName",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/JsonPatchDocument"
}
}
}
},
"responses": {
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AIRecognitionResult": {
"required": [
"confidence",
"label"
],
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Classification label, taken from the model's own id2label — AIorNot-SigLIP2 emits\n\"AI\"/\"Real\". Casing varies per model, so compare case-insensitively."
},
"confidence": {
"type": "number",
"description": "Confidence in the classification given by Label (0.0 to 1.0) — not the probability of being AI.",
"format": "double"
}
},
"additionalProperties": false,
"description": "Represents AI vs real image recognition results."
},
"AIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/TrainingInput"
},
{
"required": [
"defaultSteps",
"ecosystem",
"engine",
"maxBatchSize",
"storageBuzzPerEpoch",
"trace",
"usesStepPricing"
],
"type": "object",
"properties": {
"ecosystem": {
"type": "string"
},
"epochs": {
"maximum": 200,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Number of saved checkpoints (one downloadable model per epoch). Derived from Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.Steps when omitted;\nwhen both are supplied, epochs is the checkpoint count and steps the total.",
"format": "int32"
},
"steps": {
"maximum": 10000,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Total training steps; the primary control over training length and pricing.\nDerived from Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.Epochs when omitted.",
"format": "int32"
},
"batchSize": {
"maximum": 4,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Defaults to 1; raise it (up to the ecosystem maximum, above which it is clamped) to train faster at the cost of GPU memory.\nA larger batch sees more images per step, so fewer steps are needed.",
"format": "int32"
},
"lr": {
"maximum": 1,
"minimum": 0,
"type": "number",
"description": "Sets the learning rate for the model. This is the learning rate when performing additional learning on each attention block (and other blocks depending on the setting).",
"format": "double",
"default": 0.0001
},
"textEncoderLr": {
"maximum": 1,
"minimum": 0,
"type": [
"null",
"number"
],
"description": "Sets the learning rate for the text encoder. Only used when TrainTextEncoder is true. For models with multiple text encoders, this applies to all of them.",
"format": "double"
},
"trainTextEncoder": {
"type": [
"null",
"boolean"
],
"description": "Whether to train the text encoder(s) alongside the model. Enabling this can improve prompt understanding but increases training time and memory usage."
},
"lrScheduler": {
"enum": [
"constant",
"constant_with_warmup",
"cosine",
"linear",
"step"
],
"type": [
"null",
"string"
],
"description": "You can change the learning rate in the middle of learning. A scheduler is a setting for how to change the learning rate."
},
"optimizerType": {
"enum": [
"adamw",
"adamw8bit",
"adam8bit",
"lion",
"lion8bit",
"adafactor",
"adagrad",
"prodigy",
"prodigy8bit",
"automagic"
],
"type": [
"null",
"string"
],
"description": "The optimizer determines how to update the neural net weights during training.\nVarious methods have been proposed for smart learning, but the most commonly used in LoRA learning is \"adamw8bit\"."
},
"networkDim": {
"maximum": 256,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "The larger the Dim setting, the more learning information can be stored, but the possibility of learning unnecessary information other than the learning target increases. A larger Dim also increases LoRA file size.",
"format": "int32"
},
"networkAlpha": {
"maximum": 256,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Scales the stored weights by Alpha/Dim (e.g. 16/32 halves the effective learning rate); equal to Dim means no scaling.",
"format": "int32"
},
"noiseOffset": {
"maximum": 1,
"minimum": 0,
"type": [
"null",
"number"
],
"description": "Adds noise to training images. 0 adds no noise at all. A value of 1 adds strong noise.",
"format": "double"
},
"flipAugmentation": {
"type": "boolean",
"description": "If this option is turned on, the image will be horizontally flipped randomly. It can learn left and right angles, which is useful when you want to learn symmetrical people and objects.",
"default": false
},
"shuffleTokens": {
"type": "boolean",
"description": "Randomly changes the order of your tags during training. The intent of shuffling is to improve learning. If you are using captions (sentences), this option has no meaning.",
"default": false
},
"keepTokens": {
"maximum": 10,
"minimum": 0,
"type": "integer",
"description": "Number of leading tags kept in place when Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.ShuffleTokens is on; does nothing otherwise.",
"format": "int32",
"default": 0
},
"triggerWord": {
"type": [
"null",
"string"
],
"description": "A trigger word that activates the trained LoRA when used in prompts.\nOnly applicable to certain ecosystems (sd1, sdxl, flux1, chroma, zimagebase, zimageturbo, flux2klein)."
},
"continueFrom": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "Optional previously-trained LoRA to continue training from (\"train further\"). When set, the first\nepoch resumes from this model instead of the base model, and the new epochs build on top of it."
},
"trace": {
"$ref": "#/components/schemas/TrainingTraceMode"
},
"storageBuzzPerEpoch": {
"type": "number",
"description": "Per-epoch surcharge (buzz) for the delivered checkpoint and its preview samples, billed on top of the per-step cost. Override where per-epoch samples are expensive (e.g. video).",
"format": "double",
"readOnly": true
},
"defaultSteps": {
"type": "integer",
"description": "Default step budget when neither Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.Steps nor Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.Epochs is supplied; override where the ecosystem needs more or fewer.",
"format": "int32",
"readOnly": true
},
"usesStepPricing": {
"type": "boolean",
"description": "False only on the legacy path where the caller supplied Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.Epochs but no Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.Steps,\nwhich keeps the historical flat per-epoch price.",
"readOnly": true
},
"maxBatchSize": {
"type": "integer",
"description": "Upper bound the user's Civitai.Orchestration.Grains.Workflows.Steps.Training.AIToolkit.AIToolkitTrainingInput.BatchSize is clamped to; most ecosystems cap at 1.",
"format": "int32",
"readOnly": true
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "ecosystem",
"mapping": {
"flux1": "#/components/schemas/Flux1AIToolkitTrainingInput",
"sdxl": "#/components/schemas/SdxlAIToolkitTrainingInput",
"sd1": "#/components/schemas/SD1AIToolkitTrainingInput",
"chroma": "#/components/schemas/ChromaAIToolkitTrainingInput",
"ernie": "#/components/schemas/ErnieAIToolkitTrainingInput",
"qwen": "#/components/schemas/QwenAIToolkitTrainingInput",
"qwen21": "#/components/schemas/Qwen21AIToolkitTrainingInput",
"zimageturbo": "#/components/schemas/ZImageTurboAIToolkitTrainingInput",
"zimagebase": "#/components/schemas/ZImageBaseAIToolkitTrainingInput",
"flux2klein": "#/components/schemas/Flux2KleinAIToolkitTrainingInput",
"ltx2": "#/components/schemas/Ltx2AIToolkitTrainingInput",
"ltx23": "#/components/schemas/Ltx23AIToolkitTrainingInput",
"ltx25": "#/components/schemas/Ltx25AIToolkitTrainingInput",
"ace_step_15": "#/components/schemas/AceStep15AIToolkitTrainingInput",
"ace_step_15_xl": "#/components/schemas/AceStep15XlAIToolkitTrainingInput",
"hidream-o1": "#/components/schemas/HiDreamO1AIToolkitTrainingInput",
"anima": "#/components/schemas/AnimaAIToolkitTrainingInput",
"boogu": "#/components/schemas/BooguAIToolkitTrainingInput",
"krea2": "#/components/schemas/Krea2AIToolkitTrainingInput",
"ideogram4": "#/components/schemas/Ideogram4AIToolkitTrainingInput",
"mageflow": "#/components/schemas/MageFlowAIToolkitTrainingInput",
"ming": "#/components/schemas/MingAIToolkitTrainingInput",
"yue2": "#/components/schemas/YuE2AIToolkitTrainingInput",
"minimaxh3": "#/components/schemas/MiniMaxH3AIToolkitTrainingInput"
}
}
}
]
},
"AceStep15AIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/AIToolkitTrainingInput"
},
{
"required": [
"ecosystem",
"engine"
],
"type": "object",
"properties": {
"samplesOverrides": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AceStepSampleOverride"
}
},
"ecosystem": {
"enum": [
"ace_step_15"
],
"type": "string"
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
},
"batchSize": {
"maximum": 1,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Training batch size. Fixed at 1 for this ecosystem.",
"default": 1
}
},
"additionalProperties": false
}
]
},
"AceStep15XlAIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/AIToolkitTrainingInput"
},
{
"required": [
"ecosystem",
"engine",
"modelVariant"
],
"type": "object",
"properties": {
"modelVariant": {
"type": "string"
},
"samplesOverrides": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AceStepSampleOverride"
}
},
"ecosystem": {
"enum": [
"ace_step_15_xl"
],
"type": "string"
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "modelVariant",
"mapping": {
"base": "#/components/schemas/AceStep15XlBaseAIToolkitTrainingInput",
"sft": "#/components/schemas/AceStep15XlSftAIToolkitTrainingInput"
}
}
}
]
},
"AceStep15XlBaseAIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/AceStep15XlAIToolkitTrainingInput"
},
{
"required": [
"ecosystem",
"engine",
"modelVariant"
],
"type": "object",
"properties": {
"modelVariant": {
"enum": [
"base"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ace_step_15_xl"
],
"type": "string"
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
},
"batchSize": {
"maximum": 1,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Training batch size. Fixed at 1 for this ecosystem.",
"default": 1
}
},
"additionalProperties": false
}
]
},
"AceStep15XlSftAIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/AceStep15XlAIToolkitTrainingInput"
},
{
"required": [
"ecosystem",
"engine",
"modelVariant"
],
"type": "object",
"properties": {
"modelVariant": {
"enum": [
"sft"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ace_step_15_xl"
],
"type": "string"
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
},
"batchSize": {
"maximum": 1,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Training batch size. Fixed at 1 for this ecosystem.",
"default": 1
}
},
"additionalProperties": false
}
]
},
"AceStepAudioCover": {
"required": [
"imageUrl"
],
"type": "object",
"properties": {
"imageUrl": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"additionalProperties": false,
"description": "When present, the output is a WebM video with this image as the visual."
},
"AceStepAudioInput": {
"required": [
"lyrics",
"musicDescription",
"seed"
],
"type": "object",
"properties": {
"musicDescription": {
"type": "string",
"description": "Music style/genre description (e.g., \"Neo-Soul: A warm, organic neo-soul track...\")"
},
"lyrics": {
"type": "string",
"description": "Structured lyrics with section markers like [Verse], [Chorus], [Bridge], etc."
},
"seed": {
"type": "integer",
"format": "int32"
},
"duration": {
"maximum": 190,
"minimum": 1,
"type": "number",
"description": "Duration in seconds (1-190)",
"format": "float",
"default": 60
},
"bpm": {
"maximum": 200,
"minimum": 40,
"type": "integer",
"description": "Beats per minute (40-200)",
"format": "int32",
"default": 120
},
"timeSignature": {
"enum": [
"2",
"3",
"4",
"6"
],
"type": "string",
"description": "Time signature (e.g., \"4\" for 4/4 time)",
"default": "4"
},
"language": {
"enum": [
"en",
"ja",
"zh",
"es",
"de",
"fr",
"pt",
"ru",
"it",
"nl",
"pl",
"tr",
"vi",
"cs",
"fa",
"id",
"ko",
"uk",
"hu",
"ar",
"sv",
"ro",
"el"
],
"type": "string",
"description": "Language code (e.g., \"en\", \"zh\", \"ja\", \"ko\")",
"default": "en"
},
"key": {
"enum": [
"C major",
"C# major",
"Db major",
"D major",
"D# major",
"Eb major",
"E major",
"F major",
"F# major",
"Gb major",
"G major",
"G# major",
"Ab major",
"A major",
"A# major",
"Bb major",
"B major",
"C minor",
"C# minor",
"Db minor",
"D minor",
"D# minor",
"Eb minor",
"E minor",
"F minor",
"F# minor",
"Gb minor",
"G minor",
"G# minor",
"Ab minor",
"A minor",
"A# minor",
"Bb minor",
"B minor"
],
"type": "string",
"description": "Musical key (e.g., \"C major\", \"E minor\"). Mirrors ComfyUI's\nTextEncodeAceStepAudio1.5 keyscale combo: 17 roots × {major, minor}.",
"default": "C major"
},
"instrumentalWeight": {
"type": "number",
"description": "Weight for instrumental elements (0.0-1.0)",
"format": "float",
"default": 0.85
},
"vocalWeight": {
"type": "number",
"description": "Weight for vocal elements (0.0-1.0)",
"format": "float",
"default": 0.9
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "Optional diffusion model (unet) override. Defaults to ACE-Step 1.5 turbo 2B."
},
"cover": {
"$ref": "#/components/schemas/AceStepAudioCover"
},
"clipModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "Optional text encoder (CLIP) override. Defaults to qwen_4b_ace15."
},
"vaeModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "Optional VAE override. Defaults to ace_1.5_vae."
},
"languageModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "Optional language model override for audio code generation. Defaults to qwen_0.6b_ace15."
},
"steps": {
"maximum": 200,
"minimum": 1,
"type": "integer",
"description": "Number of sampling steps. Turbo variants converge at 8; non-turbo base / sft\nvariants expect the full 50-step schedule.",
"format": "int32",
"default": 8
},
"cfg": {
"maximum": 30,
"minimum": 0,
"type": "number",
"description": "Classifier-free guidance scale. Turbo variants run CFG-off at 1.0;\nnon-turbo base / sft variants expect CFG on (around 4).",
"format": "float",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
},
"description": "LoRAs to apply; each strength applies to both the diffusion model and the dual CLIP.\nCompatibility with non-default base models is the caller's responsibility."
}
},
"additionalProperties": false
},
"AceStepAudioOutput": {
"required": [
"blob"
],
"type": "object",
"properties": {
"blob": {
"$ref": "#/components/schemas/Blob"
}
},
"additionalProperties": false
},
"AceStepAudioStep": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStep"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/AceStepAudioInput"
},
"output": {
"$ref": "#/components/schemas/AceStepAudioOutput"
},
"$type": {
"enum": [
"aceStepAudio"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Generates full songs from text descriptions and structured lyrics with ACE Step 1.5."
},
"AceStepAudioStepTemplate": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStepTemplate"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/AceStepAudioInput"
},
"$type": {
"enum": [
"aceStepAudio"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Generates full songs from text descriptions and structured lyrics with ACE Step 1.5."
},
"AceStepSampleOverride": {
"type": "object",
"properties": {
"lyrics": {
"type": [
"null",
"string"
]
},
"duration": {
"type": [
"null",
"number"
],
"format": "float"
},
"bpm": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"timeSignature": {
"type": [
"null",
"string"
]
},
"language": {
"type": [
"null",
"string"
]
},
"key": {
"type": [
"null",
"string"
]
},
"instrumentalWeight": {
"type": [
"null",
"number"
],
"format": "float"
},
"vocalWeight": {
"type": [
"null",
"number"
],
"format": "float"
},
"steps": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"cfg": {
"type": [
"null",
"number"
],
"format": "float"
}
},
"additionalProperties": false,
"description": "Per-prompt overrides for AceStep training samples, index-aligned with `Samples.Prompts`;\nnull fields fall back to the hardcoded sample default."
},
"AgeClassificationInput": {
"required": [
"mediaUrl"
],
"type": "object",
"properties": {
"model": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "An optional model to use for age classification. If not provided, the default model will determined by the worker"
},
"mediaUrl": {
"type": "string",
"description": "The URL of the media to classify. This can either be a URL to an image or a video or a ZIP containing multiple images",
"format": "uri"
},
"faceDetectionThreshold": {
"type": [
"null",
"number"
],
"description": "Optional face detection confidence threshold. Defaults to 0.25 if not provided.",
"format": "double"
},
"personDetectionThreshold": {
"type": [
"null",
"number"
],
"description": "Optional person detection confidence threshold. Defaults to 0.35 if not provided.",
"format": "double"
}
},
"additionalProperties": false
},
"AgeClassificationOutput": {
"required": [
"faceRecognitionAvailable",
"hasMinor",
"labels",
"numFlagged",
"numPredictions"
],
"type": "object",
"properties": {
"labels": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AgeClassifierLabel"
}
},
"description": "Age classification results per image"
},
"hasMinor": {
"type": "boolean"
},
"numPredictions": {
"type": "integer",
"format": "int32"
},
"numFlagged": {
"type": "integer",
"description": "Number of flagged predictions (minors)",
"format": "int32"
},
"faceRecognitionFaces": {
"type": [
"null",
"object"
],
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FaceDetectionInfo"
}
},
"description": "Face recognition results per image (if available)"
},
"faceRecognitionNumFaces": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"faceRecognitionNumUniquePeople": {
"type": [
"null",
"integer"
],
"description": "Estimated number of unique people in the dataset (based on similarity clustering)",
"format": "int32"
},
"faceRecognitionAvailable": {
"type": "boolean"
}
},
"additionalProperties": false
},
"AgeClassificationResult": {
"required": [
"detections"
],
"type": "object",
"properties": {
"detections": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AgeDetection"
}
},
"status": {
"type": [
"null",
"string"
]
},
"ran": {
"type": [
"null",
"boolean"
]
},
"detector": {
"type": [
"null",
"string"
]
},
"minorDetected": {
"type": [
"null",
"boolean"
]
},
"error": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false
},
"AgeClassificationStep": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStep"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/AgeClassificationInput"
},
"output": {
"$ref": "#/components/schemas/AgeClassificationOutput"
},
"$type": {
"enum": [
"ageClassification"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Age classification"
},
"AgeClassificationStepTemplate": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStepTemplate"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/AgeClassificationInput"
},
"$type": {
"enum": [
"ageClassification"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Age classification"
},
"AgeClassifierLabel": {
"required": [
"age",
"boundingBox",
"isMinor"
],
"type": "object",
"properties": {
"age": {
"type": "string"
},
"isMinor": {
"type": "boolean"
},
"boundingBox": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
},
"topK": {
"type": [
"null",
"object"
],
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"faceDetectionConfidence": {
"type": [
"null",
"number"
],
"format": "double"
},
"personDetectionConfidence": {
"type": [
"null",
"number"
],
"format": "double"
}
},
"additionalProperties": false
},
"AgeDetection": {
"required": [
"ageLabel",
"boundingBox",
"confidence",
"detectorType",
"isMinor"
],
"type": "object",
"properties": {
"detectorType": {
"type": "string",
"description": "The detector type used (e.g., \"yolo\", \"mediapipe\", \"ensemble\")."
},
"boundingBox": {
"$ref": "#/components/schemas/BoundingBox"
},
"ageLabel": {
"type": "string",
"description": "The age label (e.g., \"adult\", \"child\", \"teen\")."
},
"confidence": {
"type": "number",
"description": "Confidence score for the age classification (0.0 to 1.0).",
"format": "double"
},
"isMinor": {
"type": "boolean"
},
"topK": {
"type": [
"null",
"object"
],
"additionalProperties": {
"type": "number",
"format": "double"
},
"description": "Full probability distribution across all age labels.\nKeys are age labels (e.g., \"Child 0-12\", \"Adult 21-44\"), values are confidence scores (0.0 to 1.0)."
}
},
"additionalProperties": false
},
"AnimaAIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/AIToolkitTrainingInput"
},
{
"required": [
"defaultSteps",
"ecosystem",
"engine"
],
"type": "object",
"properties": {
"model": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string",
"description": "The primary Anima model to train upon. Custom checkpoints use the base Anima repository as extras.",
"default": "urn:air:anima:repository:huggingface:circlestone-labs/Anima-Base-v1.0-Diffusers@main.tar"
},
"defaultSteps": {
"type": "integer",
"format": "int32",
"readOnly": true
},
"ecosystem": {
"enum": [
"anima"
],
"type": "string"
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
},
"batchSize": {
"maximum": 1,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Training batch size. Fixed at 1 for this ecosystem.",
"default": 1
}
},
"additionalProperties": false
}
]
},
"AnimaCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/AnimaImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"anima"
],
"type": "string"
},
"engine": {
"enum": [
"sdcpp"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"AnimaImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/SdCppImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampleMethod": {
"$ref": "#/components/schemas/SdCppSampleMethod"
},
"schedule": {
"$ref": "#/components/schemas/SdCppSchedule"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 30
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 4
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffuserModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"ecosystem": {
"enum": [
"anima"
],
"type": "string"
},
"engine": {
"enum": [
"sdcpp"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/AnimaCreateImageGenInput",
"createVariant": "#/components/schemas/AnimaVariantImageGenInput"
}
}
}
]
},
"AnimaVariantImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/AnimaImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"image",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"image": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"strength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0.7
},
"operation": {
"enum": [
"createVariant"
],
"type": "string"
},
"ecosystem": {
"enum": [
"anima"
],
"type": "string"
},
"engine": {
"enum": [
"sdcpp"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"AnimalPoseBboxDetector": {
"enum": [
"yolox_l.torchscript.pt",
"yolox_l.onnx",
"yolo_nas_l_fp16.onnx",
"yolo_nas_m_fp16.onnx",
"yolo_nas_s_fp16.onnx"
],
"type": "string"
},
"AnimalPoseEstimator": {
"enum": [
"rtmpose-m_ap10k_256_bs5.torchscript.pt",
"rtmpose-m_ap10k_256.onnx"
],
"type": "string"
},
"AnimeBodyAgeClassificationResult": {
"required": [
"ageBand",
"apparentAge",
"childDetected",
"minorDetected",
"oodDetected",
"oodProbability",
"ordinalCutpointProbabilities",
"under13Probability",
"under18Probability"
],
"type": "object",
"properties": {
"apparentAge": {
"type": "number",
"format": "double"
},
"ageBand": {
"type": "string"
},
"under13Probability": {
"type": "number",
"format": "double"
},
"under18Probability": {
"type": "number",
"format": "double"
},
"oodProbability": {
"type": "number",
"format": "double"
},
"ordinalCutpointProbabilities": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"childDetected": {
"type": "boolean"
},
"minorDetected": {
"type": "boolean"
},
"oodDetected": {
"type": "boolean"
},
"status": {
"type": [
"null",
"string"
]
},
"ran": {
"type": [
"null",
"boolean"
]
},
"warning": {
"type": [
"null",
"string"
]
},
"error": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false,
"description": "Represents anime apparent-age and child-risk results for a complete image.\nThe model is an additional risk signal, not a verified chronological-age claim."
},
"AnimeRecognitionResult": {
"required": [
"confidence",
"label"
],
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Classification label: \"anime\" or \"real\"."
},
"confidence": {
"type": "number",
"description": "Confidence score for the classification (0.0 to 1.0).",
"format": "double"
}
},
"additionalProperties": false,
"description": "Represents anime vs real image recognition results."
},
"AnylineMergeWith": {
"enum": [
"lineart_standard",
"lineart_realistic",
"lineart_anime",
"manga_line"
],
"type": "string"
},
"ArchiveFormat": {
"enum": [
"zip",
"tar"
],
"type": "string"
},
"AssistantMessage": {
"allOf": [
{
"$ref": "#/components/schemas/ChatCompletionMessage"
},
{
"required": [
"role"
],
"type": "object",
"properties": {
"content": {
"type": [
"null",
"string"
],
"description": "The assistant message content (text only)."
},
"name": {
"type": [
"null",
"string"
]
},
"refusal": {
"type": [
"null",
"string"
]
},
"tool_calls": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/ChatCompletionToolCall"
}
},
"images": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/ChatCompletionGeneratedImage"
},
"description": "Generated images attached to this assistant message, populated when the request\nincluded \"image\" in its modalities. Each entry is a base64 data URI."
},
"reasoning_content": {
"type": [
"null",
"string"
],
"description": "Model reasoning separated from the answer by the host's reasoning parser (vLLM convention)."
},
"reasoning": {
"type": [
"null",
"string"
],
"description": "Input alias for the vLLM 0.26+ / OpenRouter field name; responses always use reasoning_content.",
"writeOnly": true
},
"role": {
"enum": [
"assistant"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "An assistant message representing a prior response."
},
"AudioBlob": {
"allOf": [
{
"$ref": "#/components/schemas/Blob"
},
{
"required": [
"type"
],
"type": "object",
"properties": {
"duration": {
"type": [
"null",
"number"
],
"description": "Duration of the audio in seconds",
"format": "float"
},
"type": {
"enum": [
"audio"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"AudioCaptioningInput": {
"required": [
"maxNewTokens",
"mediaUrl",
"temperature"
],
"type": "object",
"properties": {
"mediaUrl": {
"type": "string",
"description": "The URL of the audio file or zip archive to caption.",
"format": "uri"
},
"temperature": {
"type": "number",
"description": "Sampling temperature for both ACE-Step requests.",
"format": "double"
},
"maxNewTokens": {
"type": "integer",
"description": "Maximum number of tokens to generate for each ACE-Step request.",
"format": "int32"
}
},
"additionalProperties": false
},
"AudioCaptioningOutput": {
"required": [
"results"
],
"type": "object",
"properties": {
"results": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/AudioCaptioningOutputItem"
}
}
},
"additionalProperties": false
},
"AudioCaptioningOutputItem": {
"required": [
"text"
],
"type": "object",
"properties": {
"text": {
"type": "string"
},
"caption": {
"type": [
"null",
"string"
]
},
"lyrics": {
"type": [
"null",
"string"
]
},
"bpm": {
"type": [
"null",
"string"
]
},
"keyScale": {
"type": [
"null",
"string"
]
},
"timeSignature": {
"type": [
"null",
"string"
]
},
"duration": {
"type": [
"null",
"string"
]
},
"language": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false
},
"AudioCaptioningStep": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStep"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/AudioCaptioningInput"
},
"output": {
"$ref": "#/components/schemas/AudioCaptioningOutput"
},
"$type": {
"enum": [
"audioCaptioning"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Audio Captioning"
},
"AudioCaptioningStepTemplate": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStepTemplate"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/AudioCaptioningInput"
},
"$type": {
"enum": [
"audioCaptioning"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Audio Captioning"
},
"AudioComposeMediaOutput": {
"allOf": [
{
"$ref": "#/components/schemas/ComposeMediaOutput"
},
{
"required": [
"audioBlob",
"type"
],
"type": "object",
"properties": {
"audioBlob": {
"$ref": "#/components/schemas/AudioBlob"
},
"type": {
"enum": [
"audio"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "An audio mixdown produced when the composition has no video."
},
"AvailableResourceAvailability": {
"allOf": [
{
"$ref": "#/components/schemas/ResourceAvailability"
},
{
"required": [
"status",
"workers"
],
"type": "object",
"properties": {
"workers": {
"type": "integer",
"format": "int32"
},
"status": {
"enum": [
"available"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"AvifOutputFormat": {
"allOf": [
{
"$ref": "#/components/schemas/ImageOutputFormat"
},
{
"required": [
"format"
],
"type": "object",
"properties": {
"quality": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"description": "Quality setting for AVIF compression (1-100). Only applies when Lossless is false.",
"format": "int32",
"default": 85
},
"lossless": {
"type": "boolean",
"default": false
},
"format": {
"enum": [
"avif"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Animated sources are reduced to their first frame."
},
"BackgroundRemovalTransformer": {
"allOf": [
{
"$ref": "#/components/schemas/MediaTransformer"
},
{
"required": [
"type"
],
"type": "object",
"properties": {
"shadowRemoval": {
"$ref": "#/components/schemas/ShadowRemoval"
},
"fromCenter": {
"type": "boolean",
"description": "Also seed the fill from the frame centre, for artwork with an enclosed background-coloured\nhole (e.g. avatar frames).",
"default": false
},
"type": {
"enum": [
"backgroundRemoval"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Per-frame edge-connected flood fill from the border colour (not AI matting), so enclosed background-coloured pixels\nare kept. Video only; needs an alpha-capable container (webp) and a transparent canvas background to carry the transparency."
},
"BasicAnimationsBlobs": {
"type": "object",
"properties": {
"walkingModel": {
"$ref": "#/components/schemas/Model3DBlob"
},
"walkingFbxModel": {
"$ref": "#/components/schemas/Model3DBlob"
},
"walkingArmatureModel": {
"$ref": "#/components/schemas/Model3DBlob"
},
"runningModel": {
"$ref": "#/components/schemas/Model3DBlob"
},
"runningFbxModel": {
"$ref": "#/components/schemas/Model3DBlob"
},
"runningArmatureModel": {
"$ref": "#/components/schemas/Model3DBlob"
}
},
"additionalProperties": false
},
"BatchOCRSafetyClassificationInput": {
"required": [
"mediaUrls"
],
"type": "object",
"properties": {
"mediaUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
}
},
"additionalProperties": false
},
"BatchOCRSafetyClassificationOutput": {
"required": [
"results"
],
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BatchOCRSafetyClassificationResult"
}
}
},
"additionalProperties": false
},
"BatchOCRSafetyClassificationResult": {
"required": [
"classification",
"mediaUrl"
],
"type": "object",
"properties": {
"mediaUrl": {
"type": "string",
"format": "uri"
},
"classification": {
"type": "string"
},
"text": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false
},
"Blob": {
"required": [
"available",
"id",
"type"
],
"type": "object",
"properties": {
"type": {
"type": "string"
},
"id": {
"type": "string"
},
"available": {
"type": "boolean"
},
"url": {
"type": [
"null",
"string"
],
"format": "uri"
},
"urlExpiresAt": {
"type": [
"null",
"string"
],
"format": "date-time"
},
"jobId": {
"type": [
"null",
"string"
]
},
"nsfwLevel": {
"$ref": "#/components/schemas/NSFWLevel"
},
"blockedReason": {
"type": [
"null",
"string"
]
},
"tier": {
"type": [
"null",
"string"
],
"description": "Deprecated: use Civitai.Orchestration.Grains.Workflows.Steps.Common.Blob.PublicUrl to tell a public blob. Get the storage tier holding this blob, when\none was declared. Null resolves to the private managed tier, falling back to the classic one for blobs\nwritten before producers moved off it."
},
"publicUrl": {
"type": [
"null",
"string"
],
"description": "The durable, unsigned url of a blob requested public, which a CDN can cache. Set as soon as the blob is\nrequested, so it may 404 until the workflow that produces it completes; Civitai.Orchestration.Grains.Workflows.Steps.Common.Blob.Url waits instead.",
"format": "uri"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "type",
"mapping": {
"image": "#/components/schemas/ImageBlob",
"video": "#/components/schemas/VideoBlob",
"audio": "#/components/schemas/AudioBlob",
"model3d": "#/components/schemas/Model3DBlob"
}
}
},
"BlobArchiveEntry": {
"required": [
"blobId"
],
"type": "object",
"properties": {
"blobId": {
"minLength": 1,
"type": "string"
},
"fileName": {
"type": [
"null",
"string"
],
"description": "Optional filename to use inside the archive. When omitted, the blob ID is used.\nPath components and control characters are stripped."
}
},
"additionalProperties": false
},
"BlobArchiveInput": {
"required": [
"entries"
],
"type": "object",
"properties": {
"entries": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BlobArchiveEntry"
},
"description": "The blobs to include in the archive. Must contain at least 1 and at most 1000 entries."
},
"archiveName": {
"type": [
"null",
"string"
],
"description": "Optional filename for the archive itself (used in the Content-Disposition header).\nDefaults to \"archive.zip\" or \"archive.tar\" based on Civitai.Orchestration.Grains.Workflows.Steps.BlobArchive.BlobArchiveInput.Format."
},
"format": {
"$ref": "#/components/schemas/ArchiveFormat"
}
},
"additionalProperties": false
},
"BlobArchiveOutput": {
"required": [
"entryCount",
"expiresAt",
"format",
"url"
],
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The signed URL that streams the archive when requested.",
"format": "uri"
},
"entryCount": {
"type": "integer",
"format": "int32"
},
"format": {
"$ref": "#/components/schemas/ArchiveFormat"
},
"expiresAt": {
"type": "string",
"description": "The UTC time at which this URL expires.",
"format": "date-time"
}
},
"additionalProperties": false
},
"BlobArchiveStep": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStep"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/BlobArchiveInput"
},
"output": {
"$ref": "#/components/schemas/BlobArchiveOutput"
},
"$type": {
"enum": [
"blobArchive"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Bundles blobs into a single zip or tar that callers download from a signed streaming URL.\nRuns in-process in the orchestrator; no worker job is dispatched."
},
"BlobArchiveStepTemplate": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStepTemplate"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/BlobArchiveInput"
},
"$type": {
"enum": [
"blobArchive"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Bundles blobs into a single zip or tar that callers download from a signed streaming URL.\nRuns in-process in the orchestrator; no worker job is dispatched."
},
"BlobTrainingDataItem": {
"required": [
"air"
],
"type": "object",
"properties": {
"air": {
"type": "string",
"description": "The blob reference. Accepts an AIR urn (urn:air:other:other:orchestrator:blob@{blobKey}),\na /v2/consumer/blobs/{blobKey} URL, or a bare blob key; normalized to the AIR urn form at submission."
},
"caption": {
"type": [
"null",
"string"
],
"description": "Optional caption for this item, written as the trainer's sidecar caption file."
}
},
"additionalProperties": false
},
"BlobsTrainingData": {
"allOf": [
{
"$ref": "#/components/schemas/TrainingData"
},
{
"required": [
"items",
"type"
],
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BlobTrainingDataItem"
},
"description": "The training items, in dataset order. Each references a consumer-uploaded blob."
},
"type": {
"enum": [
"blobs"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Training data supplied as individually uploaded blobs (via POST /v2/consumer/blobs),\nso each item passed through per-asset moderation on upload."
},
"BlurRegion": {
"required": [
"x1",
"x2",
"y1",
"y2"
],
"type": "object",
"properties": {
"x1": {
"type": "integer",
"description": "Left edge X coordinate in pixels.",
"format": "int32"
},
"y1": {
"type": "integer",
"description": "Top edge Y coordinate in pixels.",
"format": "int32"
},
"x2": {
"type": "integer",
"description": "Right edge X coordinate in pixels.",
"format": "int32"
},
"y2": {
"type": "integer",
"description": "Bottom edge Y coordinate in pixels.",
"format": "int32"
}
},
"additionalProperties": false,
"description": "A rectangular region defined by pixel coordinates."
},
"BlurRegionMode": {
"enum": [
"include",
"exclude"
],
"type": "string"
},
"BlurTransform": {
"allOf": [
{
"$ref": "#/components/schemas/ImageTransform"
},
{
"required": [
"blur",
"mode",
"type"
],
"type": "object",
"properties": {
"blur": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32"
},
"mode": {
"$ref": "#/components/schemas/BlurRegionMode"
},
"regions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BlurRegion"
}
},
"type": {
"enum": [
"blur"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Applies a Gaussian blur with optional region-based masking."
},
"BodyAgeClassificationResult": {
"required": [
"detections"
],
"type": "object",
"properties": {
"detections": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BodyAgeDetection"
}
},
"status": {
"type": [
"null",
"string"
]
},
"ran": {
"type": [
"null",
"boolean"
]
},
"childDetected": {
"type": [
"null",
"boolean"
]
},
"minorDetected": {
"type": [
"null",
"boolean"
]
},
"oodDetected": {
"type": [
"null",
"boolean"
]
},
"error": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false,
"description": "Represents body-only apparent-age and child-risk results for media content.\nThe model is an additional risk signal, not a verified chronological-age claim."
},
"BodyAgeDetection": {
"required": [
"ageBand",
"apparentAge",
"boundingBox",
"headGeometrySource",
"isChild",
"isMinor",
"isOod",
"oodProbability",
"personDetected",
"personDetectionConfidence",
"under13Probability",
"under13ViewProbabilities",
"under18Probability"
],
"type": "object",
"properties": {
"boundingBox": {
"$ref": "#/components/schemas/BoundingBox"
},
"personDetected": {
"type": "boolean"
},
"personDetectionConfidence": {
"type": "number",
"format": "double"
},
"faceBoundingBox": {
"$ref": "#/components/schemas/BoundingBox"
},
"faceDetectionConfidence": {
"type": [
"null",
"number"
],
"format": "double"
},
"headGeometrySource": {
"type": "string"
},
"apparentAge": {
"type": "number",
"format": "double"
},
"ageBand": {
"type": "string"
},
"under13Probability": {
"type": "number",
"format": "double"
},
"under18Probability": {
"type": "number",
"format": "double"
},
"oodProbability": {
"type": "number",
"format": "double"
},
"under13ViewProbabilities": {
"type": "array",
"items": {
"type": "number",
"format": "double"
}
},
"isChild": {
"type": "boolean"
},
"isMinor": {
"type": "boolean"
},
"isOod": {
"type": "boolean"
}
},
"additionalProperties": false,
"description": "Represents one body-only age estimate for a detected person."
},
"BooguAIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/AIToolkitTrainingInput"
},
{
"required": [
"defaultSteps",
"ecosystem",
"engine"
],
"type": "object",
"properties": {
"defaultSteps": {
"type": "integer",
"format": "int32",
"readOnly": true
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
},
"batchSize": {
"maximum": 1,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Training batch size. Fixed at 1 for this ecosystem.",
"default": 1
}
},
"additionalProperties": false
}
]
},
"BoundingBox": {
"required": [
"x1",
"x2",
"y1",
"y2"
],
"type": "object",
"properties": {
"x1": {
"type": "number",
"format": "double"
},
"y1": {
"type": "number",
"format": "double"
},
"x2": {
"type": "number",
"format": "double"
},
"y2": {
"type": "number",
"format": "double"
}
},
"additionalProperties": false
},
"BucketResponse": {
"required": [
"at",
"canceledRate",
"requests",
"userErrorRate"
],
"type": "object",
"properties": {
"at": {
"type": "string",
"format": "date-time"
},
"requests": {
"type": "integer",
"format": "int64"
},
"successRate": {
"type": [
"null",
"number"
],
"format": "double"
},
"canceledRate": {
"type": "number",
"format": "double"
},
"userErrorRate": {
"type": "number",
"format": "double"
},
"costBuzz": {
"$ref": "#/components/schemas/PercentilesResponse"
},
"latencySeconds": {
"$ref": "#/components/schemas/PercentilesResponse"
}
},
"additionalProperties": false
},
"BuzzClientAccount": {
"enum": [
"yellow",
"blue",
"green",
"fakeRed"
],
"type": "string"
},
"ChatCompletionChoice": {
"required": [
"index",
"message"
],
"type": "object",
"properties": {
"index": {
"type": "integer",
"format": "int32"
},
"message": {
"$ref": "#/components/schemas/AssistantMessage"
},
"finishReason": {
"type": [
"null",
"string"
]
},
"logprobs": {
"type": "null"
}
},
"additionalProperties": false
},
"ChatCompletionContentPart": {
"required": [
"type"
],
"type": "object",
"properties": {
"type": {
"type": "string",
"readOnly": true
},
"text": {
"type": [
"null",
"string"
]
},
"imageUrl": {
"$ref": "#/components/schemas/ChatCompletionImageUrl"
}
},
"additionalProperties": false,
"description": "Accepts both camelCase (`imageUrl`) and snake_case (`image_url`) type discriminators."
},
"ChatCompletionFunction": {
"required": [
"name"
],
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": [
"null",
"string"
]
},
"parameters": {
"type": "null"
},
"strict": {
"type": [
"null",
"boolean"
]
}
},
"additionalProperties": false
},
"ChatCompletionFunctionCall": {
"required": [
"arguments",
"name"
],
"type": "object",
"properties": {
"name": {
"type": "string"
},
"arguments": {
"type": "string"
}
},
"additionalProperties": false
},
"ChatCompletionGeneratedImage": {
"required": [
"image_url"
],
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "image_url"
},
"image_url": {
"$ref": "#/components/schemas/ChatCompletionGeneratedImageUrl"
}
},
"additionalProperties": false,
"description": "A generated image attached to an assistant message when \"image\" is included in\nCivitai.Orchestration.Grains.Workflows.Steps.ChatCompletion.ChatCompletionInput.Modalities. Matches the OpenRouter wire shape."
},
"ChatCompletionGeneratedImageUrl": {
"required": [
"url"
],
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Base64 data URI (e.g. \"data:image/png;base64,...\")."
}
},
"additionalProperties": false,
"description": "Currently always a base64 data URI."
},
"ChatCompletionImageConfig": {
"type": "object",
"properties": {
"aspect_ratio": {
"enum": [
"1:1",
"16:9",
"9:16",
"4:3",
"3:4",
"21:9"
],
"type": [
"null",
"string"
]
},
"image_size": {
"enum": [
"0.5K",
"1K",
"2K",
"4K"
],
"type": [
"null",
"string"
],
"description": "Approximate output resolution. \"1K\" ≈ 1MP, \"2K\" ≈ 2MP, etc. Engines clamp to their supported range."
},
"n": {
"maximum": 10,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Number of images to generate. Engines may clamp to their supported maximum.",
"format": "int32"
}
},
"additionalProperties": false,
"description": "Image generation parameters used when Civitai.Orchestration.Grains.Workflows.Steps.ChatCompletion.ChatCompletionInput.Modalities contains \"image\".\nMirrors OpenRouter's `image_config` shape on chat-completion requests."
},
"ChatCompletionImageUrl": {
"required": [
"url"
],
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "A URL, base64 data URI, or raw base64.",
"format": "source-image"
},
"detail": {
"type": [
"null",
"string"
],
"description": "The detail level for processing the image.\n\"low\", \"high\", or \"auto\" (default).",
"default": "auto"
}
},
"additionalProperties": false
},
"ChatCompletionInput": {
"required": [
"messages",
"model"
],
"type": "object",
"properties": {
"model": {
"minLength": 1,
"type": "string"
},
"messages": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/components/schemas/ChatCompletionMessage"
}
},
"temperature": {
"maximum": 2,
"minimum": 0,
"type": "number",
"description": "Temperature for sampling (0-2). Higher values make output more random.",
"format": "double",
"default": 1
},
"topP": {
"maximum": 1,
"minimum": 0,
"type": "number",
"description": "Nucleus sampling parameter. Consider tokens with top_p probability mass.",
"format": "double",
"default": 1
},
"maxTokens": {
"maximum": 128000,
"minimum": 1,
"type": [
"null",
"integer"
],
"format": "int32"
},
"thinkingTokenBudget": {
"maximum": 2147483647,
"minimum": -1,
"type": [
"null",
"integer"
],
"description": "vLLM reasoning-token limit per completion, including each server-tool round: 0 ends thinking immediately,\n-1/null sets no separate limit. MaxTokens still caps thinking plus answer tokens.",
"format": "int32"
},
"reasoningEffort": {
"pattern": "^(none|minimal|low|medium|high|xhigh)$",
"type": [
"null",
"string"
],
"description": "OpenAI reasoning_effort: none, minimal, low, medium, high or xhigh. Portable across vLLM\nand hosted providers; the worker translates it to each provider's native reasoning control."
},
"n": {
"maximum": 128,
"minimum": 1,
"type": "integer",
"description": "Number of completions to generate.",
"format": "int32",
"default": 1
},
"stop": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
},
"description": "Up to 4 sequences where the API will stop generating tokens."
},
"presencePenalty": {
"maximum": 2,
"minimum": -2,
"type": "number",
"description": "Presence penalty (-2.0 to 2.0). Positive values penalize new tokens based on whether they appear in the text so far.",
"format": "double",
"default": 0
},
"frequencyPenalty": {
"maximum": 2,
"minimum": -2,
"type": "number",
"description": "Frequency penalty (-2.0 to 2.0). Positive values penalize new tokens based on their existing frequency in the text.",
"format": "double",
"default": 0
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"user": {
"type": [
"null",
"string"
]
},
"logprobs": {
"type": [
"null",
"boolean"
]
},
"topLogprobs": {
"maximum": 20,
"minimum": 0,
"type": [
"null",
"integer"
],
"description": "Number of top log probability candidates to return per generated token.\nRequires Civitai.Orchestration.Grains.Workflows.Steps.ChatCompletion.ChatCompletionInput.Logprobs to be enabled.",
"format": "int32"
},
"chatTemplateKwargs": {
"type": [
"null",
"object"
],
"additionalProperties": {},
"description": "Model-specific chat template options, forwarded unchanged to vLLM as chat_template_kwargs.\nPrefer reasoningEffort and thinkingTokenBudget for reasoning control."
},
"tools": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/ChatCompletionTool"
}
},
"tool_choice": {
"type": "null",
"description": "Controls which (if any) tool is called by the model.\nCan be \"auto\", \"none\", \"required\", or an object specifying a particular function."
},
"modalities": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
},
"description": "Output modalities, \"text\" and/or \"image\"; defaults to text-only. Including \"image\" routes the request to the\nimage generation pipeline and returns generated images on the assistant message."
},
"image_config": {
"$ref": "#/components/schemas/ChatCompletionImageConfig"
},
"responseFormat": {
"$ref": "#/components/schemas/ChatCompletionResponseFormat"
}
},
"additionalProperties": false,
"description": "Input for a chat completion step, compatible with OpenAI Chat Completions API."
},
"ChatCompletionJsonSchema": {
"required": [
"name",
"schema"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string"
},
"description": {
"type": [
"null",
"string"
]
},
"schema": {},
"strict": {
"type": [
"null",
"boolean"
],
"description": "OpenAI strict mode. Forces additionalProperties=false and all fields required."
}
},
"additionalProperties": false
},
"ChatCompletionMessage": {
"required": [
"role"
],
"type": "object",
"properties": {
"role": {
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "role",
"mapping": {
"user": "#/components/schemas/UserMessage",
"system": "#/components/schemas/SystemMessage",
"assistant": "#/components/schemas/AssistantMessage",
"tool": "#/components/schemas/ToolMessage"
}
}
},
"ChatCompletionOutput": {
"required": [
"choices",
"created",
"id",
"model"
],
"type": "object",
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string",
"default": "chat.completion"
},
"created": {
"type": "integer",
"description": "Unix timestamp of when the completion was created.",
"format": "int64"
},
"model": {
"type": "string"
},
"choices": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChatCompletionChoice"
}
},
"usage": {
"$ref": "#/components/schemas/ChatCompletionUsage"
},
"systemFingerprint": {
"type": [
"null",
"string"
]
},
"parsed": {
"type": "null",
"description": "Parsed JSON of `Choices[0].Message.Content`, populated when the request used a JSON `response_format`\nand the content parsed. Reachable from later steps via `$ref` paths like `output.parsed.`."
}
},
"additionalProperties": false
},
"ChatCompletionResponseFormat": {
"required": [
"type"
],
"type": "object",
"properties": {
"type": {
"minLength": 1,
"type": "string",
"description": "OpenAI-compatible value: `text`, `json_object`, or `json_schema`."
},
"jsonSchema": {
"$ref": "#/components/schemas/ChatCompletionJsonSchema"
}
},
"additionalProperties": false,
"description": "OpenAI-compatible response_format. For `json_object` or `json_schema` the content is parsed server-side and\nexposed on Civitai.Orchestration.Grains.Workflows.Steps.ChatCompletion.ChatCompletionOutput.Parsed for `$ref` paths like `output.parsed.`."
},
"ChatCompletionStep": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStep"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/ChatCompletionInput"
},
"output": {
"$ref": "#/components/schemas/ChatCompletionOutput"
},
"$type": {
"enum": [
"chatCompletion"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "ChatCompletion"
},
"ChatCompletionStepTemplate": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStepTemplate"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/ChatCompletionInput"
},
"$type": {
"enum": [
"chatCompletion"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "ChatCompletion"
},
"ChatCompletionTokensDetails": {
"type": "object",
"properties": {
"reasoningTokens": {
"type": [
"null",
"integer"
],
"description": "Reasoning tokens generated before the answer; billed as completion tokens.",
"format": "int32"
}
},
"additionalProperties": false
},
"ChatCompletionTool": {
"required": [
"type"
],
"type": "object",
"properties": {
"type": {
"type": "string"
},
"function": {
"$ref": "#/components/schemas/ChatCompletionFunction"
},
"parameters": {
"type": "null",
"description": "Server-tool parameters for providers such as OpenRouter."
}
},
"additionalProperties": false
},
"ChatCompletionToolCall": {
"required": [
"function",
"id",
"type"
],
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"function": {
"$ref": "#/components/schemas/ChatCompletionFunctionCall"
}
},
"additionalProperties": false
},
"ChatCompletionUsage": {
"required": [
"completionTokens",
"promptTokens",
"totalTokens"
],
"type": "object",
"properties": {
"promptTokens": {
"type": "integer",
"format": "int32"
},
"completionTokens": {
"type": "integer",
"format": "int32"
},
"totalTokens": {
"type": "integer",
"format": "int32"
},
"completionTokensDetails": {
"$ref": "#/components/schemas/ChatCompletionTokensDetails"
}
},
"additionalProperties": false
},
"ChromaAIToolkitTrainingInput": {
"allOf": [
{
"$ref": "#/components/schemas/AIToolkitTrainingInput"
},
{
"required": [
"ecosystem",
"engine"
],
"type": "object",
"properties": {
"ecosystem": {
"enum": [
"chroma"
],
"type": "string"
},
"engine": {
"enum": [
"ai-toolkit"
],
"type": "string"
},
"batchSize": {
"maximum": 1,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Training batch size. Fixed at 1 for this ecosystem.",
"default": 1
}
},
"additionalProperties": false
}
]
},
"CoarseMode": {
"enum": [
"disable",
"enable"
],
"type": "string"
},
"ComfyAnimaCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyAnimaImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"anima"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyAnimaImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": [
"null",
"string"
],
"default": "createImage"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 30
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 4
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffuserModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"controlNets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageJobControlNet"
}
},
"vaeModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"ecosystem": {
"enum": [
"anima"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyAnimaCreateImageGenInput",
"createVariant": "#/components/schemas/ComfyAnimaVariantImageGenInput"
}
}
}
]
},
"ComfyAnimaVariantImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyAnimaImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"image",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"image": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"denoiseStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0.75
},
"operation": {
"enum": [
"createVariant"
],
"type": "string"
},
"ecosystem": {
"enum": [
"anima"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyBooguBaseCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguBaseImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"base"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyBooguBaseImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 4
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"base"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyBooguBaseCreateImageGenInput"
}
}
}
]
},
"ComfyBooguEditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 25
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 3.5
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"edit"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"editImage": "#/components/schemas/ComfyBooguEditImageInput"
}
}
}
]
},
"ComfyBooguEditImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguEditImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"images": {
"maxItems": 2,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"edit"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyBooguEditTurboImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 4
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"editTurbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"editImage": "#/components/schemas/ComfyBooguEditTurboImageInput"
}
}
}
]
},
"ComfyBooguEditTurboImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguEditTurboImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"images": {
"maxItems": 2,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"editTurbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyBooguImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"base": "#/components/schemas/ComfyBooguBaseImageGenInput",
"turbo": "#/components/schemas/ComfyBooguTurboImageGenInput",
"edit": "#/components/schemas/ComfyBooguEditImageGenInput",
"editTurbo": "#/components/schemas/ComfyBooguEditTurboImageGenInput"
}
}
}
]
},
"ComfyBooguTurboCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguTurboImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyBooguTurboImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyBooguImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 4
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"boogu"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyBooguTurboCreateImageGenInput"
}
}
}
]
},
"ComfyChromaCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyChromaImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"chroma"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyChromaImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 28
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 3.5
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"model": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"ecosystem": {
"enum": [
"chroma"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyChromaCreateImageGenInput"
}
}
}
]
},
"ComfyErnieImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": "string"
},
"ecosystem": {
"enum": [
"ernie"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"ernie": "#/components/schemas/ComfyErnieStandardImageGenInput",
"turbo": "#/components/schemas/ComfyErnieTurboImageGenInput"
}
}
}
]
},
"ComfyErnieStandardCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyErnieStandardImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"ernie"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ernie"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyErnieStandardImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyErnieImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 4
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"ernie"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ernie"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyErnieStandardCreateImageGenInput"
}
}
}
]
},
"ComfyErnieTurboCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyErnieTurboImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ernie"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyErnieTurboImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyErnieImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 8
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ernie"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyErnieTurboCreateImageGenInput"
}
}
}
]
},
"ComfyFlux1CreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyFlux1EditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"steps": {
"type": "integer",
"format": "int32",
"default": 28
},
"images": {
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"description": "Uses only the first image for image-to-image at denoise strength 0.7. An empty list generates from text, matching sdcpp Flux 1 editImage."
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Compatibility route for sdcpp Flux 1 editing: ordinary image-to-image using only\nthe first source image, or text-to-image when the image list is empty."
},
"ComfyFlux1ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": [
"null",
"string"
],
"default": "createImage"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 3.5
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"model": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"vaeModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"controlNets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageJobControlNet"
}
},
"ecosystem": {
"enum": [
"flux1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyFlux1CreateImageGenInput",
"createVariant": "#/components/schemas/ComfyFlux1VariantImageGenInput",
"editImage": "#/components/schemas/ComfyFlux1EditImageGenInput"
}
}
}
]
},
"ComfyFlux1VariantImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"image",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"image": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"denoiseStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0.75
},
"operation": {
"enum": [
"createVariant"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyFlux2DevCreateImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux2DevImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux2Dev"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyFlux2DevEditImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux2DevImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 9,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux2Dev"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyFlux2DevImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 1000,
"minLength": 0,
"type": "string"
},
"width": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"cfgScale": {
"maximum": 20,
"minimum": 1,
"type": "number",
"format": "double",
"default": 1
},
"steps": {
"maximum": 50,
"minimum": 4,
"type": "integer",
"format": "int32",
"default": 20
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"negativePrompt": {
"type": [
"null",
"string"
]
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"ecosystem": {
"enum": [
"flux2Dev"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyFlux2DevCreateImageInput",
"editImage": "#/components/schemas/ComfyFlux2DevEditImageInput",
"createVariant": "#/components/schemas/ComfyFlux2DevVariantImageGenInput"
}
}
}
]
},
"ComfyFlux2DevVariantImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux2DevImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"image",
"operation"
],
"type": "object",
"properties": {
"image": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"strength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0.7
},
"operation": {
"enum": [
"createVariant"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux2Dev"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyFlux2KleinCreateImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux2KleinImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux2Klein"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyFlux2KleinEditImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux2KleinImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux2Klein"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyFlux2KleinImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 1000,
"minLength": 0,
"type": "string"
},
"width": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"cfgScale": {
"maximum": 20,
"minimum": 1,
"type": "number",
"format": "double",
"default": 5
},
"steps": {
"maximum": 50,
"minimum": 4,
"type": "integer",
"format": "int32",
"default": 20
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"negativePrompt": {
"type": [
"null",
"string"
]
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"modelVersion": {
"enum": [
"4b",
"4b-base",
"9b",
"9b-base",
"9b-kv"
],
"type": "string",
"description": "Klein model variant. Both 9b and 9b-kv always use the 9B KV checkpoint and reference-image caching. 4B and Base variants use their original checkpoints.",
"default": "4b"
},
"ecosystem": {
"enum": [
"flux2Klein"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyFlux2KleinCreateImageInput",
"editImage": "#/components/schemas/ComfyFlux2KleinEditImageInput",
"createVariant": "#/components/schemas/ComfyFlux2KleinVariantImageGenInput"
}
}
}
]
},
"ComfyFlux2KleinVariantImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyFlux2KleinImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"image",
"operation"
],
"type": "object",
"properties": {
"image": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"strength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0.7
},
"operation": {
"enum": [
"createVariant"
],
"type": "string"
},
"ecosystem": {
"enum": [
"flux2Klein"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyHiDreamI1CreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyHiDreamI1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"hidream"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyHiDreamI1ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"variant": {
"$ref": "#/components/schemas/HiDreamI1Variant"
},
"precision": {
"$ref": "#/components/schemas/HiDreamI1Precision"
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": [
"null",
"integer"
],
"description": "Defaults to 16 for fast, 28 for dev and 50 for full.",
"format": "int32"
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": [
"null",
"number"
],
"description": "Defaults to 1 for fast and dev, 5 for full.",
"format": "double"
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"ecosystem": {
"enum": [
"hidream"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyHiDreamI1CreateImageGenInput"
}
}
}
]
},
"ComfyHiDreamImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": "string"
},
"ecosystem": {
"enum": [
"hidream-o1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"HiDream-O1-Image": "#/components/schemas/ComfyHiDreamO1ImageGenInput",
"HiDream-O1-Image-dev": "#/components/schemas/ComfyHiDreamO1DevImageGenInput"
}
}
}
]
},
"ComfyHiDreamO1CreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyHiDreamO1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"HiDream-O1-Image"
],
"type": "string"
},
"ecosystem": {
"enum": [
"hidream-o1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyHiDreamO1DevCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyHiDreamO1DevImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"HiDream-O1-Image-dev"
],
"type": "string"
},
"ecosystem": {
"enum": [
"hidream-o1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyHiDreamO1DevEditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyHiDreamO1DevImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"HiDream-O1-Image-dev"
],
"type": "string"
},
"ecosystem": {
"enum": [
"hidream-o1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyHiDreamO1DevImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyHiDreamImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 2048
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 2048
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 28
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"checkpointModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string",
"default": "urn:air:hidream-o1:checkpoint:civitai:2618495@2939964"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"model": {
"enum": [
"HiDream-O1-Image-dev"
],
"type": "string"
},
"ecosystem": {
"enum": [
"hidream-o1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyHiDreamO1DevCreateImageGenInput",
"editImage": "#/components/schemas/ComfyHiDreamO1DevEditImageGenInput"
}
}
}
]
},
"ComfyHiDreamO1EditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyHiDreamO1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"HiDream-O1-Image"
],
"type": "string"
},
"ecosystem": {
"enum": [
"hidream-o1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyHiDreamO1ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyHiDreamImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 2048
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 2048
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 40
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 5
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"checkpointModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string",
"default": "urn:air:hidream-o1:checkpoint:civitai:2618495@2939946"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"model": {
"enum": [
"HiDream-O1-Image"
],
"type": "string"
},
"ecosystem": {
"enum": [
"hidream-o1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyHiDreamO1CreateImageGenInput",
"editImage": "#/components/schemas/ComfyHiDreamO1EditImageGenInput"
}
}
}
]
},
"ComfyIdeogram4CreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyIdeogram4ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ideogram4"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyIdeogram4ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 12
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 7
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"unconditionalDiffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"ecosystem": {
"enum": [
"ideogram4"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyIdeogram4CreateImageGenInput"
}
}
}
]
},
"ComfyImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ImageGenInput"
},
{
"required": [
"ecosystem",
"engine"
],
"type": "object",
"properties": {
"ecosystem": {
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "ecosystem",
"mapping": {
"sd1": "#/components/schemas/ComfySd1ImageGenInput",
"sdxl": "#/components/schemas/ComfySdxlImageGenInput",
"flux1": "#/components/schemas/ComfyFlux1ImageGenInput",
"flux2Dev": "#/components/schemas/ComfyFlux2DevImageGenInput",
"ernie": "#/components/schemas/ComfyErnieImageGenInput",
"hidream-o1": "#/components/schemas/ComfyHiDreamImageGenInput",
"hidream": "#/components/schemas/ComfyHiDreamI1ImageGenInput",
"chroma": "#/components/schemas/ComfyChromaImageGenInput",
"ponyV7": "#/components/schemas/ComfyPonyV7ImageGenInput",
"anima": "#/components/schemas/ComfyAnimaImageGenInput",
"lens": "#/components/schemas/ComfyLensImageGenInput",
"ming": "#/components/schemas/ComfyMingImageGenInput",
"ideogram4": "#/components/schemas/ComfyIdeogram4ImageGenInput",
"boogu": "#/components/schemas/ComfyBooguImageGenInput",
"krea2": "#/components/schemas/ComfyKrea2ImageGenInput",
"mageflow": "#/components/schemas/ComfyMageFlowImageGenInput",
"flux2Klein": "#/components/schemas/ComfyFlux2KleinImageGenInput",
"qwen": "#/components/schemas/ComfyQwenImageGenInput",
"zImage": "#/components/schemas/ComfyZImageImageGenInput"
}
}
}
]
},
"ComfyImageToSvgInput": {
"allOf": [
{
"$ref": "#/components/schemas/ImageToSvgInput"
},
{
"required": [
"ecosystem",
"engine"
],
"type": "object",
"properties": {
"ecosystem": {
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "ecosystem",
"mapping": {
"starvector": "#/components/schemas/StarVectorImageToSvgInput",
"omnisvg": "#/components/schemas/OmniSvgImageToSvgInput",
"vtracer": "#/components/schemas/VTracerImageToSvgInput"
}
}
}
]
},
"ComfyInput": {
"required": [
"comfyWorkflow"
],
"type": "object",
"properties": {
"comfyWorkflow": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ComfyNode"
}
},
"quantity": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"description": "The number of jobs to start with this workflow.",
"format": "int32",
"default": 1
},
"imageMetadata": {
"type": [
"null",
"string"
],
"description": "External metadata that will be stored with the image"
},
"useSpineComfy": {
"type": [
"null",
"boolean"
],
"description": "Opt-into using the spine controller exclusively"
}
},
"additionalProperties": false
},
"ComfyKrea2EditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyKrea2ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 10
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"edit"
],
"type": "string"
},
"ecosystem": {
"enum": [
"krea2"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"editImage": "#/components/schemas/ComfyKrea2EditImageInput"
}
}
}
]
},
"ComfyKrea2EditImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyKrea2EditImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"images",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"images": {
"maxItems": 2,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"edit"
],
"type": "string"
},
"ecosystem": {
"enum": [
"krea2"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyKrea2ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": "string"
},
"ecosystem": {
"enum": [
"krea2"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"raw": "#/components/schemas/ComfyKrea2RawImageGenInput",
"turbo": "#/components/schemas/ComfyKrea2TurboImageGenInput",
"edit": "#/components/schemas/ComfyKrea2EditImageGenInput"
}
}
}
]
},
"ComfyKrea2RawCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyKrea2RawImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"raw"
],
"type": "string"
},
"ecosystem": {
"enum": [
"krea2"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyKrea2RawImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyKrea2ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 4
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"raw"
],
"type": "string"
},
"ecosystem": {
"enum": [
"krea2"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyKrea2RawCreateImageGenInput"
}
}
}
]
},
"ComfyKrea2TurboCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyKrea2TurboImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"krea2"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyKrea2TurboImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyKrea2ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 8
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"krea2"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyKrea2TurboCreateImageGenInput"
}
}
}
]
},
"ComfyLensImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": "string"
},
"ecosystem": {
"enum": [
"lens"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"normal": "#/components/schemas/ComfyLensNormalImageGenInput",
"turbo": "#/components/schemas/ComfyLensTurboImageGenInput"
}
}
}
]
},
"ComfyLensNormalCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLensNormalImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"normal"
],
"type": "string"
},
"ecosystem": {
"enum": [
"lens"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyLensNormalImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLensImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 4
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"normal"
],
"type": "string"
},
"ecosystem": {
"enum": [
"lens"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyLensNormalCreateImageGenInput"
}
}
}
]
},
"ComfyLensTurboCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLensTurboImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"lens"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyLensTurboImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLensImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 4
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"lens"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyLensTurboCreateImageGenInput"
}
}
}
]
},
"ComfyLtx23AudioToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceAudio"
],
"type": "object",
"properties": {
"referenceImage": {
"type": [
"null",
"string"
],
"description": "Optional reference image (e.g. talking-head subject). When provided, the video is anchored to this image.",
"format": "source-image"
},
"sourceAudio": {
"type": "string",
"format": "uri"
},
"imageGuideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"description": "Strength of the image guide conditioning (0.0 to 1.0). Only used when ReferenceImage is provided.\nStage 1 strength; stage 2 is fixed at 0.5.",
"format": "float",
"default": 0.7
},
"audioToVideoAttentionScale": {
"maximum": 10,
"minimum": 0,
"type": "number",
"description": "Audio-to-video cross-attention boost applied via LTX2AttentionTunerPatch.\nHigher values make audio drive the video more strongly.",
"format": "float",
"default": 2
},
"operation": {
"enum": [
"audioToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.3"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Generate video driven by a reference audio track, optionally anchored to a reference image (ComfyUI backend)"
},
"ComfyLtx23CreateVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"description": "Optional source image for image-to-video generation"
},
"operation": {
"enum": [
"createVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.3"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Create video from text prompt, optionally with a source image (ComfyUI backend)"
},
"ComfyLtx23EditVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"cannyLowThreshold": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.4
},
"cannyHighThreshold": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.8
},
"guideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 1
},
"operation": {
"enum": [
"editVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.3"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Edit/transform an existing video using Canny edge control (ComfyUI backend)"
},
"ComfyLtx23ExtendVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"numFrames": {
"maximum": 481,
"minimum": 9,
"type": "integer",
"format": "int32",
"default": 121
},
"operation": {
"enum": [
"extendVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.3"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyLtx23FirstLastFrameToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"firstFrame": {
"type": [
"null",
"string"
],
"description": "First frame guide image. At least one of FirstFrame or LastFrame must be provided.",
"format": "source-image"
},
"lastFrame": {
"type": [
"null",
"string"
],
"description": "Last frame guide image. At least one of FirstFrame or LastFrame must be provided.",
"format": "source-image"
},
"frameGuideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.7
},
"operation": {
"enum": [
"firstLastFrameToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.3"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Generate video guided by first and/or last frame images using LTXVAddGuide conditioning (ComfyUI backend)"
},
"ComfyLtx23VideoGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": [
"null",
"string"
],
"default": "createVideo"
},
"negativePrompt": {
"type": [
"null",
"string"
]
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"duration": {
"maximum": 20,
"minimum": 3,
"type": "integer",
"description": "Duration in seconds (3 through 20)",
"format": "int32",
"default": 5
},
"width": {
"type": "integer",
"format": "int32",
"default": 1280
},
"height": {
"type": "integer",
"format": "int32",
"default": 720
},
"fps": {
"maximum": 60,
"minimum": 1,
"type": "number",
"format": "float",
"default": 24
},
"generateAudio": {
"type": "boolean",
"default": true
},
"guidanceScale": {
"maximum": 10,
"minimum": 1,
"type": "number",
"format": "float",
"default": 4
},
"steps": {
"maximum": 50,
"minimum": 8,
"type": "integer",
"format": "int32",
"default": 20
},
"model": {
"enum": [
"22b-dev",
"22b-distilled"
],
"type": "string",
"default": "22b-dev"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "Overrides the transformer checkpoint selected by Civitai.Orchestration.Grains.Workflows.Steps.VideoGen.ComfyLtx23VideoGenInput.Model, leaving CLIPs, VAEs and upscale LoRA unchanged;\nuse it for community fine-tunes (e.g. SulphurAI/Sulphur-2-base)."
},
"quantity": {
"maximum": 10,
"minimum": 1,
"type": "integer",
"description": "Number of videos to generate in this single job. Each video uses a distinct seed\n(Seed + slotIndex) and is produced by re-running the Comfy workflow.",
"format": "int32",
"default": 1
},
"engine": {
"enum": [
"ltx2.3"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createVideo": "#/components/schemas/ComfyLtx23CreateVideoInput",
"extendVideo": "#/components/schemas/ComfyLtx23ExtendVideoInput",
"editVideo": "#/components/schemas/ComfyLtx23EditVideoInput",
"firstLastFrameToVideo": "#/components/schemas/ComfyLtx23FirstLastFrameToVideoInput",
"videoToVideo": "#/components/schemas/ComfyLtx23VideoToVideoInput",
"audioToVideo": "#/components/schemas/ComfyLtx23AudioToVideoInput"
}
}
}
]
},
"ComfyLtx23VideoToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"guideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.2
},
"operation": {
"enum": [
"videoToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.3"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Style-transfer an existing video using prompt guidance (ComfyUI backend)"
},
"ComfyLtx25AudioToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceAudio"
],
"type": "object",
"properties": {
"referenceImage": {
"type": [
"null",
"string"
],
"description": "Optional reference image (e.g. talking-head subject). When provided, the video is anchored to this image.",
"format": "source-image"
},
"sourceAudio": {
"type": "string",
"format": "uri"
},
"imageGuideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"description": "Strength of the image guide conditioning (0.0 to 1.0). Only used when ReferenceImage is provided.\nStage 1 strength; stage 2 is fixed at 0.5.",
"format": "float",
"default": 0.7
},
"audioToVideoAttentionScale": {
"maximum": 10,
"minimum": 0,
"type": "number",
"description": "Audio-to-video cross-attention boost applied via LTX2AttentionTunerPatch.\nHigher values make audio drive the video more strongly.",
"format": "float",
"default": 2
},
"operation": {
"enum": [
"audioToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.5"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Generate video driven by a reference audio track, optionally anchored to a reference image (ComfyUI backend)"
},
"ComfyLtx25CreateVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"description": "Optional source image for image-to-video generation"
},
"operation": {
"enum": [
"createVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.5"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Create video from text prompt, optionally with a source image (ComfyUI backend)"
},
"ComfyLtx25EditVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"guideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 1
},
"operation": {
"enum": [
"editVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.5"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Edit/transform an existing video using prompt and source-video guidance (ComfyUI backend)"
},
"ComfyLtx25ExtendVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"numFrames": {
"maximum": 481,
"minimum": 9,
"type": "integer",
"format": "int32",
"default": 121
},
"operation": {
"enum": [
"extendVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.5"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyLtx25FirstLastFrameToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"firstFrame": {
"type": [
"null",
"string"
],
"description": "First frame guide image. At least one of FirstFrame or LastFrame must be provided.",
"format": "source-image"
},
"lastFrame": {
"type": [
"null",
"string"
],
"description": "Last frame guide image. At least one of FirstFrame or LastFrame must be provided.",
"format": "source-image"
},
"frameGuideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.7
},
"operation": {
"enum": [
"firstLastFrameToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.5"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Generate video guided by first and/or last frame images using LTXVAddGuide conditioning (ComfyUI backend)"
},
"ComfyLtx25VideoGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": [
"null",
"string"
],
"default": "createVideo"
},
"negativePrompt": {
"type": [
"null",
"string"
]
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"duration": {
"maximum": 20,
"minimum": 3,
"type": "integer",
"description": "Duration in seconds (3 through 20)",
"format": "int32",
"default": 5
},
"width": {
"type": "integer",
"format": "int32",
"default": 1280
},
"height": {
"type": "integer",
"format": "int32",
"default": 720
},
"fps": {
"maximum": 60,
"minimum": 1,
"type": "number",
"format": "float",
"default": 24
},
"generateAudio": {
"type": "boolean",
"default": true
},
"guidanceScale": {
"maximum": 10,
"minimum": 1,
"type": "number",
"format": "float",
"default": 4
},
"steps": {
"maximum": 50,
"minimum": 8,
"type": "integer",
"format": "int32",
"default": 20
},
"model": {
"enum": [
"22b-dev",
"22b-distilled"
],
"type": "string",
"default": "22b-dev"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "Overrides the transformer checkpoint selected by Civitai.Orchestration.Grains.Workflows.Steps.VideoGen.ComfyLtx25VideoGenInput.Model, leaving text encoder, VAEs and upscale LoRA unchanged;\nuse it for community fine-tunes (e.g. SulphurAI/Sulphur-2-base)."
},
"quantity": {
"maximum": 10,
"minimum": 1,
"type": "integer",
"description": "Number of videos to generate in this single job. Each video uses a distinct seed\n(Seed + slotIndex) and is produced by re-running the Comfy workflow.",
"format": "int32",
"default": 1
},
"engine": {
"enum": [
"ltx2.5"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createVideo": "#/components/schemas/ComfyLtx25CreateVideoInput",
"extendVideo": "#/components/schemas/ComfyLtx25ExtendVideoInput",
"editVideo": "#/components/schemas/ComfyLtx25EditVideoInput",
"firstLastFrameToVideo": "#/components/schemas/ComfyLtx25FirstLastFrameToVideoInput",
"videoToVideo": "#/components/schemas/ComfyLtx25VideoToVideoInput",
"audioToVideo": "#/components/schemas/ComfyLtx25AudioToVideoInput"
}
}
}
]
},
"ComfyLtx25VideoToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"guideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.2
},
"operation": {
"enum": [
"videoToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2.5"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Style-transfer an existing video using prompt guidance (ComfyUI backend)"
},
"ComfyLtx2CreateVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"description": "Optional source image for image-to-video generation"
},
"operation": {
"enum": [
"createVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Create video from text prompt, optionally with a source image (ComfyUI backend)"
},
"ComfyLtx2EditVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"cannyLowThreshold": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.4
},
"cannyHighThreshold": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.8
},
"guideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 1
},
"operation": {
"enum": [
"editVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Edit/transform an existing video using Canny edge control (ComfyUI backend)"
},
"ComfyLtx2ExtendVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
},
{
"required": [
"engine",
"operation",
"sourceVideo"
],
"type": "object",
"properties": {
"sourceVideo": {
"type": "string",
"format": "uri"
},
"numFrames": {
"maximum": 481,
"minimum": 9,
"type": "integer",
"format": "int32",
"default": 121
},
"operation": {
"enum": [
"extendVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyLtx2FirstLastFrameToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"firstFrame": {
"type": [
"null",
"string"
],
"description": "First frame guide image. At least one of FirstFrame or LastFrame must be provided.",
"format": "source-image"
},
"lastFrame": {
"type": [
"null",
"string"
],
"description": "Last frame guide image. At least one of FirstFrame or LastFrame must be provided.",
"format": "source-image"
},
"frameGuideStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "float",
"default": 0.7
},
"operation": {
"enum": [
"firstLastFrameToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"ltx2"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Generate video guided by first and/or last frame images using LTXVAddGuide conditioning (ComfyUI backend)"
},
"ComfyLtx2VideoGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": [
"null",
"string"
],
"default": "createVideo"
},
"negativePrompt": {
"type": [
"null",
"string"
]
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"duration": {
"enum": [
3,
5
],
"type": "integer",
"description": "Duration in seconds (3 or 5)",
"format": "int32",
"default": 5
},
"width": {
"type": "integer",
"format": "int32",
"default": 1280
},
"height": {
"type": "integer",
"format": "int32",
"default": 720
},
"fps": {
"maximum": 60,
"minimum": 1,
"type": "number",
"format": "float",
"default": 24
},
"generateAudio": {
"type": "boolean",
"default": true
},
"guidanceScale": {
"maximum": 10,
"minimum": 1,
"type": "number",
"format": "float",
"default": 4
},
"steps": {
"maximum": 50,
"minimum": 8,
"type": "integer",
"format": "int32",
"default": 20
},
"model": {
"enum": [
"19b-dev",
"19b-distilled"
],
"type": "string",
"default": "19b-dev"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"engine": {
"enum": [
"ltx2"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createVideo": "#/components/schemas/ComfyLtx2CreateVideoInput",
"extendVideo": "#/components/schemas/ComfyLtx2ExtendVideoInput",
"editVideo": "#/components/schemas/ComfyLtx2EditVideoInput",
"firstLastFrameToVideo": "#/components/schemas/ComfyLtx2FirstLastFrameToVideoInput"
}
}
}
]
},
"ComfyMageFlow4bCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlow4bImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"4b"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyMageFlow4bEditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"images",
"model",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 30
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 5
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"images": {
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"model": {
"enum": [
"4b-edit"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"editImage": "#/components/schemas/ComfyMageFlow4bEditImageInput"
}
}
}
]
},
"ComfyMageFlow4bEditImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlow4bEditImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"images",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"images": {
"maxItems": 16,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"4b-edit"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyMageFlow4bEditTurboImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"images",
"model",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 4
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"quantity": {
"maximum": 4,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"images": {
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"model": {
"enum": [
"4b-edit-turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"editImage": "#/components/schemas/ComfyMageFlow4bEditTurboImageInput"
}
}
}
]
},
"ComfyMageFlow4bEditTurboImageInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlow4bEditTurboImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"images",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"images": {
"maxItems": 16,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"4b-edit-turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyMageFlow4bImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 5
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"model": {
"enum": [
"4b"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyMageFlow4bCreateImageGenInput"
}
}
}
]
},
"ComfyMageFlow4bTurboCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlow4bTurboImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 512,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"4b-turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyMageFlow4bTurboImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 4
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"model": {
"enum": [
"4b-turbo"
],
"type": "string"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyMageFlow4bTurboCreateImageGenInput"
}
}
}
]
},
"ComfyMageFlowImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"cfgScale",
"ecosystem",
"engine",
"model",
"prompt",
"quantity",
"steps"
],
"type": "object",
"properties": {
"model": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"steps": {
"type": "integer",
"format": "int32"
},
"cfgScale": {
"type": "number",
"format": "double"
},
"quantity": {
"type": "integer",
"format": "int32"
},
"ecosystem": {
"enum": [
"mageflow"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"4b": "#/components/schemas/ComfyMageFlow4bImageGenInput",
"4b-turbo": "#/components/schemas/ComfyMageFlow4bTurboImageGenInput",
"4b-edit": "#/components/schemas/ComfyMageFlow4bEditImageGenInput",
"4b-edit-turbo": "#/components/schemas/ComfyMageFlow4bEditTurboImageGenInput"
}
}
}
]
},
"ComfyMingDesignCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMingDesignImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 256,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 256,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"design"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ming"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyMingDesignEditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMingDesignImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"height",
"images",
"model",
"operation",
"width"
],
"type": "object",
"properties": {
"images": {
"maxItems": 3,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"resolution": {
"maximum": 2048,
"minimum": 256,
"type": "integer",
"description": "Reference pixel budget as resolution squared, preserving the first image's aspect ratio.",
"format": "int32",
"default": 1024
},
"width": {
"type": "integer",
"format": "int32",
"readOnly": true
},
"height": {
"type": "integer",
"format": "int32",
"readOnly": true
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"design"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ming"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyMingDesignImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMingImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": [
"null",
"string"
],
"default": "createImage"
},
"prompt": {
"maxLength": 20000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 20000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 12
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"design"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ming"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyMingDesignCreateImageGenInput",
"editImage": "#/components/schemas/ComfyMingDesignEditImageGenInput"
}
}
}
]
},
"ComfyMingImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": [
"null",
"string"
],
"default": "design"
},
"ecosystem": {
"enum": [
"ming"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"design": "#/components/schemas/ComfyMingDesignImageGenInput"
}
}
}
]
},
"ComfyMiniMaxH3ControlVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMiniMaxH3VideoGenInput"
},
{
"required": [
"engine",
"operation",
"video"
],
"type": "object",
"properties": {
"video": {
"type": "string",
"format": "uri"
},
"strength": {
"maximum": 10,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"startPercent": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0
},
"endPercent": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"operation": {
"enum": [
"controlVideo"
],
"type": "string"
},
"engine": {
"enum": [
"minimax-h3-comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Video-to-video structure control using a preprocessed map and the MiniMax H3 Fun ControlNet Union model patch."
},
"ComfyMiniMaxH3ImageToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMiniMaxH3VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"firstFrame": {
"type": [
"null",
"string"
],
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"lastFrame": {
"type": [
"null",
"string"
],
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"operation": {
"enum": [
"imageToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"minimax-h3-comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Text-to-video or first/last-frame video using the FL2VA weights."
},
"ComfyMiniMaxH3ReferenceToVideoInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyMiniMaxH3VideoGenInput"
},
{
"required": [
"engine",
"images",
"operation"
],
"type": "object",
"properties": {
"images": {
"maxItems": 9,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"operation": {
"enum": [
"referenceToVideo"
],
"type": "string"
},
"engine": {
"enum": [
"minimax-h3-comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "Reference-image-to-video using the REF2VA weights."
},
"ComfyMiniMaxH3VideoGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/VideoGenInput"
},
{
"required": [
"engine",
"operation"
],
"type": "object",
"properties": {
"operation": {
"type": [
"null",
"string"
],
"default": "imageToVideo"
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"duration": {
"maximum": 15,
"minimum": 4,
"type": "integer",
"format": "int32",
"default": 5
},
"width": {
"maximum": 1344,
"minimum": 32,
"type": "integer",
"format": "int32",
"default": 864
},
"height": {
"maximum": 1344,
"minimum": 32,
"type": "integer",
"format": "int32",
"default": 480
},
"steps": {
"maximum": 60,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"fast": {
"type": "boolean",
"description": "Enables EasyCache with its default configuration.",
"default": false
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"turbo": {
"type": "boolean",
"default": false
},
"engine": {
"enum": [
"minimax-h3-comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"imageToVideo": "#/components/schemas/ComfyMiniMaxH3ImageToVideoInput",
"referenceToVideo": "#/components/schemas/ComfyMiniMaxH3ReferenceToVideoInput",
"controlVideo": "#/components/schemas/ComfyMiniMaxH3ControlVideoInput"
}
}
}
]
},
"ComfyNode": {
"required": [
"classType",
"inputs"
],
"type": "object",
"properties": {
"classType": {
"type": "string"
},
"meta": {
"type": [
"null",
"object"
],
"additionalProperties": {
"type": "string"
}
},
"isChanged": {
"type": [
"null",
"string"
]
},
"inputs": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"maxItems": 2,
"minItems": 2,
"type": "array",
"items": {
"type": "number"
}
}
]
}
}
},
"additionalProperties": false
},
"ComfyNodepackSnapshotInput": {
"required": [
"nodepacks"
],
"type": "object",
"properties": {
"comfyImage": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
],
"description": "The comfy image to install against, as an `oci:image` AIR. The captured layer is only valid for this exact\nimage, so it is part of the blob key; when omitted the handler uses the configured default comfy image."
},
"nodepacks": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "The `comfy:nodepack` AIRs to install and snapshot, e.g. `urn:air:comfy:nodepack:comfyregistry:kijai/comfyui-kjnodes@1.4.0`.\nOne snapshot job is produced per pack."
},
"minVramGb": {
"type": [
"null",
"integer"
],
"description": "Minimum GPU VRAM (GB) the capturing worker must report, so the install happens on hardware representative of the session's tier.",
"format": "int32"
},
"useSageAttention": {
"type": [
"null",
"boolean"
],
"description": "Optional Sage Attention toggle, forwarded to the worker's launch so the\ncaptured environment matches how the consumer runs the image."
}
},
"additionalProperties": false,
"description": "Installs ComfyUI custom nodepacks on a comfy image and captures the resolved install and editor metadata as\nreusable blobs. Runs on a real worker so compiled deps match the fleet the consumer will run on."
},
"ComfyNodepackSnapshotOutput": {
"required": [
"results"
],
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotResult"
}
}
},
"additionalProperties": false,
"description": "One result per installed pack, each carrying the captured install layer, full /object_info and web assets as\nblobs that consumers read directly from orchestrator blob storage."
},
"ComfyNodepackSnapshotResult": {
"required": [
"layer",
"layerAir",
"nodepack",
"objectInfo",
"web"
],
"type": "object",
"properties": {
"nodepack": {
"type": "string",
"description": "The pack AIR this result is for."
},
"layerAir": {
"type": "string",
"description": "The complete install-layer AIR (`urn:air:comfy:nodepacklayer:…@+`), the (pack, comfy image) pair.\nDeclare this, not the bare pack URN, on a customComfy step's `resources`."
},
"layer": {
"$ref": "#/components/schemas/Blob"
},
"objectInfo": {
"$ref": "#/components/schemas/Blob"
},
"web": {
"$ref": "#/components/schemas/Blob"
}
},
"additionalProperties": false
},
"ComfyNodepackSnapshotStep": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStep"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
},
"output": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotOutput"
},
"$type": {
"enum": [
"comfyNodepackSnapshot"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyNodepackSnapshotStepTemplate": {
"allOf": [
{
"$ref": "#/components/schemas/WorkflowStepTemplate"
},
{
"required": [
"$type",
"input"
],
"type": "object",
"properties": {
"input": {
"$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
},
"$type": {
"enum": [
"comfyNodepackSnapshot"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyOutput": {
"required": [
"blobs"
],
"type": "object",
"properties": {
"blobs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Blob"
}
}
},
"additionalProperties": false
},
"ComfyPolyGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/PolyGenInput"
},
{
"required": [
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"hunyuan3D": "#/components/schemas/Hunyuan3DComfyPolyGenInput",
"trellis2": "#/components/schemas/Trellis2ComfyPolyGenInput"
}
}
}
]
},
"ComfyPonyV7CreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyPonyV7ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"ponyV7"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyPonyV7ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 25
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 7
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"model": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"ecosystem": {
"enum": [
"ponyV7"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyPonyV7CreateImageGenInput"
}
}
}
]
},
"ComfyQwen20bCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyQwen20bImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"version": {
"enum": [
"latest",
"2509",
"2512"
],
"type": "string",
"default": "latest"
},
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"20b"
],
"type": "string"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyQwen20bEditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyQwen20bImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"height",
"images",
"model",
"operation",
"width"
],
"type": "object",
"properties": {
"version": {
"enum": [
"latest",
"2509",
"2511"
],
"type": "string",
"default": "latest"
},
"images": {
"maxItems": 3,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"width": {
"maximum": 2048,
"minimum": 0,
"type": "integer",
"format": "int32",
"readOnly": true
},
"height": {
"maximum": 2048,
"minimum": 0,
"type": "integer",
"format": "int32",
"readOnly": true
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"20b"
],
"type": "string"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyQwen20bImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyQwenImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 20
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 2.5
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"model": {
"enum": [
"20b"
],
"type": "string"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyQwen20bCreateImageGenInput",
"editImage": "#/components/schemas/ComfyQwen20bEditImageGenInput",
"createVariant": "#/components/schemas/ComfyQwen20bVariantImageGenInput"
}
}
}
]
},
"ComfyQwen20bVariantImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyQwen20bImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"height",
"image",
"model",
"operation",
"width"
],
"type": "object",
"properties": {
"version": {
"enum": [
"latest",
"2509",
"2512"
],
"type": "string",
"default": "latest"
},
"image": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"strength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0.7
},
"width": {
"maximum": 2048,
"minimum": 0,
"type": "integer",
"format": "int32",
"readOnly": true
},
"height": {
"maximum": 2048,
"minimum": 0,
"type": "integer",
"format": "int32",
"readOnly": true
},
"operation": {
"enum": [
"createVariant"
],
"type": "string"
},
"model": {
"enum": [
"20b"
],
"type": "string"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyQwen21CreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyQwen21ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"model": {
"enum": [
"2.1"
],
"type": "string"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyQwen21EditImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyQwen21ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"height",
"images",
"model",
"operation",
"width"
],
"type": "object",
"properties": {
"images": {
"maxItems": 10,
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
}
},
"resolution": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"description": "Reference pixel budget as resolution squared; preserves each image's aspect ratio.",
"format": "int32",
"default": 1024
},
"width": {
"type": "integer",
"format": "int32",
"readOnly": true
},
"height": {
"type": "integer",
"format": "int32",
"readOnly": true
},
"operation": {
"enum": [
"editImage"
],
"type": "string"
},
"model": {
"enum": [
"2.1"
],
"type": "string"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfyQwen21ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyQwenImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 25
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 1
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"diffusionModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"model": {
"enum": [
"2.1"
],
"type": "string"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfyQwen21CreateImageGenInput",
"editImage": "#/components/schemas/ComfyQwen21EditImageGenInput"
}
}
}
]
},
"ComfyQwenImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model"
],
"type": "object",
"properties": {
"model": {
"type": [
"null",
"string"
],
"default": "20b"
},
"ecosystem": {
"enum": [
"qwen"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "model",
"mapping": {
"20b": "#/components/schemas/ComfyQwen20bImageGenInput",
"2.1": "#/components/schemas/ComfyQwen21ImageGenInput"
}
}
}
]
},
"ComfySampler": {
"enum": [
"euler",
"euler_ancestral",
"euler_cfg_pp",
"euler_ancestral_cfg_pp",
"heun",
"heunpp2",
"dpm_2",
"dpm_2_ancestral",
"lms",
"dpm_fast",
"dpm_adaptive",
"dpmpp_2s_ancestral",
"dpmpp_2s_ancestral_cfg_pp",
"dpmpp_sde",
"dpmpp_sde_gpu",
"dpmpp_2m",
"dpmpp_2m_cfg_pp",
"dpmpp_2m_sde",
"dpmpp_2m_sde_gpu",
"dpmpp_3m_sde",
"dpmpp_3m_sde_gpu",
"ddpm",
"lcm",
"ipndm",
"ipndm_v",
"deis",
"ddim",
"uni_pc",
"uni_pc_bh2",
"res_multistep",
"er_sde"
],
"type": "string"
},
"ComfyScheduler": {
"enum": [
"normal",
"karras",
"exponential",
"sgm_uniform",
"simple",
"ddim_uniform",
"beta"
],
"type": "string"
},
"ComfySd1CreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfySd1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 1024,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 512
},
"height": {
"maximum": 1024,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 512
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"sd1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfySd1ImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 30
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 7
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"model": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"vaeModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"embeddings": {
"type": "array",
"items": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
}
},
"clipSkip": {
"type": "integer",
"format": "int32",
"default": 2
},
"controlNets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageJobControlNet"
}
},
"ecosystem": {
"enum": [
"sd1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "operation",
"mapping": {
"createImage": "#/components/schemas/ComfySd1CreateImageGenInput",
"createVariant": "#/components/schemas/ComfySd1VariantImageGenInput"
}
}
}
]
},
"ComfySd1VariantImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfySd1ImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"image",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 1024,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 512
},
"height": {
"maximum": 1024,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 512
},
"image": {
"type": "string",
"description": "Either A URL, A DataURL or a Base64 string",
"format": "source-image"
},
"denoiseStrength": {
"maximum": 1,
"minimum": 0,
"type": "number",
"format": "double",
"default": 0.75
},
"operation": {
"enum": [
"createVariant"
],
"type": "string"
},
"ecosystem": {
"enum": [
"sd1"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfySdxlCreateImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfySdxlImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"operation"
],
"type": "object",
"properties": {
"width": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"height": {
"maximum": 2048,
"minimum": 64,
"type": "integer",
"format": "int32",
"default": 1024
},
"operation": {
"enum": [
"createImage"
],
"type": "string"
},
"ecosystem": {
"enum": [
"sdxl"
],
"type": "string"
},
"engine": {
"enum": [
"comfy"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"ComfySdxlImageGenInput": {
"allOf": [
{
"$ref": "#/components/schemas/ComfyImageGenInput"
},
{
"required": [
"ecosystem",
"engine",
"model",
"operation",
"prompt"
],
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"prompt": {
"maxLength": 10000,
"minLength": 0,
"type": "string"
},
"negativePrompt": {
"maxLength": 10000,
"minLength": 0,
"type": [
"null",
"string"
]
},
"sampler": {
"$ref": "#/components/schemas/ComfySampler"
},
"scheduler": {
"$ref": "#/components/schemas/ComfyScheduler"
},
"steps": {
"maximum": 150,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 30
},
"cfgScale": {
"maximum": 30,
"minimum": 0,
"type": "number",
"format": "double",
"default": 7
},
"seed": {
"type": [
"null",
"integer"
],
"format": "int64"
},
"quantity": {
"maximum": 12,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 1
},
"model": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": "string"
},
"vaeModel": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?[a-zA-Z0-9_\\-]+))?$",
"type": [
"null",
"string"
]
},
"loras": {
"type": "object",
"additionalProperties": {
"type": "number",
"format": "double"
}
},
"embeddings": {
"type": "array",
"items": {
"pattern": "^(?:urn:)?(?:air:)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?:(?[a-zA-Z0-9_\\-\\/]+):)?(?[a-zA-Z0-9_\\-\\/]+):(?[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?