{ "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_\\-\\/\\.]+)(?:@(?[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": [ "sdxl" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/ComfySdxlCreateImageGenInput", "createVariant": "#/components/schemas/ComfySdxlVariantImageGenInput" } } } ] }, "ComfySdxlVariantImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfySdxlImageGenInput" }, { "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": [ "sdxl" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "ComfyStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ComfyInput" }, "output": { "$ref": "#/components/schemas/ComfyOutput" }, "$type": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ], "description": "Comfy workflows" }, "ComfyStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ComfyInput" }, "$type": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ], "description": "Comfy workflows" }, "ComfyTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/TrainingInput" }, { "required": [ "defaultSteps", "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": "Training batch size. Defaults to 1; raise it up to 4 for this ecosystem to train faster at the cost of more GPU memory.", "default": 1 }, "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 }, "resolution": { "maximum": 1024, "minimum": 256, "type": "integer", "format": "int32", "default": 1024 }, "noHalfVae": { "type": "boolean", "default": false }, "minSnrGamma": { "maximum": 20, "minimum": 0, "type": [ "null", "integer" ], "description": "Min-SNR gamma passed through to compatible training backends.", "format": "int32" }, "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 checkpoint to train upon. The model ecosystem drives Comfy training behavior.", "default": "urn:air:sdxl:checkpoint:civitai:101055@128078" }, "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": "Split diffusion model used by native Comfy training nodes. When omitted, checkpoint-backed families load Civitai.Orchestration.Grains.Workflows.Steps.Training.Comfy.ComfyTrainingInput.Model." }, "textEncoderModel": { "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": "Split text encoder used by native Comfy training nodes." }, "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": "Split VAE used by native Comfy training nodes." }, "trainingDtype": { "type": [ "null", "string" ] }, "loraDtype": { "type": [ "null", "string" ] }, "quantizedBackward": { "type": [ "null", "boolean" ] }, "bypassMode": { "type": [ "null", "boolean" ] }, "gradAccumulationSteps": { "type": [ "null", "integer" ], "format": "int32" }, "lossFunction": { "type": [ "null", "string" ] }, "algorithm": { "type": [ "null", "string" ] }, "checkpointDepth": { "type": [ "null", "integer" ], "format": "int32" }, "offloading": { "type": [ "null", "boolean" ] }, "clipType": { "type": [ "null", "string" ] }, "unetWeightDtype": { "type": [ "null", "string" ] }, "modelSamplingShift": { "type": [ "null", "number" ], "format": "double" }, "datasetCaching": { "type": [ "null", "boolean" ] }, "maxBatchSize": { "type": "integer", "format": "int32", "readOnly": true }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "ComfyZImageBaseCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyZImageBaseImageGenInput" }, { "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": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "ComfyZImageBaseImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyZImageImageGenInput" }, { "required": [ "ecosystem", "engine", "model", "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": 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" } }, "controlNets": { "type": "array", "items": { "$ref": "#/components/schemas/ImageJobControlNet" } }, "model": { "enum": [ "base" ], "type": "string" }, "ecosystem": { "enum": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/ComfyZImageBaseCreateImageGenInput" } } } ] }, "ComfyZImageImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyImageGenInput" }, { "required": [ "ecosystem", "engine", "model" ], "type": "object", "properties": { "model": { "type": [ "null", "string" ], "default": "turbo" }, "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": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "turbo": "#/components/schemas/ComfyZImageTurboImageGenInput", "base": "#/components/schemas/ComfyZImageBaseImageGenInput" } } } ] }, "ComfyZImageTurboCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyZImageTurboImageGenInput" }, { "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": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "ComfyZImageTurboImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyZImageImageGenInput" }, { "required": [ "ecosystem", "engine", "model", "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": 9 }, "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" } }, "controlNets": { "type": "array", "items": { "$ref": "#/components/schemas/ImageJobControlNet" } }, "model": { "enum": [ "turbo" ], "type": "string" }, "ecosystem": { "enum": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/ComfyZImageTurboCreateImageGenInput" } } } ] }, "ComposeMediaElementInput": { "type": "object", "properties": { "url": { "type": [ "null", "string" ], "description": "The source media URL. Either a direct `\"https://...\"` URL or a `$ref` to a prior\nstep's `Output.AudioBlob.Url` or `Output.VideoBlob.Url`.", "format": "uri" }, "at": { "type": [ "null", "number" ], "description": "Absolute start time on the output timeline, in seconds; anchors the element outside the implicit sequencing chain\n(e.g. a music bed). When unset, the element starts after the previous non-anchored element ends, nudged by Civitai.Orchestration.Grains.Workflows.Steps.ComposeMedia.ComposeMediaElementInput.Offset.", "format": "float" }, "offset": { "type": "number", "description": "Seconds to shift this element from its after-previous position: negative overlaps, positive leaves a gap.\nIgnored when Civitai.Orchestration.Grains.Workflows.Steps.ComposeMedia.ComposeMediaElementInput.At is set.", "format": "float", "default": 0 }, "layout": { "$ref": "#/components/schemas/MediaLayout" }, "transformers": { "type": "array", "items": { "$ref": "#/components/schemas/MediaTransformer" }, "description": "Ordered per-element transformers (fades, volume, ...) applied in array order." } }, "additionalProperties": false, "description": "A single audio or video element participating in a composition." }, "ComposeMediaInput": { "required": [ "elements" ], "type": "object", "properties": { "elements": { "type": "array", "items": { "$ref": "#/components/schemas/ComposeMediaElementInput" }, "description": "Elements in implicit sequencing order; overlapping audio is mixed, overlapping video is layered by canvas\n`zOrder` then array order. To stitch videos end-to-end, list them with no `at`/`offset`." }, "canvas": { "$ref": "#/components/schemas/MediaCanvas" }, "output": { "$ref": "#/components/schemas/ComposeMediaOutputSpec" }, "normalize": { "type": "boolean", "description": "Divide the audio mix by the number of overlapping elements to avoid clipping. Defaults to false.", "default": false } }, "additionalProperties": false }, "ComposeMediaOutput": { "required": [ "elements", "type" ], "type": "object", "properties": { "type": { "type": "string" }, "elements": { "type": "array", "items": { "$ref": "#/components/schemas/ComposeMediaResolvedElement" }, "description": "Per-element resolved timing in input order — useful for rendering subtitles, speaker\nhighlights, or chapter markers without re-probing every source clip." } }, "additionalProperties": false, "discriminator": { "propertyName": "type", "mapping": { "audio": "#/components/schemas/AudioComposeMediaOutput", "video": "#/components/schemas/VideoComposeMediaOutput" } } }, "ComposeMediaOutputSpec": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/MediaOutputType" }, "container": { "$ref": "#/components/schemas/MediaContainer" } }, "additionalProperties": false, "description": "Describes the desired output of a composition. Both fields are optional — leave\nCivitai.Orchestration.Grains.Workflows.Steps.ComposeMedia.ComposeMediaOutputSpec.Type unset to derive the kind from the elements." }, "ComposeMediaResolvedElement": { "required": [ "duration", "startSeconds" ], "type": "object", "properties": { "startSeconds": { "type": "number", "format": "float" }, "duration": { "type": "number", "description": "Probed duration of the source clip, in seconds.", "format": "float" } }, "additionalProperties": false, "description": "Resolved timing for a single element in the composed output." }, "ComposeMediaStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ComposeMediaInput" }, "output": { "$ref": "#/components/schemas/ComposeMediaOutput" }, "$type": { "enum": [ "composeMedia" ], "type": "string" } }, "additionalProperties": false } ], "description": "Compose Media" }, "ComposeMediaStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ComposeMediaInput" }, "$type": { "enum": [ "composeMedia" ], "type": "string" } }, "additionalProperties": false } ], "description": "Compose Media" }, "ConsumerBlobPresignResponse": { "required": [ "expiresAt", "uploadUrl" ], "type": "object", "properties": { "uploadUrl": { "type": "string", "format": "uri" }, "expiresAt": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "ContainerFormat": { "enum": [ "mp4", "webM" ], "type": "string" }, "ConvertImageInput": { "required": [ "image", "output" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "transforms": { "type": "array", "items": { "$ref": "#/components/schemas/ImageTransform" }, "description": "Applied in order, before conversion." }, "output": { "$ref": "#/components/schemas/ImageOutputFormat" }, "public": { "type": [ "null", "boolean" ], "description": "Stores the result in a bucket that serves it directly, so the URL is stable and unsigned (CDN-cacheable). Privileged\ncallers only: nothing gates a read, so no NSFW level, blocked reason or mature-content restriction applies and a later block cannot take it back." } }, "additionalProperties": false }, "ConvertImageOutput": { "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/ImageBlob" } }, "additionalProperties": false }, "ConvertImageStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ConvertImageInput" }, "output": { "$ref": "#/components/schemas/ConvertImageOutput" }, "$type": { "enum": [ "convertImage" ], "type": "string" } }, "additionalProperties": false } ], "description": "A workflow step that converts images to different formats and applies optional transforms." }, "ConvertImageStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ConvertImageInput" }, "$type": { "enum": [ "convertImage" ], "type": "string" } }, "additionalProperties": false } ], "description": "A workflow step that converts images to different formats and applies optional transforms." }, "CursedArrayOfStringAndResourceInfo": { "required": [ "items", "next" ], "type": "object", "properties": { "next": { "type": [ "null", "string" ] }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceInfo" } } }, "additionalProperties": false }, "CursedArrayOfTelemetryCursorAndWorkflow": { "required": [ "items", "next" ], "type": "object", "properties": { "next": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/Workflow" } } }, "additionalProperties": false }, "CustomComfyInput": { "required": [ "resources", "trace", "workflow" ], "type": "object", "properties": { "resources": { "minItems": 1, "type": "array", "items": { "type": "string" }, "description": "All resources the workflow needs as AIR URNs, including `comfy:nodepack` URNs for runtime-installable\ncustom nodes. Anything the workflow references that is not listed here fails at load time inside ComfyUI." }, "workflow": { "description": "The raw ComfyUI workflow graph. Forwarded opaquely to the worker;\nthe orchestrator does not inspect or validate node contents." }, "trace": { "$ref": "#/components/schemas/TraceMode" }, "sessionId": { "type": [ "null", "string" ], "description": "When set, the scheduler prefers a worker that already holds this session's ComfyUI container.\nNull = no preference." }, "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": "Custom comfy container image as an `urn:air:oci:image::@` AIR\n(e.g. `urn:air:oci:image:ghcr:civitai/civitai-spine-comfy@v2.5.5`). Null = worker default." }, "minVramGb": { "type": [ "null", "integer" ], "description": "Minimum GPU VRAM (GB) the claiming worker must report. Null = any comfy-capable worker.", "format": "int32" }, "useSageAttention": { "type": [ "null", "boolean" ], "description": "Launches ComfyUI with `--use-sage-attention`. Null/false = the image's default (off for the cloud/slim images)." }, "minimumDurationSeconds": { "type": [ "null", "integer" ], "description": "Submit-time affordability gate: the workflow is rejected (400) unless the user can afford at least this many\nseconds of generation. Null = no gate; the live-balance guard still cancels mid-run if the balance goes negative.", "format": "int32" } }, "additionalProperties": false }, "CustomComfyOutput": { "required": [ "blobs", "tempBlobs" ], "type": "object", "properties": { "blobs": { "type": "array", "items": { "$ref": "#/components/schemas/Blob" } }, "traceUrl": { "type": [ "null", "string" ], "description": "URL of the recorded ComfyUI `/ws` trace (`.txt` log or `.bin` recording per the requested `trace` mode),\ntailable live while the job runs. Null when tracing wasn't requested.", "format": "uri" }, "tempBlobs": { "type": "array", "items": { "$ref": "#/components/schemas/Blob" } }, "usage": { "$ref": "#/components/schemas/CustomComfyUsage" } }, "additionalProperties": false }, "CustomComfyStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/CustomComfyInput" }, "output": { "$ref": "#/components/schemas/CustomComfyOutput" }, "$type": { "enum": [ "customComfy" ], "type": "string" } }, "additionalProperties": false } ], "description": "CustomComfy" }, "CustomComfyStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/CustomComfyInput" }, "$type": { "enum": [ "customComfy" ], "type": "string" } }, "additionalProperties": false } ], "description": "CustomComfy" }, "CustomComfyUsage": { "required": [ "buzzPerSecond", "computedAt", "estimatedCost", "runtimeSeconds" ], "type": "object", "properties": { "buzzPerSecond": { "type": "number", "format": "double" }, "runtimeSeconds": { "type": "number", "format": "double" }, "estimatedCost": { "type": "number", "description": "Estimate as of Civitai.Orchestration.Grains.Workflows.Steps.CustomComfy.CustomComfyUsage.ComputedAt: `Max(1, RuntimeSeconds × BuzzPerSecond)` (mirrors the billing floor).", "format": "double" }, "startedAt": { "type": [ "null", "string" ], "description": "When GPU runtime began accruing, or null before the worker reports. Distinct\nfrom `WorkflowStep.StartedAt`, which is the earlier (unbilled) claim time.", "format": "date-time" }, "computedAt": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "CustomTextToSpeechInput": { "allOf": [ { "$ref": "#/components/schemas/TextToSpeechInput" }, { "required": [ "engine", "xVectorOnlyMode" ], "type": "object", "properties": { "refAudioUrl": { "type": [ "null", "string" ], "description": "Reference audio URL for Base voice-cloning mode.\nAccepts AIR URNs (existing resources) or HTTP(S) URLs.", "format": "uri" }, "refText": { "type": [ "null", "string" ], "description": "Transcript of the reference audio.\nRequired for Base mode unless XVectorOnlyMode is true." }, "xVectorOnlyMode": { "type": "boolean", "description": "If true, uses only speaker embedding for Base mode (ref_text not required)." }, "speaker": { "enum": [ "aiden", "dylan", "eric", "ono_anna", "ryan", "serena", "sohee", "uncle_fu", "vivian" ], "type": [ "null", "string" ], "description": "Built-in speaker name for CustomVoice mode." }, "instruct": { "type": [ "null", "string" ], "description": "Optional style instruction for CustomVoice mode." }, "maxNewTokens": { "type": [ "null", "integer" ], "format": "int32" }, "engine": { "enum": [ "custom" ], "type": "string" } }, "additionalProperties": false } ] }, "DensePoseColormap": { "enum": [ "Viridis (MagicAnimate)", "Parula (CivitAI)" ], "type": "string" }, "DensePoseModel": { "enum": [ "densepose_r50_fpn_dl.torchscript", "densepose_r101_fpn_dl.torchscript" ], "type": "string" }, "DepthAnythingCheckpoint": { "enum": [ "depth_anything_vitl14.pth", "depth_anything_vitb14.pth", "depth_anything_vits14.pth" ], "type": "string" }, "DepthAnythingV2Checkpoint": { "enum": [ "depth_anything_v2_vitg.pth", "depth_anything_v2_vitl.pth", "depth_anything_v2_vitb.pth", "depth_anything_v2_vits.pth" ], "type": "string" }, "DwPoseBboxDetector": { "enum": [ "yolox_l.onnx", "yolox_l.torchscript.pt", "yolo_nas_l_fp16.onnx", "yolo_nas_m_fp16.onnx", "yolo_nas_s_fp16.onnx" ], "type": "string" }, "DwPoseEstimator": { "enum": [ "dw-ll_ucoco_384_bs5.torchscript.pt", "dw-ll_ucoco_384.onnx", "dw-ll_ucoco.onnx" ], "type": "string" }, "EchoInput": { "required": [ "message" ], "type": "object", "properties": { "message": { "type": "string" } }, "additionalProperties": false }, "EchoOutput": { "required": [ "message" ], "type": "object", "properties": { "message": { "type": "string" } }, "additionalProperties": false }, "EchoStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/EchoInput" }, "output": { "$ref": "#/components/schemas/EchoOutput" }, "$type": { "enum": [ "echo" ], "type": "string" } }, "additionalProperties": false } ], "description": "Echo" }, "EchoStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/EchoInput" }, "$type": { "enum": [ "echo" ], "type": "string" } }, "additionalProperties": false } ], "description": "Echo" }, "EpochResult": { "required": [ "blobName", "blobUrl", "epochNumber", "sampleImages" ], "type": "object", "properties": { "epochNumber": { "type": "integer", "format": "int32" }, "blobName": { "type": "string" }, "blobSize": { "type": [ "null", "integer" ], "description": "Get the total size in bytes of the asset", "format": "int64" }, "sampleImages": { "type": "array", "items": { "type": "string", "format": "uri" } }, "blobUrl": { "type": "string", "description": "A presigned url that points to the epoch file", "format": "uri" } }, "additionalProperties": false }, "ErnieAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "maxBatchSize" ], "type": "object", "properties": { "maxBatchSize": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "ernie" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" }, "batchSize": { "maximum": 2, "minimum": 1, "type": [ "null", "integer" ], "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.", "default": 1 } }, "additionalProperties": false } ] }, "FaceDetection": { "required": [ "boundingBox" ], "type": "object", "properties": { "boundingBox": { "$ref": "#/components/schemas/BoundingBox" }, "landmarks": { "type": [ "null", "object" ], "additionalProperties": { "$ref": "#/components/schemas/ValueTupleOfDoubleAndDouble" }, "description": "Facial landmarks (e.g., eyes, nose, mouth positions).\nDictionary keys are landmark names, values are (x, y) coordinates." }, "embedding": { "type": [ "null", "array" ], "items": { "type": "number", "format": "double" } } }, "additionalProperties": false }, "FaceDetectionInfo": { "required": [ "boundingBox", "hasEmbedding" ], "type": "object", "properties": { "boundingBox": { "type": "array", "items": { "type": "number", "format": "double" }, "description": "Bounding box coordinates [x1, y1, x2, y2]" }, "landmarks": { "type": [ "null", "object" ], "additionalProperties": { "type": "array", "items": { "type": "number", "format": "double" } }, "description": "Facial landmarks (e.g., eyes, nose, mouth positions)" }, "hasEmbedding": { "type": "boolean" } }, "additionalProperties": false }, "FaceRecognitionResult": { "required": [ "faces" ], "type": "object", "properties": { "faces": { "type": "array", "items": { "$ref": "#/components/schemas/FaceDetection" } }, "similarityMatrix": { "type": [ "null", "array" ], "items": { "type": "array", "items": { "type": "number", "format": "double" } }, "description": "Pairwise cosine similarity matrix between detected faces.\nMatrix[i][j] represents similarity between face i and face j." } }, "additionalProperties": false }, "FadeInTransformer": { "allOf": [ { "$ref": "#/components/schemas/MediaTransformer" }, { "required": [ "durationMs", "type" ], "type": "object", "properties": { "durationMs": { "type": "integer", "format": "int32" }, "type": { "enum": [ "fadeIn" ], "type": "string" } }, "additionalProperties": false } ], "description": "Linear fade from silence (audio) and/or black (video) at the head of the element." }, "FadeOutTransformer": { "allOf": [ { "$ref": "#/components/schemas/MediaTransformer" }, { "required": [ "durationMs", "type" ], "type": "object", "properties": { "durationMs": { "type": "integer", "format": "int32" }, "type": { "enum": [ "fadeOut" ], "type": "string" } }, "additionalProperties": false } ], "description": "Linear fade to silence (audio) and/or black (video) at the tail of the element." }, "FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "model" ], "type": "object", "properties": { "model": { "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "qwen2": "#/components/schemas/Qwen2FalImageGenInput", "krea2": "#/components/schemas/Krea2FalImageGenInput", "maiImage": "#/components/schemas/MaiImageFalImageGenInput", "reve": "#/components/schemas/ReveFalImageGenInput", "museImage": "#/components/schemas/MuseImageFalImageGenInput", "ideogram45": "#/components/schemas/Ideogram45FalImageGenInput", "flux3": "#/components/schemas/Flux3FalImageGenInput" } } } ] }, "FalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/PolyGenInput" }, { "required": [ "engine", "model" ], "type": "object", "properties": { "model": { "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "meshy": "#/components/schemas/MeshyFalPolyGenInput", "tripo": "#/components/schemas/TripoFalPolyGenInput" } } } ] }, "FileFormat": { "enum": [ "unknown", "safeTensor", "pickleTensor", "diffusers", "coreML", "onnx", "tar" ], "type": "string" }, "Flux1AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "modelVariant", "storageBuzzPerEpoch" ], "type": "object", "properties": { "modelVariant": { "type": "string" }, "storageBuzzPerEpoch": { "type": "number", "format": "double", "readOnly": true }, "ecosystem": { "enum": [ "flux1" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "modelVariant", "mapping": { "dev": "#/components/schemas/Flux1DevAIToolkitTrainingInput", "schnell": "#/components/schemas/Flux1SchnellAIToolkitTrainingInput" } } } ] }, "Flux1DevAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "modelVariant" ], "type": "object", "properties": { "modelVariant": { "enum": [ "dev" ], "type": "string" }, "ecosystem": { "enum": [ "flux1" ], "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 } ] }, "Flux1KontextDevImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1KontextImageGenInput" }, { "required": [ "engine", "model" ], "type": "object", "properties": { "model": { "enum": [ "dev" ], "type": "string" }, "engine": { "enum": [ "flux1-kontext" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux1KontextImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "model": { "type": "string", "readOnly": true }, "prompt": { "maxLength": 1000, "minLength": 0, "type": "string" }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "aspectRatio": { "enum": [ "21:9", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16", "9:21" ], "type": "string", "default": "1:1" }, "guidanceScale": { "maximum": 20, "minimum": 1, "type": "number", "format": "double", "default": 3.5 }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "engine": { "enum": [ "flux1-kontext" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "pro": "#/components/schemas/Flux1KontextProImageGenInput", "max": "#/components/schemas/Flux1KontextMaxImageGenInput", "dev": "#/components/schemas/Flux1KontextDevImageGenInput" } } } ] }, "Flux1KontextMaxImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1KontextImageGenInput" }, { "required": [ "engine", "model" ], "type": "object", "properties": { "model": { "enum": [ "max" ], "type": "string" }, "engine": { "enum": [ "flux1-kontext" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux1KontextProImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1KontextImageGenInput" }, { "required": [ "engine", "model" ], "type": "object", "properties": { "model": { "enum": [ "pro" ], "type": "string" }, "engine": { "enum": [ "flux1-kontext" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux1ProFamilyImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "model": { "type": "string" }, "prompt": { "maxLength": 10000, "minLength": 0, "type": "string" }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "engine": { "enum": [ "flux1-pro" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "pro": "#/components/schemas/Flux1ProImageGenInput", "ultra": "#/components/schemas/Flux1ProUltraImageGenInput" } } } ] }, "Flux1ProImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1ProFamilyImageGenInput" }, { "required": [ "engine", "model" ], "type": "object", "properties": { "width": { "maximum": 1440, "minimum": 256, "type": "integer", "format": "int32", "default": 1024 }, "height": { "maximum": 1440, "minimum": 256, "type": "integer", "format": "int32", "default": 1024 }, "model": { "enum": [ "pro" ], "type": "string" }, "engine": { "enum": [ "flux1-pro" ], "type": "string" } }, "additionalProperties": false } ], "description": "FLUX1.1 [pro]" }, "Flux1ProUltraImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1ProFamilyImageGenInput" }, { "required": [ "engine", "model" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "21:9", "16:9", "4:3", "1:1", "3:4", "9:16", "9:21" ], "type": "string", "default": "1:1" }, "raw": { "type": "boolean", "description": "Generates less processed, more natural-looking images.", "default": false }, "model": { "enum": [ "ultra" ], "type": "string" }, "engine": { "enum": [ "flux1-pro" ], "type": "string" } }, "additionalProperties": false } ], "description": "FLUX1.1 [pro] Ultra" }, "Flux1SchnellAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "modelVariant" ], "type": "object", "properties": { "modelVariant": { "enum": [ "schnell" ], "type": "string" }, "ecosystem": { "enum": [ "flux1" ], "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 } ] }, "Flux1SdCppCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1SdCppImageGenInput" }, { "required": [ "ecosystem", "engine", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "ecosystem": { "enum": [ "flux1" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux1SdCppEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1SdCppImageGenInput" }, { "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": [ "flux1" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux1SdCppImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdCppImageGenInput" }, { "required": [ "clipLModel", "diffuserModel", "ecosystem", "engine", "operation", "prompt", "t5XXLModel", "vaeModel" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 1000, "minLength": 0, "type": "string" }, "width": { "maximum": 1216, "minimum": 832, "type": "integer", "format": "int32", "default": 1024 }, "height": { "maximum": 1216, "minimum": 832, "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": 3.5 }, "steps": { "maximum": 50, "minimum": 4, "type": "integer", "format": "int32", "default": 28 }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "negativePrompt": { "type": [ "null", "string" ] }, "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" }, "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" }, "clipLModel": { "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" }, "t5XXLModel": { "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": [ "flux1" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux1SdCppCreateImageInput", "editImage": "#/components/schemas/Flux1SdCppEditImageInput", "createVariant": "#/components/schemas/Flux1SdCppVariantImageGenInput" } } } ] }, "Flux1SdCppVariantImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux1SdCppImageGenInput" }, { "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": [ "flux1" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2DevCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2DevImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "dev" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2DevEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2DevImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "images": { "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": [ "dev" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2DevEditImageResourceTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/ImageResourceTrainingInput" }, { "required": [ "engine" ], "type": "object", "properties": { "steps": { "maximum": 10000, "minimum": 100, "type": "integer", "description": "Number of training steps. Must be in increments of 100.", "format": "int32", "default": 1000 }, "learningRate": { "type": "number", "format": "double", "default": 0.00005 }, "defaultCaption": { "type": [ "null", "string" ], "description": "Default caption to use if caption files are missing from training data." }, "referenceImageCount": { "maximum": 4, "minimum": 1, "type": "integer", "description": "Number of reference images per training pair (1-4).\nAffects cost calculation via reference multiplier.", "format": "int32", "default": 1 }, "engine": { "enum": [ "flux2-dev-edit" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2DevImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "guidanceScale": { "maximum": 20, "minimum": 0, "type": "number", "format": "double", "default": 2.5 }, "numInferenceSteps": { "maximum": 50, "minimum": 4, "type": "integer", "format": "int32", "default": 28 }, "loras": { "type": "array", "items": { "$ref": "#/components/schemas/ImageGenInputLora" } }, "model": { "enum": [ "dev" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux2DevCreateImageInput", "editImage": "#/components/schemas/Flux2DevEditImageInput" } } } ] }, "Flux2DevImageResourceTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/ImageResourceTrainingInput" }, { "required": [ "engine" ], "type": "object", "properties": { "steps": { "maximum": 10000, "minimum": 100, "type": "integer", "description": "Number of training steps. Must be in increments of 100.", "format": "int32", "default": 1000 }, "learningRate": { "type": "number", "format": "double", "default": 0.00005 }, "defaultCaption": { "type": [ "null", "string" ], "description": "Default caption to use if caption files are missing from training data." }, "engine": { "enum": [ "flux2-dev" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2DevSdCppCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2DevSdCppImageGenInput" }, { "required": [ "ecosystem", "engine", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "ecosystem": { "enum": [ "flux2Dev" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2DevSdCppEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2DevSdCppImageGenInput" }, { "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": [ "flux2Dev" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2DevSdCppImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdCppImageGenInput" }, { "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 }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "negativePrompt": { "type": [ "null", "string" ] }, "loras": { "type": "object", "additionalProperties": { "type": "number", "format": "double" } }, "ecosystem": { "enum": [ "flux2Dev" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux2DevSdCppCreateImageInput", "editImage": "#/components/schemas/Flux2DevSdCppEditImageInput", "createVariant": "#/components/schemas/Flux2DevSdCppVariantImageGenInput" } } } ] }, "Flux2DevSdCppVariantImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2DevSdCppImageGenInput" }, { "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2FlexCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2FlexImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "flex" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2FlexEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2FlexImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "images": { "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": [ "flex" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2FlexImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "guidanceScale": { "maximum": 100, "minimum": 1.5, "type": "number", "format": "double", "default": 3.5 }, "numInferenceSteps": { "maximum": 50, "minimum": 2, "type": "integer", "format": "int32", "default": 28 }, "model": { "enum": [ "flex" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux2FlexCreateImageInput", "editImage": "#/components/schemas/Flux2FlexEditImageInput" } } } ] }, "Flux2ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "model": { "type": "string" }, "prompt": { "minLength": 1, "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": { "type": "integer", "format": "int32", "default": 1 }, "enablePromptExpansion": { "type": "boolean", "default": false }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "dev": "#/components/schemas/Flux2DevImageGenInput", "flex": "#/components/schemas/Flux2FlexImageGenInput", "pro": "#/components/schemas/Flux2ProImageGenInput", "max": "#/components/schemas/Flux2MaxImageGenInput", "klein": "#/components/schemas/Flux2KleinImageGenInput" } } } ] }, "Flux2Klein4bAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2KleinAIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "maxBatchSize", "modelVariant" ], "type": "object", "properties": { "maxBatchSize": { "type": "integer", "format": "int32", "readOnly": true }, "modelVariant": { "enum": [ "4b" ], "type": "string" }, "ecosystem": { "enum": [ "flux2klein" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" }, "batchSize": { "maximum": 2, "minimum": 1, "type": [ "null", "integer" ], "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.", "default": 1 } }, "additionalProperties": false } ] }, "Flux2Klein9bAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2KleinAIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "modelVariant" ], "type": "object", "properties": { "modelVariant": { "enum": [ "9b" ], "type": "string" }, "ecosystem": { "enum": [ "flux2klein" ], "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 } ] }, "Flux2KleinAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "modelVariant" ], "type": "object", "properties": { "modelVariant": { "type": "string" }, "isEditTraining": { "type": "boolean", "description": "Whether this is image-edit training (uses control paths for reference images).\nWhen true, the training data zip should contain subfolders: main/, control_1/, control_2/, control_3/.", "default": false }, "ecosystem": { "enum": [ "flux2klein" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "modelVariant", "mapping": { "4b": "#/components/schemas/Flux2Klein4bAIToolkitTrainingInput", "9b": "#/components/schemas/Flux2Klein9bAIToolkitTrainingInput" } } } ] }, "Flux2KleinCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2KleinImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "klein" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2KleinEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2KleinImageGenInput" }, { "required": [ "engine", "model", "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" }, "model": { "enum": [ "klein" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2KleinImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "cfgScale": { "maximum": 20, "minimum": 1, "type": "number", "format": "double", "default": 5 }, "steps": { "maximum": 50, "minimum": 4, "type": "integer", "format": "int32", "default": 20 }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "negativePrompt": { "type": [ "null", "string" ] }, "loras": { "type": "object", "additionalProperties": { "type": "number", "format": "double" } }, "modelVersion": { "enum": [ "4b", "4b-base", "9b", "9b-base", "9b-kv" ], "type": "string", "default": "4b" }, "model": { "enum": [ "klein" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux2KleinCreateImageInput", "editImage": "#/components/schemas/Flux2KleinEditImageInput" } } } ] }, "Flux2KleinSdCppCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2KleinSdCppImageGenInput" }, { "required": [ "ecosystem", "engine", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "ecosystem": { "enum": [ "flux2Klein" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2KleinSdCppEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2KleinSdCppImageGenInput" }, { "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2KleinSdCppImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdCppImageGenInput" }, { "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 }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "negativePrompt": { "type": [ "null", "string" ] }, "loras": { "type": "object", "additionalProperties": { "type": "number", "format": "double" } }, "modelVersion": { "enum": [ "4b", "4b-base", "9b", "9b-base" ], "type": "string", "default": "4b" }, "ecosystem": { "enum": [ "flux2Klein" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux2KleinSdCppCreateImageInput", "editImage": "#/components/schemas/Flux2KleinSdCppEditImageInput", "createVariant": "#/components/schemas/Flux2KleinSdCppVariantImageGenInput" } } } ] }, "Flux2KleinSdCppVariantImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2KleinSdCppImageGenInput" }, { "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2MaxCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2MaxImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "max" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2MaxEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2MaxImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "images": { "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": [ "max" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2MaxImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "model": { "enum": [ "max" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux2MaxCreateImageInput", "editImage": "#/components/schemas/Flux2MaxEditImageInput" } } } ] }, "Flux2ProCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2ProImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "pro" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2ProEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2ProImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "images": { "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": [ "pro" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux2ProImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux2ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "model": { "enum": [ "pro" ], "type": "string" }, "engine": { "enum": [ "flux2" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux2ProCreateImageInput", "editImage": "#/components/schemas/Flux2ProEditImageInput" } } } ] }, "Flux3CreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3FalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "flux3" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux3EditFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3FalImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "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" }, "description": "One to ten ordered references, each at least 256 pixels per side and at most 4 MP." }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "flux3" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Flux3FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "minLength": 1, "type": "string", "description": "Bounding boxes can be included in the prompt using FLUX 3's prompt syntax." }, "quantity": { "maximum": 8, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "resolution": { "enum": [ "768sq", "1k", "2k", "4k" ], "type": "string", "default": "1k" }, "aspectRatio": { "enum": [ "auto", "21:9", "2:1", "16:9", "3:2", "7:5", "4:3", "5:4", "1:1", "4:5", "3:4", "5:7", "2:3", "9:16", "1:2" ], "type": "string", "description": "Auto follows the first reference image, or uses a square for generation.", "default": "auto" }, "enablePromptExpansion": { "type": "boolean", "default": false }, "safetyTolerance": { "maximum": 4, "minimum": 0, "type": "integer", "format": "int32", "default": 2 }, "model": { "enum": [ "flux3" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Flux3CreateFalImageGenInput", "editImage": "#/components/schemas/Flux3EditFalImageGenInput" } } } ] }, "Flux3Keyframe": { "required": [ "frameIndex", "image" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "frameIndex": { "maximum": 480, "minimum": 0, "type": "integer", "description": "Frame position of this keyframe in the generated 24 fps video. Must be unique across the\nkeyframes and no greater than the duration in seconds × 24.", "format": "int32" } }, "additionalProperties": false, "description": "An image pinned to a frame position in the generated video." }, "Flux3V3DraftEnhanceInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3V3VideoGenInput" }, { "required": [ "draftCache", "duration", "engine", "operation", "version" ], "type": "object", "properties": { "draftCache": { "type": "string", "description": "URL of the draft cache produced by a draft generation — pass the draftCache url from that\nstep's output. Read the workflow again to mint a fresh url if it has expired.", "format": "uri" }, "duration": { "maximum": 20, "minimum": 5, "type": "integer", "description": "Duration in seconds of the draft being enhanced. The enhanced render bills per second at that length.", "format": "int32" }, "operation": { "enum": [ "draftEnhance" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false } ], "description": "Re-render a previously generated draft at full-quality 1080p with audio." }, "Flux3V3ExtendVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3V3VideoGenInput" }, { "required": [ "engine", "operation", "sourceVideo", "version" ], "type": "object", "properties": { "duration": { "maximum": 20, "minimum": 5, "type": "integer", "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.", "format": "int32", "default": 5 }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "auto", "21:9", "2:1", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.", "default": "auto" }, "generateAudio": { "type": "boolean", "default": true }, "draft": { "type": "boolean", "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.", "default": false }, "sourceVideo": { "type": "string", "description": "URL of the source video to continue from. MP4, under 50 MB and under 15 seconds.", "format": "uri" }, "operation": { "enum": [ "extendVideo" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false } ], "description": "Continue an existing video from its final frames." }, "Flux3V3FirstLastFrameToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3V3VideoGenInput" }, { "required": [ "endImage", "engine", "operation", "startImage", "version" ], "type": "object", "properties": { "duration": { "maximum": 20, "minimum": 5, "type": "integer", "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.", "format": "int32", "default": 5 }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "auto", "21:9", "2:1", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.", "default": "auto" }, "generateAudio": { "type": "boolean", "default": true }, "draft": { "type": "boolean", "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.", "default": false }, "startImage": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "endImage": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "operation": { "enum": [ "firstLastFrameToVideo" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a video that starts on one image and ends on another." }, "Flux3V3ImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3V3VideoGenInput" }, { "required": [ "engine", "image", "operation", "version" ], "type": "object", "properties": { "duration": { "maximum": 20, "minimum": 5, "type": "integer", "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.", "format": "int32", "default": 5 }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "auto", "21:9", "2:1", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.", "default": "auto" }, "generateAudio": { "type": "boolean", "default": true }, "draft": { "type": "boolean", "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.", "default": false }, "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "operation": { "enum": [ "imageToVideo" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false } ], "description": "Animate a single source image (used as the first frame) into a video." }, "Flux3V3KeyframesToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3V3VideoGenInput" }, { "required": [ "engine", "keyframes", "operation", "version" ], "type": "object", "properties": { "duration": { "maximum": 20, "minimum": 5, "type": "integer", "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.", "format": "int32", "default": 5 }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "auto", "21:9", "2:1", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.", "default": "auto" }, "generateAudio": { "type": "boolean", "default": true }, "draft": { "type": "boolean", "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.", "default": false }, "keyframes": { "type": "array", "items": { "$ref": "#/components/schemas/Flux3Keyframe" }, "description": "Up to 10 keyframes with unique frame positions." }, "operation": { "enum": [ "keyframesToVideo" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a video that passes through a set of images pinned to specific frame positions." }, "Flux3V3TextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3V3VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "duration": { "maximum": 20, "minimum": 5, "type": "integer", "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.", "format": "int32", "default": 5 }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "auto", "21:9", "2:1", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.", "default": "auto" }, "generateAudio": { "type": "boolean", "default": true }, "draft": { "type": "boolean", "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.", "default": false }, "operation": { "enum": [ "textToVideo" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a video from a text prompt only." }, "Flux3V3VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Flux3VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "textToVideo": "#/components/schemas/Flux3V3TextToVideoInput", "imageToVideo": "#/components/schemas/Flux3V3ImageToVideoInput", "firstLastFrameToVideo": "#/components/schemas/Flux3V3FirstLastFrameToVideoInput", "keyframesToVideo": "#/components/schemas/Flux3V3KeyframesToVideoInput", "extendVideo": "#/components/schemas/Flux3V3ExtendVideoInput", "draftEnhance": "#/components/schemas/Flux3V3DraftEnhanceInput" } } } ] }, "Flux3VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "version" ], "type": "object", "properties": { "version": { "type": [ "null", "string" ], "default": "v3.0" }, "engine": { "enum": [ "flux" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "version", "mapping": { "v3.0": "#/components/schemas/Flux3V3VideoGenInput" } } } ], "description": "Black Forest Labs FLUX-3 video generation via FAL." }, "FluxDevFastImageResourceTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/ImageResourceTrainingInput" }, { "required": [ "engine" ], "type": "object", "properties": { "engine": { "enum": [ "flux-dev-fast" ], "type": "string" } }, "additionalProperties": false } ] }, "FreeTierModelResponse": { "required": [ "airs", "key", "remaining", "windows" ], "type": "object", "properties": { "key": { "type": "string", "description": "The quota bucket. Every AIR listed counts against the same quota." }, "airs": { "type": "array", "items": { "type": "string" } }, "remaining": { "type": "integer", "description": "Free requests left right now: the tightest of Civitai.Orchestration.Api.Controllers.v2.Consumers.FreeTier.FreeTierModelResponse.Windows.", "format": "int32" }, "windows": { "type": "array", "items": { "$ref": "#/components/schemas/FreeTierWindowResponse" } } }, "additionalProperties": false }, "FreeTierResponse": { "required": [ "enabled", "models" ], "type": "object", "properties": { "enabled": { "type": "boolean" }, "models": { "type": "array", "items": { "$ref": "#/components/schemas/FreeTierModelResponse" } } }, "additionalProperties": false }, "FreeTierWindowResponse": { "required": [ "duration", "limit", "remaining" ], "type": "object", "properties": { "duration": { "type": "string", "format": "date-span" }, "limit": { "type": "integer", "format": "int32" }, "remaining": { "type": "integer", "format": "int32" }, "resetAt": { "type": [ "null", "string" ], "description": "When this window's usage resets. Null until the first free request in it.", "format": "date-time" } }, "additionalProperties": false }, "Gemini25FlashCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Gemini25FlashImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "2.5-flash" ], "type": "string" }, "engine": { "enum": [ "gemini" ], "type": "string" } }, "additionalProperties": false } ] }, "Gemini25FlashEditImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Gemini25FlashImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "maxItems": 4, "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": [ "2.5-flash" ], "type": "string" }, "engine": { "enum": [ "gemini" ], "type": "string" } }, "additionalProperties": false } ] }, "Gemini25FlashImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GeminiImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "model": { "enum": [ "2.5-flash" ], "type": "string" }, "engine": { "enum": [ "gemini" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Gemini25FlashCreateImageGenInput", "editImage": "#/components/schemas/Gemini25FlashEditImageGenInput" } } } ] }, "GeminiImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "model": { "type": "string" }, "prompt": { "type": "string" }, "engine": { "enum": [ "gemini" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "2.5-flash": "#/components/schemas/Gemini25FlashImageGenInput" } } } ] }, "GeminiOmniModel": { "enum": [ "1.1-flash" ], "type": "string" }, "GeminiOmniResolution": { "enum": [ "360p", "720p", "1080p", "4k" ], "type": "string" }, "GeminiOmniVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "maxBillableSeconds" ], "type": "object", "properties": { "model": { "$ref": "#/components/schemas/GeminiOmniModel" }, "aspectRatio": { "enum": [ "16:9", "9:16" ], "type": "string", "default": "16:9" }, "resolution": { "$ref": "#/components/schemas/GeminiOmniResolution" }, "images": { "maxItems": 6, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "maxBillableSeconds": { "type": "integer", "format": "int32", "readOnly": true }, "engine": { "enum": [ "gemini-omni" ], "type": "string" } }, "additionalProperties": false } ] }, "GifOutputFormat": { "allOf": [ { "$ref": "#/components/schemas/ImageOutputFormat" }, { "required": [ "format" ], "type": "object", "properties": { "maxFrames": { "type": [ "null", "integer" ], "description": "Maximum number of frames to include in the output. Set to 1 to extract only the first frame from animated images.\nWhen null, all frames are preserved.", "format": "int32" }, "format": { "enum": [ "gif" ], "type": "string" } }, "additionalProperties": false } ] }, "GoogleImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "model": { "type": "string" }, "prompt": { "type": "string" }, "engine": { "enum": [ "google" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "imagen4": "#/components/schemas/Imagen4ImageGenInput", "nano-banana-pro": "#/components/schemas/NanoBananaProImageGenInput", "nano-banana-2": "#/components/schemas/NanoBanana2ImageGenInput", "nano-banana-2.1": "#/components/schemas/NanoBanana21ImageGenInput", "nano-banana-2-lite": "#/components/schemas/NanoBanana2LiteImageGenInput" } } } ] }, "GrokCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1ImageGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "2:1", "20:9", "19.5:9", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16", "9:19.5", "9:20", "1:2" ], "type": "string", "default": "1:1" }, "operation": { "enum": [ "createImage" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ] }, "GrokEditImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1ImageGenInput" }, { "required": [ "engine", "images", "operation", "version" ], "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" } }, "operation": { "enum": [ "editImage" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ] }, "GrokEditVideoInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1VideoGenInput" }, { "required": [ "engine", "operation", "version", "videoUrl" ], "type": "object", "properties": { "videoUrl": { "type": "string", "format": "uri" }, "analyzedDuration": { "type": [ "null", "integer" ], "format": "int32" }, "operation": { "enum": [ "edit-video" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "FAL Endpoint: xai/grok-imagine-video/edit-video\nInput video is resized to max 854x480 and truncated to 8 seconds." }, "GrokImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "prompt", "version" ], "type": "object", "properties": { "version": { "type": [ "null", "string" ], "default": "v1.0" }, "prompt": { "type": "string" }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "version", "mapping": { "v1.0": "#/components/schemas/GrokV1ImageGenInput", "v2.0": "#/components/schemas/GrokV2ImageGenInput" } } } ], "description": "xAI's Grok-Imagine model via FAL. Payloads without a version deserialize as v1.0." }, "GrokImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "auto", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "type": "string", "default": "auto" }, "images": { "maxItems": 1, "minItems": 1, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "FAL Endpoint: xai/grok-imagine-video/image-to-video" }, "GrokTextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "text-to-video" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "FAL Endpoint: xai/grok-imagine-video/text-to-video" }, "GrokV1ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokImageGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/GrokCreateImageGenInput", "editImage": "#/components/schemas/GrokEditImageGenInput" } } } ], "description": "FAL endpoints: xai/grok-imagine-image[/edit]" }, "GrokV1VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokVideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "duration": { "maximum": 15, "minimum": 1, "type": "integer", "format": "int32", "default": 6 }, "resolution": { "enum": [ "480p", "720p" ], "type": "string", "default": "720p" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/GrokTextToVideoInput", "image-to-video": "#/components/schemas/GrokImageToVideoInput", "edit-video": "#/components/schemas/GrokEditVideoInput" } } } ] }, "GrokV1_5ImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1_5VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "duration": { "maximum": 15, "minimum": 1, "type": "integer", "format": "int32", "default": 6 }, "resolution": { "enum": [ "480p", "720p", "1080p" ], "type": "string", "default": "720p" }, "images": { "maxItems": 1, "minItems": 1, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "imageToVideo" ], "type": "string" }, "version": { "enum": [ "v1.5" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "Grok v1.5 Image-to-Video. Animates a single source image; the aspect ratio follows the image.\nFAL Endpoint: xai/grok-imagine-video/v1.5/image-to-video" }, "GrokV1_5ReferenceToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1_5VideoGenInput" }, { "required": [ "engine", "images", "operation", "version" ], "type": "object", "properties": { "duration": { "maximum": 15, "minimum": 1, "type": "integer", "format": "int32", "default": 8 }, "resolution": { "enum": [ "480p", "720p" ], "type": "string", "default": "480p" }, "aspectRatio": { "enum": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "type": "string", "default": "16:9" }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "1–7 reference images guiding style and content; tag them in the prompt as , , etc." }, "operation": { "enum": [ "referenceToVideo" ], "type": "string" }, "version": { "enum": [ "v1.5" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "Grok v1.5 Reference-to-Video. Generates a video guided by 1–7 reference images;\nreference them in the prompt as through ." }, "GrokV1_5TextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV1_5VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "duration": { "maximum": 15, "minimum": 1, "type": "integer", "format": "int32", "default": 6 }, "resolution": { "enum": [ "480p", "720p", "1080p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "textToVideo" ], "type": "string" }, "version": { "enum": [ "v1.5" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "FAL Endpoint: xai/grok-imagine-video/v1.5/text-to-video" }, "GrokV1_5VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokVideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "textToVideo" }, "version": { "enum": [ "v1.5" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "textToVideo": "#/components/schemas/GrokV1_5TextToVideoInput", "imageToVideo": "#/components/schemas/GrokV1_5ImageToVideoInput", "referenceToVideo": "#/components/schemas/GrokV1_5ReferenceToVideoInput" } } } ], "description": "Grok Imagine 1.5 via FAL (xai/grok-imagine-video/v1.5/{operation})." }, "GrokV2CreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV2ImageGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "2:1", "20:9", "19.5:9", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16", "9:19.5", "9:20", "1:2" ], "type": "string", "default": "1:1" }, "operation": { "enum": [ "createImage" ], "type": "string" }, "version": { "enum": [ "v2.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "FAL endpoint: xai/grok-imagine-image/v2.0/text-to-image" }, "GrokV2EditImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokV2ImageGenInput" }, { "required": [ "engine", "images", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "auto", "2:1", "20:9", "19.5:9", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16", "9:19.5", "9:20", "1:2" ], "type": "string", "default": "auto" }, "images": { "maxItems": 3, "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" }, "version": { "enum": [ "v2.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false } ], "description": "Grok v2.0 Edit Image. Edits 1–3 source images; \"auto\" keeps the source aspect ratio.\nFAL Endpoint: xai/grok-imagine-image/v2.0/edit" }, "GrokV2ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GrokImageGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "createImage" }, "resolution": { "enum": [ "1k", "2k" ], "type": "string", "default": "2k" }, "quality": { "enum": [ "low", "medium" ], "type": "string", "default": "medium" }, "version": { "enum": [ "v2.0" ], "type": "string" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/GrokV2CreateImageGenInput", "editImage": "#/components/schemas/GrokV2EditImageGenInput" } } } ], "description": "Grok Imagine Image 2.0. FAL endpoints: xai/grok-imagine-image/v2.0/{text-to-image,edit}" }, "GrokVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "version" ], "type": "object", "properties": { "version": { "type": [ "null", "string" ], "default": "v1.0" }, "engine": { "enum": [ "grok" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "version", "mapping": { "v1.0": "#/components/schemas/GrokV1VideoGenInput", "v1.5": "#/components/schemas/GrokV1_5VideoGenInput" } } } ], "description": "Grok Imagine Video (xAI) via FAL." }, "HaiperVideoGenAspectRatio": { "enum": [ "16:9", "4:3", "1:1", "9:16", "3:4" ], "type": "string" }, "HaiperVideoGenCameraMovement": { "enum": [ "none", "panRight", "panLeft", "tiltUp", "tiltDown", "zoomIn", "zoomOut" ], "type": "string" }, "HaiperVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine" ], "type": "object", "properties": { "negativePrompt": { "type": [ "null", "string" ] }, "cameraMovement": { "$ref": "#/components/schemas/HaiperVideoGenCameraMovement" }, "seed": { "maximum": 4294967295, "minimum": -1, "type": "integer", "format": "int64", "default": -1 }, "duration": { "enum": [ 2, 4, 8 ], "type": "integer", "format": "int32", "default": 2 }, "aspectRatio": { "$ref": "#/components/schemas/HaiperVideoGenAspectRatio" }, "model": { "$ref": "#/components/schemas/HaiperVideoGenModel" }, "resolution": { "enum": [ 720, 1080, 2160 ], "type": "integer", "format": "int32", "default": 1080 }, "enablePromptEnhancer": { "type": "boolean", "default": true }, "sourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "engine": { "enum": [ "haiper" ], "type": "string" } }, "additionalProperties": false } ] }, "HaiperVideoGenModel": { "enum": [ "v1_5", "v2" ], "type": "string" }, "HaiperVideoGenOutput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenOutput" }, { "type": "object", "properties": { "progress": { "type": [ "null", "number" ], "format": "double" }, "externalTOSViolation": { "type": [ "null", "boolean" ] }, "message": { "type": [ "null", "string" ] } }, "additionalProperties": false } ] }, "HappyHorseV1ImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseV1VideoGenInput" }, { "required": [ "engine", "image", "operation", "version" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "operation": { "enum": [ "imageToVideo" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false } ], "description": "Animate a single source image (used as the first frame) into a video." }, "HappyHorseV1ReferenceToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseV1VideoGenInput" }, { "required": [ "engine", "images", "operation", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "referenceToVideo" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a video using 1–9 reference images for subject consistency.\nReference subjects via \"character1\" through \"character9\" placeholders in the prompt." }, "HappyHorseV1TextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseV1VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "textToVideo" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a video from a text prompt only." }, "HappyHorseV1VideoEditInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseV1VideoGenInput" }, { "required": [ "engine", "operation", "sourceVideo", "version" ], "type": "object", "properties": { "sourceVideo": { "type": "string", "format": "uri" }, "referenceImages": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "audioSetting": { "enum": [ "auto", "origin" ], "type": "string", "default": "auto" }, "operation": { "enum": [ "videoEdit" ], "type": "string" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false } ], "description": "Edit an existing video, optionally guided by reference images.\nFAL bills both the input and output seconds — the per-second rate is doubled." }, "HappyHorseV1VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseVideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": "string" }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "1080p" }, "duration": { "maximum": 15, "minimum": 3, "type": "integer", "format": "int32", "default": 5 }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "version": { "enum": [ "v1.0" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "textToVideo": "#/components/schemas/HappyHorseV1TextToVideoInput", "imageToVideo": "#/components/schemas/HappyHorseV1ImageToVideoInput", "videoEdit": "#/components/schemas/HappyHorseV1VideoEditInput", "referenceToVideo": "#/components/schemas/HappyHorseV1ReferenceToVideoInput" } } } ] }, "HappyHorseV1_1ImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseV1_1VideoGenInput" }, { "required": [ "engine", "image", "operation", "version" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "operation": { "enum": [ "imageToVideo" ], "type": "string" }, "version": { "enum": [ "v1.1" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false } ], "description": "Animate a single source image (used as the first frame) into a video." }, "HappyHorseV1_1ReferenceToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseV1_1VideoGenInput" }, { "required": [ "engine", "images", "operation", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "9:21", "5:4", "4:5" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "referenceToVideo" ], "type": "string" }, "version": { "enum": [ "v1.1" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a video using 1–9 reference images for subject consistency.\nReference subjects via \"character1\" through \"character9\" placeholders in the prompt." }, "HappyHorseV1_1TextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseV1_1VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "9:21", "5:4", "4:5" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "textToVideo" ], "type": "string" }, "version": { "enum": [ "v1.1" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a video from a text prompt only." }, "HappyHorseV1_1VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/HappyHorseVideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": "string" }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "1080p" }, "duration": { "maximum": 15, "minimum": 3, "type": "integer", "format": "int32", "default": 5 }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "version": { "enum": [ "v1.1" ], "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "textToVideo": "#/components/schemas/HappyHorseV1_1TextToVideoInput", "imageToVideo": "#/components/schemas/HappyHorseV1_1ImageToVideoInput", "referenceToVideo": "#/components/schemas/HappyHorseV1_1ReferenceToVideoInput" } } } ] }, "HappyHorseVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "version" ], "type": "object", "properties": { "version": { "type": "string" }, "engine": { "enum": [ "happyHorse" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "version", "mapping": { "v1.0": "#/components/schemas/HappyHorseV1VideoGenInput", "v1.1": "#/components/schemas/HappyHorseV1_1VideoGenInput" } } } ], "description": "Alibaba Happy-Horse video generation via FAL." }, "HeyGenVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "aspectRatio", "duration", "engine", "operation", "resolution" ], "type": "object", "properties": { "operation": { "enum": [ "textToVideo", "imageToVideo", "referenceToVideo" ], "type": "string" }, "duration": { "maximum": 15, "minimum": 5, "type": "integer", "format": "int32" }, "resolution": { "enum": [ "480p", "768p" ], "type": "string" }, "aspectRatio": { "enum": [ "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "description": "Ignored for imageToVideo, which follows the first frame's aspect ratio." }, "seed": { "maximum": 4294967295, "minimum": 0, "type": [ "null", "integer" ], "format": "int64" }, "firstFrameImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "referenceImages": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "Up to 9 images; refer to them in the prompt as , , etc." }, "referenceVideos": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "Up to 3 public HTTPS videos (32 MB each). The model uses the first 5 seconds of each." }, "referenceAudios": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "Up to 3 public HTTPS audio files (32 MB each), accompanying a reference image or video." }, "engine": { "enum": [ "heygen" ], "type": "string" } }, "additionalProperties": false } ], "description": "HeyGen Video 1 (based on MiniMax H3), served through OpenRouter. Audio is generated with the video." }, "HiDreamI1Precision": { "enum": [ "fp8", "fp16" ], "type": "string" }, "HiDreamI1Variant": { "enum": [ "fast", "dev", "full" ], "type": "string" }, "HiDreamO1AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "ecosystem": { "enum": [ "hidream-o1" ], "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 } ] }, "HumanRecognitionResult": { "required": [ "confidence", "humanScore", "label", "noHumanScore" ], "type": "object", "properties": { "label": { "type": "string", "description": "Classification label: \"human\" or \"no_human\"." }, "confidence": { "type": "number", "description": "Confidence score for the selected classification (0.0 to 1.0).", "format": "double" }, "humanScore": { "type": "number", "description": "Aggregated probability that the image contains a human.", "format": "double" }, "noHumanScore": { "type": "number", "description": "Aggregated probability that the image does not contain a human.", "format": "double" } }, "additionalProperties": false, "description": "Represents human vs non-human image recognition results." }, "HumanoidImageMaskCategory": { "enum": [ "dresses", "upperBody", "lowerBody" ], "type": "string" }, "HumanoidImageMaskInput": { "required": [ "category", "imageUrl" ], "type": "object", "properties": { "imageUrl": { "type": "string", "format": "uri" }, "category": { "$ref": "#/components/schemas/HumanoidImageMaskCategory" } }, "additionalProperties": false }, "HumanoidImageMaskOutput": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/Blob" } }, "additionalProperties": false }, "Hunyuan3DComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyPolyGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "imageTo3D" }, "modelVersion": { "enum": [ "v2", "v2.1", "v2-mini" ], "type": "string", "default": "v2" }, "modelAir": { "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": { "maximum": 150, "minimum": 1, "type": [ "null", "integer" ], "format": "int32" }, "cfgScale": { "maximum": 30, "minimum": 0, "type": [ "null", "number" ], "format": "double" }, "sampler": { "enum": [ "euler", "euler_ancestral", "heun", "heunpp2", "dpm_2", "dpm_2_ancestral", "lms", "dpm_fast", "dpm_adaptive", "dpmpp_2s_ancestral", "dpmpp_sde", "dpmpp_2m", "dpmpp_2m_sde", "dpmpp_3m_sde", "ddpm", "lcm", "uni_pc", "uni_pc_bh2" ], "type": "string", "default": "euler" }, "scheduler": { "enum": [ "normal", "karras", "exponential", "sgm_uniform", "simple", "ddim_uniform", "beta" ], "type": "string", "default": "normal" }, "resolution": { "maximum": 8192, "minimum": 1, "type": [ "null", "integer" ], "format": "int32" }, "vaeNumChunks": { "maximum": 500000, "minimum": 1000, "type": "integer", "format": "int32", "default": 8000 }, "octreeResolution": { "maximum": 512, "minimum": 16, "type": "integer", "format": "int32", "default": 256 }, "meshThreshold": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 0.6 }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "shift": { "type": "number", "format": "double", "default": 1 }, "model": { "enum": [ "hunyuan3D" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "imageTo3D": "#/components/schemas/Hunyuan3DImageTo3DComfyPolyGenInput", "shapeGen": "#/components/schemas/Hunyuan3DShapeGenComfyPolyGenInput", "texGen": "#/components/schemas/Hunyuan3DTexGenComfyPolyGenInput" } } } ] }, "Hunyuan3DImageTo3DComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/Hunyuan3DComfyPolyGenInput" }, { "required": [ "engine", "imageUrl", "model", "operation" ], "type": "object", "properties": { "imageUrl": { "type": "string", "format": "uri" }, "prompt": { "maxLength": 600, "type": [ "null", "string" ] }, "shouldTexture": { "type": "boolean", "default": true }, "shouldRemesh": { "type": "boolean", "default": false }, "enablePbr": { "type": "boolean", "default": true }, "operation": { "enum": [ "imageTo3D" ], "type": "string" }, "model": { "enum": [ "hunyuan3D" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "Hunyuan3DShapeGenComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/Hunyuan3DComfyPolyGenInput" }, { "required": [ "engine", "imageUrl", "model", "operation" ], "type": "object", "properties": { "imageUrl": { "type": "string", "format": "uri" }, "prompt": { "maxLength": 600, "type": [ "null", "string" ] }, "operation": { "enum": [ "shapeGen" ], "type": "string" }, "model": { "enum": [ "hunyuan3D" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "Hunyuan3DTexGenComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/Hunyuan3DComfyPolyGenInput" }, { "required": [ "engine", "imageUrl", "mesh", "model", "operation" ], "type": "object", "properties": { "imageUrl": { "type": "string", "format": "uri" }, "mesh": { "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" }, "shouldRemesh": { "type": "boolean", "default": false }, "enablePbr": { "type": "boolean", "default": true }, "operation": { "enum": [ "texGen" ], "type": "string" }, "model": { "enum": [ "hunyuan3D" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "HunyuanVdeoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "cfgScale", "engine", "height", "width" ], "type": "object", "properties": { "cfgScale": { "maximum": 100, "minimum": 0, "type": "number", "format": "double", "default": 4 }, "frameRate": { "type": "integer", "format": "int32", "default": 25 }, "duration": { "maximum": 30, "minimum": 1, "type": "integer", "format": "int32", "default": 5 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "steps": { "maximum": 50, "minimum": 10, "type": "integer", "format": "int32", "default": 20 }, "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" }, "loras": { "type": "array", "items": { "$ref": "#/components/schemas/VideoGenInputLora" } }, "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" ] }, "engine": { "enum": [ "hunyuan" ], "type": "string" } }, "additionalProperties": false } ] }, "Ideogram45CreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Ideogram45FalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "quality": { "enum": [ "low", "medium", "high" ], "type": "string", "default": "medium" }, "imageSize": { "enum": [ "square_hd", "square", "portrait_4_3", "portrait_16_9", "landscape_4_3", "landscape_16_9" ], "type": "string", "default": "square_hd" }, "enablePromptExpansion": { "type": "boolean", "default": true }, "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "ideogram45" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Ideogram45EditFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Ideogram45FalImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "quality": { "enum": [ "very_low", "low", "medium", "high" ], "type": "string", "default": "medium" }, "imageSize": { "enum": [ "auto", "square_hd", "square", "portrait_4_3", "portrait_16_9", "landscape_4_3", "landscape_16_9" ], "type": "string", "default": "auto" }, "images": { "maxItems": 5, "minItems": 1, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "The first image is the source; the remaining images are references." }, "maskImage": { "type": [ "null", "string" ], "description": "Black edits, white preserves. Must match the source dimensions and contain both regions.", "format": "source-image" }, "editPrecision": { "enum": [ "regular", "high" ], "type": "string", "default": "regular" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "ideogram45" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Ideogram45FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 10000, "minLength": 1, "type": "string" }, "quantity": { "maximum": 8, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "quality": { "type": "string", "default": "medium" }, "imageSize": { "type": "string" }, "width": { "maximum": 16384, "minimum": 256, "type": [ "null", "integer" ], "description": "Custom dimensions override imageSize. Set width and height together.", "format": "int32" }, "height": { "maximum": 16384, "minimum": 256, "type": [ "null", "integer" ], "format": "int32" }, "model": { "enum": [ "ideogram45" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Ideogram45CreateFalImageGenInput", "editImage": "#/components/schemas/Ideogram45EditFalImageGenInput" } } } ] }, "Ideogram4AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "ideogram4" ], "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 } ] }, "ImageBackgroundRemovalFormat": { "enum": [ "png", "webp" ], "type": "string" }, "ImageBackgroundRemovalInput": { "required": [ "image" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "format": { "$ref": "#/components/schemas/ImageBackgroundRemovalFormat" } }, "additionalProperties": false }, "ImageBackgroundRemovalOutput": { "type": "object", "properties": { "image": { "$ref": "#/components/schemas/ImageBlob" } }, "additionalProperties": false }, "ImageBackgroundRemovalStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageBackgroundRemovalInput" }, "output": { "$ref": "#/components/schemas/ImageBackgroundRemovalOutput" }, "$type": { "enum": [ "imageBackgroundRemoval" ], "type": "string" } }, "additionalProperties": false } ], "description": "Removes the background from an image using BiRefNet." }, "ImageBackgroundRemovalStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageBackgroundRemovalInput" }, "$type": { "enum": [ "imageBackgroundRemoval" ], "type": "string" } }, "additionalProperties": false } ], "description": "Removes the background from an image using BiRefNet." }, "ImageBlob": { "allOf": [ { "$ref": "#/components/schemas/Blob" }, { "required": [ "type" ], "type": "object", "properties": { "width": { "type": [ "null", "integer" ], "format": "int32" }, "height": { "type": [ "null", "integer" ], "format": "int32" }, "previewUrl": { "type": [ "null", "string" ], "description": "Gets a url that can be used to preview a resized version of the image.", "format": "uri" }, "previewUrlExpiresAt": { "type": [ "null", "string" ], "format": "date-time" }, "type": { "enum": [ "image" ], "type": "string" } }, "additionalProperties": false } ] }, "ImageGenInput": { "required": [ "engine" ], "type": "object", "properties": { "engine": { "type": "string" }, "outputFormat": { "$ref": "#/components/schemas/ImageGenOutputFormat" }, "imageMetadata": { "type": [ "null", "string" ], "description": "External metadata that will be stored with the image" } }, "additionalProperties": false, "discriminator": { "propertyName": "engine", "mapping": { "openai": "#/components/schemas/OpenApiImageGenInput", "flux1-kontext": "#/components/schemas/Flux1KontextImageGenInput", "flux1-pro": "#/components/schemas/Flux1ProFamilyImageGenInput", "flux2": "#/components/schemas/Flux2ImageGenInput", "google": "#/components/schemas/GoogleImageGenInput", "wan": "#/components/schemas/WanImageGenInput", "gemini": "#/components/schemas/GeminiImageGenInput", "sdcpp": "#/components/schemas/SdCppImageGenInput", "comfy": "#/components/schemas/ComfyImageGenInput", "seedream": "#/components/schemas/SeedreamImageGenInput", "grok": "#/components/schemas/GrokImageGenInput", "fal": "#/components/schemas/FalImageGenInput", "qwen": "#/components/schemas/QwenApiImageGenInput", "krea": "#/components/schemas/KreaImageGenInput" } } }, "ImageGenInputLora": { "required": [ "air" ], "type": "object", "properties": { "air": { "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" }, "strength": { "maximum": 4, "minimum": 0, "type": "number", "format": "double", "default": 1 } }, "additionalProperties": false }, "ImageGenOutput": { "required": [ "images" ], "type": "object", "properties": { "images": { "type": "array", "items": { "$ref": "#/components/schemas/ImageBlob" } }, "errors": { "type": [ "null", "array" ], "items": { "type": "string" } } }, "additionalProperties": false }, "ImageGenOutputFormat": { "enum": [ "jpeg", "png", "webP" ], "type": "string" }, "ImageGenStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageGenInput" }, "output": { "$ref": "#/components/schemas/ImageGenOutput" }, "$type": { "enum": [ "imageGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "Image Generation" }, "ImageGenStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageGenInput" }, "$type": { "enum": [ "imageGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "Image Generation" }, "ImageJobControlNet": { "required": [ "endStep", "preprocessor", "startStep", "weight" ], "type": "object", "properties": { "preprocessor": { "$ref": "#/components/schemas/ImageTransformer" }, "weight": { "type": "number", "format": "double" }, "startStep": { "type": "number", "format": "double" }, "endStep": { "type": "number", "format": "double" }, "image": { "type": [ "null", "string" ], "description": "The preprocessed control image. Accepts an AIR URN, a URL, or a base64 data URL; the\norchestrator processes it into a stored blob before the job is dispatched.", "format": "source-image" }, "mask": { "type": [ "null", "string" ], "description": "The inpaint mask image. Required when the preprocessor is Inpaint.", "format": "source-image" } }, "additionalProperties": false }, "ImageJobNetworkParams": { "type": "object", "properties": { "strength": { "type": [ "null", "number" ], "description": "In case of Lora and LoCon, set the strength of the network", "format": "double" }, "triggerWord": { "type": [ "null", "string" ], "description": "In case of a TextualInversion, set the trigger word of the network" }, "type": { "type": [ "null", "string" ], "description": "A legacy type set by the consumer" } }, "additionalProperties": false }, "ImageOutputFormat": { "required": [ "format", "hideMetadata" ], "type": "object", "properties": { "format": { "type": "string" }, "hideMetadata": { "type": "boolean", "description": "Strips metadata such as EXIF from the output. Defaults to false; some encoders (e.g. JPEG) may still emit minimal metadata." } }, "additionalProperties": false, "discriminator": { "propertyName": "format", "mapping": { "jpeg": "#/components/schemas/JpegOutputFormat", "png": "#/components/schemas/PngOutputFormat", "webp": "#/components/schemas/WebpOutputFormat", "gif": "#/components/schemas/GifOutputFormat", "avif": "#/components/schemas/AvifOutputFormat" } } }, "ImageResouceTrainingModerationStatus": { "enum": [ "evaluating", "underReview", "approved", "rejected" ], "type": "string" }, "ImageResourceTrainingInput": { "required": [ "engine", "model", "trainingData", "trainingDataImagesCount" ], "type": "object", "properties": { "engine": { "type": "string" }, "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" }, "trainingData": { "type": "string", "format": "uri" }, "trainingDataImagesCount": { "type": "integer", "description": "The number of images embedded in this training data. This is used to calculate the cost of training.", "format": "int32" }, "loraName": { "type": "string", "default": "my-lora" }, "samplePrompts": { "type": "array", "items": { "type": "string" } }, "negativePrompt": { "type": [ "null", "string" ], "description": "An optional negative prompt that will get applied when generating samples" } }, "additionalProperties": false, "discriminator": { "propertyName": "engine", "mapping": { "kohya": "#/components/schemas/KohyaImageResourceTrainingInput", "flux-dev-fast": "#/components/schemas/FluxDevFastImageResourceTrainingInput", "musubi": "#/components/schemas/MusubiImageResourceTrainingInput", "flux2-dev": "#/components/schemas/Flux2DevImageResourceTrainingInput", "flux2-dev-edit": "#/components/schemas/Flux2DevEditImageResourceTrainingInput" } } }, "ImageResourceTrainingOutput": { "required": [ "epochs", "moderationStatus", "sampleImagesPrompts" ], "type": "object", "properties": { "moderationStatus": { "$ref": "#/components/schemas/ImageResouceTrainingModerationStatus" }, "epochs": { "type": "array", "items": { "$ref": "#/components/schemas/EpochResult" } }, "sampleImagesPrompts": { "type": "array", "items": { "type": "string" } }, "sampleInputImages": { "type": [ "null", "array" ], "items": { "type": "string", "format": "uri" } }, "storedAsAssets": { "type": [ "null", "boolean" ], "description": "True when the blobs are stored as (deprecated) assets, which need a different retrieval mechanism." }, "eta": { "type": [ "null", "number" ], "description": "Get an estimate in minutes on how long the work is expected to take", "format": "double" } }, "additionalProperties": false }, "ImageResourceTrainingStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageResourceTrainingInput" }, "output": { "$ref": "#/components/schemas/ImageResourceTrainingOutput" }, "$type": { "enum": [ "imageResourceTraining" ], "type": "string" } }, "additionalProperties": false } ], "description": "LORA Training" }, "ImageResourceTrainingStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageResourceTrainingInput" }, "$type": { "enum": [ "imageResourceTraining" ], "type": "string" } }, "additionalProperties": false } ], "description": "LORA Training" }, "ImageScanningHumanEvidence": { "required": [ "polarity", "score", "tag" ], "type": "object", "properties": { "tag": { "type": "string" }, "score": { "type": "number", "format": "double" }, "polarity": { "type": "string" } }, "additionalProperties": false }, "ImageScanningHumanRecognition": { "required": [ "evidence", "humanScore", "label", "noHumanScore", "ran", "score", "scores", "status" ], "type": "object", "properties": { "status": { "type": "string" }, "ran": { "type": "boolean" }, "label": { "type": "string" }, "score": { "type": "number", "format": "double" }, "humanScore": { "type": "number", "format": "double" }, "noHumanScore": { "type": "number", "format": "double" }, "scores": { "type": "object", "additionalProperties": { "type": "number", "format": "double" } }, "evidence": { "type": "array", "items": { "$ref": "#/components/schemas/ImageScanningHumanEvidence" } } }, "additionalProperties": false }, "ImageScanningInput": { "required": [ "image" ], "type": "object", "properties": { "image": { "type": "string", "description": "Image to scan. URLs are imported into orchestrator blob storage before the job is queued.", "format": "source-image" } }, "additionalProperties": false }, "ImageScanningJointAgeClassification": { "required": [ "detections", "ran", "status" ], "type": "object", "properties": { "status": { "type": "string" }, "ran": { "type": "boolean" }, "skipReason": { "type": [ "null", "string" ] }, "detections": { "type": "array", "items": { "$ref": "#/components/schemas/ImageScanningJointAgeDetection" } }, "childDetected": { "type": [ "null", "boolean" ] }, "minorDetected": { "type": [ "null", "boolean" ] }, "oodDetected": { "type": [ "null", "boolean" ] }, "warning": { "type": [ "null", "string" ] }, "error": { "type": [ "null", "string" ] } }, "additionalProperties": false }, "ImageScanningJointAgeDetection": { "required": [ "animeProbability", "boundingBox", "domain", "isChild", "isMinor", "isOod", "ordinalCutpointProbabilities", "personDetected" ], "type": "object", "properties": { "boundingBox": { "type": "array", "items": { "type": "number", "format": "double" } }, "personDetected": { "type": "boolean" }, "personDetectionConfidence": { "type": [ "null", "number" ], "format": "double" }, "faceBoundingBox": { "type": [ "null", "array" ], "items": { "type": "number", "format": "double" } }, "faceDetectionConfidence": { "type": [ "null", "number" ], "format": "double" }, "domain": { "type": "string" }, "animeProbability": { "type": "number", "format": "double" }, "apparentAge": { "type": [ "null", "number" ], "format": "double" }, "ageBand": { "type": [ "null", "string" ] }, "under13Probability": { "type": [ "null", "number" ], "format": "double" }, "under18Probability": { "type": [ "null", "number" ], "format": "double" }, "oodProbability": { "type": [ "null", "number" ], "format": "double" }, "ordinalCutpointProbabilities": { "type": "object", "additionalProperties": { "type": "number", "format": "double" } }, "isChild": { "type": "boolean" }, "isMinor": { "type": "boolean" }, "isOod": { "type": "boolean" }, "warning": { "type": [ "null", "string" ] }, "personMask": { "$ref": "#/components/schemas/ImageScanningPersonMask" } }, "additionalProperties": false }, "ImageScanningLabelScore": { "required": [ "label", "score" ], "type": "object", "properties": { "label": { "type": "string" }, "score": { "type": "number", "format": "double" } }, "additionalProperties": false }, "ImageScanningOutput": { "required": [ "aiRecognition", "animeRecognition", "humanRecognition", "jointAgeClassification", "nsfwLevel", "score", "tagging", "topK" ], "type": "object", "properties": { "nsfwLevel": { "$ref": "#/components/schemas/NSFWLevel" }, "score": { "type": "number", "format": "double" }, "topK": { "type": "array", "items": { "$ref": "#/components/schemas/ImageScanningLabelScore" } }, "aiRecognition": { "$ref": "#/components/schemas/ImageScanningRecognition" }, "animeRecognition": { "$ref": "#/components/schemas/ImageScanningRecognition" }, "tagging": { "$ref": "#/components/schemas/ImageScanningTagging" }, "humanRecognition": { "$ref": "#/components/schemas/ImageScanningHumanRecognition" }, "jointAgeClassification": { "$ref": "#/components/schemas/ImageScanningJointAgeClassification" }, "csam": { "type": [ "null", "boolean" ] } }, "additionalProperties": false }, "ImageScanningPersonMask": { "required": [ "height", "pngBase64", "width" ], "type": "object", "properties": { "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" }, "pngBase64": { "type": "string" } }, "additionalProperties": false }, "ImageScanningRecognition": { "required": [ "label", "score" ], "type": "object", "properties": { "label": { "type": "string" }, "score": { "type": "number", "format": "double" }, "topK": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/ImageScanningLabelScore" } }, "scores": { "type": [ "null", "object" ], "additionalProperties": { "type": "number", "format": "double" } } }, "additionalProperties": false }, "ImageScanningStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageScanningInput" }, "output": { "$ref": "#/components/schemas/ImageScanningOutput" }, "$type": { "enum": [ "imageScanning" ], "type": "string" } }, "additionalProperties": false } ], "description": "Image scanning" }, "ImageScanningStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageScanningInput" }, "$type": { "enum": [ "imageScanning" ], "type": "string" } }, "additionalProperties": false } ], "description": "Image scanning" }, "ImageScanningTag": { "required": [ "category", "score", "tag" ], "type": "object", "properties": { "tag": { "type": "string" }, "category": { "type": "string" }, "score": { "type": "number", "format": "double" } }, "additionalProperties": false }, "ImageScanningTagging": { "required": [ "ran", "status", "tagCount", "tags", "threshold", "totalAboveThreshold", "truncated" ], "type": "object", "properties": { "status": { "type": "string" }, "ran": { "type": "boolean" }, "threshold": { "type": "number", "format": "double" }, "tagCount": { "type": "integer", "format": "int32" }, "totalAboveThreshold": { "type": "integer", "format": "int32" }, "truncated": { "type": "boolean" }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/ImageScanningTag" } } }, "additionalProperties": false }, "ImageToSvgInput": { "required": [ "engine", "image" ], "type": "object", "properties": { "engine": { "type": "string" }, "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "additionalProperties": false, "discriminator": { "propertyName": "engine", "mapping": { "comfy": "#/components/schemas/ComfyImageToSvgInput" } } }, "ImageToSvgOutput": { "required": [ "svg" ], "type": "object", "properties": { "svg": { "$ref": "#/components/schemas/Blob" } }, "additionalProperties": false }, "ImageToSvgStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageToSvgInput" }, "output": { "$ref": "#/components/schemas/ImageToSvgOutput" }, "$type": { "enum": [ "imageToSvg" ], "type": "string" } }, "additionalProperties": false } ], "description": "Converts a raster image to an SVG using a local StarVector or OmniSVG model." }, "ImageToSvgStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageToSvgInput" }, "$type": { "enum": [ "imageToSvg" ], "type": "string" } }, "additionalProperties": false } ], "description": "Converts a raster image to an SVG using a local StarVector or OmniSVG model." }, "ImageTransform": { "required": [ "type" ], "type": "object", "properties": { "type": { "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "type", "mapping": { "resize": "#/components/schemas/ResizeTransform", "blur": "#/components/schemas/BlurTransform" } } }, "ImageTransformer": { "enum": [ "canny", "mlsd", "depthZoe", "depthAnything", "depthAnythingV2", "zoeDepthAnything", "zoeDepth", "midasDepth", "leresDepth", "metric3dDepth", "softedgePidinet", "hed", "teed", "midasNormal", "baeNormal", "dsineNormal", "metric3dNormal", "lineartRealistic", "lineartStandard", "lineartAnime", "lineartManga", "anyline", "scribble", "scribbleXdog", "scribblePidinet", "fakeScribble", "openpose", "dwpose", "oneformerCoco", "oneformerAde20k", "uniformer", "shuffle", "tile", "gray", "rembg", "inpaint" ], "type": "string" }, "ImageUploadOutput": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/Blob" } }, "additionalProperties": false }, "ImageUploadStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "type": "string" }, "output": { "$ref": "#/components/schemas/ImageUploadOutput" }, "$type": { "enum": [ "imageUpload" ], "type": "string" } }, "additionalProperties": false } ], "description": "Image upload" }, "ImageUploadStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "type": [ "null", "string" ], "description": "Input for the ImageUploadStep step." }, "$type": { "enum": [ "imageUpload" ], "type": "string" } }, "additionalProperties": false } ], "description": "Image upload" }, "ImageUpscalerInput": { "required": [ "image" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "model": { "type": [ "null", "string" ] }, "numberOfRepeats": { "maximum": 3, "minimum": 1, "type": "integer", "description": "Number of times to repeat the upscale operation (1-3). Each repeat doubles the resolution.", "format": "int32", "default": 1 } }, "additionalProperties": false }, "ImageUpscalerOutput": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/ImageBlob" } }, "additionalProperties": false }, "ImageUpscalerStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageUpscalerInput" }, "output": { "$ref": "#/components/schemas/ImageUpscalerOutput" }, "$type": { "enum": [ "imageUpscaler" ], "type": "string" } }, "additionalProperties": false } ] }, "ImageUpscalerStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ImageUpscalerInput" }, "$type": { "enum": [ "imageUpscaler" ], "type": "string" } }, "additionalProperties": false } ] }, "Imagen4ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GoogleImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "prompt": { "maxLength": 1000, "minLength": 0, "type": "string" }, "negativePrompt": { "maxLength": 1000, "minLength": 0, "type": "string", "default": "" }, "aspectRatio": { "enum": [ "1:1", "16:9", "9:16", "3:4", "4:3" ], "type": "string", "default": "1:1" }, "numImages": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "model": { "enum": [ "imagen4" ], "type": "string" }, "engine": { "enum": [ "google" ], "type": "string" } }, "additionalProperties": false } ] }, "JobSupport": { "enum": [ "unsupported", "unavailable", "available" ], "type": "string" }, "JointAgeClassificationResult": { "required": [ "detections" ], "type": "object", "properties": { "detections": { "type": "array", "items": { "$ref": "#/components/schemas/JointAgeDetection" } }, "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 joint face-and-body apparent-age results for photo and anime content." }, "JointAgeDetection": { "required": [ "ageBand", "animeProbability", "apparentAge", "boundingBox", "domain", "isChild", "isMinor", "isOod", "oodProbability", "ordinalCutpointProbabilities", "personDetected", "personDetectionConfidence", "under13Probability", "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" }, "domain": { "type": "string" }, "animeProbability": { "type": "number", "format": "double" }, "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" } }, "isChild": { "type": "boolean" }, "isMinor": { "type": "boolean" }, "isOod": { "type": "boolean" }, "warning": { "type": [ "null", "string" ] } }, "additionalProperties": false, "description": "Represents one photo-or-anime age estimate for a detected person." }, "JpegOutputFormat": { "allOf": [ { "$ref": "#/components/schemas/ImageOutputFormat" }, { "required": [ "format" ], "type": "object", "properties": { "quality": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32", "default": 85 }, "format": { "enum": [ "jpeg" ], "type": "string" } }, "additionalProperties": false } ] }, "JsonPatchDocument": { "type": "array", "items": { "$ref": "#/components/schemas/JsonPatchOperation" }, "description": "Array of operations to perform" }, "JsonPatchOperation": { "required": [ "op", "path" ], "type": "object", "properties": { "op": { "enum": [ "add", "remove", "replace", "move", "copy", "test" ], "type": "string", "description": "The operation type. Allowed values: 'add', 'remove', 'replace', 'move', 'copy', 'test'." }, "path": { "type": "string", "description": "The JSON Pointer path to the property in the target document where the operation is to be applied." }, "from": { "type": "string", "description": "Should be a path, required when using move, copy" }, "value": { "type": "null", "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "object" }, { "type": "array" } ], "description": "The value to apply for 'add', 'replace', or 'test' operations. Not required for 'remove', 'move', or 'copy'." } }, "description": "Describes a single operation in a JSON Patch document. Includes the operation type, the target property path, and the value to be used." }, "KlingCameraControl": { "type": "object", "properties": { "config": { "$ref": "#/components/schemas/KlingCameraControlConfig" } }, "additionalProperties": false }, "KlingCameraControlConfig": { "type": "object", "properties": { "horizontal": { "maximum": 10, "minimum": -10, "type": [ "null", "number" ], "description": "Translation along the x-axis; negative moves left, positive right.", "format": "double" }, "vertical": { "maximum": 10, "minimum": -10, "type": [ "null", "number" ], "description": "Translation along the y-axis; negative moves down, positive up.", "format": "double" }, "pan": { "maximum": 10, "minimum": -10, "type": [ "null", "number" ], "description": "Rotation around the y-axis; negative turns left, positive right.", "format": "double" }, "tilt": { "maximum": 10, "minimum": -10, "type": [ "null", "number" ], "description": "Rotation around the x-axis; negative tilts down, positive up.", "format": "double" }, "roll": { "maximum": 10, "minimum": -10, "type": [ "null", "number" ], "description": "Rotation around the z-axis; negative is counterclockwise, positive clockwise.", "format": "double" }, "zoom": { "maximum": 10, "minimum": -10, "type": [ "null", "number" ], "description": "Focal length change; negative narrows the field of view, positive widens it.", "format": "double" } }, "additionalProperties": false }, "KlingMode": { "enum": [ "standard", "professional" ], "type": "string" }, "KlingModel": { "enum": [ "v1", "v1.5", "v1.6", "v2", "v2.5-turbo" ], "type": "string" }, "KlingV3ElementInput": { "type": "object", "properties": { "frontalImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "referenceImages": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "videoUrl": { "type": [ "null", "string" ], "format": "uri" } }, "additionalProperties": false }, "KlingV3MultiPrompt": { "required": [ "prompt" ], "type": "object", "properties": { "prompt": { "type": "string" }, "duration": { "type": "integer", "format": "int32", "default": 5 } }, "additionalProperties": false }, "KlingV3Operation": { "enum": [ "text-to-video", "image-to-video", "reference-to-video", "video-to-video-edit", "video-to-video-reference" ], "type": "string" }, "KlingV3VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine" ], "type": "object", "properties": { "operation": { "$ref": "#/components/schemas/KlingV3Operation" }, "mode": { "$ref": "#/components/schemas/KlingMode" }, "duration": { "maximum": 15, "minimum": 3, "type": "integer", "format": "int32", "default": 5 }, "aspectRatio": { "$ref": "#/components/schemas/KlingVideoGenAspectRatio" }, "sourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "endImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "videoUrl": { "type": [ "null", "string" ], "format": "uri" }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "elements": { "type": "array", "items": { "$ref": "#/components/schemas/KlingV3ElementInput" } }, "generateAudio": { "type": "boolean", "default": false }, "voiceIds": { "type": [ "null", "array" ], "items": { "type": "string" } }, "keepAudio": { "type": "boolean", "default": true }, "multiPrompt": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/KlingV3MultiPrompt" } }, "engine": { "enum": [ "kling-v3" ], "type": "string" } }, "additionalProperties": false } ] }, "KlingVideoGenAspectRatio": { "enum": [ "16:9", "9:16", "1:1" ], "type": "string" }, "KlingVideoGenDuration": { "enum": [ "5", "10" ], "type": "string" }, "KlingVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "cfgScale", "engine" ], "type": "object", "properties": { "model": { "$ref": "#/components/schemas/KlingModel" }, "negativePrompt": { "type": [ "null", "string" ] }, "cfgScale": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 0.5 }, "mode": { "$ref": "#/components/schemas/KlingMode" }, "aspectRatio": { "$ref": "#/components/schemas/KlingVideoGenAspectRatio" }, "duration": { "$ref": "#/components/schemas/KlingVideoGenDuration" }, "cameraControl": { "$ref": "#/components/schemas/KlingCameraControl" }, "sourceImageUrl": { "type": [ "null", "string" ], "format": "uri" }, "sourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "engine": { "enum": [ "kling" ], "type": "string" } }, "additionalProperties": false } ] }, "KohyaImageResourceTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/ImageResourceTrainingInput" }, { "required": [ "engine" ], "type": "object", "properties": { "maxTrainEpochs": { "maximum": 20, "minimum": 0, "type": "integer", "description": "An epoch is one set of learning. By default, we will save a maximum of 20 epochs (evenly distributed), and they are all available for download.", "format": "int32", "default": 5 }, "numRepeats": { "maximum": 5000, "minimum": 1, "type": "integer", "description": "Num Repeats defines how many times each individual image gets put into VRAM. As opposed to batch size, which is how many images are placed into VRAM at once.", "format": "int32", "default": 8 }, "trainBatchSize": { "maximum": 9, "minimum": 1, "type": [ "null", "integer" ], "description": "Batch size is the number of images that will be placed into VRAM at once. A batch size of 2 will train two images at a time, simultaneously.", "format": "int32" }, "resolution": { "maximum": 1024, "minimum": 512, "type": [ "null", "integer" ], "description": "Specify the maximum resolution of training images. If the training images exceed the resolution specified here, they will be scaled down to this resolution", "format": "int32" }, "enableBucket": { "type": "boolean", "description": "Sorts images into buckets by size for the purposes of training. If your training images are all the same size, you can turn this option off, but leaving it on has no effect.", "default": true }, "shuffleCaption": { "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": 3, "minimum": 0, "type": "integer", "description": "Keeps this many leading tags in place when shuffling captions. Does nothing when Shuffle Tags is off.", "format": "int32", "default": 0 }, "clipSkip": { "maximum": 4, "minimum": 1, "type": "integer", "description": "Determines which layer's vector output will be used. There are 12 layers, and setting the skip will select \"xth from the end\" of the total layers. For anime, we use 2. For everything else, 1.", "format": "int32", "default": 1 }, "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 }, "unetLR": { "maximum": 1, "minimum": 0, "type": "number", "description": "Sets the learning rate for U-Net. This is the learning rate when performing additional learning on each attention block (and other blocks depending on the setting) in U-Net", "format": "double", "default": 0.00005 }, "textEncoderLR": { "maximum": 1, "minimum": 0, "type": "number", "description": "Sets the learning rate for the text encoder. The effect of additional training on text encoders affects the entire U-Net.", "format": "double", "default": 0.00005 }, "lrScheduler": { "enum": [ "constant", "cosine", "cosine_with_restarts", "linear" ], "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." }, "lrSchedulerNumCycles": { "maximum": 4, "minimum": 1, "type": "integer", "description": "This option specifies how many cycles the scheduler runs during training. It is only used when \"cosine_with_restarts\" or \"polynomial\" is used as the scheduler.", "format": "int32", "default": 3 }, "minSnrGamma": { "maximum": 20, "minimum": 0, "type": [ "null", "integer" ], "description": "Compensates for unstable learning across noise strengths by suppressing large deviations when training images carry little noise.", "format": "int32" }, "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 LoRA weights relative to Dim: alpha 16 with dim 32 applies the learning rate at half strength;\nequal values leave it unchanged.", "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" }, "optimizerType": { "type": [ "null", "string" ], "description": "Optimizer that updates the weights during training; \"AdamW8bit\" is the common choice, \"Adafactor\" for SDXL." }, "targetSteps": { "type": [ "null", "integer" ], "format": "int32", "readOnly": true }, "engine": { "enum": [ "kohya" ], "type": "string" } }, "additionalProperties": false } ] }, "Krea2AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "krea2" ], "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 } ] }, "Krea2CreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Krea2FalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "krea2" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Krea2FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalImageGenInput" }, { "required": [ "engine", "imageStyleReferences", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 5000, "minLength": 1, "type": "string" }, "size": { "enum": [ "medium", "large" ], "type": "string", "default": "medium" }, "aspectRatio": { "enum": [ "1:1", "4:3", "3:2", "16:9", "2.35:1", "4:5", "2:3", "9:16" ], "type": "string", "default": "1:1" }, "creativity": { "enum": [ "raw", "low", "medium", "high" ], "type": "string", "default": "medium" }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "imageStyleReferences": { "maxItems": 10, "type": "array", "items": { "$ref": "#/components/schemas/Krea2StyleReference" } }, "model": { "enum": [ "krea2" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Krea2CreateFalImageGenInput" } } } ] }, "Krea2StyleReference": { "required": [ "imageUrl" ], "type": "object", "properties": { "imageUrl": { "minLength": 1, "type": "string" }, "strength": { "maximum": 2, "minimum": -2, "type": "number", "format": "double", "default": 1 } }, "additionalProperties": false }, "KreaCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/KreaImageGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "image": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "strength": { "maximum": 1, "minimum": 0, "type": "number", "description": "Denoising strength for image-to-image; ignored without Civitai.Orchestration.Grains.Workflows.Steps.ImageGen.Krea.KreaCreateImageGenInput.Image.", "format": "double", "default": 0.99 }, "operation": { "enum": [ "createImage" ], "type": "string" }, "engine": { "enum": [ "krea" ], "type": "string" } }, "additionalProperties": false } ], "description": "Text-to-image, or image-to-image when Civitai.Orchestration.Grains.Workflows.Steps.ImageGen.Krea.KreaCreateImageGenInput.Image is supplied." }, "KreaImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "imageStyleReferences", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "createImage" }, "prompt": { "maxLength": 5000, "minLength": 1, "type": "string" }, "model": { "enum": [ "krea2-medium", "krea2-large", "krea2-medium-turbo" ], "type": "string", "default": "krea2-medium" }, "aspectRatio": { "enum": [ "1:1", "4:3", "3:2", "16:9", "2.35:1", "4:5", "2:3", "9:16" ], "type": "string", "default": "1:1" }, "creativity": { "enum": [ "raw", "low", "medium", "high" ], "type": "string", "description": "How much Krea expands the prompt: `raw` renders only what was written.", "default": "medium" }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "intensity": { "maximum": 100, "minimum": -100, "type": "integer", "description": "K2 intensity slider.", "format": "int32", "default": 0 }, "complexity": { "maximum": 100, "minimum": -100, "type": "integer", "description": "K2 complexity slider.", "format": "int32", "default": 0 }, "movement": { "maximum": 100, "minimum": -100, "type": "integer", "description": "K2 movement slider.", "format": "int32", "default": 0 }, "imageStyleReferences": { "maxItems": 10, "type": "array", "items": { "$ref": "#/components/schemas/Krea2StyleReference" } }, "engine": { "enum": [ "krea" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/KreaCreateImageGenInput" } } } ], "description": "Krea 2 served by Krea's own API. Distinct from `fal`/`krea2` (the same models via FAL) and\nfrom the `comfy`/`krea2` ecosystem, which runs the open weights on our own workers." }, "LeresBoost": { "enum": [ "disable", "enable" ], "type": "string" }, "LightricksAspectRatio": { "enum": [ "1:1", "16:9", "9:16", "3:2", "2:3" ], "type": "string" }, "LightricksVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "cfgScale", "engine" ], "type": "object", "properties": { "negativePrompt": { "type": [ "null", "string" ] }, "cfgScale": { "maximum": 100, "minimum": 0, "type": "number", "format": "double", "default": 4 }, "frameRate": { "type": "integer", "format": "int32", "default": 25 }, "duration": { "maximum": 30, "minimum": 1, "type": "integer", "format": "int32", "default": 5 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "steps": { "maximum": 50, "minimum": 10, "type": "integer", "format": "int32", "default": 20 }, "aspectRatio": { "$ref": "#/components/schemas/LightricksAspectRatio" }, "sourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "expandPrompt": { "type": "boolean", "default": true }, "engine": { "enum": [ "lightricks" ], "type": "string" } }, "additionalProperties": false } ] }, "LiveQwen3CustomVoiceTTSInput": { "allOf": [ { "$ref": "#/components/schemas/LiveQwen3TextToSpeechInput" }, { "required": [ "ecosystem", "engine", "operation", "speaker" ], "type": "object", "properties": { "speaker": { "enum": [ "aiden", "dylan", "eric", "ono_anna", "ryan", "serena", "sohee", "uncle_fu", "vivian" ], "type": "string", "description": "Built-in speaker name." }, "instruct": { "type": [ "null", "string" ], "description": "Optional style instruction (e.g., \"speak slowly and clearly\")." }, "operation": { "enum": [ "customVoice" ], "type": "string" }, "ecosystem": { "enum": [ "qwen3" ], "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false } ] }, "LiveQwen3TextToSpeechInput": { "allOf": [ { "$ref": "#/components/schemas/LiveVllmOmniTextToSpeechInput" }, { "required": [ "ecosystem", "engine", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "maxNewTokens": { "type": [ "null", "integer" ], "description": "Token cap per sentence.", "format": "int32" }, "ecosystem": { "enum": [ "qwen3" ], "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "customVoice": "#/components/schemas/LiveQwen3CustomVoiceTTSInput" } } } ] }, "LiveTextToSpeechInput": { "required": [ "engine" ], "type": "object", "properties": { "engine": { "type": "string" }, "text": { "type": [ "null", "string" ], "description": "Spoken before any appended text." }, "language": { "type": [ "null", "string" ], "description": "Target language (e.g., \"English\", \"Chinese\"). Defaults to \"Auto\"." }, "format": { "enum": [ "pcm", "ogg" ], "type": "string", "description": "`pcm` streams raw s16le 24 kHz mono for the lowest latency; `ogg` streams Opus.", "default": "pcm" }, "maxCharacters": { "maximum": 50000, "minimum": 1, "type": "integer", "description": "The session ends once this many characters have been spoken. The upfront balance check covers this much text.", "format": "int32", "default": 5000 }, "idleTimeoutSeconds": { "maximum": 600, "minimum": 2, "type": "integer", "description": "The input is treated as closed when no text arrives for this many seconds.", "format": "int32", "default": 30 } }, "additionalProperties": false, "description": "Mirrors `textToSpeech` inputs, but only for voices proven to stream with low first-audio latency.", "discriminator": { "propertyName": "engine", "mapping": { "vllm-omni": "#/components/schemas/LiveVllmOmniTextToSpeechInput" } } }, "LiveTextToSpeechOutput": { "required": [ "audioSeconds", "audioUrl", "characters", "inputUrl", "inputUrlExpiresAt" ], "type": "object", "properties": { "inputUrl": { "type": "string", "description": "POST UTF-8 text here in chunks numbered `?seq=0,1,…`, with `final=true` on the last.\nText is spoken a sentence at a time; the final chunk flushes whatever is left.", "format": "uri" }, "inputUrlExpiresAt": { "type": "string", "format": "date-time" }, "audioUrl": { "type": "string", "description": "One continuous audio stream for the whole session, in the requested format.", "format": "uri" }, "characters": { "type": "integer", "description": "Characters spoken so far; the session is billed on this.", "format": "int32" }, "audioSeconds": { "type": "number", "format": "double" } }, "additionalProperties": false }, "LiveTextToSpeechStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/LiveTextToSpeechInput" }, "output": { "$ref": "#/components/schemas/LiveTextToSpeechOutput" }, "$type": { "enum": [ "liveTextToSpeech" ], "type": "string" } }, "additionalProperties": false } ], "description": "Live text to speech" }, "LiveTextToSpeechStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/LiveTextToSpeechInput" }, "$type": { "enum": [ "liveTextToSpeech" ], "type": "string" } }, "additionalProperties": false } ], "description": "Live text to speech" }, "LiveTranscriptionInput": { "type": "object", "properties": { "language": { "type": [ "null", "string" ], "description": "Language of the speech (e.g., \"en\", \"zh\"). Send it: without it the model assumes English and invents English text for other languages." }, "context": { "type": [ "null", "string" ], "description": "Optional context prompt to improve transcription accuracy." }, "maxDurationSeconds": { "maximum": 600, "minimum": 1, "type": "integer", "description": "The session ends after this many seconds of audio, even if the input is still open.\nThe upfront balance check covers this much audio.", "format": "int32", "default": 120 }, "idleTimeoutSeconds": { "maximum": 60, "minimum": 2, "type": "integer", "description": "The input is treated as closed when no audio arrives for this many seconds, so a client that\ndisappears does not hold the session open.", "format": "int32", "default": 10 } }, "additionalProperties": false }, "LiveTranscriptionOutput": { "required": [ "audioSeconds", "inputUrl", "inputUrlExpiresAt", "transcriptUrl" ], "type": "object", "properties": { "inputUrl": { "type": "string", "description": "POST raw PCM (s16le, 16 kHz, mono) here in chunks numbered `?seq=0,1,…`, with `final=true` on the last.", "format": "uri" }, "inputUrlExpiresAt": { "type": "string", "format": "date-time" }, "transcriptUrl": { "type": "string", "description": "NDJSON transcript events: `partial` replaces the open segment's text, `final` commits it,\nand `done` ends the stream with the whole transcript.", "format": "uri" }, "text": { "type": [ "null", "string" ], "description": "The whole transcript, once the session has ended." }, "audioSeconds": { "type": "number", "description": "Seconds of audio received so far; the session is billed on this.", "format": "double" } }, "additionalProperties": false }, "LiveTranscriptionStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/LiveTranscriptionInput" }, "output": { "$ref": "#/components/schemas/LiveTranscriptionOutput" }, "$type": { "enum": [ "liveTranscription" ], "type": "string" } }, "additionalProperties": false } ], "description": "Live transcription" }, "LiveTranscriptionStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/LiveTranscriptionInput" }, "$type": { "enum": [ "liveTranscription" ], "type": "string" } }, "additionalProperties": false } ], "description": "Live transcription" }, "LiveVllmOmniTextToSpeechInput": { "allOf": [ { "$ref": "#/components/schemas/LiveTextToSpeechInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "ecosystem": { "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "ecosystem", "mapping": { "qwen3": "#/components/schemas/LiveQwen3TextToSpeechInput" } } } ] }, "LoadingResourceAvailability": { "allOf": [ { "$ref": "#/components/schemas/ResourceAvailability" }, { "required": [ "progress", "status", "workers" ], "type": "object", "properties": { "progress": { "type": "number", "format": "double" }, "workers": { "type": "integer", "format": "int32" }, "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "lastProgressAt": { "type": [ "null", "string" ], "format": "date-time" }, "etaSeconds": { "type": [ "null", "integer" ], "format": "int32" }, "lane": { "$ref": "#/components/schemas/Priority" }, "bytesPerSecond": { "type": [ "null", "number" ], "description": "Inferred from reported progress over elapsed time; the worker's byte counters never leave it.", "format": "double" }, "rateLimitBytesPerSecond": { "type": [ "null", "integer" ], "description": "Per-stream ceiling the lane applies to this download. Null when uncapped; boosting to High lifts it.", "format": "int64" }, "status": { "enum": [ "loading" ], "type": "string" } }, "additionalProperties": false } ], "description": "Transferring. No queue position — it is no longer waiting." }, "Ltx23AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine", "storageBuzzPerEpoch" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "storageBuzzPerEpoch": { "type": "number", "format": "double", "readOnly": true }, "ecosystem": { "enum": [ "ltx23" ], "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 } ] }, "Ltx25AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine", "storageBuzzPerEpoch" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "storageBuzzPerEpoch": { "type": "number", "format": "double", "readOnly": true }, "ecosystem": { "enum": [ "ltx25" ], "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 } ] }, "Ltx2AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine", "storageBuzzPerEpoch" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "storageBuzzPerEpoch": { "type": "number", "format": "double", "readOnly": true }, "ecosystem": { "enum": [ "ltx2" ], "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 } ] }, "MageFlowAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "mageflow" ], "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 } ] }, "MaiImageCreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/MaiImageFalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "maiImage" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "MaiImageEditFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/MaiImageFalImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "maxItems": 4, "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": [ "maiImage" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "MaiImageFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 5000, "minLength": 3, "type": "string" }, "aspectRatio": { "enum": [ "auto", "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16" ], "type": "string", "default": "auto" }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "model": { "enum": [ "maiImage" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/MaiImageCreateFalImageGenInput", "editImage": "#/components/schemas/MaiImageEditFalImageGenInput" } } } ] }, "MediaCanvas": { "required": [ "height", "width" ], "type": "object", "properties": { "width": { "type": "integer", "description": "Output width in pixels.", "format": "int32" }, "height": { "type": "integer", "description": "Output height in pixels.", "format": "int32" }, "fps": { "type": "integer", "format": "int32", "default": 30 }, "background": { "type": "string", "description": "Hex background colour (e.g. `\"#000000\"`) painted where no element covers the canvas. An 8-digit\n`\"#RRGGBBAA\"` sets the alpha, which needs an alpha-capable output container (webp).", "default": "#000000" } }, "additionalProperties": false, "description": "Output canvas geometry. Set this to produce a video composition; leave it null for an\nall-audio mixdown." }, "MediaCaptioningInput": { "required": [ "mediaUrl" ], "type": "object", "properties": { "model": { "enum": [ "joy-caption", "ideogram4" ], "type": "string", "description": "Captioning model and output contract. Use `ideogram4` for structured\nIdeogram 4 JSON captions with normalized bounding boxes.", "default": "joy-caption" }, "mediaUrl": { "type": "string", "description": "The URL of the media to caption (single image or video).", "format": "uri" }, "temperature": { "type": "number", "description": "Sampling temperature for caption generation. Ideogram 4 uses the Qwen model's\nfixed sampling defaults to match AI Toolkit.", "format": "double", "default": 0.5 }, "maxNewTokens": { "type": "integer", "description": "Maximum number of tokens to generate. Ideogram 4 enforces a 3072-token floor.", "format": "int32", "default": 300 }, "customInstructions": { "type": [ "null", "string" ], "description": "Optional extra instructions appended to the captioning prompt to steer\ntone, structure, or formatting. Leave unset for the default caption." } }, "additionalProperties": false }, "MediaCaptioningOutput": { "required": [ "caption" ], "type": "object", "properties": { "caption": { "type": "string" } }, "additionalProperties": false }, "MediaCaptioningStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MediaCaptioningInput" }, "output": { "$ref": "#/components/schemas/MediaCaptioningOutput" }, "$type": { "enum": [ "mediaCaptioning" ], "type": "string" } }, "additionalProperties": false } ], "description": "Media Captioning" }, "MediaCaptioningStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MediaCaptioningInput" }, "$type": { "enum": [ "mediaCaptioning" ], "type": "string" } }, "additionalProperties": false } ], "description": "Media Captioning" }, "MediaContainer": { "enum": [ "auto", "mp4", "webm", "ogg", "mp3", "webp" ], "type": "string" }, "MediaFit": { "enum": [ "contain", "cover", "stretch" ], "type": "string", "description": "How a video element is fitted into the output canvas when its aspect ratio differs." }, "MediaHashInput": { "required": [ "hashTypes", "mediaUrl" ], "type": "object", "properties": { "mediaUrl": { "type": "string", "description": "The URL of the media to hash (image or video).", "format": "uri" }, "hashTypes": { "type": "array", "items": { "$ref": "#/components/schemas/MediaHashType" } } }, "additionalProperties": false }, "MediaHashOutput": { "required": [ "hashes" ], "type": "object", "properties": { "hashes": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The generated hashes, keyed by hash type (e.g., \"perceptual\" -> \"12345678\")." } }, "additionalProperties": false }, "MediaHashStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MediaHashInput" }, "output": { "$ref": "#/components/schemas/MediaHashOutput" }, "$type": { "enum": [ "mediaHash" ], "type": "string" } }, "additionalProperties": false } ], "description": "MediaHash" }, "MediaHashStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MediaHashInput" }, "$type": { "enum": [ "mediaHash" ], "type": "string" } }, "additionalProperties": false } ], "description": "MediaHash" }, "MediaHashType": { "enum": [ "perceptual", "perceptualDct", "perceptualDct256" ], "type": "string" }, "MediaLayout": { "type": "object", "properties": { "zOrder": { "type": "integer", "description": "Stacking order. Higher values draw on top; ties are broken by element index.", "format": "int32", "default": 0 }, "x": { "type": "integer", "description": "X offset, in pixels, of the element's top-left corner on the canvas.", "format": "int32", "default": 0 }, "y": { "type": "integer", "description": "Y offset, in pixels, of the element's top-left corner on the canvas.", "format": "int32", "default": 0 }, "scale": { "type": "number", "description": "Uniform scale applied to the element before placement. `1.0` keeps the fitted size.", "format": "float", "default": 1 }, "fit": { "$ref": "#/components/schemas/MediaFit" } }, "additionalProperties": false, "description": "Spatial placement of a video element on the output canvas. Ignored for audio elements and\nfor all-audio compositions. Exactly one layout per element." }, "MediaOutputType": { "enum": [ "audio", "video" ], "type": "string", "description": "The kind of output a composition produces. When left unspecified on the input, it is derived\nfrom the elements: video if any element is video (or a canvas is supplied), otherwise audio." }, "MediaRatingInput": { "required": [ "includeAgeClassification", "includeAIRecognition", "includeAnimeBodyAgeClassification", "includeAnimeRecognition", "includeBodyAgeClassification", "includeFaceRecognition", "includeHumanRecognition", "includeJointAgeClassification" ], "type": "object", "properties": { "image": { "type": [ "null", "string" ], "description": "The image to rate. URLs are imported into blob storage before the job is queued so the worker can pre-fetch it.", "format": "source-image" }, "includeAgeClassification": { "type": "boolean", "description": "Include conditional age-classification details for R-or-higher content in the results.\nThe top-level CSAM signal is evaluated regardless of this setting." }, "includeFaceRecognition": { "type": "boolean", "description": "Include face recognition and similarity analysis in the results" }, "includeAIRecognition": { "type": "boolean", "description": "Include AI vs real image detection in the results" }, "includeAnimeRecognition": { "type": "boolean", "description": "Include anime vs real image detection in the results" }, "includeHumanRecognition": { "type": "boolean", "description": "Include human vs non-human detection in the results" }, "includeBodyAgeClassification": { "type": "boolean", "description": "Include body-only apparent-age and child-risk classification in the results." }, "includeAnimeBodyAgeClassification": { "type": "boolean", "description": "Include anime apparent-age and child-risk classification in the results." }, "includeJointAgeClassification": { "type": "boolean", "description": "Include joint face-and-body apparent-age classification for photo and anime content." } }, "additionalProperties": false }, "MediaRatingOutput": { "required": [ "isBlocked", "nsfwLevel" ], "type": "object", "properties": { "nsfwLevel": { "$ref": "#/components/schemas/NSFWLevel" }, "blockedReason": { "type": [ "null", "string" ] }, "isBlocked": { "type": "boolean" }, "labels": { "uniqueItems": true, "type": [ "null", "array" ], "items": { "type": "string" }, "description": "Detected content labels (e.g., \"Animal\", \"Child\", etc.)." }, "ageClassification": { "$ref": "#/components/schemas/AgeClassificationResult" }, "faceRecognition": { "$ref": "#/components/schemas/FaceRecognitionResult" }, "aiRecognition": { "$ref": "#/components/schemas/AIRecognitionResult" }, "animeRecognition": { "$ref": "#/components/schemas/AnimeRecognitionResult" }, "csam": { "type": [ "null", "boolean" ], "description": "Potential CSAM signal from conditional age classification on R-or-higher content.\nNull means the image was below R or age classification failed." }, "humanRecognition": { "$ref": "#/components/schemas/HumanRecognitionResult" }, "bodyAgeClassification": { "$ref": "#/components/schemas/BodyAgeClassificationResult" }, "animeBodyAgeClassification": { "$ref": "#/components/schemas/AnimeBodyAgeClassificationResult" }, "jointAgeClassification": { "$ref": "#/components/schemas/JointAgeClassificationResult" } }, "additionalProperties": false }, "MediaRatingStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MediaRatingInput" }, "output": { "$ref": "#/components/schemas/MediaRatingOutput" }, "$type": { "enum": [ "mediaRating" ], "type": "string" } }, "additionalProperties": false } ], "description": "MediaRating" }, "MediaRatingStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MediaRatingInput" }, "$type": { "enum": [ "mediaRating" ], "type": "string" } }, "additionalProperties": false } ], "description": "MediaRating" }, "MediaTransformer": { "required": [ "type" ], "type": "object", "properties": { "type": { "type": "string" } }, "additionalProperties": false, "description": "Per-element transformer applied to a media element before it is composited; transformers run in array order.", "discriminator": { "propertyName": "type", "mapping": { "fadeIn": "#/components/schemas/FadeInTransformer", "fadeOut": "#/components/schemas/FadeOutTransformer", "volume": "#/components/schemas/VolumeTransformer", "backgroundRemoval": "#/components/schemas/BackgroundRemovalTransformer" } } }, "MergeField": { "required": [ "$ref", "includeIndex", "path", "reduce" ], "type": "object", "properties": { "$ref": { "type": "string", "description": "The name of the step to read from, or `$arguments` for the workflow's arguments." }, "path": { "type": "string", "description": "The path to the values, e.g. `output.steps[*].output.nsfwLevel`. `[*]` selects the rest of the path\nfrom every item of a list; nested `[*]` flatten into one list." }, "reduce": { "$ref": "#/components/schemas/MergeReducer" }, "by": { "type": [ "null", "string" ], "description": "For `group`: the property of each item to group by." }, "sortBy": { "type": [ "null", "object" ], "additionalProperties": { "type": "integer", "format": "int32" }, "description": "For `top` and `group`: the properties to rank items by, in order, each 1 (ascending) or -1 (descending)." }, "includeIndex": { "type": "boolean", "description": "For `max`, `min`, `top` and `push`: wrap each result as `{ value, index }`, where index is\nthe position of its source item in the first `[*]` of the path." } }, "additionalProperties": false, "description": "One field of a merge: where its values come from and how they are combined." }, "MergeInput": { "required": [ "fields", "onMissing" ], "type": "object", "properties": { "onMissing": { "$ref": "#/components/schemas/MergeMissingBehavior" }, "fields": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/MergeField" }, "description": "The fields of the merged result, keyed by the name each appears under in the output." } }, "additionalProperties": false }, "MergeMissingBehavior": { "enum": [ "fail", "partial" ], "type": "string", "description": "How a merge treats a source item that has no output." }, "MergeOutput": { "required": [ "failedCount", "fields", "mergedCount", "sourceCount" ], "type": "object", "properties": { "fields": { "type": "object", "additionalProperties": { "type": "null" }, "description": "The merged values, keyed by the field names of the input. Their shape follows the requested reducers." }, "sourceCount": { "type": "integer", "description": "The number of source items selected by the first `[*]` of the fields' paths.", "format": "int32" }, "mergedCount": { "type": "integer", "description": "The number of source items whose values were merged.", "format": "int32" }, "failedCount": { "type": "integer", "description": "The number of source items left out because they had no output.", "format": "int32" } }, "additionalProperties": false }, "MergeReducer": { "enum": [ "max", "min", "sum", "avg", "count", "any", "all", "first", "last", "push", "addToSet", "top", "group" ], "type": "string", "description": "How a merge field combines its values. Null values are skipped, except by `any` and `all`, which count them as false." }, "MergeStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MergeInput" }, "output": { "$ref": "#/components/schemas/MergeOutput" }, "$type": { "enum": [ "merge" ], "type": "string" } }, "additionalProperties": false } ], "description": "Merge" }, "MergeStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MergeInput" }, "$type": { "enum": [ "merge" ], "type": "string" } }, "additionalProperties": false } ], "description": "Merge" }, "MeshyFalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalPolyGenInput" }, { "required": [ "engine", "model", "version" ], "type": "object", "properties": { "version": { "type": [ "null", "string" ], "default": "v6" }, "targetPolycount": { "maximum": 300000, "minimum": 100, "type": "integer", "format": "int32", "default": 30000 }, "topology": { "enum": [ "quad", "triangle" ], "type": "string", "default": "triangle" }, "symmetryMode": { "enum": [ "off", "auto", "on" ], "type": "string", "default": "auto" }, "shouldRemesh": { "type": "boolean", "default": true }, "enablePbr": { "type": "boolean", "default": false }, "texturePrompt": { "maxLength": 600, "type": [ "null", "string" ] }, "enableRigging": { "type": "boolean", "default": false }, "enableAnimation": { "type": "boolean", "default": false }, "model": { "enum": [ "meshy" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "version", "mapping": { "v6": "#/components/schemas/MeshyV6FalPolyGenInput", "v7": "#/components/schemas/MeshyV7FalPolyGenInput" } } } ], "description": "Meshy 3D generation via FAL. Payloads without a version deserialize as v6." }, "MeshyImageTo3DFalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/MeshyV6FalPolyGenInput" }, { "required": [ "engine", "imageUrl", "model", "operation", "version" ], "type": "object", "properties": { "imageUrl": { "minLength": 1, "type": "string" }, "shouldTexture": { "type": "boolean", "default": true }, "operation": { "enum": [ "imageTo3D" ], "type": "string" }, "version": { "enum": [ "v6" ], "type": "string" }, "model": { "enum": [ "meshy" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "MeshyTextTo3DFalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/MeshyV6FalPolyGenInput" }, { "required": [ "engine", "model", "operation", "prompt", "version" ], "type": "object", "properties": { "prompt": { "maxLength": 600, "minLength": 1, "type": "string" }, "mode": { "enum": [ "preview", "full" ], "type": "string", "default": "full" }, "enablePromptExpansion": { "type": "boolean", "default": false }, "operation": { "enum": [ "textTo3D" ], "type": "string" }, "version": { "enum": [ "v6" ], "type": "string" }, "model": { "enum": [ "meshy" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "MeshyV6FalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/MeshyFalPolyGenInput" }, { "required": [ "engine", "model", "operation", "version" ], "type": "object", "properties": { "operation": { "type": "string" }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "version": { "enum": [ "v6" ], "type": "string" }, "model": { "enum": [ "meshy" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "textTo3D": "#/components/schemas/MeshyTextTo3DFalPolyGenInput", "imageTo3D": "#/components/schemas/MeshyImageTo3DFalPolyGenInput" } } } ], "description": "FAL endpoints: fal-ai/meshy/v6/{text-to-3d,image-to-3d}" }, "MeshyV7FalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/MeshyFalPolyGenInput" }, { "required": [ "engine", "model", "operation", "version" ], "type": "object", "properties": { "operation": { "type": "string" }, "shouldTexture": { "type": "boolean", "default": true }, "poseMode": { "enum": [ "none", "a-pose", "t-pose" ], "type": "string", "description": "Pose to generate the character in. \"none\" lets Meshy pick.", "default": "none" }, "textureImageUrl": { "type": [ "null", "string" ], "description": "2D image guiding the texturing process." }, "riggingHeightMeters": { "maximum": 100, "minimum": 0.01, "type": "number", "description": "Approximate character height in meters. Only used when enableRigging is set.", "format": "double", "default": 1.7 }, "animationActionId": { "maximum": 696, "minimum": 0, "type": "integer", "description": "Animation preset from Meshy's library (0 is \"Idle\"); see https://docs.meshy.ai/en/api/animation-library.\nOnly used when Civitai.Orchestration.Grains.Workflows.Steps.PolyGen.Fal.MeshyFalPolyGenInput.EnableAnimation is set.", "format": "int32", "default": 92 }, "version": { "enum": [ "v7" ], "type": "string" }, "model": { "enum": [ "meshy" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "imageTo3D": "#/components/schemas/MeshyV7ImageTo3DFalPolyGenInput", "multiImageTo3D": "#/components/schemas/MeshyV7MultiImageTo3DFalPolyGenInput" } } } ], "description": "Meshy v7. FAL endpoints: meshy/v7/{image-to-3d,multi-image-to-3d}" }, "MeshyV7ImageTo3DFalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/MeshyV7FalPolyGenInput" }, { "required": [ "engine", "imageUrl", "model", "operation", "version" ], "type": "object", "properties": { "imageUrl": { "minLength": 1, "type": "string" }, "ultraMode": { "type": "boolean", "description": "Higher-fidelity geometry with finer surface detail.", "default": false }, "modelType": { "enum": [ "standard", "lowpoly" ], "type": "string", "description": "\"lowpoly\" makes Meshy ignore the remesh controls (topology, targetPolycount, shouldRemesh).", "default": "standard" }, "operation": { "enum": [ "imageTo3D" ], "type": "string" }, "version": { "enum": [ "v7" ], "type": "string" }, "model": { "enum": [ "meshy" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "MeshyV7MultiImageTo3DFalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/MeshyV7FalPolyGenInput" }, { "required": [ "engine", "imageUrls", "model", "operation", "version" ], "type": "object", "properties": { "imageUrls": { "maxItems": 4, "minItems": 1, "type": "array", "items": { "type": "string" }, "description": "1–4 views of the same object. Meshy has no ultra or lowpoly mode on this operation." }, "operation": { "enum": [ "multiImageTo3D" ], "type": "string" }, "version": { "enum": [ "v7" ], "type": "string" }, "model": { "enum": [ "meshy" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Metric3dBackbone": { "enum": [ "vit-small", "vit-large", "vit-giant2" ], "type": "string" }, "MetricsResponse": { "required": [ "asOf", "canceledRate", "requests", "userErrorRate", "window" ], "type": "object", "properties": { "window": { "type": "string", "description": "The window these cover: 1h, 24h or 7d." }, "asOf": { "type": "string", "description": "When this was computed. Served stale while a refresh runs.", "format": "date-time" }, "requests": { "type": "integer", "description": "Requests that reached a final state in the window, cancellations included.", "format": "int64" }, "successRate": { "type": [ "null", "number" ], "description": "Succeeded over non-canceled requests, 0..1. Null when everything in the window was\ncanceled — which is not the same as a success rate of zero.", "format": "double" }, "canceledRate": { "type": "number", "description": "Fraction canceled by callers. Reported apart from success: cancelling is not a failure.", "format": "double" }, "userErrorRate": { "type": "number", "description": "Fraction that failed on the user's input rather than the service, most often a provider content-policy\nrejection. Kept out of the success rate so refusing disallowed requests does not mark a service unhealthy.", "format": "double" }, "costBuzz": { "$ref": "#/components/schemas/PercentilesResponse" }, "latencySeconds": { "$ref": "#/components/schemas/PercentilesResponse" } }, "additionalProperties": false }, "MingAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "ming" ], "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 } ] }, "MiniMaxH3AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine", "storageBuzzPerEpoch" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "storageBuzzPerEpoch": { "type": "number", "format": "double", "readOnly": true }, "ecosystem": { "enum": [ "minimaxh3" ], "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 } ] }, "MiniMaxH3MaxImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/MiniMaxH3MaxVideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "firstFrameImage": { "type": [ "null", "string" ], "description": "Optional first frame. If omitted, the last frame sets the canvas. With neither, FAL generates from text at 16:9.", "format": "source-image" }, "lastFrameImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "targetAudio": { "type": [ "null", "string" ], "description": "HTTP(S) URL of a soundtrack, at least 2 seconds and at most 15 MB. Requires duration >= 2.", "format": "uri" }, "operation": { "enum": [ "imageToVideo" ], "type": "string" }, "engine": { "enum": [ "minimax-h3-max" ], "type": "string" } }, "additionalProperties": false } ] }, "MiniMaxH3MaxReferenceToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/MiniMaxH3MaxVideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "adaptive", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "default": "adaptive" }, "referenceImages": { "maxItems": 9, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "referenceVideos": { "maxItems": 3, "type": "array", "items": { "type": "string", "format": "uri" }, "description": "HTTP(S) clips, each 2-15 seconds, combined at most 15 seconds." }, "referenceAudios": { "maxItems": 3, "type": "array", "items": { "type": "string", "format": "uri" }, "description": "HTTP(S) audio clips, each 2-15 seconds, combined at most 15 seconds." }, "firstFrameImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "lastFrameImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "middleFrameImage": { "type": [ "null", "string" ], "description": "Requires first and last frames, middleFrameTime, and 480P or 768P.", "format": "source-image" }, "middleFrameTime": { "type": [ "null", "number" ], "description": "Seconds from the start, rounded to 24 fps. Must fall strictly inside the requested duration.", "format": "double" }, "operation": { "enum": [ "referenceToVideo" ], "type": "string" }, "engine": { "enum": [ "minimax-h3-max" ], "type": "string" } }, "additionalProperties": false } ], "description": "Max only. Up to 9 images, 3 videos and 3 audio clips, at most 12 combined. Reference charges share a 4096-token allowance." }, "MiniMaxH3MaxTextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/MiniMaxH3MaxVideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string", "default": "16:9" }, "targetAudio": { "type": [ "null", "string" ], "description": "HTTP(S) URL of a soundtrack, at least 2 seconds and at most 15 MB. Requires duration >= 2.", "format": "uri" }, "operation": { "enum": [ "textToVideo" ], "type": "string" }, "engine": { "enum": [ "minimax-h3-max" ], "type": "string" } }, "additionalProperties": false } ] }, "MiniMaxH3MaxVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "textToVideo" }, "model": { "enum": [ "max", "turbo" ], "type": "string", "default": "max" }, "duration": { "maximum": 15, "minimum": 0.92, "type": "number", "description": "Requested seconds. FAL may return up to about 0.7 additional seconds.", "format": "double", "default": 5 }, "resolution": { "enum": [ "480P", "768P", "1080P" ], "type": "string", "default": "768P" }, "promptExpansionMode": { "enum": [ "disabled", "balanced", "quality" ], "type": "string", "default": "balanced" }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "enableSafetyChecker": { "type": "boolean", "default": true }, "engine": { "enum": [ "minimax-h3-max" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "textToVideo": "#/components/schemas/MiniMaxH3MaxTextToVideoInput", "imageToVideo": "#/components/schemas/MiniMaxH3MaxImageToVideoInput", "referenceToVideo": "#/components/schemas/MiniMaxH3MaxReferenceToVideoInput" } } } ], "description": "MiniMax H3 Max and H3 Max Turbo core generation through FAL." }, "MiniMaxH3VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "aspectRatio", "duration", "engine", "resolution" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "adaptive", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" ], "type": "string" }, "duration": { "maximum": 15, "minimum": 5, "type": "integer", "format": "int32" }, "resolution": { "enum": [ "2K" ], "type": "string" }, "firstFrameImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "lastFrameImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "referenceImages": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "referenceVideos": { "type": "array", "items": { "type": "string", "format": "uri" } }, "referenceAudios": { "type": "array", "items": { "type": "string", "format": "uri" } }, "watermark": { "type": "boolean", "default": false }, "referenceVideoSeconds": { "type": "integer", "description": "Measured total duration of Civitai.Orchestration.Grains.Workflows.Steps.VideoGen.MiniMaxH3VideoGenInput.ReferenceVideos, filled in during initialization; MiniMax bills uploaded\nreference video at the output per-second rate, so it must be known before the estimate is charged.", "format": "int32" }, "engine": { "enum": [ "minimax-h3" ], "type": "string" } }, "additionalProperties": false } ] }, "MiniMaxMusic3Input": { "required": [ "caption", "lyrics", "seed" ], "type": "object", "properties": { "caption": { "type": "string", "description": "Structured music description. For best results use Global Metadata, Vocal Details,\nand Arrangement sections." }, "lyrics": { "type": "string", "description": "Lyrics with section markers such as [Intro], [Verse], [Chorus], and [Outro]." }, "seed": { "type": "integer", "format": "int32" }, "maxDuration": { "maximum": 360, "minimum": 0.03999999910593033, "type": "number", "description": "Maximum generated song duration in seconds. The model may end the song earlier when\nthe requested lyric structure is complete.", "format": "float", "default": 120 }, "steps": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32", "default": 30 }, "cfg": { "maximum": 100, "minimum": 0, "type": "number", "description": "Classifier-free guidance scale used by both text encoding and sampling.", "format": "float", "default": 1.7 }, "topK": { "maximum": 16384, "minimum": 1, "type": "integer", "description": "Top-k sampling limit used by the MiniMax music text encoder.", "format": "int32", "default": 50 }, "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" ] }, "textEncoder": { "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" ] }, "vae": { "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" }, "description": "Optional LoRAs to apply to both the diffusion model and MiniMax text encoder.\nCompatibility with the selected base resources is the caller's responsibility." } }, "additionalProperties": false }, "MiniMaxMusic3Output": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/AudioBlob" } }, "additionalProperties": false }, "MiniMaxMusic3Step": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MiniMaxMusic3Input" }, "output": { "$ref": "#/components/schemas/MiniMaxMusic3Output" }, "$type": { "enum": [ "miniMaxMusic3" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a complete song from a structured caption and lyrics with MiniMax Music 3." }, "MiniMaxMusic3StepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/MiniMaxMusic3Input" }, "$type": { "enum": [ "miniMaxMusic3" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a complete song from a structured caption and lyrics with MiniMax Music 3." }, "MiniMaxVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine" ], "type": "object", "properties": { "model": { "$ref": "#/components/schemas/MiniMaxVideoGenModel" }, "enablePromptEnhancer": { "type": "boolean", "default": true }, "sourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "engine": { "enum": [ "minimax" ], "type": "string" } }, "additionalProperties": false } ] }, "MiniMaxVideoGenModel": { "enum": [ "hailou" ], "type": "string" }, "MochiVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "seed" ], "type": "object", "properties": { "seed": { "maximum": 2147483647, "minimum": -1, "type": "integer", "format": "int64" }, "enablePromptEnhancer": { "type": "boolean", "default": true }, "engine": { "enum": [ "mochi" ], "type": "string" } }, "additionalProperties": false } ] }, "ModalitiesResponse": { "required": [ "input", "output" ], "type": "object", "properties": { "input": { "type": "array", "items": { "type": "string" } }, "output": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "Model3DBlob": { "allOf": [ { "$ref": "#/components/schemas/Blob" }, { "required": [ "format", "type" ], "type": "object", "properties": { "format": { "type": "string", "description": "File format of the 3D model (e.g. \"glb\", \"fbx\", \"obj\", \"usdz\")." }, "type": { "enum": [ "model3d" ], "type": "string" } }, "additionalProperties": false } ] }, "Model3DPreviewCameraPose": { "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "yaw": { "type": "number", "format": "double", "default": 0 }, "pitch": { "type": "number", "format": "double", "default": 0 }, "distance": { "type": "number", "format": "double", "default": 2.8 }, "fov": { "type": "number", "format": "double", "default": 45 } }, "additionalProperties": false }, "Model3DPreviewInput": { "required": [ "cameraPoses", "model" ], "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" }, "width": { "maximum": 4096, "minimum": 256, "type": "integer", "format": "int32", "default": 1024 }, "height": { "maximum": 4096, "minimum": 256, "type": "integer", "format": "int32", "default": 1024 }, "outputFormat": { "$ref": "#/components/schemas/ImageGenOutputFormat" }, "cameraPoses": { "type": "array", "items": { "$ref": "#/components/schemas/Model3DPreviewCameraPose" } }, "format": { "type": [ "null", "string" ] }, "background": { "pattern": "^#[0-9a-fA-F]{6}$", "type": "string", "default": "#D9D9D9" } }, "additionalProperties": false }, "Model3DPreviewOutput": { "required": [ "images" ], "type": "object", "properties": { "images": { "type": "array", "items": { "$ref": "#/components/schemas/ImageBlob" } } }, "additionalProperties": false }, "Model3DPreviewStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/Model3DPreviewInput" }, "output": { "$ref": "#/components/schemas/Model3DPreviewOutput" }, "$type": { "enum": [ "model3DPreview" ], "type": "string" } }, "additionalProperties": false } ], "description": "3D model preview" }, "Model3DPreviewStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/Model3DPreviewInput" }, "$type": { "enum": [ "model3DPreview" ], "type": "string" } }, "additionalProperties": false } ], "description": "3D model preview" }, "ModelClamScanInput": { "required": [ "model" ], "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" } }, "additionalProperties": false }, "ModelClamScanOutput": { "type": "object", "properties": { "exitCode": { "type": [ "null", "integer" ], "format": "int32" }, "output": { "type": [ "null", "string" ] }, "status": { "$ref": "#/components/schemas/ModelClamScanStatus" }, "infected": { "type": [ "null", "boolean" ], "description": "True when ClamAV reported one or more infected files (exit code 1)." }, "infectedFileCount": { "type": [ "null", "integer" ], "format": "int32" }, "scannedFileCount": { "type": [ "null", "integer" ], "format": "int32" } }, "additionalProperties": false }, "ModelClamScanStatus": { "enum": [ "clean", "infected", "timeout", "error" ], "type": "string" }, "ModelClamScanStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelClamScanInput" }, "output": { "$ref": "#/components/schemas/ModelClamScanOutput" }, "$type": { "enum": [ "modelClamScan" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelClamScan" }, "ModelClamScanStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelClamScanInput" }, "$type": { "enum": [ "modelClamScan" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelClamScan" }, "ModelHashInput": { "required": [ "model" ], "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" } }, "additionalProperties": false }, "ModelHashOutput": { "type": "object", "properties": { "sha256": { "type": [ "null", "string" ], "description": "SHA256 hash of the full file." }, "autoV1": { "type": [ "null", "string" ], "description": "AutoV1 short hash (8 chars of SHA256 over a 64 KB block starting at 1 MB)." }, "autoV2": { "type": [ "null", "string" ], "description": "AutoV2 short hash (first 10 chars of SHA256)." }, "autoV3": { "type": [ "null", "string" ], "description": "AutoV3 hash (SHA256 of the file with safetensors header metadata stripped)." }, "blake3": { "type": [ "null", "string" ], "description": "Blake3 hash of the full file." }, "crc32": { "type": [ "null", "string" ], "description": "CRC32 of the full file." } }, "additionalProperties": false }, "ModelHashStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelHashInput" }, "output": { "$ref": "#/components/schemas/ModelHashOutput" }, "$type": { "enum": [ "modelHash" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelHash" }, "ModelHashStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelHashInput" }, "$type": { "enum": [ "modelHash" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelHash" }, "ModelParseMetadataInput": { "required": [ "model" ], "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" } }, "additionalProperties": false }, "ModelParseMetadataOutput": { "type": "object", "properties": { "metadata": { "type": [ "null", "string" ], "description": "The safetensors header's `__metadata__` object as a JSON string; null when the model is not safetensors,\nthe header could not be parsed, or there is no `__metadata__`." } }, "additionalProperties": false }, "ModelParseMetadataStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelParseMetadataInput" }, "output": { "$ref": "#/components/schemas/ModelParseMetadataOutput" }, "$type": { "enum": [ "modelParseMetadata" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelParseMetadata" }, "ModelParseMetadataStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelParseMetadataInput" }, "$type": { "enum": [ "modelParseMetadata" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelParseMetadata" }, "ModelPickleScanInput": { "required": [ "model" ], "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" } }, "additionalProperties": false }, "ModelPickleScanOutput": { "type": "object", "properties": { "exitCode": { "type": [ "null", "integer" ], "format": "int32" }, "output": { "type": [ "null", "string" ] }, "globalImports": { "uniqueItems": true, "type": [ "null", "array" ], "items": { "type": "string" } }, "dangerousImports": { "uniqueItems": true, "type": [ "null", "array" ], "items": { "type": "string" } }, "status": { "$ref": "#/components/schemas/ModelPickleScanStatus" }, "dangerousImportsFound": { "type": [ "null", "boolean" ] }, "skipped": { "type": [ "null", "boolean" ], "description": "True when picklescan was skipped (e.g. file is safetensors and cannot contain pickled code)." }, "skipReason": { "type": [ "null", "string" ], "description": "Reason picklescan was skipped, if applicable. Examples: \"safetensors\", \"safetensors-extension\"." }, "scannedFileCount": { "type": [ "null", "integer" ], "format": "int32" }, "infectedFileCount": { "type": [ "null", "integer" ], "format": "int32" }, "dangerousGlobalCount": { "type": [ "null", "integer" ], "format": "int32" } }, "additionalProperties": false }, "ModelPickleScanStatus": { "enum": [ "clean", "dangerousImportsFound", "skippedSafetensors", "skippedGguf", "skipped", "parseError", "error" ], "type": "string" }, "ModelPickleScanStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelPickleScanInput" }, "output": { "$ref": "#/components/schemas/ModelPickleScanOutput" }, "$type": { "enum": [ "modelPickleScan" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelPickleScan" }, "ModelPickleScanStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ModelPickleScanInput" }, "$type": { "enum": [ "modelPickleScan" ], "type": "string" } }, "additionalProperties": false } ], "description": "ModelPickleScan" }, "MuseImageCreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/MuseImageFalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "museImage" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "MuseImageEditFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/MuseImageFalImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "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" } }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "museImage" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "MuseImageFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 4000, "minLength": 1, "type": "string" }, "aspectRatio": { "enum": [ "auto", "21:9", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16", "9:21" ], "type": "string", "default": "auto" }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "model": { "enum": [ "museImage" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/MuseImageCreateFalImageGenInput", "editImage": "#/components/schemas/MuseImageEditFalImageGenInput" } } } ] }, "MusubiImageResourceTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/ImageResourceTrainingInput" }, { "required": [ "engine" ], "type": "object", "properties": { "epochs": { "maximum": 20, "minimum": 0, "type": "integer", "description": "Number of training epochs. An epoch is one complete pass through the training dataset.\nMaximum of 20 epochs can be specified.", "format": "int32", "default": 5 }, "resolution": { "maximum": 1024, "minimum": 512, "type": [ "null", "integer" ], "description": "Specify the maximum resolution of training images. If the training images exceed the resolution specified here, they will be scaled down to this resolution", "format": "int32" }, "enableBucket": { "type": "boolean", "description": "Sorts images into buckets by size for the purposes of training. If your training images are all the same size, you can turn this option off, but leaving it on has no effect.", "default": true }, "unetLR": { "maximum": 1, "minimum": 0, "type": "number", "description": "Sets the learning rate for U-Net. This is the learning rate when performing additional learning on each attention block (and other blocks depending on the setting) in U-Net", "format": "double", "default": 0.00005 }, "lrScheduler": { "enum": [ "constant", "cosine", "cosine_with_restarts", "linear" ], "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." }, "lrSchedulerNumCycles": { "maximum": 4, "minimum": 1, "type": "integer", "description": "This option specifies how many cycles the scheduler runs during training. It is only used when \"cosine_with_restarts\" or \"polynomial\" is used as the scheduler.", "format": "int32", "default": 3 }, "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 LoRA weights relative to Dim: alpha 16 with dim 32 applies the learning rate at half strength;\nequal values leave it unchanged.", "format": "int32" }, "optimizerType": { "type": [ "null", "string" ], "description": "Optimizer that updates the weights during training; \"AdamW8bit\" is the common choice, \"Adafactor\" for SDXL." }, "targetSteps": { "type": [ "null", "integer" ], "format": "int32", "readOnly": true }, "engine": { "enum": [ "musubi" ], "type": "string" } }, "additionalProperties": false } ] }, "NSFWLevel": { "enum": [ "pg", "pg13", "r", "x", "xxx", "na" ], "type": "string" }, "NanoBanana21ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GoogleImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "prompt": { "maxLength": 50000, "minLength": 0, "type": "string" }, "aspectRatio": { "enum": [ "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16", "1:4", "4:1", "1:8", "8:1", "9:21" ], "type": "string", "default": "1:1" }, "numImages": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "resolution": { "enum": [ "1K", "2K", "4K" ], "type": "string", "default": "1K" }, "images": { "maxItems": 14, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "model": { "enum": [ "nano-banana-2.1" ], "type": "string" }, "engine": { "enum": [ "google" ], "type": "string" } }, "additionalProperties": false } ] }, "NanoBanana2ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GoogleImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "prompt": { "maxLength": 50000, "minLength": 0, "type": "string" }, "aspectRatio": { "enum": [ "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16" ], "type": "string", "default": "1:1" }, "numImages": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "resolution": { "enum": [ "1K", "2K", "4K" ], "type": "string", "default": "1K" }, "images": { "maxItems": 10, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "enableWebSearch": { "type": "boolean", "default": false }, "enableGoogleSearch": { "type": "boolean", "default": false }, "model": { "enum": [ "nano-banana-2" ], "type": "string" }, "engine": { "enum": [ "google" ], "type": "string" } }, "additionalProperties": false } ] }, "NanoBanana2LiteImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GoogleImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "prompt": { "maxLength": 50000, "minLength": 0, "type": "string" }, "aspectRatio": { "enum": [ "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16" ], "type": "string", "default": "1:1" }, "numImages": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "images": { "maxItems": 10, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "model": { "enum": [ "nano-banana-2-lite" ], "type": "string" }, "engine": { "enum": [ "google" ], "type": "string" } }, "additionalProperties": false } ] }, "NanoBananaProImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/GoogleImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "prompt": { "maxLength": 50000, "minLength": 0, "type": "string" }, "aspectRatio": { "enum": [ "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16" ], "type": "string", "default": "1:1" }, "numImages": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "resolution": { "enum": [ "1K", "2K", "4K" ], "type": "string", "default": "1K" }, "images": { "maxItems": 10, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "model": { "enum": [ "nano-banana-pro" ], "type": "string" }, "engine": { "enum": [ "google" ], "type": "string" } }, "additionalProperties": false } ] }, "OmniSvgImageToSvgInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyImageToSvgInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "model": { "enum": [ "omnisvg-4b", "omnisvg-8b" ], "type": "string", "default": "omnisvg-4b" }, "maxLength": { "maximum": 2048, "minimum": 256, "type": "integer", "format": "int32", "default": 1536 }, "seed": { "maximum": 2147483647, "minimum": 0, "type": [ "null", "integer" ], "format": "int64" }, "topP": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 0.9 }, "topK": { "maximum": 1000, "minimum": 1, "type": "integer", "format": "int32", "default": 50 }, "temperature": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 0.3 }, "repetitionPenalty": { "maximum": 10, "minimum": 0, "type": "number", "format": "double", "default": 1.05 }, "prompt": { "maxLength": 1000, "minLength": 0, "type": [ "null", "string" ] }, "ecosystem": { "enum": [ "omnisvg" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "OmniVoiceTextToSpeechInput": { "allOf": [ { "$ref": "#/components/schemas/VllmOmniTextToSpeechInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "refAudioUrl": { "type": [ "null", "string" ], "description": "Reference audio AIR URN or external URL for voice cloning.", "format": "uri" }, "refText": { "type": [ "null", "string" ], "description": "Transcript of the reference audio." }, "instruct": { "type": [ "null", "string" ], "description": "Optional voice/style instruction." }, "ecosystem": { "enum": [ "omnivoice" ], "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIDallE2CreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIDallE2ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "background": { "enum": [ "auto", "transparent", "opaque" ], "type": "string", "default": "auto" }, "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "dall-e-2" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIDallE2EditImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIDallE2ImageGenInput" }, { "required": [ "engine", "image", "model", "operation" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "mask": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "dall-e-2" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIDallE2ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenApiImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt", "size" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 1000, "minLength": 0, "type": "string" }, "size": { "enum": [ "256x256", "512x512", "1024x1024" ], "type": "string" }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "model": { "enum": [ "dall-e-2" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/OpenAIDallE2CreateImageGenInput", "editImage": "#/components/schemas/OpenAIDallE2EditImageInput" } } } ] }, "OpenAIDallE3CreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIDallE3ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "background": { "enum": [ "auto", "transparent", "opaque" ], "type": "string", "default": "auto" }, "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "dall-e-3" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIDallE3ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenApiImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt", "size" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 4000, "minLength": 0, "type": "string" }, "size": { "enum": [ "1024x1024", "1792x1024", "1024x1792" ], "type": "string" }, "style": { "enum": [ "natural", "vivid" ], "type": "string", "default": "vivid" }, "quality": { "enum": [ "auto", "hd", "standard" ], "type": "string", "default": "auto" }, "model": { "enum": [ "dall-e-3" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/OpenAIDallE3CreateImageGenInput" } } } ] }, "OpenAIGpt15CreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt15ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-1.5" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt15EditImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt15ImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "inputFidelity": { "enum": [ "low", "high" ], "type": "string", "default": "high" }, "size": { "enum": [ "auto", "1024x1024", "1536x1024", "1024x1536" ], "type": "string", "default": "auto" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-1.5" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt15ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenApiImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 32000, "minLength": 0, "type": "string" }, "size": { "enum": [ "1024x1024", "1536x1024", "1024x1536" ], "type": "string", "default": "1024x1024" }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "background": { "enum": [ "auto", "transparent", "opaque" ], "type": "string", "default": "auto" }, "quality": { "enum": [ "low", "medium", "high" ], "type": "string", "default": "high" }, "model": { "enum": [ "gpt-image-1.5" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/OpenAIGpt15CreateImageInput", "editImage": "#/components/schemas/OpenAIGpt15EditImageInput" } } } ] }, "OpenAIGpt1CreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt1ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-1" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt1EditImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt1ImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "mask": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-1" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt1ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenApiImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 32000, "minLength": 0, "type": "string" }, "size": { "enum": [ "1024x1024", "1536x1024", "1024x1536" ], "type": "string", "default": "1024x1024" }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "background": { "enum": [ "auto", "transparent", "opaque" ], "type": "string", "default": "opaque" }, "quality": { "enum": [ "auto", "high", "medium", "low" ], "type": [ "null", "string" ], "default": "auto" }, "model": { "enum": [ "gpt-image-1" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/OpenAIGpt1CreateImageInput", "editImage": "#/components/schemas/OpenAIGpt1EditImageInput" } } } ] }, "OpenAIGpt25FlareCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt25FlareImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-2.5-flare" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt25FlareEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt25FlareImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "maskImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "width": { "type": [ "null", "integer" ], "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.", "format": "int32" }, "height": { "type": [ "null", "integer" ], "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.", "format": "int32" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-2.5-flare" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt25FlareImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenApiImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 32000, "minLength": 0, "type": "string" }, "width": { "maximum": 3840, "minimum": 256, "type": [ "null", "integer" ], "format": "int32", "default": 1024 }, "height": { "maximum": 3840, "minimum": 256, "type": [ "null", "integer" ], "format": "int32", "default": 1024 }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "quality": { "enum": [ "low", "medium", "high", "xhigh", "max" ], "type": "string", "default": "high" }, "model": { "enum": [ "gpt-image-2.5-flare" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/OpenAIGpt25FlareCreateImageInput", "editImage": "#/components/schemas/OpenAIGpt25FlareEditImageInput" } } } ], "description": "GPT-Image-2.5 \"flare\": the faster of the two variants.\nFAL endpoints: openai/gpt-image-2.5/flare/text-to-image[/edit]" }, "OpenAIGpt25SunburstCreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt25SunburstImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-2.5-sunburst" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt25SunburstEditImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt25SunburstImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "maskImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "width": { "type": [ "null", "integer" ], "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.", "format": "int32" }, "height": { "type": [ "null", "integer" ], "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.", "format": "int32" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-2.5-sunburst" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt25SunburstImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenApiImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 32000, "minLength": 0, "type": "string" }, "width": { "maximum": 3840, "minimum": 256, "type": [ "null", "integer" ], "format": "int32", "default": 1024 }, "height": { "maximum": 3840, "minimum": 256, "type": [ "null", "integer" ], "format": "int32", "default": 1024 }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "quality": { "enum": [ "low", "medium", "high", "xhigh", "max" ], "type": "string", "default": "high" }, "model": { "enum": [ "gpt-image-2.5-sunburst" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/OpenAIGpt25SunburstCreateImageInput", "editImage": "#/components/schemas/OpenAIGpt25SunburstEditImageInput" } } } ], "description": "GPT-Image-2.5 \"sunburst\": higher fidelity on intricate detail, slower.\nFAL endpoints: openai/gpt-image-2.5/sunburst/text-to-image[/edit]" }, "OpenAIGpt2CreateImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt2ImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-2" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt2EditImageInput": { "allOf": [ { "$ref": "#/components/schemas/OpenAIGpt2ImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "maskImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "width": { "type": [ "null", "integer" ], "description": "When null, fal infers the output size from the input images (image_size: \"auto\").\nWidth and Height must be set together, or both null.", "format": "int32" }, "height": { "type": [ "null", "integer" ], "description": "When null, fal infers the output size from the input images (image_size: \"auto\").\nWidth and Height must be set together, or both null.", "format": "int32" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "gpt-image-2" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false } ] }, "OpenAIGpt2ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/OpenApiImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 32000, "minLength": 0, "type": "string" }, "width": { "maximum": 3840, "minimum": 256, "type": [ "null", "integer" ], "format": "int32", "default": 1024 }, "height": { "maximum": 3840, "minimum": 256, "type": [ "null", "integer" ], "format": "int32", "default": 1024 }, "quantity": { "maximum": 4, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "quality": { "enum": [ "low", "medium", "high" ], "type": "string", "default": "high" }, "model": { "enum": [ "gpt-image-2" ], "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/OpenAIGpt2CreateImageInput", "editImage": "#/components/schemas/OpenAIGpt2EditImageInput" } } } ] }, "OpenApiImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "model", "prompt" ], "type": "object", "properties": { "model": { "type": "string" }, "prompt": { "type": "string" }, "engine": { "enum": [ "openai" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "gpt-image-1": "#/components/schemas/OpenAIGpt1ImageGenInput", "gpt-image-1.5": "#/components/schemas/OpenAIGpt15ImageGenInput", "gpt-image-2": "#/components/schemas/OpenAIGpt2ImageGenInput", "gpt-image-2.5-flare": "#/components/schemas/OpenAIGpt25FlareImageGenInput", "gpt-image-2.5-sunburst": "#/components/schemas/OpenAIGpt25SunburstImageGenInput", "dall-e-2": "#/components/schemas/OpenAIDallE2ImageGenInput", "dall-e-3": "#/components/schemas/OpenAIDallE3ImageGenInput" } } } ] }, "OutputFormat": { "enum": [ "png", "jpeg", "webP" ], "type": "string" }, "PaginatedResponseOfServiceResponse": { "required": [ "items", "limit", "offset", "totalCount" ], "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceResponse" } }, "totalCount": { "type": "integer", "format": "int32" }, "limit": { "type": "integer", "format": "int32" }, "offset": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "PercentilesResponse": { "required": [ "p50", "p80", "p95" ], "type": "object", "properties": { "p50": { "type": "number", "format": "double" }, "p80": { "type": "number", "format": "double" }, "p95": { "type": "number", "format": "double" } }, "additionalProperties": false }, "PngOutputFormat": { "allOf": [ { "$ref": "#/components/schemas/ImageOutputFormat" }, { "required": [ "format" ], "type": "object", "properties": { "format": { "enum": [ "png" ], "type": "string" } }, "additionalProperties": false } ] }, "PolyGenInput": { "required": [ "engine" ], "type": "object", "properties": { "engine": { "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "engine", "mapping": { "comfy": "#/components/schemas/ComfyPolyGenInput", "fal": "#/components/schemas/FalPolyGenInput", "unirig": "#/components/schemas/UniRigPolyGenInput" } } }, "PolyGenOutput": { "required": [ "model" ], "type": "object", "properties": { "model": { "$ref": "#/components/schemas/Model3DBlob" }, "fbxModel": { "$ref": "#/components/schemas/Model3DBlob" }, "thumbnail": { "$ref": "#/components/schemas/ImageBlob" }, "riggedModel": { "$ref": "#/components/schemas/Model3DBlob" }, "riggedFbxModel": { "$ref": "#/components/schemas/Model3DBlob" }, "animatedModel": { "$ref": "#/components/schemas/Model3DBlob" }, "animatedFbxModel": { "$ref": "#/components/schemas/Model3DBlob" }, "basicAnimations": { "$ref": "#/components/schemas/BasicAnimationsBlobs" } }, "additionalProperties": false }, "PolyGenStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PolyGenInput" }, "output": { "$ref": "#/components/schemas/PolyGenOutput" }, "$type": { "enum": [ "polyGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "3D model generation" }, "PolyGenStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PolyGenInput" }, "$type": { "enum": [ "polyGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "3D model generation" }, "PrepareResourceInput": { "required": [ "resource" ], "type": "object", "properties": { "resource": { "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" } }, "additionalProperties": false }, "PrepareResourceOutput": { "type": "object", "properties": { "resource": { "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" ] }, "preparedAt": { "type": [ "null", "string" ], "description": "When the resource became available. Null while the step has not completed.", "format": "date-time" }, "provider": { "type": [ "null", "string" ] } }, "additionalProperties": false }, "PreprocessImageAnimalPoseInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "bboxDetector": { "$ref": "#/components/schemas/AnimalPoseBboxDetector" }, "poseEstimator": { "$ref": "#/components/schemas/AnimalPoseEstimator" }, "kind": { "enum": [ "animal-pose" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageAnimeLineartInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "lineart-anime" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageAnylineInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "mergeWithLineart": { "$ref": "#/components/schemas/AnylineMergeWith" }, "lineartLowerBound": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 0 }, "lineartUpperBound": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 1 }, "objectMinSize": { "maximum": 1000, "minimum": 1, "type": "integer", "format": "int32", "default": 36 }, "objectConnectivity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "kind": { "enum": [ "anyline" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageBaeNormalInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "bae-normal" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageBinaryInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "binThreshold": { "maximum": 255, "minimum": 0, "type": "integer", "format": "int32", "default": 100 }, "kind": { "enum": [ "binary" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageCannyInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "lowThreshold": { "maximum": 255, "minimum": 0, "type": "integer", "format": "int32", "default": 100 }, "highThreshold": { "maximum": 255, "minimum": 0, "type": "integer", "format": "int32", "default": 200 }, "kind": { "enum": [ "canny" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageColorInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "color" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageDensePoseInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "model": { "$ref": "#/components/schemas/DensePoseModel" }, "colormap": { "$ref": "#/components/schemas/DensePoseColormap" }, "kind": { "enum": [ "densepose" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageDepthAnythingInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "checkpoint": { "$ref": "#/components/schemas/DepthAnythingCheckpoint" }, "kind": { "enum": [ "depth-anything" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageDepthAnythingV2Input": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "checkpoint": { "$ref": "#/components/schemas/DepthAnythingV2Checkpoint" }, "kind": { "enum": [ "depth-anything-v2" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageDsineNormalInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "fov": { "maximum": 365, "minimum": 0, "type": "number", "format": "double", "default": 60 }, "iterations": { "maximum": 20, "minimum": 1, "type": "integer", "format": "int32", "default": 5 }, "kind": { "enum": [ "dsine-normal" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageDwPoseInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "detectHand": { "type": "boolean", "default": true }, "detectBody": { "type": "boolean", "default": true }, "detectFace": { "type": "boolean", "default": true }, "bboxDetector": { "$ref": "#/components/schemas/DwPoseBboxDetector" }, "poseEstimator": { "$ref": "#/components/schemas/DwPoseEstimator" }, "kind": { "enum": [ "dwpose" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageFakeScribbleInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "safe": { "$ref": "#/components/schemas/SafeMode" }, "kind": { "enum": [ "fake-scribble" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageHedInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "safe": { "$ref": "#/components/schemas/SafeMode" }, "kind": { "enum": [ "hed" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageInput": { "required": [ "image", "kind", "preprocessorType" ], "type": "object", "properties": { "kind": { "type": "string" }, "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "resolution": { "maximum": 4096, "minimum": 64, "type": "integer", "format": "int32", "default": 512 }, "preprocessorType": { "type": "string", "readOnly": true } }, "additionalProperties": false, "discriminator": { "propertyName": "kind", "mapping": { "canny": "#/components/schemas/PreprocessImageCannyInput", "binary": "#/components/schemas/PreprocessImageBinaryInput", "mlsd": "#/components/schemas/PreprocessImageMlsdInput", "depth-anything": "#/components/schemas/PreprocessImageDepthAnythingInput", "depth-anything-v2": "#/components/schemas/PreprocessImageDepthAnythingV2Input", "zoe-depth-anything": "#/components/schemas/PreprocessImageZoeDepthAnythingInput", "zoe-depth": "#/components/schemas/PreprocessImageZoeDepthInput", "midas-depth": "#/components/schemas/PreprocessImageMidasDepthInput", "leres-depth": "#/components/schemas/PreprocessImageLeresDepthInput", "metric3d-depth": "#/components/schemas/PreprocessImageMetric3dDepthInput", "midas-normal": "#/components/schemas/PreprocessImageMidasNormalInput", "bae-normal": "#/components/schemas/PreprocessImageBaeNormalInput", "dsine-normal": "#/components/schemas/PreprocessImageDsineNormalInput", "metric3d-normal": "#/components/schemas/PreprocessImageMetric3dNormalInput", "hed": "#/components/schemas/PreprocessImageHedInput", "pidinet": "#/components/schemas/PreprocessImagePidinetInput", "teed": "#/components/schemas/PreprocessImageTeedInput", "fake-scribble": "#/components/schemas/PreprocessImageFakeScribbleInput", "lineart-realistic": "#/components/schemas/PreprocessImageRealisticLineartInput", "lineart-standard": "#/components/schemas/PreprocessImageStandardLineartInput", "lineart-anime": "#/components/schemas/PreprocessImageAnimeLineartInput", "lineart-manga": "#/components/schemas/PreprocessImageMangaLineartInput", "anyline": "#/components/schemas/PreprocessImageAnylineInput", "scribble": "#/components/schemas/PreprocessImageScribbleInput", "scribble-xdog": "#/components/schemas/PreprocessImageScribbleXdogInput", "scribble-pidinet": "#/components/schemas/PreprocessImageScribblePidinetInput", "openpose": "#/components/schemas/PreprocessImageOpenPoseInput", "dwpose": "#/components/schemas/PreprocessImageDwPoseInput", "sdpose": "#/components/schemas/PreprocessImageSdPoseInput", "animal-pose": "#/components/schemas/PreprocessImageAnimalPoseInput", "densepose": "#/components/schemas/PreprocessImageDensePoseInput", "mediapipe-face": "#/components/schemas/PreprocessImageMediaPipeFaceInput", "oneformer-coco": "#/components/schemas/PreprocessImageOneFormerCocoInput", "oneformer-ade20k": "#/components/schemas/PreprocessImageOneFormerAde20kInput", "uniformer": "#/components/schemas/PreprocessImageUniFormerInput", "color": "#/components/schemas/PreprocessImageColorInput", "shuffle": "#/components/schemas/PreprocessImageShuffleInput", "tile": "#/components/schemas/PreprocessImageTileInput" } } }, "PreprocessImageLeresDepthInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "removeNearest": { "maximum": 100, "minimum": 0, "type": "number", "format": "double", "default": 0 }, "removeBackground": { "maximum": 100, "minimum": 0, "type": "number", "format": "double", "default": 0 }, "boost": { "$ref": "#/components/schemas/LeresBoost" }, "kind": { "enum": [ "leres-depth" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageMangaLineartInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "lineart-manga" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageMediaPipeFaceInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "maxFaces": { "maximum": 50, "minimum": 1, "type": "integer", "format": "int32", "default": 10 }, "minConfidence": { "maximum": 1, "minimum": 0.1, "type": "number", "format": "double", "default": 0.5 }, "kind": { "enum": [ "mediapipe-face" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageMetric3dDepthInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "backbone": { "$ref": "#/components/schemas/Metric3dBackbone" }, "fx": { "maximum": 4096, "minimum": 1, "type": "integer", "format": "int32", "default": 1000 }, "fy": { "maximum": 4096, "minimum": 1, "type": "integer", "format": "int32", "default": 1000 }, "kind": { "enum": [ "metric3d-depth" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageMetric3dNormalInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "backbone": { "$ref": "#/components/schemas/Metric3dBackbone" }, "fx": { "maximum": 4096, "minimum": 1, "type": "integer", "format": "int32", "default": 1000 }, "fy": { "maximum": 4096, "minimum": 1, "type": "integer", "format": "int32", "default": 1000 }, "kind": { "enum": [ "metric3d-normal" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageMidasDepthInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "a": { "maximum": 15.71, "minimum": 0, "type": "number", "format": "double", "default": 6.28 }, "backgroundThreshold": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 0.1 }, "kind": { "enum": [ "midas-depth" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageMidasNormalInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "a": { "maximum": 15.71, "minimum": 0, "type": "number", "format": "double", "default": 6.28 }, "backgroundThreshold": { "maximum": 1, "minimum": 0, "type": "number", "format": "double", "default": 0.1 }, "kind": { "enum": [ "midas-normal" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageMlsdInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "scoreThreshold": { "maximum": 2, "minimum": 0.01, "type": "number", "format": "double", "default": 0.1 }, "distanceThreshold": { "maximum": 20, "minimum": 0.01, "type": "number", "format": "double", "default": 0.1 }, "kind": { "enum": [ "mlsd" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageOneFormerAde20kInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "oneformer-ade20k" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageOneFormerCocoInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "oneformer-coco" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageOpenPoseInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "detectHand": { "type": "boolean", "default": true }, "detectBody": { "type": "boolean", "default": true }, "detectFace": { "type": "boolean", "default": false }, "kind": { "enum": [ "openpose" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageOutput": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/ImageBlob" } }, "additionalProperties": false }, "PreprocessImagePidinetInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "safe": { "$ref": "#/components/schemas/SafeMode" }, "kind": { "enum": [ "pidinet" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageRealisticLineartInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "coarse": { "$ref": "#/components/schemas/CoarseMode" }, "kind": { "enum": [ "lineart-realistic" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageScribbleInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "scribble" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageScribblePidinetInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "safe": { "$ref": "#/components/schemas/SafeMode" }, "kind": { "enum": [ "scribble-pidinet" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageScribbleXdogInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "threshold": { "maximum": 64, "minimum": 1, "type": "integer", "format": "int32", "default": 32 }, "kind": { "enum": [ "scribble-xdog" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageSdPoseInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "detectHand": { "type": "boolean", "default": true }, "detectBody": { "type": "boolean", "default": true }, "detectFace": { "type": "boolean", "default": true }, "kind": { "enum": [ "sdpose" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageShuffleInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "seed": { "maximum": 2147483647, "minimum": 0, "type": "integer", "format": "int32", "default": 0 }, "kind": { "enum": [ "shuffle" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageStandardLineartInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "gaussianSigma": { "maximum": 100, "minimum": 0, "type": "number", "format": "double", "default": 6 }, "intensityThreshold": { "maximum": 16, "minimum": 0, "type": "integer", "format": "int32", "default": 8 }, "kind": { "enum": [ "lineart-standard" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PreprocessImageInput" }, "output": { "$ref": "#/components/schemas/PreprocessImageOutput" }, "$type": { "enum": [ "preprocessImage" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PreprocessImageInput" }, "$type": { "enum": [ "preprocessImage" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageTeedInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "safeSteps": { "maximum": 10, "minimum": 0, "type": "integer", "format": "int32", "default": 2 }, "kind": { "enum": [ "teed" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageTileInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "pyrUpIterations": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 3 }, "kind": { "enum": [ "tile" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageUniFormerInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "uniformer" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageZoeDepthAnythingInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "environment": { "$ref": "#/components/schemas/ZoeDepthEnvironment" }, "kind": { "enum": [ "zoe-depth-anything" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessImageZoeDepthInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessImageInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "zoe-depth" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoCannyInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "lowThreshold": { "maximum": 255, "minimum": 0, "type": "integer", "format": "int32", "default": 100 }, "highThreshold": { "maximum": 255, "minimum": 0, "type": "integer", "format": "int32", "default": 200 }, "kind": { "enum": [ "canny" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoDepthAnythingV2Input": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "checkpoint": { "$ref": "#/components/schemas/DepthAnythingV2Checkpoint" }, "kind": { "enum": [ "depth-anything-v2" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoDwPoseInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "detectHand": { "type": "boolean", "default": true }, "detectBody": { "type": "boolean", "default": true }, "detectFace": { "type": "boolean", "default": true }, "bboxDetector": { "$ref": "#/components/schemas/DwPoseBboxDetector" }, "poseEstimator": { "$ref": "#/components/schemas/DwPoseEstimator" }, "kind": { "enum": [ "dwpose" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoGrayInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "kind": { "enum": [ "gray" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoHedInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "safe": { "$ref": "#/components/schemas/SafeMode" }, "kind": { "enum": [ "hed" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoInput": { "required": [ "kind", "preprocessorType", "video" ], "type": "object", "properties": { "kind": { "type": "string" }, "video": { "type": "string", "format": "uri" }, "resolution": { "maximum": 4096, "minimum": 64, "type": "integer", "description": "The target resolution of the video's shorter edge.", "format": "int32", "default": 512 }, "preprocessorType": { "type": "string", "readOnly": true } }, "additionalProperties": false, "discriminator": { "propertyName": "kind", "mapping": { "canny": "#/components/schemas/PreprocessVideoCannyInput", "mlsd": "#/components/schemas/PreprocessVideoMlsdInput", "depth-anything-v2": "#/components/schemas/PreprocessVideoDepthAnythingV2Input", "hed": "#/components/schemas/PreprocessVideoHedInput", "dwpose": "#/components/schemas/PreprocessVideoDwPoseInput", "sdpose": "#/components/schemas/PreprocessVideoSdPoseInput", "scribble": "#/components/schemas/PreprocessVideoScribbleInput", "gray": "#/components/schemas/PreprocessVideoGrayInput", "layout": "#/components/schemas/PreprocessVideoLayoutInput" } } }, "PreprocessVideoLayoutInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "threshold": { "type": "number", "format": "double", "default": 0.5 }, "className": { "type": "string", "description": "A COCO class name, or \"all\" to keep every detected class.", "default": "all" }, "maxDetections": { "type": "integer", "format": "int32", "default": 10 }, "kind": { "enum": [ "layout" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoMlsdInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "scoreThreshold": { "maximum": 2, "minimum": 0.01, "type": "number", "format": "double", "default": 0.1 }, "distanceThreshold": { "maximum": 20, "minimum": 0.01, "type": "number", "format": "double", "default": 0.1 }, "kind": { "enum": [ "mlsd" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoOutput": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/VideoBlob" } }, "additionalProperties": false }, "PreprocessVideoScribbleInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "threshold": { "maximum": 64, "minimum": 1, "type": "integer", "format": "int32", "default": 32 }, "kind": { "enum": [ "scribble" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoSdPoseInput": { "allOf": [ { "$ref": "#/components/schemas/PreprocessVideoInput" }, { "required": [ "kind" ], "type": "object", "properties": { "detectHand": { "type": "boolean", "default": true }, "detectBody": { "type": "boolean", "default": true }, "detectFace": { "type": "boolean", "default": true }, "kind": { "enum": [ "sdpose" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PreprocessVideoInput" }, "output": { "$ref": "#/components/schemas/PreprocessVideoOutput" }, "$type": { "enum": [ "preprocessVideo" ], "type": "string" } }, "additionalProperties": false } ] }, "PreprocessVideoStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PreprocessVideoInput" }, "$type": { "enum": [ "preprocessVideo" ], "type": "string" } }, "additionalProperties": false } ] }, "Priority": { "enum": [ "high", "normal", "low", "idle" ], "type": "string" }, "ProblemDetails": { "type": "object", "properties": { "type": { "type": [ "null", "string" ] }, "title": { "type": [ "null", "string" ] }, "status": { "type": [ "null", "integer" ], "format": "int32" }, "detail": { "type": [ "null", "string" ] }, "instance": { "type": [ "null", "string" ] } }, "additionalProperties": {} }, "PromptEnhancementInput": { "required": [ "ecosystem", "prompt" ], "type": "object", "properties": { "ecosystem": { "minLength": 1, "type": "string", "description": "The target ecosystem (e.g., \"sd1\", \"sdxl\", \"flux\", \"ltx2\")." }, "prompt": { "minLength": 1, "type": "string" }, "negativePrompt": { "type": [ "null", "string" ] }, "temperature": { "maximum": 1, "minimum": 0, "type": [ "null", "number" ], "description": "LLM temperature for enhancement creativity (0.0–1.0). Defaults to 0.7.", "format": "double" }, "instruction": { "type": [ "null", "string" ], "description": "Optional instruction to guide how the prompt is enhanced (e.g., \"expand to 77 tokens\", \"keep it under 20 words\")." }, "images": { "type": [ "null", "array" ], "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "Reference images (URLs, data URIs, raw base64 or AIR strings) the model considers for subject, style, lighting and\ncomposition. Requires the ecosystem's prompt-analysis model to be vision-capable; non-VLM models silently ignore them." } }, "additionalProperties": false }, "PromptEnhancementOutput": { "required": [ "enhancedPrompt", "issues", "recommendations" ], "type": "object", "properties": { "issues": { "type": "array", "items": { "$ref": "#/components/schemas/PromptIssue" } }, "recommendations": { "type": "array", "items": { "type": "string" } }, "enhancedPrompt": { "type": "string" }, "enhancedNegativePrompt": { "type": [ "null", "string" ] } }, "additionalProperties": false }, "PromptEnhancementStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PromptEnhancementInput" }, "output": { "$ref": "#/components/schemas/PromptEnhancementOutput" }, "$type": { "enum": [ "promptEnhancement" ], "type": "string" } }, "additionalProperties": false } ], "description": "PromptEnhancement" }, "PromptEnhancementStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PromptEnhancementInput" }, "$type": { "enum": [ "promptEnhancement" ], "type": "string" } }, "additionalProperties": false } ], "description": "PromptEnhancement" }, "PromptIssue": { "required": [ "description" ], "type": "object", "properties": { "description": { "type": "string" }, "severity": { "type": [ "null", "string" ], "description": "Severity level: \"info\", \"warning\", or \"error\"." } }, "additionalProperties": false }, "PromptModerationInput": { "required": [ "positivePrompt" ], "type": "object", "properties": { "positivePrompt": { "type": "string", "description": "Original positive prompt, preserved without normalization. Empty is allowed." }, "negativePrompt": { "type": [ "null", "string" ], "description": "Original negative prompt; omitted/null is equivalent to an empty string." } }, "additionalProperties": false }, "PromptModerationLabelResult": { "required": [ "abstained", "flagged", "label", "score", "threshold", "unknownProbability" ], "type": "object", "properties": { "label": { "type": "string" }, "score": { "type": "number", "description": "P(yes) + 0.5 P(unknown), after the saved temperature calibration.", "format": "double" }, "threshold": { "type": "number", "format": "double" }, "flagged": { "type": "boolean" }, "unknownProbability": { "type": "number", "format": "double" }, "abstained": { "type": "boolean" } }, "additionalProperties": false }, "PromptModerationOutput": { "required": [ "model", "policyVersion", "results" ], "type": "object", "properties": { "model": { "type": "string" }, "policyVersion": { "type": "string" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/PromptModerationLabelResult" } } }, "additionalProperties": false }, "PromptModerationStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PromptModerationInput" }, "output": { "$ref": "#/components/schemas/PromptModerationOutput" }, "$type": { "enum": [ "promptModeration" ], "type": "string" } }, "additionalProperties": false } ], "description": "PromptModeration" }, "PromptModerationStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/PromptModerationInput" }, "$type": { "enum": [ "promptModeration" ], "type": "string" } }, "additionalProperties": false } ], "description": "PromptModeration" }, "QueuedResourceAvailability": { "allOf": [ { "$ref": "#/components/schemas/ResourceAvailability" }, { "required": [ "lane", "queuePosition", "status" ], "type": "object", "properties": { "queuePosition": { "type": "integer", "format": "int32" }, "lane": { "$ref": "#/components/schemas/Priority" }, "etaSeconds": { "type": [ "null", "integer" ], "format": "int32" }, "boostedEtaSeconds": { "type": [ "null", "integer" ], "description": "What Civitai.Orchestration.Grains.Resources.QueuedResourceAvailability.EtaSeconds would become in the High lane. Null when already High.", "format": "int32" }, "rateLimitBytesPerSecond": { "type": [ "null", "integer" ], "description": "Per-stream ceiling the lane applies to this download. Null when uncapped; boosting to High lifts it.", "format": "int64" }, "status": { "enum": [ "queued" ], "type": "string" } }, "additionalProperties": false } ], "description": "Waiting in a download lane. No progress or speed — nothing is transferring yet." }, "Qwen20bCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen20bImageGenInput" }, { "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen20bEditImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen20bImageGenInput" }, { "required": [ "ecosystem", "engine", "height", "images", "model", "operation", "width" ], "type": "object", "properties": { "version": { "enum": [ "latest", "2509", "2511" ], "type": "string", "default": "latest" }, "images": { "maxItems": 10, "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen20bImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/QwenImageGenInput" }, { "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" ] }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Qwen20bCreateImageGenInput", "editImage": "#/components/schemas/Qwen20bEditImageGenInput", "createVariant": "#/components/schemas/Qwen20bVariantImageGenInput" } } } ] }, "Qwen20bVariantImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen20bImageGenInput" }, { "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen21AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine" ], "type": "object", "properties": { "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "qwen21" ], "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 } ] }, "Qwen2CreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen2FalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "qwen2" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen2EditFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen2FalImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "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" } }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "qwen2" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen2FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "minLength": 1, "type": "string" }, "negativePrompt": { "maxLength": 500, "type": [ "null", "string" ] }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "imageSize": { "enum": [ "square_hd", "square", "portrait_4_3", "portrait_16_9", "landscape_4_3", "landscape_16_9" ], "type": "string", "default": "square_hd" }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "enablePromptExpansion": { "type": "boolean", "default": true }, "enableSafetyChecker": { "type": "boolean", "default": false }, "model": { "enum": [ "qwen2" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Qwen2CreateFalImageGenInput", "proCreateImage": "#/components/schemas/Qwen2ProCreateFalImageGenInput", "editImage": "#/components/schemas/Qwen2EditFalImageGenInput", "proEditImage": "#/components/schemas/Qwen2ProEditFalImageGenInput" } } } ] }, "Qwen2ProCreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen2FalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "proCreateImage" ], "type": "string" }, "model": { "enum": [ "qwen2" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen2ProEditFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen2FalImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "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" } }, "operation": { "enum": [ "proEditImage" ], "type": "string" }, "model": { "enum": [ "qwen2" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen3BaseTTSInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen3TextToSpeechInput" }, { "required": [ "ecosystem", "engine", "operation", "xVectorOnlyMode" ], "type": "object", "properties": { "refAudioUrl": { "type": [ "null", "string" ], "description": "Reference audio AIR URN or external URL for voice cloning.\nAccepts AIR URNs (existing resources) or HTTP(S) URLs.", "format": "uri" }, "refText": { "type": [ "null", "string" ], "description": "Transcript of the reference audio.\nRequired for Base mode unless XVectorOnlyMode is true." }, "xVectorOnlyMode": { "type": "boolean", "description": "If true, uses only speaker embedding (ref_text not required)." }, "operation": { "enum": [ "base" ], "type": "string" }, "ecosystem": { "enum": [ "qwen3" ], "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen3CustomVoiceTTSInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen3TextToSpeechInput" }, { "required": [ "ecosystem", "engine", "operation", "speaker" ], "type": "object", "properties": { "speaker": { "enum": [ "aiden", "dylan", "eric", "ono_anna", "ryan", "serena", "sohee", "uncle_fu", "vivian" ], "type": "string", "description": "Built-in speaker name for CustomVoice mode." }, "instruct": { "type": [ "null", "string" ], "description": "Optional style instruction (e.g., \"speak slowly and clearly\")." }, "operation": { "enum": [ "customVoice" ], "type": "string" }, "ecosystem": { "enum": [ "qwen3" ], "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false } ] }, "Qwen3TextToSpeechInput": { "allOf": [ { "$ref": "#/components/schemas/VllmOmniTextToSpeechInput" }, { "required": [ "ecosystem", "engine", "operation" ], "type": "object", "properties": { "operation": { "type": "string" }, "maxNewTokens": { "type": [ "null", "integer" ], "format": "int32" }, "ecosystem": { "enum": [ "qwen3" ], "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "base": "#/components/schemas/Qwen3BaseTTSInput", "customVoice": "#/components/schemas/Qwen3CustomVoiceTTSInput", "voiceDesign": "#/components/schemas/Qwen3VoiceDesignTTSInput" } } } ] }, "Qwen3VoiceDesignTTSInput": { "allOf": [ { "$ref": "#/components/schemas/Qwen3TextToSpeechInput" }, { "required": [ "ecosystem", "engine", "instruct", "operation" ], "type": "object", "properties": { "instruct": { "type": "string", "description": "Natural-language description of the desired voice\n(e.g., \"a calm middle-aged male narrator with a slight British accent\")." }, "operation": { "enum": [ "voiceDesign" ], "type": "string" }, "ecosystem": { "enum": [ "qwen3" ], "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false } ] }, "QwenAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "version": { "enum": [ "latest", "2509", "2512" ], "type": "string", "default": "latest" }, "ecosystem": { "enum": [ "qwen" ], "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 } ] }, "QwenApiCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/QwenApiImageGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "model": { "enum": [ "3.0-pro", "2.0-pro", "2.0", "max", "plus" ], "type": "string", "default": "2.0" }, "operation": { "enum": [ "createImage" ], "type": "string" }, "engine": { "enum": [ "qwen" ], "type": "string" } }, "additionalProperties": false } ] }, "QwenApiEditImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/QwenApiImageGenInput" }, { "required": [ "engine", "images", "operation" ], "type": "object", "properties": { "model": { "enum": [ "3.0-pro", "2.0-pro", "2.0", "edit-max", "edit-plus", "edit" ], "type": "string", "default": "2.0" }, "images": { "maxItems": 3, "minItems": 1, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "Reference images. DashScope numbers them by input order — prompts refer to them as \"Image 1\", \"Image 2\", \"Image 3\"." }, "operation": { "enum": [ "editImage" ], "type": "string" }, "engine": { "enum": [ "qwen" ], "type": "string" } }, "additionalProperties": false } ] }, "QwenApiImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "height", "operation", "prompt", "width" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "createImage" }, "prompt": { "maxLength": 5000, "minLength": 0, "type": "string" }, "negativePrompt": { "maxLength": 500, "minLength": 0, "type": [ "null", "string" ] }, "quantity": { "maximum": 6, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "width": { "maximum": 2048, "minimum": 0, "type": "integer", "format": "int32" }, "height": { "maximum": 2048, "minimum": 0, "type": "integer", "format": "int32" }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "promptExtend": { "type": "boolean", "default": true }, "watermark": { "type": "boolean", "default": false }, "engine": { "enum": [ "qwen" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/QwenApiCreateImageGenInput", "editImage": "#/components/schemas/QwenApiEditImageGenInput" } } } ], "description": "Qwen image models hosted by Alibaba Model Studio (DashScope). Distinct from the `sdcpp`/`qwen`\necosystem, which runs Qwen-Image 20B on our own workers." }, "QwenImageBenchInput": { "required": [ "dimensions", "items" ], "type": "object", "properties": { "items": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/QwenImageBenchItem" }, "description": "Prompt/image pairs to score. Each item is evaluated independently." }, "model": { "type": "string", "default": "urn:air:qwen3:repository:huggingface:Civitai/Qwen-Image-Bench-AutoRound-AWQ-INT4@main.tar" }, "maxTokens": { "maximum": 128000, "minimum": 1, "type": "integer", "format": "int32", "default": 2048 }, "seed": { "type": "integer", "description": "Deterministic seed. The model card recommends 42.", "format": "int64", "default": 42 }, "dimensions": { "type": "array", "items": { "type": "string" }, "description": "Top-level benchmark dimensions to evaluate. Leave empty to evaluate all dimensions." } }, "additionalProperties": false }, "QwenImageBenchItem": { "required": [ "id", "image", "prompt" ], "type": "object", "properties": { "id": { "minLength": 1, "type": "string", "description": "Stable caller-provided identifier used as the output key." }, "prompt": { "minLength": 1, "type": "string" }, "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "additionalProperties": false, "description": "A single generated image and the prompt it should be judged against." }, "QwenImageBenchItemResult": { "required": [ "errors", "fieldScores", "scores" ], "type": "object", "properties": { "fieldScores": { "type": "object", "additionalProperties": { "type": [ "null", "number" ], "format": "double" }, "description": "Top-level benchmark dimension scores, mapped to the benchmark 0/60/100 scale." }, "totalScore": { "type": [ "null", "number" ], "description": "Average of the available top-level field scores.", "format": "double" }, "scores": { "type": "array", "items": { "$ref": "#/components/schemas/QwenImageBenchScoreNode" } }, "errors": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Parse errors keyed by benchmark dimension." }, "error": { "type": [ "null", "string" ] } }, "additionalProperties": false }, "QwenImageBenchOutput": { "required": [ "results" ], "type": "object", "properties": { "results": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/QwenImageBenchItemResult" }, "description": "Results keyed by the caller-provided item id." } }, "additionalProperties": false }, "QwenImageBenchScoreNode": { "required": [ "children", "name" ], "type": "object", "properties": { "name": { "type": "string" }, "score": { "type": [ "null", "number" ], "format": "double" }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/QwenImageBenchScoreNode" } } }, "additionalProperties": false }, "QwenImageBenchStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/QwenImageBenchInput" }, "output": { "$ref": "#/components/schemas/QwenImageBenchOutput" }, "$type": { "enum": [ "qwenImageBench" ], "type": "string" } }, "additionalProperties": false } ], "description": "Qwen Image Bench" }, "QwenImageBenchStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/QwenImageBenchInput" }, "$type": { "enum": [ "qwenImageBench" ], "type": "string" } }, "additionalProperties": false } ], "description": "Qwen Image Bench" }, "QwenImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdCppImageGenInput" }, { "required": [ "ecosystem", "engine", "model" ], "type": "object", "properties": { "model": { "type": "string" }, "ecosystem": { "enum": [ "qwen" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "20b": "#/components/schemas/Qwen20bImageGenInput" } } } ] }, "RepeatForClause": { "required": [ "$ref", "as", "path" ], "type": "object", "properties": { "$ref": { "type": "string", "description": "The dynamic assignment reference to the array to iterate over (e.g., \"$stepName\")." }, "path": { "type": "string", "description": "The path to the array property in the referenced step's output (e.g., \"output.frames\")." }, "as": { "type": "string", "description": "The variable name to use when referencing the current iteration item in template steps (e.g., \"frame\")." } }, "additionalProperties": false }, "RepeatInput": { "required": [ "for", "template" ], "type": "object", "properties": { "for": { "$ref": "#/components/schemas/RepeatForClause" }, "template": { "$ref": "#/components/schemas/WorkflowStepTemplate" } }, "additionalProperties": false }, "RepeatOutput": { "required": [ "steps" ], "type": "object", "properties": { "steps": { "type": "array", "items": { "$ref": "#/components/schemas/WorkflowStep" } } }, "additionalProperties": false }, "ResizeTransform": { "allOf": [ { "$ref": "#/components/schemas/ImageTransform" }, { "required": [ "type" ], "type": "object", "properties": { "targetWidth": { "maximum": 4096, "minimum": 1, "type": [ "null", "integer" ], "description": "Target width in pixels. Height is calculated to maintain aspect ratio.", "format": "int32" }, "type": { "enum": [ "resize" ], "type": "string" } }, "additionalProperties": false } ], "description": "Resizes an image to a target width while maintaining aspect ratio." }, "ResourceAvailability": { "required": [ "status" ], "type": "object", "properties": { "status": { "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "status", "mapping": { "unsupported": "#/components/schemas/UnsupportedResourceAvailability", "unavailable": "#/components/schemas/UnavailableResourceAvailability", "queued": "#/components/schemas/QueuedResourceAvailability", "loading": "#/components/schemas/LoadingResourceAvailability", "available": "#/components/schemas/AvailableResourceAvailability" } } }, "ResourceFee": { "required": [ "amount", "settlementCurrency", "type" ], "type": "object", "properties": { "amount": { "type": "number", "format": "double" }, "type": { "$ref": "#/components/schemas/ResourceFeeType" }, "settlementCurrency": { "$ref": "#/components/schemas/SettlementCurrency" }, "recipientModelVersionId": { "type": [ "null", "integer" ], "format": "int32" } }, "additionalProperties": false }, "ResourceFeeType": { "enum": [ "perImageBuzz" ], "type": "string" }, "ResourceInfo": { "required": [ "air", "canGenerate", "checkPermission", "downloadUrls", "fileFormat", "hashes", "hasMatureContentRestriction", "hasNSFWContentRestriction", "size" ], "type": "object", "properties": { "air": { "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" }, "size": { "type": "integer", "description": "In bytes.", "format": "int64" }, "hashes": { "type": "object", "additionalProperties": { "type": "string" } }, "downloadUrls": { "type": "array", "items": { "type": "string", "format": "uri" } }, "resourceName": { "type": [ "null", "string" ] }, "versionName": { "type": [ "null", "string" ] }, "invalidateAt": { "type": [ "null", "string" ], "format": "date-time" }, "earlyAccessEndsAt": { "type": [ "null", "string" ], "format": "date-time" }, "checkPermission": { "type": "boolean", "description": "Whether permission is required to use this resource." }, "canGenerate": { "type": "boolean" }, "freeTrialLimit": { "type": [ "null", "integer" ], "description": "Per-user limit on uses while the resource is in early access.", "format": "int32" }, "requiresAuthorization": { "type": [ "null", "boolean" ] }, "fileFormat": { "$ref": "#/components/schemas/FileFormat" }, "hasMatureContentRestriction": { "type": "boolean", "description": "Generations using this resource are forced to not produce mature content." }, "popularityRank": { "type": [ "null", "number" ], "description": "0-1.", "format": "double" }, "isFeatured": { "type": [ "null", "boolean" ] }, "publishedAt": { "type": [ "null", "string" ], "format": "date-time" }, "hasNSFWContentRestriction": { "type": "boolean", "description": "NSFW covers X and XXX, whereas mature content also includes R." }, "fee": { "$ref": "#/components/schemas/ResourceFee" }, "payoutEnabled": { "type": [ "null", "boolean" ], "description": "False makes the resource ineligible for compensation." }, "fees": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/ResourceFee" }, "description": "The full licensing-fee breakdown; each entry settles to its own recipient" }, "userId": { "type": [ "null", "integer" ], "description": "The owner of this resource, stamped onto compensation records at flush time so\nattribution follows ownership transfers instead of being resolved retroactively.", "format": "int32" }, "availability": { "$ref": "#/components/schemas/ResourceAvailability" }, "isPromoted": { "type": [ "null", "boolean" ], "description": "Promoted resources download in the High lane for free, whatever lane the job asked for." }, "evictable": { "type": [ "null", "boolean" ], "description": "When false, workers keep the cluster's last copy of this resource rather than evicting it." }, "tipsEnabled": { "type": [ "null", "boolean" ], "description": "Unlike payoutEnabled, a licensing fee does not disqualify the resource from tips." } }, "additionalProperties": false }, "ResourceView": { "enum": [ "queue", "loaded" ], "type": "string", "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." }, "ReveCreateFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ReveFalImageGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "model": { "enum": [ "reve" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "ReveEditFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ReveFalImageGenInput" }, { "required": [ "engine", "images", "model", "operation" ], "type": "object", "properties": { "images": { "maxItems": 8, "minItems": 1, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "Address these from the prompt as N, 0-based." }, "operation": { "enum": [ "editImage" ], "type": "string" }, "model": { "enum": [ "reve" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "ReveFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalImageGenInput" }, { "required": [ "engine", "model", "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": "string" }, "prompt": { "maxLength": 4000, "minLength": 1, "type": "string" }, "aspectRatio": { "enum": [ "auto", "4:1", "3:1", "21:9", "2:1", "17:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16", "1:2", "1:3", "1:4" ], "type": "string", "default": "auto" }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "model": { "enum": [ "reve" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/ReveCreateFalImageGenInput", "editImage": "#/components/schemas/ReveEditFalImageGenInput" } } } ] }, "SD1AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "maxBatchSize" ], "type": "object", "properties": { "minSnrGamma": { "maximum": 20, "minimum": 0, "type": [ "null", "integer" ], "description": "Compensates for the varying noise strength applied to training images, suppressing large jumps when images have little noise.", "format": "int32" }, "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", "default": "urn:air:sd1:checkpoint:civitai:127227@139180" }, "maxBatchSize": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "sd1" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" }, "batchSize": { "maximum": 4, "minimum": 1, "type": [ "null", "integer" ], "description": "Training batch size. Defaults to 1; raise it up to 4 for this ecosystem to train faster at the cost of more GPU memory.", "default": 1 } }, "additionalProperties": false } ] }, "SafeMode": { "enum": [ "enable", "disable" ], "type": "string" }, "Scheduler": { "enum": [ "eulerA", "euler", "lms", "heun", "dpM2", "dpM2A", "dpM2SA", "dpM2M", "dpmsde", "dpmFast", "dpmAdaptive", "lmsKarras", "dpM2Karras", "dpM2AKarras", "dpM2SAKarras", "dpM2MKarras", "dpmsdeKarras", "ddim", "plms", "uniPC", "undefined", "lcm", "ddpm", "deis", "dpM3MSDE" ], "type": "string" }, "Sd1CreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Sd1ImageGenInput" }, { "required": [ "ecosystem", "engine", "operation" ], "type": "object", "properties": { "width": { "maximum": 2048, "minimum": 64, "type": "integer", "format": "int32", "default": 512 }, "height": { "maximum": 2048, "minimum": 64, "type": "integer", "format": "int32", "default": 512 }, "operation": { "enum": [ "createImage" ], "type": "string" }, "ecosystem": { "enum": [ "sd1" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "Sd1ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdCppImageGenInput" }, { "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" ] }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "steps": { "maximum": 150, "minimum": 1, "type": "integer", "format": "int32", "default": 20 }, "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 }, "uCache": { "$ref": "#/components/schemas/SdCppUCacheMode" }, "ecosystem": { "enum": [ "sd1" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Sd1CreateImageGenInput", "createVariant": "#/components/schemas/Sd1VariantImageGenInput" } } } ] }, "Sd1VariantImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Sd1ImageGenInput" }, { "required": [ "ecosystem", "engine", "image", "operation" ], "type": "object", "properties": { "width": { "maximum": 2048, "minimum": 64, "type": "integer", "format": "int32", "default": 512 }, "height": { "maximum": 2048, "minimum": 64, "type": "integer", "format": "int32", "default": 512 }, "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": [ "sd1" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "SdCppImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "ecosystem": { "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "ecosystem", "mapping": { "qwen": "#/components/schemas/QwenImageGenInput", "zImage": "#/components/schemas/ZImageImageGenInput", "anima": "#/components/schemas/AnimaImageGenInput", "sd1": "#/components/schemas/Sd1ImageGenInput", "sdxl": "#/components/schemas/SdxlImageGenInput", "flux1": "#/components/schemas/Flux1SdCppImageGenInput", "flux2Dev": "#/components/schemas/Flux2DevSdCppImageGenInput", "flux2Klein": "#/components/schemas/Flux2KleinSdCppImageGenInput" } } } ] }, "SdCppSampleMethod": { "enum": [ "euler", "heun", "dpm2", "dpm++2s_a", "dpm++2m", "dpm++2mv2", "ipndm", "ipndm_v", "ddim_trailing", "euler_a", "lcm", "res_multistep", "res_2s", "tcd", "er_sde" ], "type": "string" }, "SdCppSchedule": { "enum": [ "simple", "discrete", "karras", "exponential", "ays", "bong_tangent", "gits", "sgm_uniform", "smoothstep", "kl_optimal", "lcm" ], "type": "string" }, "SdCppUCacheMode": { "enum": [ "off", "normal" ], "type": "string" }, "SdxlAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "maxBatchSize" ], "type": "object", "properties": { "minSnrGamma": { "maximum": 20, "minimum": 0, "type": [ "null", "integer" ], "description": "Compensates for the varying noise strength applied to training images, suppressing large jumps when images have little noise.", "format": "int32" }, "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", "default": "urn:air:sdxl:checkpoint:civitai:101055@128078" }, "maxBatchSize": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "sdxl" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" }, "batchSize": { "maximum": 4, "minimum": 1, "type": [ "null", "integer" ], "description": "Training batch size. Defaults to 1; raise it up to 4 for this ecosystem to train faster at the cost of more GPU memory.", "default": 1 } }, "additionalProperties": false } ] }, "SdxlCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdxlImageGenInput" }, { "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": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "SdxlImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdCppImageGenInput" }, { "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" ] }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "steps": { "maximum": 150, "minimum": 1, "type": "integer", "format": "int32", "default": 20 }, "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 }, "uCache": { "$ref": "#/components/schemas/SdCppUCacheMode" }, "ecosystem": { "enum": [ "sdxl" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/SdxlCreateImageGenInput", "createVariant": "#/components/schemas/SdxlVariantImageGenInput" } } } ] }, "SdxlVariantImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdxlImageGenInput" }, { "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": [ "sdxl" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "SeedanceModel": { "enum": [ "v2", "v2-fast", "v2-mini", "v2.5" ], "type": "string" }, "SeedanceVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "aspectRatio", "duration", "engine", "resolution" ], "type": "object", "properties": { "model": { "$ref": "#/components/schemas/SeedanceModel" }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "adaptive" ], "type": "string" }, "duration": { "enum": [ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ], "type": "integer", "format": "int32" }, "generateAudio": { "type": "boolean", "default": true }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "resolution": { "enum": [ "480p", "720p", "1080p" ], "type": "string" }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "referenceVideos": { "type": "array", "items": { "type": "string", "format": "uri" } }, "referenceAudios": { "type": "array", "items": { "type": "string", "format": "uri" } }, "engine": { "enum": [ "seedance" ], "type": "string" } }, "additionalProperties": false } ] }, "SeedreamImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "prompt" ], "type": "object", "properties": { "prompt": { "minLength": 1, "type": "string" }, "quantity": { "maximum": 12, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "width": { "maximum": 4096, "minimum": 256, "type": "integer", "format": "int32", "default": 1024 }, "height": { "maximum": 4096, "minimum": 256, "type": "integer", "format": "int32", "default": 1024 }, "guidanceScale": { "maximum": 20, "minimum": 1, "type": "number", "format": "double", "default": 2.5 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "enableSafetyChecker": { "type": "boolean", "default": false }, "version": { "$ref": "#/components/schemas/SeedreamVersion" }, "images": { "maxItems": 10, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "engine": { "enum": [ "seedream" ], "type": "string" } }, "additionalProperties": false } ] }, "SeedreamVersion": { "enum": [ "v3", "v4", "v4.5", "v5.0-lite", "v5.0-pro" ], "type": "string" }, "ServiceHistory": { "required": [ "buckets", "interval" ], "type": "object", "properties": { "interval": { "type": "string", "description": "The bucket size the series is grouped by: 5m, 1h or 1d." }, "buckets": { "type": "array", "items": { "$ref": "#/components/schemas/BucketResponse" }, "description": "Newest bucket first. Each spans one Civitai.Orchestration.Api.Controllers.v2.Consumers.Services.ServiceHistory.Interval." } }, "additionalProperties": false }, "ServiceResponse": { "required": [ "category", "id", "parameters", "status", "tags" ], "type": "object", "properties": { "id": { "type": "string", "description": "Variable-depth path, e.g. \"image/flux2/klein/createImage/9b\". Opaque: read\nCivitai.Orchestration.Api.Controllers.v2.Consumers.Services.ServiceResponse.Parameters rather than splitting this on \"/\", as the depth and the meaning of\neach segment differ per engine." }, "category": { "type": "string", "description": "The id's first segment." }, "parameters": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The id decomposed, e.g. { engine: flux2, model: klein, operation: createImage }." }, "step": { "type": [ "null", "string" ], "description": "The workflow step $type this service is reached through." }, "submit": { "type": [ "null", "string" ], "description": "Where to submit this service." }, "estimate": { "type": [ "null", "string" ], "description": "Returns the exact cost of a given input without running it." }, "name": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] }, "tags": { "type": "array", "items": { "type": "string" } }, "strengths": { "type": [ "null", "string" ] }, "weaknesses": { "type": [ "null", "string" ] }, "releasedAt": { "type": [ "null", "string" ], "format": "date-time" }, "modalities": { "$ref": "#/components/schemas/ModalitiesResponse" }, "status": { "$ref": "#/components/schemas/ServiceStatus" }, "metrics": { "$ref": "#/components/schemas/MetricsResponse" }, "history": { "$ref": "#/components/schemas/ServiceHistory" } }, "additionalProperties": false, "description": "A service we offer." }, "ServiceStatus": { "enum": [ "unknown", "available", "degraded", "unavailable" ], "type": "string" }, "SettlementCurrency": { "enum": [ "buzz", "cash" ], "type": "string" }, "ShadowRemoval": { "enum": [ "off", "gentle", "aggressive" ], "type": "string", "description": "How aggressively background removal also strips soft drop shadows the strict color match misses." }, "ShieldstralModerationInput": { "required": [ "mode" ], "type": "object", "properties": { "mode": { "type": "string" }, "policies": { "type": [ "null", "array" ], "items": { "type": "string" }, "description": "Optional policy filter. When omitted, every configured policy for the selected mode is evaluated." }, "policyOverrides": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/ShieldstralPolicyConfiguration" }, "description": "Per-request policy overrides. Existing policies are merged by name and new names create custom policies.\nPolicy is free-form natural language; Query, when supplied, must be a single yes/no question." } }, "additionalProperties": false, "discriminator": { "propertyName": "mode", "mapping": { "prompt": "#/components/schemas/ShieldstralPromptModerationInput", "text": "#/components/schemas/ShieldstralTextModerationInput" } } }, "ShieldstralModerationOutput": { "required": [ "blocked", "results", "triggeredPolicies" ], "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/ShieldstralPolicyResult" } }, "blocked": { "type": "boolean" }, "triggeredPolicies": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "ShieldstralModerationStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ShieldstralModerationInput" }, "output": { "$ref": "#/components/schemas/ShieldstralModerationOutput" }, "$type": { "enum": [ "shieldstralModeration" ], "type": "string" } }, "additionalProperties": false } ], "description": "ShieldstralModeration" }, "ShieldstralModerationStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/ShieldstralModerationInput" }, "$type": { "enum": [ "shieldstralModeration" ], "type": "string" } }, "additionalProperties": false } ], "description": "ShieldstralModeration" }, "ShieldstralPolicyConfiguration": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": "string" }, "action": { "type": [ "null", "string" ] }, "threshold": { "type": [ "null", "number" ], "format": "double" }, "policy": { "type": [ "null", "string" ] }, "query": { "type": [ "null", "string" ] }, "instruction": { "type": [ "null", "string" ] } }, "additionalProperties": false, "description": "A per-request policy override. For a custom policy, Name and Policy are required; Action defaults to\nScan/Review by mode, Threshold defaults to 0.5, and Query defaults to a mode-appropriate yes/no question." }, "ShieldstralPolicyResult": { "required": [ "action", "policy", "score", "threshold", "topToken", "triggered" ], "type": "object", "properties": { "policy": { "type": "string" }, "action": { "type": "string" }, "threshold": { "type": "number", "format": "double" }, "score": { "type": "number", "format": "double" }, "triggered": { "type": "boolean" }, "topToken": { "type": "string" }, "finishReason": { "type": [ "null", "string" ] }, "responseId": { "type": [ "null", "string" ] }, "error": { "type": [ "null", "string" ] }, "policyHash": { "type": [ "null", "string" ] } }, "additionalProperties": false }, "ShieldstralPromptModerationInput": { "allOf": [ { "$ref": "#/components/schemas/ShieldstralModerationInput" }, { "required": [ "mode", "positivePrompt" ], "type": "object", "properties": { "positivePrompt": { "type": "string" }, "negativePrompt": { "type": [ "null", "string" ] }, "context": { "type": [ "null", "string" ], "description": "Optional product-specific context included in the document being moderated." }, "mode": { "enum": [ "prompt" ], "type": "string" } }, "additionalProperties": false } ] }, "ShieldstralTextModerationInput": { "allOf": [ { "$ref": "#/components/schemas/ShieldstralModerationInput" }, { "required": [ "mode", "text" ], "type": "object", "properties": { "text": { "type": "string" }, "mode": { "enum": [ "text" ], "type": "string" } }, "additionalProperties": false } ] }, "SoniloAudioGenInput": { "required": [ "operation", "prompt" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "music" }, "prompt": { "maxLength": 2000, "type": "string" } }, "additionalProperties": false, "description": "Text-to-audio via Sonilo; `operation` picks music or a standalone sound effect.", "discriminator": { "propertyName": "operation", "mapping": { "music": "#/components/schemas/SoniloMusicInput", "soundEffect": "#/components/schemas/SoniloSoundEffectInput" } } }, "SoniloAudioGenOutput": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/AudioBlob" } }, "additionalProperties": false }, "SoniloAudioGenStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/SoniloAudioGenInput" }, "output": { "$ref": "#/components/schemas/SoniloAudioGenOutput" }, "$type": { "enum": [ "soniloAudioGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate music or a standalone sound effect from a text prompt with Sonilo." }, "SoniloAudioGenStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/SoniloAudioGenInput" }, "$type": { "enum": [ "soniloAudioGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate music or a standalone sound effect from a text prompt with Sonilo." }, "SoniloMusicInput": { "allOf": [ { "$ref": "#/components/schemas/SoniloAudioGenInput" }, { "required": [ "operation" ], "type": "object", "properties": { "duration": { "maximum": 360, "minimum": 5, "type": "integer", "description": "Track length in seconds. Sonilo bills a minimum of 10 seconds.", "format": "int32", "default": 90 }, "operation": { "enum": [ "music" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a music track. Style, mood, instrumentation, lyrics and tempo are inferred from the prompt." }, "SoniloSoundEffectInput": { "allOf": [ { "$ref": "#/components/schemas/SoniloAudioGenInput" }, { "required": [ "operation" ], "type": "object", "properties": { "duration": { "maximum": 180, "minimum": 0.5, "type": "number", "description": "Effect length in seconds. Sonilo bills a minimum of 3 seconds.", "format": "double", "default": 8 }, "operation": { "enum": [ "soundEffect" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a standalone sound effect, e.g. \"heavy wooden door creaking open in a stone hallway\"." }, "Sora2ImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/SoraVideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "engine": { "enum": [ "sora" ], "type": "string" } }, "additionalProperties": false } ], "description": "FAL endpoints fal-ai/sora-2/image-to-video and fal-ai/sora-2/image-to-video/pro" }, "Sora2TextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/SoraVideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "operation": { "enum": [ "text-to-video" ], "type": "string" }, "engine": { "enum": [ "sora" ], "type": "string" } }, "additionalProperties": false } ], "description": "FAL endpoints fal-ai/sora-2/text-to-video and fal-ai/sora-2/text-to-video/pro" }, "SoraVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "duration": { "maximum": 12, "minimum": 4, "type": "integer", "format": "int32", "default": 4 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "auto", "16:9", "9:16" ], "type": "string", "default": "auto" }, "usePro": { "type": "boolean", "default": false }, "engine": { "enum": [ "sora" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/Sora2TextToVideoInput", "image-to-video": "#/components/schemas/Sora2ImageToVideoInput" } } } ], "description": "Retired: OpenAI shut down the Sora 2 API on 2026-09-24 and new requests are rejected." }, "StarVectorImageToSvgInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyImageToSvgInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "model": { "enum": [ "starvector-1b", "starvector-8b" ], "type": "string", "default": "starvector-1b" }, "precision": { "enum": [ "fp16", "bf16" ], "type": "string", "default": "fp16" }, "maxLength": { "maximum": 16000, "minimum": 100, "type": "integer", "format": "int32", "default": 4000 }, "ecosystem": { "enum": [ "starvector" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "StreamingBlobAppendResponse": { "required": [ "nextSequence" ], "type": "object", "properties": { "nextSequence": { "type": "integer", "description": "The sequence number the blob expects next.", "format": "int64" } }, "additionalProperties": false }, "SystemMessage": { "allOf": [ { "$ref": "#/components/schemas/ChatCompletionMessage" }, { "required": [ "content", "role" ], "type": "object", "properties": { "content": { "type": "string", "description": "The system message content (text only)." }, "name": { "type": [ "null", "string" ] }, "role": { "enum": [ "system" ], "type": "string" } }, "additionalProperties": false } ], "description": "A system message that sets the behavior of the assistant." }, "TextToImageInput": { "required": [ "cfgScale", "prompt", "seed" ], "type": "object", "properties": { "quantity": { "maximum": 100, "minimum": 1, "type": "integer", "description": "The number of batches to run.", "format": "int32", "default": 1 }, "batchSize": { "maximum": 100, "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", "default": "urn:air:sd1:checkpoint:civitai:4384@128713" }, "additionalNetworks": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ImageJobNetworkParams" }, "description": "Additional networks keyed by their AIR." }, "controlNets": { "type": "array", "items": { "$ref": "#/components/schemas/ImageJobControlNet" } }, "prompt": { "type": "string" }, "negativePrompt": { "type": [ "null", "string" ] }, "scheduler": { "$ref": "#/components/schemas/Scheduler" }, "steps": { "maximum": 150, "minimum": 1, "type": "integer", "format": "int32", "default": 30 }, "cfgScale": { "maximum": 30, "minimum": 1, "type": "number", "format": "double", "default": 7.5 }, "width": { "maximum": 4084, "minimum": 64, "type": "integer", "format": "int32", "default": 512 }, "height": { "maximum": 4084, "minimum": 64, "type": "integer", "format": "int32", "default": 512 }, "seed": { "maximum": 4294967295, "minimum": 0, "type": "integer", "description": "The seed to use in image generation. Defaults to a random value if left unpopulated.", "format": "int64" }, "clipSkip": { "type": "integer", "format": "int32", "default": 2 }, "imageMetadata": { "type": [ "null", "string" ], "description": "External metadata that will be stored with the image" }, "engine": { "type": [ "null", "string" ] }, "outputFormat": { "$ref": "#/components/schemas/OutputFormat" }, "sourceImage": { "type": [ "null", "string" ], "description": "An optional source image to trigger img-to-img", "format": "source-image" }, "sourceImageDenoiseStrenght": { "type": "number", "description": "The strength/denoise factor for img2img (0.0-1.0). Lower values preserve more of the source image.", "format": "double", "default": 0.8 } }, "additionalProperties": false }, "TextToImageOutput": { "required": [ "images" ], "type": "object", "properties": { "images": { "type": "array", "items": { "$ref": "#/components/schemas/ImageBlob" } } }, "additionalProperties": false }, "TextToImageStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TextToImageInput" }, "output": { "$ref": "#/components/schemas/TextToImageOutput" }, "$type": { "enum": [ "textToImage" ], "type": "string" } }, "additionalProperties": false } ], "description": "TextToImage" }, "TextToImageStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TextToImageInput" }, "$type": { "enum": [ "textToImage" ], "type": "string" } }, "additionalProperties": false } ], "description": "TextToImage" }, "TextToSpeechInput": { "required": [ "engine", "text" ], "type": "object", "properties": { "engine": { "type": [ "null", "string" ], "default": "custom" }, "text": { "type": "string" }, "language": { "type": [ "null", "string" ], "description": "Target language (e.g., \"English\", \"Chinese\"). Defaults to \"Auto\"." } }, "additionalProperties": false, "discriminator": { "propertyName": "engine", "mapping": { "custom": "#/components/schemas/CustomTextToSpeechInput", "vllm-omni": "#/components/schemas/VllmOmniTextToSpeechInput" } } }, "TextToSpeechOutput": { "required": [ "audioBlob" ], "type": "object", "properties": { "audioBlob": { "$ref": "#/components/schemas/AudioBlob" }, "modelType": { "type": [ "null", "string" ], "description": "Whether the TTS used \"base\" (voice cloning) or \"custom_voice\" (built-in speaker) mode." }, "speaker": { "type": [ "null", "string" ], "description": "The speaker name used (set for CustomVoice mode, null for Base mode)." } }, "additionalProperties": false }, "TextToSpeechStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TextToSpeechInput" }, "output": { "$ref": "#/components/schemas/TextToSpeechOutput" }, "$type": { "enum": [ "textToSpeech" ], "type": "string" } }, "additionalProperties": false } ], "description": "Text-to-Speech" }, "TextToSpeechStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TextToSpeechInput" }, "$type": { "enum": [ "textToSpeech" ], "type": "string" } }, "additionalProperties": false } ], "description": "Text-to-Speech" }, "ToolMessage": { "allOf": [ { "$ref": "#/components/schemas/ChatCompletionMessage" }, { "required": [ "content", "role", "tool_call_id" ], "type": "object", "properties": { "content": { "type": "string" }, "tool_call_id": { "type": "string" }, "role": { "enum": [ "tool" ], "type": "string" } }, "additionalProperties": false } ], "description": "A tool result message sent back after executing a tool call." }, "TraceMode": { "enum": [ "none", "logs", "binary" ], "type": "string", "description": "How much of a custom-comfy job's ComfyUI `/ws` activity to record to a\nstreaming blob the consumer can tail live." }, "TrainingData": { "required": [ "type" ], "type": "object", "properties": { "type": { "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "type", "mapping": { "zip": "#/components/schemas/ZipTrainingData", "blobs": "#/components/schemas/BlobsTrainingData" } } }, "TrainingInput": { "required": [ "engine", "requiresAgeClassification", "trainingData", "usesStepPricing" ], "type": "object", "properties": { "engine": { "type": "string" }, "trainingData": { "$ref": "#/components/schemas/TrainingData" }, "samples": { "$ref": "#/components/schemas/TrainingInputSamples" }, "usesStepPricing": { "type": "boolean", "description": "Whether this run uses step-based pricing rather than the legacy flat per-epoch price.", "readOnly": true }, "requiresAgeClassification": { "type": "boolean", "readOnly": true } }, "additionalProperties": false, "discriminator": { "propertyName": "engine", "mapping": { "ai-toolkit": "#/components/schemas/AIToolkitTrainingInput", "comfy": "#/components/schemas/ComfyTrainingInput" } } }, "TrainingInputSamples": { "type": "object", "properties": { "prompts": { "type": "array", "items": { "type": "string" }, "description": "A selection of sample prompts to generate preview outputs during training." }, "negativePrompt": { "type": [ "null", "string" ] }, "sourceImages": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "Source images for edit-LoRA sample generation, passed as reference images when rendering samples." }, "cfgScale": { "type": [ "null", "number" ], "description": "CFG (guidance) scale for sample generation. When unset, each ecosystem uses its own default.", "format": "double" }, "strength": { "type": [ "null", "number" ], "description": "Strength of the trained LoRA when generating samples. Defaults to 1.0 when unset.", "format": "double" } }, "additionalProperties": false }, "TrainingModerationStatus": { "enum": [ "evaluating", "underReview", "approved", "rejected" ], "type": "string" }, "TrainingOutput": { "required": [ "epochs", "moderationStatus" ], "type": "object", "properties": { "moderationStatus": { "$ref": "#/components/schemas/TrainingModerationStatus" }, "epochs": { "type": "array", "items": { "$ref": "#/components/schemas/TrainingOutputEpochResult" }, "description": "Every epoch of the run in epoch order, from the start of the step. Epochs that are still pending or\ntraining carry a model with `available: false` and no samples yet." } }, "additionalProperties": false }, "TrainingOutputEpochResult": { "required": [ "epochNumber", "model", "samples" ], "type": "object", "properties": { "epochNumber": { "type": "integer", "description": "The epoch number (1-based)", "format": "int32" }, "model": { "$ref": "#/components/schemas/Blob" }, "samples": { "type": "array", "items": { "$ref": "#/components/schemas/Blob" }, "description": "Sample outputs (images/videos/audio) generated with this epoch's model" }, "traceUrl": { "type": [ "null", "string" ], "description": "Live trace of this epoch's job when the input requested `trace`: plain text for `logs`, NDJSON for `events` (each line has unix-ms `t`, `type`, `epoch`).\n404 until the worker writes its first line, chunked while the job runs; null for epochs served from an existing checkpoint.", "format": "uri" } }, "additionalProperties": false }, "TrainingStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TrainingInput" }, "output": { "$ref": "#/components/schemas/TrainingOutput" }, "$type": { "enum": [ "training" ], "type": "string" } }, "additionalProperties": false } ], "description": "Training" }, "TrainingStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TrainingInput" }, "$type": { "enum": [ "training" ], "type": "string" } }, "additionalProperties": false } ], "description": "Training" }, "TrainingTraceMode": { "enum": [ "none", "logs", "events" ], "type": "string", "description": "What an epoch job records to its live trace stream (`output.epochs[].traceUrl`), which the consumer can tail\nwhile the job runs." }, "TransactionInfo": { "required": [ "accountType", "amount", "type" ], "type": "object", "properties": { "type": { "$ref": "#/components/schemas/TransactionType" }, "amount": { "maximum": 2147483647, "minimum": 0, "type": "integer", "format": "int32" }, "id": { "type": [ "null", "string" ] }, "accountType": { "$ref": "#/components/schemas/BuzzClientAccount" } }, "additionalProperties": false }, "TransactionSummary": { "required": [ "list" ], "type": "object", "properties": { "list": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionInfo" } }, "insufficientBuzz": { "type": [ "null", "boolean" ], "description": "Returned with whatif requests to indicate whether the user has insufficient buzz to run the workflow." } }, "additionalProperties": false }, "TransactionType": { "enum": [ "debit", "credit" ], "type": "string" }, "TranscodeInput": { "required": [ "sourceUrl", "width" ], "type": "object", "properties": { "sourceUrl": { "type": "string", "format": "uri" }, "containerFormat": { "$ref": "#/components/schemas/ContainerFormat" }, "width": { "type": "integer", "format": "int32" }, "destinationUrl": { "type": [ "null", "string" ], "format": "uri" }, "public": { "type": [ "null", "boolean" ], "description": "Serves the result at a stable unsigned url. Privileged callers only: nothing gates a read of\nit, so a block decided after the fact cannot take it back." }, "hideMetadata": { "type": [ "null", "boolean" ], "description": "Removes the source's container tags and chapters; the video and audio streams are untouched." } }, "additionalProperties": false }, "TranscodeOutput": { "required": [ "available", "id", "jobId" ], "type": "object", "properties": { "id": { "type": "string", "description": "Gets the id of the blob that contains the media." }, "available": { "type": "boolean" }, "url": { "type": [ "null", "string" ], "format": "uri" }, "urlExpiresAt": { "type": [ "null", "string" ], "format": "date-time" }, "jobId": { "type": "string" }, "tier": { "type": [ "null", "string" ], "description": "Deprecated: use Civitai.Orchestration.Grains.Workflows.Steps.Transcode.TranscodeOutput.PublicUrl to tell a public blob. Storage tier holding the blob; null when none\nwas declared." }, "publicUrl": { "type": [ "null", "string" ], "description": "The durable, unsigned url of a blob requested public, which a CDN can cache. May 404 until the workflow that\nproduces it completes; Civitai.Orchestration.Grains.Workflows.Steps.Transcode.TranscodeOutput.Url waits instead.", "format": "uri" } }, "additionalProperties": false }, "TranscodeStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TranscodeInput" }, "output": { "$ref": "#/components/schemas/TranscodeOutput" }, "$type": { "enum": [ "transcode" ], "type": "string" } }, "additionalProperties": false } ], "description": "Transcoding" }, "TranscodeStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TranscodeInput" }, "$type": { "enum": [ "transcode" ], "type": "string" } }, "additionalProperties": false } ], "description": "Transcoding" }, "TranscriptionInput": { "required": [ "mediaUrl" ], "type": "object", "properties": { "mediaUrl": { "type": "string", "format": "uri" }, "language": { "type": [ "null", "string" ], "description": "Optional language hint (e.g., \"en\", \"zh\") to guide transcription." }, "context": { "type": [ "null", "string" ], "description": "Optional context prompt to improve transcription accuracy." }, "returnTimeStamps": { "type": "boolean", "default": true } }, "additionalProperties": false }, "TranscriptionOutput": { "required": [ "elapsedSeconds", "language", "text", "timeStamps" ], "type": "object", "properties": { "text": { "type": "string" }, "language": { "type": "string", "description": "The detected language of the audio." }, "timeStamps": { "type": "array", "items": { "$ref": "#/components/schemas/TranscriptionTimeStamp" }, "description": "Word-level timestamps (if requested)." }, "elapsedSeconds": { "type": "number", "format": "double" } }, "additionalProperties": false }, "TranscriptionStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TranscriptionInput" }, "output": { "$ref": "#/components/schemas/TranscriptionOutput" }, "$type": { "enum": [ "transcription" ], "type": "string" } }, "additionalProperties": false } ], "description": "Transcription" }, "TranscriptionStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/TranscriptionInput" }, "$type": { "enum": [ "transcription" ], "type": "string" } }, "additionalProperties": false } ], "description": "Transcription" }, "TranscriptionTimeStamp": { "required": [ "endTime", "startTime", "text" ], "type": "object", "properties": { "text": { "type": "string" }, "startTime": { "type": "number", "format": "double" }, "endTime": { "type": "number", "format": "double" } }, "additionalProperties": false }, "Trellis2ComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyPolyGenInput" }, { "required": [ "engine", "model", "operation" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "imageTo3D" }, "modelVersion": { "enum": [ "pixal3D", "trellis2" ], "type": "string", "default": "pixal3D" }, "modelAir": { "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" ] }, "structureSteps": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32", "default": 12 }, "shapeSteps": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32", "default": 20 }, "upsampleSteps": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32", "default": 12 }, "textureSteps": { "maximum": 100, "minimum": 1, "type": "integer", "format": "int32", "default": 12 }, "structureCfg": { "maximum": 30, "minimum": 0, "type": "number", "format": "double", "default": 7.5 }, "shapeCfg": { "maximum": 30, "minimum": 0, "type": "number", "format": "double", "default": 7.5 }, "textureCfg": { "maximum": 30, "minimum": 0, "type": "number", "format": "double", "default": 1 }, "targetResolution": { "maximum": 2048, "minimum": 1024, "enum": [ 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920, 2048 ], "type": "integer", "format": "int32", "default": 1536 }, "shouldRemesh": { "type": "boolean", "default": true }, "remeshResolution": { "maximum": 2048, "minimum": 32, "type": "integer", "format": "int32", "default": 768 }, "targetFaceCount": { "maximum": 50000000, "minimum": 1000, "type": "integer", "format": "int32", "default": 700000 }, "textureResolution": { "maximum": 8192, "minimum": 64, "type": "integer", "format": "int32", "default": 2048 }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "model": { "enum": [ "trellis2" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "imageTo3D": "#/components/schemas/Trellis2ImageTo3DComfyPolyGenInput", "shapeGen": "#/components/schemas/Trellis2ShapeGenComfyPolyGenInput", "texGen": "#/components/schemas/Trellis2TexGenComfyPolyGenInput" } } } ] }, "Trellis2ImageTo3DComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/Trellis2ComfyPolyGenInput" }, { "required": [ "engine", "imageUrl", "model", "operation" ], "type": "object", "properties": { "imageUrl": { "type": "string", "format": "uri" }, "shouldTexture": { "type": "boolean", "default": true }, "enablePbr": { "type": "boolean", "default": true }, "operation": { "enum": [ "imageTo3D" ], "type": "string" }, "model": { "enum": [ "trellis2" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "Trellis2ShapeGenComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/Trellis2ComfyPolyGenInput" }, { "required": [ "engine", "imageUrl", "model", "operation" ], "type": "object", "properties": { "imageUrl": { "type": "string", "format": "uri" }, "operation": { "enum": [ "shapeGen" ], "type": "string" }, "model": { "enum": [ "trellis2" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "Trellis2TexGenComfyPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/Trellis2ComfyPolyGenInput" }, { "required": [ "engine", "imageUrl", "model", "operation" ], "type": "object", "properties": { "imageUrl": { "type": "string", "format": "uri" }, "enablePbr": { "type": "boolean", "default": true }, "operation": { "enum": [ "texGen" ], "type": "string" }, "model": { "enum": [ "trellis2" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "TripoFalPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/FalPolyGenInput" }, { "required": [ "engine", "imageUrl", "model" ], "type": "object", "properties": { "imageUrl": { "minLength": 1, "type": "string" }, "texture": { "enum": [ "no", "standard", "HD" ], "type": "string", "default": "standard" }, "pbr": { "type": "boolean", "default": false }, "faceLimit": { "maximum": 500000, "minimum": 1000, "type": [ "null", "integer" ], "format": "int32" }, "autoSize": { "type": "boolean", "default": false }, "quad": { "type": "boolean", "description": "Quad topology. Forces the mesh output to FBX instead of GLB.", "default": false }, "textureAlignment": { "enum": [ "original_image", "geometry" ], "type": "string", "default": "original_image" }, "orientation": { "enum": [ "default", "align_image" ], "type": "string", "default": "default" }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "textureSeed": { "type": [ "null", "integer" ], "format": "int32" }, "model": { "enum": [ "tripo" ], "type": "string" }, "engine": { "enum": [ "fal" ], "type": "string" } }, "additionalProperties": false } ] }, "TryOnUInput": { "required": [ "cropSubject", "garmentUrl", "maskSubject", "seed", "subjectUrl" ], "type": "object", "properties": { "subjectUrl": { "type": "string", "format": "uri" }, "garmentUrl": { "type": "string", "format": "uri" }, "subjectMaskUrl": { "type": [ "null", "string" ], "format": "uri" }, "subjectMaskBlobKey": { "type": [ "null", "string" ] }, "garmentDescription": { "type": [ "null", "string" ] }, "maskSubject": { "type": "boolean" }, "cropSubject": { "type": "boolean" }, "steps": { "maximum": 150, "minimum": 1, "type": "integer", "format": "int32", "default": 30 }, "seed": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "TryOnUOutput": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/Blob" } }, "additionalProperties": false }, "UnavailableResourceAvailability": { "allOf": [ { "$ref": "#/components/schemas/ResourceAvailability" }, { "required": [ "status" ], "type": "object", "properties": { "status": { "enum": [ "unavailable" ], "type": "string" } }, "additionalProperties": false } ], "description": "Eligible, but nothing is pulling it. A resource waiting in a download lane reports\nCivitai.Orchestration.Grains.Resources.QueuedResourceAvailability instead." }, "UniRigPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/PolyGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "rig" }, "seed": { "type": [ "null", "integer" ], "format": "int64" }, "engine": { "enum": [ "unirig" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "rig": "#/components/schemas/UniRigRigPolyGenInput" } } } ] }, "UniRigRigPolyGenInput": { "allOf": [ { "$ref": "#/components/schemas/UniRigPolyGenInput" }, { "required": [ "engine", "mesh", "operation" ], "type": "object", "properties": { "mesh": { "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" }, "heightMeters": { "maximum": 100, "minimum": 0.01, "type": [ "null", "number" ], "format": "double" }, "skeleton": { "enum": [ "mixamo", "generic" ], "type": "string", "default": "mixamo" }, "operation": { "enum": [ "rig" ], "type": "string" }, "engine": { "enum": [ "unirig" ], "type": "string" } }, "additionalProperties": false } ] }, "UnsupportedResourceAvailability": { "allOf": [ { "$ref": "#/components/schemas/ResourceAvailability" }, { "required": [ "status" ], "type": "object", "properties": { "status": { "enum": [ "unsupported" ], "type": "string" } }, "additionalProperties": false } ] }, "UpdateWorkflowRequest": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/UpdateWorkflowStatus" }, "metadata": { "type": [ "null", "object" ], "additionalProperties": {} }, "tags": { "type": [ "null", "array" ], "items": { "type": "string" } }, "allowMatureContent": { "type": [ "null", "boolean" ], "description": "Set to true to remove the mature content restriction on the workflow." }, "downloadPriority": { "$ref": "#/components/schemas/Priority" } }, "additionalProperties": false }, "UpdateWorkflowStatus": { "enum": [ "canceled" ], "type": "string" }, "UpdateWorkflowStepRequest": { "required": [ "metadata" ], "type": "object", "properties": { "metadata": { "type": "object", "additionalProperties": {} } }, "additionalProperties": false }, "UserMessage": { "allOf": [ { "$ref": "#/components/schemas/ChatCompletionMessage" }, { "required": [ "content", "role" ], "type": "object", "properties": { "content": { "type": "array", "items": { "$ref": "#/components/schemas/ChatCompletionContentPart" }, "description": "A string or an array of content parts; a plain string is accepted as a single text part." }, "name": { "type": [ "null", "string" ] }, "role": { "enum": [ "user" ], "type": "string" } }, "additionalProperties": false } ], "description": "A user message that can contain text and/or images." }, "VTracerImageToSvgInput": { "allOf": [ { "$ref": "#/components/schemas/ComfyImageToSvgInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "hierarchical": { "enum": [ "stacked", "cutout" ], "type": "string", "default": "stacked" }, "mode": { "enum": [ "spline", "polygon", "none" ], "type": "string", "default": "spline" }, "filterSpeckle": { "maximum": 100, "minimum": 0, "type": "integer", "format": "int32", "default": 8 }, "colorPrecision": { "maximum": 10, "minimum": 0, "type": "integer", "format": "int32", "default": 6 }, "layerDifference": { "maximum": 256, "minimum": 0, "type": "integer", "format": "int32", "default": 24 }, "cornerThreshold": { "maximum": 180, "minimum": 0, "type": "integer", "format": "int32", "default": 65 }, "lengthThreshold": { "maximum": 10, "minimum": 3.5, "type": "number", "format": "double", "default": 5 }, "maxIterations": { "maximum": 70, "minimum": 1, "type": "integer", "format": "int32", "default": 10 }, "spliceThreshold": { "maximum": 180, "minimum": 0, "type": "integer", "format": "int32", "default": 50 }, "pathPrecision": { "maximum": 10, "minimum": 0, "type": "integer", "format": "int32", "default": 2 }, "ecosystem": { "enum": [ "vtracer" ], "type": "string" }, "engine": { "enum": [ "comfy" ], "type": "string" } }, "additionalProperties": false } ] }, "ValidationProblemDetails": { "required": [ "errors" ], "type": "object", "properties": { "type": { "type": [ "null", "string" ] }, "title": { "type": [ "null", "string" ] }, "status": { "type": [ "null", "integer" ], "format": "int32" }, "detail": { "type": [ "null", "string" ] }, "instance": { "type": [ "null", "string" ] }, "errors": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } } }, "additionalProperties": {} }, "ValueTupleOfDoubleAndDouble": { "type": "object", "additionalProperties": false }, "ValueTupleOfStringAndInt32": { "type": "object", "additionalProperties": false }, "Veo3AspectRatio": { "enum": [ "16:9", "9:16", "1:1" ], "type": "string" }, "Veo3GenerationMode": { "enum": [ "standard", "fast", "lite" ], "type": "string" }, "Veo3Version": { "enum": [ "3.0", "3.1" ], "type": "string", "description": "Google retired the Veo 3.0 endpoints on 2026-08-28; requests with `3.0` are rejected with 400. Use `3.1`." }, "Veo3VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "generateAudio" ], "type": "object", "properties": { "negativePrompt": { "type": [ "null", "string" ] }, "enablePromptEnhancer": { "type": "boolean", "default": true }, "aspectRatio": { "$ref": "#/components/schemas/Veo3AspectRatio" }, "duration": { "enum": [ 4, 6, 8 ], "type": "integer", "format": "int32", "default": 8 }, "generateAudio": { "type": "boolean" }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "fastMode": { "type": "boolean", "default": false }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "version": { "$ref": "#/components/schemas/Veo3Version" }, "mode": { "$ref": "#/components/schemas/Veo3GenerationMode" }, "engine": { "enum": [ "veo3" ], "type": "string" } }, "additionalProperties": false } ] }, "VideoBackgroundRemovalInput": { "required": [ "video" ], "type": "object", "properties": { "video": { "type": "string", "format": "uri" }, "foregroundPoints": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/VideoBackgroundRemovalPoint" } }, "backgroundPoints": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/VideoBackgroundRemovalPoint" } }, "maskExpansion": { "maximum": 32, "minimum": -32, "type": "integer", "format": "int32", "default": 0 }, "maskFeather": { "maximum": 32, "minimum": 0, "type": "number", "format": "double", "default": 2 } }, "additionalProperties": false }, "VideoBackgroundRemovalOutput": { "type": "object", "properties": { "video": { "$ref": "#/components/schemas/VideoBlob" } }, "additionalProperties": false }, "VideoBackgroundRemovalPoint": { "required": [ "x", "y" ], "type": "object", "properties": { "x": { "maximum": 1, "minimum": 0, "type": "number", "format": "double" }, "y": { "maximum": 1, "minimum": 0, "type": "number", "format": "double" } }, "additionalProperties": false }, "VideoBackgroundRemovalStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoBackgroundRemovalInput" }, "output": { "$ref": "#/components/schemas/VideoBackgroundRemovalOutput" }, "$type": { "enum": [ "videoBackgroundRemoval" ], "type": "string" } }, "additionalProperties": false } ], "description": "Tracks a prompted foreground object across a video and returns a lossless animated WebP with transparency." }, "VideoBackgroundRemovalStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoBackgroundRemovalInput" }, "$type": { "enum": [ "videoBackgroundRemoval" ], "type": "string" } }, "additionalProperties": false } ], "description": "Tracks a prompted foreground object across a video and returns a lossless animated WebP with transparency." }, "VideoBlob": { "allOf": [ { "$ref": "#/components/schemas/Blob" }, { "required": [ "type" ], "type": "object", "properties": { "width": { "type": [ "null", "integer" ], "format": "int32" }, "height": { "type": [ "null", "integer" ], "format": "int32" }, "duration": { "type": [ "null", "number" ], "description": "In seconds", "format": "float" }, "type": { "enum": [ "video" ], "type": "string" } }, "additionalProperties": false } ] }, "VideoComposeMediaOutput": { "allOf": [ { "$ref": "#/components/schemas/ComposeMediaOutput" }, { "required": [ "type", "videoBlob" ], "type": "object", "properties": { "videoBlob": { "$ref": "#/components/schemas/VideoBlob" }, "type": { "enum": [ "video" ], "type": "string" } }, "additionalProperties": false } ], "description": "A video composition produced when any element is video, or video output was requested." }, "VideoEnhancementInput": { "required": [ "sourceUrl" ], "type": "object", "properties": { "sourceUrl": { "type": "string", "format": "uri" }, "upscaler": { "$ref": "#/components/schemas/VideoEnhancementInputUpscalerOptions" }, "interpolation": { "$ref": "#/components/schemas/VideoEnhancementInputInterpolationOptions" } }, "additionalProperties": false }, "VideoEnhancementInputInterpolationOptions": { "required": [ "multiplier" ], "type": "object", "properties": { "multiplier": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "VideoEnhancementInputUpscalerOptions": { "required": [ "height", "width" ], "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" ] }, "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "VideoEnhancementOutput": { "type": "object", "properties": { "video": { "$ref": "#/components/schemas/VideoBlob" } }, "additionalProperties": false }, "VideoEnhancementStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoEnhancementInput" }, "output": { "$ref": "#/components/schemas/VideoEnhancementOutput" }, "$type": { "enum": [ "videoEnhancement" ], "type": "string" } }, "additionalProperties": false } ], "description": "Upscale videos and/or interpolate frames" }, "VideoEnhancementStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoEnhancementInput" }, "$type": { "enum": [ "videoEnhancement" ], "type": "string" } }, "additionalProperties": false } ], "description": "Upscale videos and/or interpolate frames" }, "VideoFrameExtractionInput": { "required": [ "videoUrl" ], "type": "object", "properties": { "videoUrl": { "type": "string", "format": "uri" }, "frameRate": { "type": "number", "description": "Frames per second to extract.", "format": "double", "default": 1 }, "uniqueThreshold": { "type": "number", "description": "Similarity (0.0 to 1.0) above which a frame counts as a duplicate and is dropped.", "format": "double", "default": 0.9 }, "maxFrames": { "type": [ "null", "integer" ], "description": "Maximum number of unique frames to extract; null extracts all.", "format": "int32" }, "startTime": { "type": "number", "description": "Seconds into the video to start extracting from.", "format": "double", "default": 0 }, "public": { "type": [ "null", "boolean" ], "description": "Serves the frames at stable unsigned urls. Privileged callers only: nothing gates a read of\none, so a block decided after the fact cannot take it back." } }, "additionalProperties": false }, "VideoFrameExtractionOutput": { "required": [ "frames", "totalFramesExtracted" ], "type": "object", "properties": { "frames": { "type": "array", "items": { "$ref": "#/components/schemas/ImageBlob" } }, "totalFramesExtracted": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "VideoFrameExtractionStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoFrameExtractionInput" }, "output": { "$ref": "#/components/schemas/VideoFrameExtractionOutput" }, "$type": { "enum": [ "videoFrameExtraction" ], "type": "string" } }, "additionalProperties": false } ], "description": "Video Frame Extraction" }, "VideoFrameExtractionStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoFrameExtractionInput" }, "$type": { "enum": [ "videoFrameExtraction" ], "type": "string" } }, "additionalProperties": false } ], "description": "Video Frame Extraction" }, "VideoGenInput": { "required": [ "engine", "prompt" ], "type": "object", "properties": { "engine": { "type": "string" }, "prompt": { "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "engine", "mapping": { "haiper": "#/components/schemas/HaiperVideoGenInput", "mochi": "#/components/schemas/MochiVideoGenInput", "kling": "#/components/schemas/KlingVideoGenInput", "minimax": "#/components/schemas/MiniMaxVideoGenInput", "lightricks": "#/components/schemas/LightricksVideoGenInput", "ltx2": "#/components/schemas/ComfyLtx2VideoGenInput", "ltx2.3": "#/components/schemas/ComfyLtx23VideoGenInput", "ltx2.5": "#/components/schemas/ComfyLtx25VideoGenInput", "hunyuan": "#/components/schemas/HunyuanVdeoGenInput", "wan": "#/components/schemas/WanVideoGenInput", "vidu": "#/components/schemas/ViduVideoGenInput", "vidu-q3": "#/components/schemas/ViduQ3VideoGenInput", "vidu-q4": "#/components/schemas/ViduQ4VideoGenInput", "veo3": "#/components/schemas/Veo3VideoGenInput", "gemini-omni": "#/components/schemas/GeminiOmniVideoGenInput", "sora": "#/components/schemas/SoraVideoGenInput", "kling-v3": "#/components/schemas/KlingV3VideoGenInput", "grok": "#/components/schemas/GrokVideoGenInput", "seedance": "#/components/schemas/SeedanceVideoGenInput", "happyHorse": "#/components/schemas/HappyHorseVideoGenInput", "heygen": "#/components/schemas/HeyGenVideoGenInput", "minimax-h3-max": "#/components/schemas/MiniMaxH3MaxVideoGenInput", "minimax-h3": "#/components/schemas/MiniMaxH3VideoGenInput", "minimax-h3-comfy": "#/components/schemas/ComfyMiniMaxH3VideoGenInput", "flux": "#/components/schemas/Flux3VideoGenInput" } } }, "VideoGenInputLora": { "required": [ "air", "strength" ], "type": "object", "properties": { "air": { "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" }, "strength": { "type": "number", "format": "double" } }, "additionalProperties": false }, "VideoGenOutput": { "type": "object", "properties": { "video": { "$ref": "#/components/schemas/VideoBlob" }, "additionalVideos": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/VideoBlob" }, "description": "Extra videos when Quantity > 1, produced by engines that batch multiple videos in one job (e.g. LTX 2.3);\nCivitai.Orchestration.Grains.Workflows.Steps.VideoGen.VideoGenOutput.Video is always the primary slot. Null/empty for single-output engines." }, "draftCache": { "$ref": "#/components/schemas/Blob" } }, "additionalProperties": false }, "VideoGenStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoGenInput" }, "output": { "$ref": "#/components/schemas/VideoGenOutput" }, "$type": { "enum": [ "videoGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "Video generation" }, "VideoGenStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoGenInput" }, "$type": { "enum": [ "videoGen" ], "type": "string" } }, "additionalProperties": false } ], "description": "Video generation" }, "VideoInterpolationInput": { "required": [ "video" ], "type": "object", "properties": { "video": { "type": "string", "format": "uri" }, "interpolationFactor": { "maximum": 3, "minimum": 2, "type": "integer", "format": "int32", "default": 2 }, "model": { "type": "string", "default": "VFIMamba" } }, "additionalProperties": false }, "VideoInterpolationOutput": { "type": "object", "properties": { "video": { "$ref": "#/components/schemas/VideoBlob" } }, "additionalProperties": false }, "VideoInterpolationStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoInterpolationInput" }, "output": { "$ref": "#/components/schemas/VideoInterpolationOutput" }, "$type": { "enum": [ "videoInterpolation" ], "type": "string" } }, "additionalProperties": false } ], "description": "Interpolate videos using VFI Mamba" }, "VideoInterpolationStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoInterpolationInput" }, "$type": { "enum": [ "videoInterpolation" ], "type": "string" } }, "additionalProperties": false } ], "description": "Interpolate videos using VFI Mamba" }, "VideoMetadataInput": { "required": [ "video" ], "type": "object", "properties": { "video": { "type": "string", "format": "uri" } }, "additionalProperties": false }, "VideoMetadataOutput": { "required": [ "duration", "fps", "height", "width" ], "type": "object", "properties": { "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" }, "fps": { "type": "number", "format": "double" }, "duration": { "type": "string", "format": "date-span" } }, "additionalProperties": false }, "VideoMetadataStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoMetadataInput" }, "output": { "$ref": "#/components/schemas/VideoMetadataOutput" }, "$type": { "enum": [ "videoMetadata" ], "type": "string" } }, "additionalProperties": false } ], "description": "Extract metadata from videos including width, height, FPS, and duration" }, "VideoMetadataStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoMetadataInput" }, "$type": { "enum": [ "videoMetadata" ], "type": "string" } }, "additionalProperties": false } ], "description": "Extract metadata from videos including width, height, FPS, and duration" }, "VideoUpscalerInput": { "required": [ "video" ], "type": "object", "properties": { "video": { "type": "string", "format": "uri" }, "scaleFactor": { "maximum": 4, "minimum": 2, "type": "integer", "format": "int32", "default": 2 } }, "additionalProperties": false }, "VideoUpscalerOutput": { "type": "object", "properties": { "video": { "$ref": "#/components/schemas/VideoBlob" } }, "additionalProperties": false }, "VideoUpscalerStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoUpscalerInput" }, "output": { "$ref": "#/components/schemas/VideoUpscalerOutput" }, "$type": { "enum": [ "videoUpscaler" ], "type": "string" } }, "additionalProperties": false } ], "description": "Upscale videos using FlashVSR" }, "VideoUpscalerStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/VideoUpscalerInput" }, "$type": { "enum": [ "videoUpscaler" ], "type": "string" } }, "additionalProperties": false } ], "description": "Upscale videos using FlashVSR" }, "ViduQ3VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine" ], "type": "object", "properties": { "seed": { "type": [ "null", "integer" ], "format": "int32" }, "duration": { "maximum": 16, "minimum": 1, "type": "integer", "format": "int32", "default": 5 }, "resolution": { "enum": [ "360p", "540p", "720p", "1080p" ], "type": "string", "default": "720p" }, "turbo": { "type": "boolean", "default": false }, "enableAudio": { "type": "boolean", "default": true }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": [ "null", "string" ] }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "engine": { "enum": [ "vidu-q3" ], "type": "string" } }, "additionalProperties": false } ] }, "ViduQ4ImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/ViduQ4VideoGenInput" }, { "required": [ "engine", "image", "operation" ], "type": "object", "properties": { "image": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "operation": { "enum": [ "imageToVideo" ], "type": "string" }, "engine": { "enum": [ "vidu-q4" ], "type": "string" } }, "additionalProperties": false } ], "description": "Animate one starting frame. Use an empty prompt for animation without text instructions. Audio is generated by the provider." }, "ViduQ4ReferenceToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/ViduQ4VideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "referenceImages": { "maxItems": 12, "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "referenceAudios": { "maxItems": 3, "type": "array", "items": { "type": "string", "format": "uri" }, "description": "Up to three MP3 clips, each 3–12 seconds and at most 50 MB, as HTTP(S) URLs or base64 audio/mpeg data URIs." }, "aspectRatio": { "enum": [ "16:9", "9:16", "4:3", "3:4", "1:1" ], "type": "string", "default": "16:9" }, "enableAudio": { "type": "boolean", "default": false }, "operation": { "enum": [ "referenceToVideo" ], "type": "string" }, "engine": { "enum": [ "vidu-q4" ], "type": "string" } }, "additionalProperties": false } ], "description": "Refer to images as [@reference_image_1] and voices as [reference_audio_1], using their array positions." }, "ViduQ4VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine", "operation" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "imageToVideo" }, "duration": { "maximum": 16, "minimum": 3, "type": "integer", "format": "int32", "default": 5 }, "resolution": { "enum": [ "540p", "720p", "1080p", "2K", "4K" ], "type": "string", "default": "720p" }, "seed": { "maximum": 2147483647, "minimum": 0, "type": [ "null", "integer" ], "format": "int32" }, "engine": { "enum": [ "vidu-q4" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "imageToVideo": "#/components/schemas/ViduQ4ImageToVideoInput", "referenceToVideo": "#/components/schemas/ViduQ4ReferenceToVideoInput" } } } ] }, "ViduVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "engine" ], "type": "object", "properties": { "enablePromptEnhancer": { "type": "boolean", "default": true }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "sourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "style": { "$ref": "#/components/schemas/ViduVideoGenStyle" }, "duration": { "enum": [ 4, 8 ], "type": "integer", "format": "int32", "default": 4 }, "endSourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "model": { "$ref": "#/components/schemas/ViduVideoGenModel" }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1" ], "type": [ "null", "string" ] }, "movementAmplitude": { "enum": [ "auto", "small", "medium", "large" ], "type": [ "null", "string" ] }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "enableBackgroundMusic": { "type": "boolean", "default": false }, "engine": { "enum": [ "vidu" ], "type": "string" } }, "additionalProperties": false } ] }, "ViduVideoGenModel": { "enum": [ "default", "q1", "q3", "q4" ], "type": "string" }, "ViduVideoGenStyle": { "enum": [ "general", "anime" ], "type": "string" }, "VllmOmniTextToSpeechInput": { "allOf": [ { "$ref": "#/components/schemas/TextToSpeechInput" }, { "required": [ "ecosystem", "engine" ], "type": "object", "properties": { "ecosystem": { "type": "string" }, "engine": { "enum": [ "vllm-omni" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "ecosystem", "mapping": { "qwen3": "#/components/schemas/Qwen3TextToSpeechInput", "omnivoice": "#/components/schemas/OmniVoiceTextToSpeechInput" } } } ] }, "VolumeTransformer": { "allOf": [ { "$ref": "#/components/schemas/MediaTransformer" }, { "required": [ "db", "type" ], "type": "object", "properties": { "db": { "type": "number", "format": "float" }, "type": { "enum": [ "volume" ], "type": "string" } }, "additionalProperties": false } ], "description": "Adjusts the element's audio gain in decibels. `0` is unity gain; negative values\nattenuate. No-op for elements with no audio stream." }, "WDTaggingInput": { "required": [ "mediaUrl" ], "type": "object", "properties": { "model": { "type": [ "null", "string" ], "description": "The model to use for tagging. Tagging always runs with \"cl-tagger.v2\"; any other model, including the\ndefault \"wd14-vit.v1\", is deprecated and produces a warning." }, "mediaUrl": { "type": "string", "format": "uri" }, "threshold": { "type": [ "null", "number" ], "description": "Optional threshold for tag confidence filtering. Tags below this threshold will be excluded.\nThe tagger never returns tags scoring below its own minimum, so lower values have no effect.", "format": "double" }, "prompt": { "type": [ "null", "string" ], "description": "Ignored; kept for compatibility." } }, "additionalProperties": false }, "WDTaggingOutput": { "required": [ "tags" ], "type": "object", "properties": { "tags": { "type": "object", "additionalProperties": { "type": "number", "format": "double" }, "description": "The detected tags with their confidence scores." }, "rating": { "type": [ "null", "object" ], "additionalProperties": { "type": "number", "format": "double" }, "description": "The content rating scores (general, sensitive, questionable, explicit)." } }, "additionalProperties": false }, "WDTaggingStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/WDTaggingInput" }, "output": { "$ref": "#/components/schemas/WDTaggingOutput" }, "$type": { "enum": [ "wdTagging" ], "type": "string" } }, "additionalProperties": false } ], "description": "WDTagging" }, "WDTaggingStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/WDTaggingInput" }, "$type": { "enum": [ "wdTagging" ], "type": "string" } }, "additionalProperties": false } ], "description": "WDTagging" }, "Wan21CivitaiVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan21VideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "width": { "type": "integer", "format": "int32", "default": 480 }, "height": { "type": "integer", "format": "int32", "default": 480 }, "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" ] }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "provider": { "enum": [ "civitai" ], "type": "string" }, "version": { "enum": [ "v2.1" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan21FalVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan21VideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "1:1", "16:9", "9:16" ], "type": "string", "default": "16:9" }, "enablePromptExpansion": { "type": "boolean", "default": false }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.1" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan21VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanVideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "civitai" }, "version": { "enum": [ "v2.1" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "civitai": "#/components/schemas/Wan21CivitaiVideoGenInput", "fal": "#/components/schemas/Wan21FalVideoGenInput" } } } ] }, "Wan225bFalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan225bImageGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2-5b" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan225bFalImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan225bFalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2-5b" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan225bFalTextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan225bFalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "enum": [ "text-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2-5b" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan225bFalVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan225bVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "resolution": { "enum": [ "480p", "580p", "720p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "1:1", "16:9", "9:16", "auto" ], "type": "string", "default": "16:9" }, "enablePromptExpansion": { "type": "boolean", "default": false }, "useDistill": { "type": "boolean", "default": false }, "useFastWan": { "type": "boolean", "default": false }, "interpolatorModel": { "enum": [ "none", "film", "rife" ], "type": "string", "default": "film" }, "negativePrompt": { "type": [ "null", "string" ] }, "enableSafetyChecker": { "type": "boolean", "default": false }, "numInferenceSteps": { "maximum": 50, "minimum": 2, "type": "integer", "format": "int32", "default": 20 }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2-5b" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/Wan225bFalTextToVideoInput", "image-to-video": "#/components/schemas/Wan225bFalImageToVideoInput" } } } ] }, "Wan225bImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanImageGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "steps": { "maximum": 50, "minimum": 2, "type": "integer", "format": "int32", "default": 40 }, "shift": { "maximum": 10, "minimum": 1, "type": "number", "format": "double", "default": 2 }, "version": { "enum": [ "v2.2-5b" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan225bFalImageGenInput" } } } ] }, "Wan225bVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanVideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "version": { "enum": [ "v2.2-5b" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan225bFalVideoGenInput" } } } ] }, "Wan22ComfyVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan22VideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "width": { "maximum": 2048, "minimum": 64, "type": "integer", "format": "int32", "default": 1280 }, "height": { "maximum": 2048, "minimum": 64, "type": "integer", "format": "int32", "default": 720 }, "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" ] }, "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "negativePrompt": { "type": [ "null", "string" ] }, "sampler": { "enum": [ "euler", "euler_ancestral", "heun", "heunpp2", "dpm_2", "dpm_2_ancestral", "lms", "dpm_fast", "dpm_adaptive", "dpmpp_2s_ancestral", "dpmpp_sde", "dpmpp_2m", "dpmpp_2m_sde", "dpmpp_3m_sde", "ddpm", "lcm", "uni_pc", "uni_pc_bh2" ], "type": "string", "default": "euler" }, "scheduler": { "enum": [ "normal", "karras", "exponential", "sgm_uniform", "simple", "ddim_uniform", "beta" ], "type": "string", "default": "simple" }, "shift": { "maximum": 20, "minimum": 1, "type": "number", "format": "double", "default": 8 }, "provider": { "enum": [ "comfy" ], "type": "string" }, "version": { "enum": [ "v2.2" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan22FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan22ImageGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "acceleration": { "enum": [ "none", "fast", "faster" ], "type": "string", "default": "none" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan22FalImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan22FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan22FalTextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan22FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "enum": [ "text-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan22FalVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan22VideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "resolution": { "enum": [ "480p", "720p" ], "type": "string", "default": "720p" }, "aspectRatio": { "enum": [ "1:1", "16:9", "9:16", "4:3", "3:4", "4:5", "5:4" ], "type": "string", "default": "16:9" }, "enablePromptExpansion": { "type": "boolean", "default": false }, "shift": { "maximum": 10, "minimum": 1, "type": "number", "format": "double", "default": 5 }, "interpolatorModel": { "enum": [ "film", "rife" ], "type": "string", "default": "film" }, "useTurbo": { "type": "boolean", "default": false }, "negativePrompt": { "type": [ "null", "string" ] }, "enableSafetyChecker": { "type": "boolean", "default": false }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.2" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/Wan22FalTextToVideoInput", "image-to-video": "#/components/schemas/Wan22FalImageToVideoInput" } } } ] }, "Wan22ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanImageGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "steps": { "maximum": 40, "minimum": 2, "type": "integer", "format": "int32", "default": 27 }, "version": { "enum": [ "v2.2" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan22FalImageGenInput" } } } ] }, "Wan22VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanVideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "version": { "enum": [ "v2.2" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan22FalVideoGenInput", "comfy": "#/components/schemas/Wan22ComfyVideoGenInput" } } } ] }, "Wan25FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan25ImageGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-image" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-image": "#/components/schemas/Wan25FalTextToImageInput", "image-to-image": "#/components/schemas/Wan25FalImageToImageInput" } } } ] }, "Wan25FalImageToImageInput": { "allOf": [ { "$ref": "#/components/schemas/Wan25FalImageGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "image-to-image" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan25FalImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan25FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan25FalTextToImageInput": { "allOf": [ { "$ref": "#/components/schemas/Wan25FalImageGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "enum": [ "text-to-image" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan25FalTextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan25FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "enum": [ "text-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan25FalVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan25VideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "resolution": { "enum": [ "480p", "720p", "1080p" ], "type": "string", "default": "1080p" }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1" ], "type": "string", "default": "16:9" }, "enablePromptExpansion": { "type": "boolean", "default": true }, "negativePrompt": { "type": [ "null", "string" ] }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/Wan25FalTextToVideoInput", "image-to-video": "#/components/schemas/Wan25FalImageToVideoInput" } } } ] }, "Wan25ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanImageGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan25FalImageGenInput" } } } ] }, "Wan25VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanVideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "version": { "enum": [ "v2.5" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan25FalVideoGenInput" } } } ] }, "Wan26FalImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan26FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" } }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.6" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan26FalReferenceToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan26FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "referenceVideoUrls": { "type": "array", "items": { "type": "string" }, "description": "Reference videos for subject consistency (1-3 videos with minimum 16 FPS)\nUse @Video1, @Video2, @Video3 in the prompt to reference these subjects" }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": "string", "default": "16:9" }, "duration": { "maximum": 10, "minimum": 5, "type": "integer", "description": "Duration for reference-to-video is limited to 5 or 10 seconds", "format": "int32", "default": 5 }, "operation": { "enum": [ "reference-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.6" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan26FalTextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan26FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "text-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.6" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan26FalVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan26VideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "1080p" }, "negativePrompt": { "type": [ "null", "string" ] }, "enablePromptExpansion": { "type": "boolean", "default": true }, "multiShots": { "type": "boolean", "default": false }, "enableSafetyChecker": { "type": "boolean", "default": false }, "audioUrl": { "type": [ "null", "string" ], "description": "URL of audio file for background music (3-30 seconds, up to 15 MB)\nSupported for text-to-video and image-to-video only" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.6" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/Wan26FalTextToVideoInput", "image-to-video": "#/components/schemas/Wan26FalImageToVideoInput", "reference-to-video": "#/components/schemas/Wan26FalReferenceToVideoInput" } } } ] }, "Wan26VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanVideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "version": { "enum": [ "v2.6" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan26FalVideoGenInput" } } } ] }, "Wan27FalEditVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version", "videoUrl" ], "type": "object", "properties": { "videoUrl": { "minLength": 1, "type": "string", "description": "URL of the input video to edit (MP4/MOV, 2-10s, max 100 MB)" }, "referenceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": [ "null", "string" ], "description": "Aspect ratio of the generated video. If not provided, uses the input video's aspect ratio." }, "audioSetting": { "enum": [ "auto", "origin" ], "type": "string", "description": "Audio handling: \"auto\" or \"origin\" (keep original audio)", "default": "auto" }, "operation": { "enum": [ "edit-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan27FalImageEditInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27FalImageGenInput" }, { "required": [ "engine", "images", "operation", "provider", "version" ], "type": "object", "properties": { "images": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "Reference images for editing (1-4 images required)" }, "operation": { "enum": [ "editImage" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan27FalImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27ImageGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "createImage" }, "usePro": { "type": "boolean", "default": false }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/Wan27FalTextToImageInput", "editImage": "#/components/schemas/Wan27FalImageEditInput" } } } ] }, "Wan27FalImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "startImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "endImage": { "type": [ "null", "string" ], "description": "Last frame image for first-and-last-frame-to-video", "format": "source-image" }, "videoUrl": { "type": [ "null", "string" ], "description": "URL of a video clip to continue from (MP4/MOV, 2-10s, max 100 MB)" }, "negativePrompt": { "type": [ "null", "string" ] }, "enablePromptExpansion": { "type": "boolean", "default": true }, "audioUrl": { "type": [ "null", "string" ], "description": "URL of audio file (WAV/MP3, 3-30 seconds, up to 15 MB)" }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan27FalReferenceToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "referenceImages": { "type": "array", "items": { "type": "string", "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "description": "Reference images for character/object appearance (max 20 MB each)" }, "referenceVideoUrls": { "type": "array", "items": { "type": "string" }, "description": "Reference videos for character/object appearance and motion (max 100 MB each)\nUse @Video1, @Video2, @Video3 in the prompt to reference subjects" }, "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": "string", "default": "16:9" }, "multiShots": { "type": "boolean", "default": false }, "negativePrompt": { "type": [ "null", "string" ] }, "operation": { "enum": [ "reference-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan27FalTextToImageInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27FalImageGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "enum": [ "createImage" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan27FalTextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27FalVideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": "string", "default": "16:9" }, "negativePrompt": { "type": [ "null", "string" ] }, "enablePromptExpansion": { "type": "boolean", "default": true }, "audioUrl": { "type": [ "null", "string" ], "description": "URL of audio file (WAV/MP3, 3-30 seconds, up to 15 MB)" }, "operation": { "enum": [ "text-to-video" ], "type": "string" }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan27FalVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/Wan27VideoGenInput" }, { "required": [ "engine", "operation", "provider", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "resolution": { "enum": [ "720p", "1080p" ], "type": "string", "default": "1080p" }, "enableSafetyChecker": { "type": "boolean", "default": false }, "provider": { "enum": [ "fal" ], "type": "string" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/Wan27FalTextToVideoInput", "image-to-video": "#/components/schemas/Wan27FalImageToVideoInput", "reference-to-video": "#/components/schemas/Wan27FalReferenceToVideoInput", "edit-video": "#/components/schemas/Wan27FalEditVideoInput" } } } ] }, "Wan27ImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanImageGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan27FalImageGenInput" } } } ] }, "Wan27VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanVideoGenInput" }, { "required": [ "engine", "provider", "version" ], "type": "object", "properties": { "provider": { "type": [ "null", "string" ], "default": "fal" }, "version": { "enum": [ "v2.7" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "provider", "mapping": { "fal": "#/components/schemas/Wan27FalVideoGenInput" } } } ] }, "Wan30ImageToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan30VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "startImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "endImage": { "type": [ "null", "string" ], "description": "Constrains the last frame, for loops and transitions.", "format": "source-image" }, "operation": { "enum": [ "image-to-video" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan30TextToVideoInput": { "allOf": [ { "$ref": "#/components/schemas/Wan30VideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "aspectRatio": { "enum": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "type": "string", "default": "16:9" }, "operation": { "enum": [ "text-to-video" ], "type": "string" }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false } ] }, "Wan30VideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/WanVideoGenInput" }, { "required": [ "engine", "operation", "version" ], "type": "object", "properties": { "operation": { "type": [ "null", "string" ], "default": "text-to-video" }, "resolution": { "enum": [ "480p", "720p", "1080p" ], "type": "string", "default": "1080p" }, "negativePrompt": { "type": [ "null", "string" ] }, "enablePromptExpansion": { "type": "boolean", "description": "Prompt rewriting. Disabling saves 20-60s of latency but may reduce generation quality —\nfollow Alibaba's prompting guide when turning it off.", "default": true }, "usePrime": { "type": "boolean", "description": "Run on wan3.0-video-prime: same output quality, lower latency, higher price.", "default": false }, "version": { "enum": [ "v3.0" ], "type": "string" }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "text-to-video": "#/components/schemas/Wan30TextToVideoInput", "image-to-video": "#/components/schemas/Wan30ImageToVideoInput" } } } ] }, "WanImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ImageGenInput" }, { "required": [ "engine", "prompt", "version" ], "type": "object", "properties": { "version": { "type": [ "null", "string" ], "default": "v2.2" }, "prompt": { "minLength": 1, "type": "string" }, "negativePrompt": { "type": [ "null", "string" ] }, "guidanceScale": { "maximum": 10, "minimum": 1, "type": "number", "format": "double", "default": 3.5 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "quantity": { "maximum": 10, "minimum": 1, "type": "integer", "format": "int32", "default": 1 }, "imageSize": { "type": "string", "default": "square_hd" }, "enablePromptExpansion": { "type": "boolean", "default": false }, "enableSafetyChecker": { "type": "boolean", "default": false }, "loras": { "type": "array", "items": { "$ref": "#/components/schemas/ImageGenInputLora" } }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "version", "mapping": { "v2.2": "#/components/schemas/Wan22ImageGenInput", "v2.2-5b": "#/components/schemas/Wan225bImageGenInput", "v2.5": "#/components/schemas/Wan25ImageGenInput", "v2.7": "#/components/schemas/Wan27ImageGenInput" } } } ] }, "WanVideoGenInput": { "allOf": [ { "$ref": "#/components/schemas/VideoGenInput" }, { "required": [ "cfgScale", "engine", "version" ], "type": "object", "properties": { "version": { "type": [ "null", "string" ], "default": "v2.1" }, "sourceImage": { "type": [ "null", "string" ], "description": "Either A URL, A DataURL or a Base64 string", "format": "source-image" }, "cfgScale": { "maximum": 100, "minimum": 0, "type": "number", "format": "double", "default": 4 }, "frameRate": { "type": "integer", "format": "int32", "default": 24 }, "duration": { "maximum": 30, "minimum": 1, "type": "integer", "format": "int32", "default": 5 }, "seed": { "type": [ "null", "integer" ], "format": "int32" }, "steps": { "maximum": 50, "minimum": 10, "type": "integer", "format": "int32", "default": 20 }, "loras": { "type": "array", "items": { "$ref": "#/components/schemas/VideoGenInputLora" } }, "engine": { "enum": [ "wan" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "version", "mapping": { "v2.1": "#/components/schemas/Wan21VideoGenInput", "v2.2": "#/components/schemas/Wan22VideoGenInput", "v2.2-5b": "#/components/schemas/Wan225bVideoGenInput", "v2.5": "#/components/schemas/Wan25VideoGenInput", "v2.6": "#/components/schemas/Wan26VideoGenInput", "v2.7": "#/components/schemas/Wan27VideoGenInput", "v3.0": "#/components/schemas/Wan30VideoGenInput" } } } ] }, "WebScrapeInput": { "required": [ "formats", "url" ], "type": "object", "properties": { "url": { "type": "string", "format": "uri" }, "formats": { "type": "array", "items": { "type": "string" }, "description": "The formats to return the page content in (e.g. \"markdown\", \"html\", \"links\")." } }, "additionalProperties": false }, "WebScrapeOutput": { "type": "object", "properties": { "markdown": { "type": [ "null", "string" ], "description": "The page content as markdown, when requested." }, "html": { "type": [ "null", "string" ], "description": "The page content as HTML, when requested." }, "links": { "type": [ "null", "array" ], "items": { "type": "string" }, "description": "The links found on the page, when requested." }, "title": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] }, "statusCode": { "type": [ "null", "integer" ], "format": "int32" } }, "additionalProperties": false }, "WebScrapeStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/WebScrapeInput" }, "output": { "$ref": "#/components/schemas/WebScrapeOutput" }, "$type": { "enum": [ "webScrape" ], "type": "string" } }, "additionalProperties": false } ], "description": "WebScrape" }, "WebScrapeStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/WebScrapeInput" }, "$type": { "enum": [ "webScrape" ], "type": "string" } }, "additionalProperties": false } ], "description": "WebScrape" }, "WebSearchInput": { "required": [ "limit", "query" ], "type": "object", "properties": { "query": { "type": "string" }, "limit": { "type": "integer", "description": "The maximum number of results to return (1-10).", "format": "int32" }, "scrapeFormats": { "type": [ "null", "array" ], "items": { "type": "string" }, "description": "Optional formats to scrape each result page in (e.g. [\"markdown\"]). When omitted,\nonly titles, URLs and descriptions are returned." } }, "additionalProperties": false }, "WebSearchOutput": { "required": [ "results" ], "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/WebSearchResult" }, "description": "The search results, in relevance order." } }, "additionalProperties": false }, "WebSearchResult": { "required": [ "url" ], "type": "object", "properties": { "url": { "type": "string" }, "title": { "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ], "description": "The search engine's snippet/description for the result." }, "markdown": { "type": [ "null", "string" ], "description": "The result page content as markdown. Only present when the step input requested\nscraping via Civitai.Orchestration.Grains.Workflows.Steps.WebSearch.WebSearchInput.ScrapeFormats." } }, "additionalProperties": false }, "WebSearchStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/WebSearchInput" }, "output": { "$ref": "#/components/schemas/WebSearchOutput" }, "$type": { "enum": [ "webSearch" ], "type": "string" } }, "additionalProperties": false } ], "description": "WebSearch" }, "WebSearchStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/WebSearchInput" }, "$type": { "enum": [ "webSearch" ], "type": "string" } }, "additionalProperties": false } ], "description": "WebSearch" }, "WebpOutputFormat": { "allOf": [ { "$ref": "#/components/schemas/ImageOutputFormat" }, { "required": [ "format" ], "type": "object", "properties": { "quality": { "maximum": 100, "minimum": 1, "type": "integer", "description": "Quality setting for WebP compression (1-100). Only applies when Lossless is false.", "format": "int32", "default": 85 }, "lossless": { "type": "boolean", "default": false }, "maxFrames": { "type": [ "null", "integer" ], "description": "Maximum number of frames to include in the output. Set to 1 to extract only the first frame from animated images.\nWhen null, all frames are preserved.", "format": "int32" }, "format": { "enum": [ "webp" ], "type": "string" } }, "additionalProperties": false } ] }, "Workflow": { "required": [ "arguments", "callbacks", "cost", "createdAt", "currencies", "forceRefunded", "metadata", "status", "steps", "tags", "tier", "tips", "upgradeMode" ], "type": "object", "properties": { "id": { "type": [ "null", "string" ] }, "createdAt": { "type": "string", "format": "date-time" }, "transactions": { "$ref": "#/components/schemas/TransactionSummary" }, "metadata": { "type": "object", "additionalProperties": {} }, "status": { "$ref": "#/components/schemas/WorkflowStatus" }, "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "completedAt": { "type": [ "null", "string" ], "format": "date-time" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "Indexed for searching; at most 10 per workflow." }, "arguments": { "type": "object", "additionalProperties": {} }, "steps": { "type": "array", "items": { "$ref": "#/components/schemas/WorkflowStep" }, "readOnly": true }, "callbacks": { "type": "array", "items": { "$ref": "#/components/schemas/WorkflowCallback" } }, "tips": { "$ref": "#/components/schemas/WorkflowTips" }, "cost": { "$ref": "#/components/schemas/WorkflowCost" }, "nsfwLevel": { "$ref": "#/components/schemas/NSFWLevel" }, "experimental": { "type": [ "null", "boolean" ], "description": "Opts the workflow in to new features or behaviours that are not yet stable." }, "allowMatureContent": { "type": [ "null", "boolean" ] }, "upgradeMode": { "$ref": "#/components/schemas/WorkflowUpgradeMode" }, "currencies": { "type": "array", "items": { "$ref": "#/components/schemas/BuzzClientAccount" } }, "forceRefunded": { "type": "boolean", "description": "Whether this workflow has been force-refunded.\nPrevents re-charging on grain recovery." }, "ephemeral": { "type": [ "null", "boolean" ], "description": "Not persisted to telemetry/MongoDB; in-flight state lives only in grain state and nothing remains once terminal." }, "externalId": { "type": [ "null", "string" ], "description": "Client-supplied idempotency key, stored as `\"{userId}-{clientValue}\"` so the unique index is single-field yet per-user.\nSee Civitai.Orchestration.Grains.Workflows.WorkflowTemplate.ExternalId." }, "lostBlobsRefund": { "type": [ "null", "integer" ], "description": "Net buzz refunded for deliverable blobs lost in the 2026-06-12 storage incident. Null = not yet checked, 0 = intact;\na value > 0 also prevents re-charging on recovery.", "format": "int32" }, "deletedAt": { "type": [ "null", "string" ], "description": "Soft delete: the telemetry document is kept until its TTL for operators, but consumer reads treat the workflow as gone.", "format": "date-time" }, "downloadPriority": { "$ref": "#/components/schemas/Priority" }, "tier": { "$ref": "#/components/schemas/WorkflowTier" } }, "additionalProperties": false }, "WorkflowCallback": { "required": [ "type", "url" ], "type": "object", "properties": { "url": { "type": "string", "format": "uri" }, "type": { "type": "array", "items": { "enum": [ "workflow:*", "workflow:unassigned", "workflow:preparing", "workflow:scheduled", "workflow:processing", "workflow:succeeded", "workflow:failed", "workflow:expired", "workflow:canceled", "step:*", "step:unassigned", "step:preparing", "step:scheduled", "step:processing", "step:succeeded", "step:failed", "step:expired", "step:canceled", "job:*", "job:unassigned", "job:preparing", "job:scheduled", "job:processing", "job:succeeded", "job:failed", "job:expired", "job:canceled" ], "type": "string", "example": "workflow:succeeded" } }, "detailed": { "type": [ "null", "boolean" ], "description": "Whether to include detailed output (step/workflow results) in the callback payload." } }, "additionalProperties": false }, "WorkflowCost": { "required": [ "base", "tips", "total" ], "type": "object", "properties": { "base": { "type": "integer", "description": "The base cost of this request, excluding any tips", "format": "int32" }, "factors": { "type": [ "null", "object" ], "additionalProperties": { "type": "number", "format": "double" } }, "fixed": { "type": [ "null", "object" ], "additionalProperties": { "type": "integer", "format": "int32" }, "description": "A fixed set of cost additions for this request" }, "tips": { "$ref": "#/components/schemas/WorkflowCostTips" }, "fees": { "type": [ "null", "object" ], "additionalProperties": { "type": "number", "format": "double" }, "description": "Per-resource licensing fees keyed by resource AIR; the user is charged the sum and each entry is settled to its resource's recipient." }, "variable": { "type": [ "null", "boolean" ], "description": "When true the price is a cap that may settle lower: a post-billed step is charged at its maximum up front and\nthe difference refunded once the provider reports actual work." }, "total": { "type": "integer", "description": "The total cost of this request, including tips", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "WorkflowCostTips": { "required": [ "civitai", "creators" ], "type": "object", "properties": { "civitai": { "type": "integer", "format": "int32" }, "creators": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "WorkflowEvent": { "required": [ "$type", "status", "timestamp", "workflowId" ], "type": "object", "properties": { "workflowId": { "type": "string" }, "status": { "$ref": "#/components/schemas/WorkflowStatus" }, "timestamp": { "type": "string", "format": "date-time" }, "$type": { "type": "string", "readOnly": true }, "details": { "$ref": "#/components/schemas/WorkflowEventDetails" } }, "additionalProperties": false }, "WorkflowEventDetails": { "required": [ "createdAt", "steps" ], "type": "object", "properties": { "metadata": { "type": [ "null", "object" ], "additionalProperties": { "type": "null" } }, "arguments": { "type": [ "null", "object" ], "additionalProperties": { "type": "null" } }, "createdAt": { "type": "string", "format": "date-time" }, "completedAt": { "type": [ "null", "string" ], "format": "date-time" }, "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "steps": { "type": "array", "items": { "$ref": "#/components/schemas/WorkflowEventStepDetails" } } }, "additionalProperties": false, "description": "Detailed information about a workflow included in webhook callbacks when detailed mode is enabled." }, "WorkflowEventStepDetails": { "required": [ "name", "status" ], "type": "object", "properties": { "name": { "type": "string" }, "status": { "$ref": "#/components/schemas/WorkflowStatus" }, "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "completedAt": { "type": [ "null", "string" ], "format": "date-time" }, "metadata": { "type": [ "null", "object" ], "additionalProperties": { "type": "null" } }, "input": { "type": "null" }, "output": { "type": "null" }, "cost": { "type": [ "null", "number" ], "format": "double" } }, "additionalProperties": false }, "WorkflowStatus": { "enum": [ "unassigned", "preparing", "scheduled", "processing", "succeeded", "failed", "expired", "canceled" ], "type": "string" }, "WorkflowStep": { "required": [ "$type", "metadata", "name", "priority", "status" ], "type": "object", "properties": { "$type": { "type": "string" }, "name": { "type": "string", "description": "The name of the workflow step. Used to allow steps to refer to one another." }, "priority": { "$ref": "#/components/schemas/Priority" }, "timeout": { "type": [ "null", "string" ], "format": "date-span" }, "retries": { "type": [ "null", "integer" ], "format": "int32" }, "status": { "$ref": "#/components/schemas/WorkflowStatus" }, "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "completedAt": { "type": [ "null", "string" ], "format": "date-time" }, "metadata": { "type": "object", "additionalProperties": {} }, "estimatedProgressRate": { "type": [ "null", "number" ], "description": "Estimated progress of this step, or null when there is no estimate (including once the step reaches a final status).", "format": "double" }, "preparation": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/WorkflowStepPreparationResource" }, "description": "Every resource download this step is waiting on, the one holding it back first. Only set while\nthe step is preparing." }, "queuePosition": { "$ref": "#/components/schemas/WorkflowStepQueuePosition" }, "warnings": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/WorkflowStepWarning" }, "description": "Non-fatal warnings about this step, such as a requested model that is scheduled for retirement.\nOmitted when there are none." } }, "additionalProperties": false, "discriminator": { "propertyName": "$type", "mapping": { "aceStepAudio": "#/components/schemas/AceStepAudioStep", "ageClassification": "#/components/schemas/AgeClassificationStep", "audioCaptioning": "#/components/schemas/AudioCaptioningStep", "blobArchive": "#/components/schemas/BlobArchiveStep", "chatCompletion": "#/components/schemas/ChatCompletionStep", "comfy": "#/components/schemas/ComfyStep", "comfyNodepackSnapshot": "#/components/schemas/ComfyNodepackSnapshotStep", "composeMedia": "#/components/schemas/ComposeMediaStep", "convertImage": "#/components/schemas/ConvertImageStep", "customComfy": "#/components/schemas/CustomComfyStep", "echo": "#/components/schemas/EchoStep", "imageBackgroundRemoval": "#/components/schemas/ImageBackgroundRemovalStep", "imageGen": "#/components/schemas/ImageGenStep", "imageResourceTraining": "#/components/schemas/ImageResourceTrainingStep", "imageScanning": "#/components/schemas/ImageScanningStep", "imageToSvg": "#/components/schemas/ImageToSvgStep", "imageUpload": "#/components/schemas/ImageUploadStep", "imageUpscaler": "#/components/schemas/ImageUpscalerStep", "liveTextToSpeech": "#/components/schemas/LiveTextToSpeechStep", "liveTranscription": "#/components/schemas/LiveTranscriptionStep", "mediaCaptioning": "#/components/schemas/MediaCaptioningStep", "mediaHash": "#/components/schemas/MediaHashStep", "mediaRating": "#/components/schemas/MediaRatingStep", "merge": "#/components/schemas/MergeStep", "miniMaxMusic3": "#/components/schemas/MiniMaxMusic3Step", "model3DPreview": "#/components/schemas/Model3DPreviewStep", "modelClamScan": "#/components/schemas/ModelClamScanStep", "modelHash": "#/components/schemas/ModelHashStep", "modelParseMetadata": "#/components/schemas/ModelParseMetadataStep", "modelPickleScan": "#/components/schemas/ModelPickleScanStep", "polyGen": "#/components/schemas/PolyGenStep", "preprocessImage": "#/components/schemas/PreprocessImageStep", "preprocessVideo": "#/components/schemas/PreprocessVideoStep", "promptEnhancement": "#/components/schemas/PromptEnhancementStep", "promptModeration": "#/components/schemas/PromptModerationStep", "qwenImageBench": "#/components/schemas/QwenImageBenchStep", "shieldstralModeration": "#/components/schemas/ShieldstralModerationStep", "soniloAudioGen": "#/components/schemas/SoniloAudioGenStep", "textToImage": "#/components/schemas/TextToImageStep", "textToSpeech": "#/components/schemas/TextToSpeechStep", "training": "#/components/schemas/TrainingStep", "transcode": "#/components/schemas/TranscodeStep", "transcription": "#/components/schemas/TranscriptionStep", "videoBackgroundRemoval": "#/components/schemas/VideoBackgroundRemovalStep", "videoEnhancement": "#/components/schemas/VideoEnhancementStep", "videoFrameExtraction": "#/components/schemas/VideoFrameExtractionStep", "videoGen": "#/components/schemas/VideoGenStep", "videoInterpolation": "#/components/schemas/VideoInterpolationStep", "videoMetadata": "#/components/schemas/VideoMetadataStep", "videoUpscaler": "#/components/schemas/VideoUpscalerStep", "wdTagging": "#/components/schemas/WDTaggingStep", "webScrape": "#/components/schemas/WebScrapeStep", "webSearch": "#/components/schemas/WebSearchStep", "xGuardModeration": "#/components/schemas/XGuardModerationStep", "yuE2": "#/components/schemas/YuE2Step" } } }, "WorkflowStepEvent": { "required": [ "$type", "name", "status", "workflowId" ], "type": "object", "properties": { "workflowId": { "type": "string" }, "name": { "type": "string" }, "status": { "$ref": "#/components/schemas/WorkflowStatus" }, "$type": { "type": "string", "readOnly": true }, "details": { "$ref": "#/components/schemas/WorkflowStepEventDetails" }, "preparation": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/WorkflowStepPreparationResource" }, "description": "Every resource download this step is waiting on, gating resource first. Only set while preparing." } }, "additionalProperties": false }, "WorkflowStepEventDetails": { "required": [ "retries" ], "type": "object", "properties": { "startedAt": { "type": [ "null", "string" ], "format": "date-time" }, "completedAt": { "type": [ "null", "string" ], "format": "date-time" }, "estimatedProgressRate": { "type": [ "null", "number" ], "description": "Estimated progress rate of the step (0.0 to 1.0)", "format": "double" }, "retries": { "type": "integer", "format": "int32" }, "metadata": { "type": [ "null", "object" ], "additionalProperties": { "type": "null" } }, "input": { "type": "null" }, "output": { "type": "null" }, "preparation": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/WorkflowStepPreparationResource" }, "description": "Every resource download this step is waiting on, gating resource first. Only set while preparing." } }, "additionalProperties": false, "description": "Detailed information about a workflow step included in webhook callbacks when detailed mode is enabled." }, "WorkflowStepJobEvent": { "required": [ "$type", "jobId", "status", "stepName", "workflowId" ], "type": "object", "properties": { "workflowId": { "type": "string" }, "stepName": { "type": "string" }, "jobId": { "type": "string" }, "status": { "$ref": "#/components/schemas/WorkflowStatus" }, "$type": { "type": "string", "readOnly": true }, "progress": { "type": [ "null", "number" ], "format": "double" }, "reason": { "type": [ "null", "string" ] }, "blockedReason": { "type": [ "null", "string" ] }, "matureContent": { "type": [ "null", "boolean" ] } }, "additionalProperties": false }, "WorkflowStepPreparationResource": { "required": [ "lane", "resource", "sizeBytes" ], "type": "object", "properties": { "resource": { "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" }, "sizeBytes": { "type": "integer", "format": "int64" }, "lane": { "$ref": "#/components/schemas/Priority" }, "queuePosition": { "type": [ "null", "integer" ], "format": "int32" }, "progress": { "type": [ "null", "number" ], "format": "double" }, "bytesPerSecond": { "type": [ "null", "number" ], "format": "double" }, "etaSeconds": { "type": [ "null", "integer" ], "format": "int32" }, "boostedEtaSeconds": { "type": [ "null", "integer" ], "description": "What Civitai.Orchestration.Grains.Workflows.WorkflowStepPreparationResource.EtaSeconds would become in the High lane. Null when already High.", "format": "int32" }, "rateLimitBytesPerSecond": { "type": [ "null", "integer" ], "description": "Per-stream ceiling the lane applies to this download. Null when uncapped; boosting to High lifts it.", "format": "int64" } }, "additionalProperties": false, "description": "One resource a step is waiting on. A queued resource reports a position and no progress; one that\nis transferring reports the reverse." }, "WorkflowStepQueuePosition": { "required": [ "support" ], "type": "object", "properties": { "support": { "$ref": "#/components/schemas/JobSupport" }, "precedingJobs": { "type": [ "null", "integer" ], "format": "int32" }, "estimatedStartAt": { "type": [ "null", "string" ], "format": "date-time" }, "estimatedCompleteAt": { "type": [ "null", "string" ], "format": "date-time" } }, "additionalProperties": false }, "WorkflowStepTemplate": { "required": [ "$type" ], "type": "object", "properties": { "$type": { "type": "string" }, "name": { "type": [ "null", "string" ], "description": "The name of the workflow step. Used to allow steps to refer to one another." }, "priority": { "$ref": "#/components/schemas/Priority" }, "timeout": { "type": [ "null", "string" ], "format": "date-span" }, "retries": { "type": [ "null", "integer" ], "format": "int32" }, "metadata": { "type": [ "null", "object" ], "additionalProperties": {} } }, "additionalProperties": false, "discriminator": { "propertyName": "$type", "mapping": { "aceStepAudio": "#/components/schemas/AceStepAudioStepTemplate", "ageClassification": "#/components/schemas/AgeClassificationStepTemplate", "audioCaptioning": "#/components/schemas/AudioCaptioningStepTemplate", "blobArchive": "#/components/schemas/BlobArchiveStepTemplate", "chatCompletion": "#/components/schemas/ChatCompletionStepTemplate", "comfy": "#/components/schemas/ComfyStepTemplate", "comfyNodepackSnapshot": "#/components/schemas/ComfyNodepackSnapshotStepTemplate", "composeMedia": "#/components/schemas/ComposeMediaStepTemplate", "convertImage": "#/components/schemas/ConvertImageStepTemplate", "customComfy": "#/components/schemas/CustomComfyStepTemplate", "echo": "#/components/schemas/EchoStepTemplate", "imageBackgroundRemoval": "#/components/schemas/ImageBackgroundRemovalStepTemplate", "imageGen": "#/components/schemas/ImageGenStepTemplate", "imageResourceTraining": "#/components/schemas/ImageResourceTrainingStepTemplate", "imageScanning": "#/components/schemas/ImageScanningStepTemplate", "imageToSvg": "#/components/schemas/ImageToSvgStepTemplate", "imageUpload": "#/components/schemas/ImageUploadStepTemplate", "imageUpscaler": "#/components/schemas/ImageUpscalerStepTemplate", "liveTextToSpeech": "#/components/schemas/LiveTextToSpeechStepTemplate", "liveTranscription": "#/components/schemas/LiveTranscriptionStepTemplate", "mediaCaptioning": "#/components/schemas/MediaCaptioningStepTemplate", "mediaHash": "#/components/schemas/MediaHashStepTemplate", "mediaRating": "#/components/schemas/MediaRatingStepTemplate", "merge": "#/components/schemas/MergeStepTemplate", "miniMaxMusic3": "#/components/schemas/MiniMaxMusic3StepTemplate", "model3DPreview": "#/components/schemas/Model3DPreviewStepTemplate", "modelClamScan": "#/components/schemas/ModelClamScanStepTemplate", "modelHash": "#/components/schemas/ModelHashStepTemplate", "modelParseMetadata": "#/components/schemas/ModelParseMetadataStepTemplate", "modelPickleScan": "#/components/schemas/ModelPickleScanStepTemplate", "polyGen": "#/components/schemas/PolyGenStepTemplate", "preprocessImage": "#/components/schemas/PreprocessImageStepTemplate", "preprocessVideo": "#/components/schemas/PreprocessVideoStepTemplate", "promptEnhancement": "#/components/schemas/PromptEnhancementStepTemplate", "promptModeration": "#/components/schemas/PromptModerationStepTemplate", "qwenImageBench": "#/components/schemas/QwenImageBenchStepTemplate", "shieldstralModeration": "#/components/schemas/ShieldstralModerationStepTemplate", "soniloAudioGen": "#/components/schemas/SoniloAudioGenStepTemplate", "textToImage": "#/components/schemas/TextToImageStepTemplate", "textToSpeech": "#/components/schemas/TextToSpeechStepTemplate", "training": "#/components/schemas/TrainingStepTemplate", "transcode": "#/components/schemas/TranscodeStepTemplate", "transcription": "#/components/schemas/TranscriptionStepTemplate", "videoBackgroundRemoval": "#/components/schemas/VideoBackgroundRemovalStepTemplate", "videoEnhancement": "#/components/schemas/VideoEnhancementStepTemplate", "videoFrameExtraction": "#/components/schemas/VideoFrameExtractionStepTemplate", "videoGen": "#/components/schemas/VideoGenStepTemplate", "videoInterpolation": "#/components/schemas/VideoInterpolationStepTemplate", "videoMetadata": "#/components/schemas/VideoMetadataStepTemplate", "videoUpscaler": "#/components/schemas/VideoUpscalerStepTemplate", "wdTagging": "#/components/schemas/WDTaggingStepTemplate", "webScrape": "#/components/schemas/WebScrapeStepTemplate", "webSearch": "#/components/schemas/WebSearchStepTemplate", "xGuardModeration": "#/components/schemas/XGuardModerationStepTemplate", "yuE2": "#/components/schemas/YuE2StepTemplate" } } }, "WorkflowStepWarning": { "required": [ "code", "message" ], "type": "object", "properties": { "code": { "$ref": "#/components/schemas/WorkflowStepWarningCode" }, "message": { "type": "string" }, "deprecatedAt": { "type": [ "null", "string" ], "description": "When the deprecation was announced, if applicable.", "format": "date-time" }, "retiresAt": { "type": [ "null", "string" ], "description": "When requests relying on the deprecated behavior start being rejected, if applicable.", "format": "date-time" }, "replacement": { "type": [ "null", "string" ] } }, "additionalProperties": false, "description": "A non-fatal notice about a workflow step, e.g. a requested model that is scheduled for retirement." }, "WorkflowStepWarningCode": { "enum": [ "modelDeprecated" ], "type": "string" }, "WorkflowTemplate": { "required": [ "currencies", "steps" ], "type": "object", "properties": { "metadata": { "type": [ "null", "object" ], "additionalProperties": {} }, "tags": { "maxItems": 10, "uniqueItems": true, "type": [ "null", "array" ], "items": { "type": "string" }, "description": "Indexed for searching. At most 10 tags, each at most 200 characters." }, "steps": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/WorkflowStepTemplate" } }, "callbacks": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/WorkflowCallback" } }, "tips": { "$ref": "#/components/schemas/WorkflowTips" }, "arguments": { "type": [ "null", "object" ], "additionalProperties": {} }, "nsfwLevel": { "$ref": "#/components/schemas/NSFWLevel" }, "downloadPriority": { "$ref": "#/components/schemas/Priority" }, "tier": { "$ref": "#/components/schemas/WorkflowTier" }, "experimental": { "type": [ "null", "boolean" ], "description": "Opts the workflow in to new features or behaviours that are not yet stable." }, "allowMatureContent": { "type": [ "null", "boolean" ], "description": "When false, no content marked as mature is returned; additional payment options are available for such workflows." }, "upgradeMode": { "$ref": "#/components/schemas/WorkflowUpgradeMode" }, "currencies": { "type": "array", "items": { "$ref": "#/components/schemas/BuzzClientAccount" }, "description": "Limit the currencies that can be used to pay for this workflow." }, "ephemeral": { "type": [ "null", "boolean" ], "description": "Never persisted: results are available only via callbacks or the synchronous `wait` parameter, and GET returns 404 once terminal.\nRequires at least one callback or `wait > 0` on submission." }, "externalId": { "maxLength": 128, "minLength": 1, "pattern": "^[A-Za-z0-9_-]+$", "type": [ "null", "string" ], "description": "Idempotency key: if a workflow with the same `(userId, externalId)` exists (including from a prior `whatif=true` request),\nit is returned instead of creating a new one. Max 128 chars, `[A-Za-z0-9_-]+`." } }, "additionalProperties": false }, "WorkflowTier": { "enum": [ "paid", "free" ], "type": "string", "description": "How a workflow is paid for." }, "WorkflowTips": { "required": [ "civitai", "creators" ], "type": "object", "properties": { "civitai": { "maximum": 2, "minimum": 0, "type": "number", "description": "The rate of tipping that should be allocated to civitai", "format": "double" }, "creators": { "maximum": 2, "minimum": 0, "type": "number", "description": "The rate of tipping that should be allocated to creators involved in this workflow", "format": "double" } }, "additionalProperties": false }, "WorkflowUpgradeMode": { "enum": [ "manual", "automatic" ], "type": "string", "description": "Specifies how a workflow should be upgraded when mature content is detected and green or blue buzz was used for payment." }, "WorkflowWaitUntil": { "enum": [ "completion", "change" ], "type": "string", "description": "What a held read of a workflow waits for before it returns." }, "XGuardCustomSignalMetadata": { "required": [ "name", "negativeCount", "negativeSignals", "positiveCount", "positiveSignals", "textCount", "textSignals" ], "type": "object", "properties": { "name": { "type": "string" }, "positiveSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "negativeSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "textSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "positiveCount": { "type": "integer", "format": "int32", "readOnly": true }, "negativeCount": { "type": "integer", "format": "int32", "readOnly": true }, "textCount": { "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "XGuardLabelConfiguration": { "required": [ "action", "label", "policy", "threshold" ], "type": "object", "properties": { "label": { "type": "string" }, "action": { "type": "string" }, "threshold": { "type": "number", "format": "double" }, "policy": { "type": "string" } }, "additionalProperties": false }, "XGuardLabelResult": { "required": [ "action", "field", "label", "modelReason", "score", "threshold", "topToken", "triggered" ], "type": "object", "properties": { "label": { "type": "string" }, "action": { "type": "string" }, "threshold": { "type": "number", "format": "double" }, "score": { "type": "number", "format": "double" }, "triggered": { "type": "boolean" }, "topToken": { "type": "string" }, "field": { "type": "string" }, "modelReason": { "type": "string" }, "postprocess": { "type": [ "null", "string" ] }, "finishReason": { "type": [ "null", "string" ] }, "responseId": { "type": [ "null", "string" ] }, "error": { "type": [ "null", "string" ] }, "matchedTerms": { "$ref": "#/components/schemas/XGuardMatchedTerms" }, "policyHash": { "type": [ "null", "string" ] } }, "additionalProperties": false }, "XGuardMatchedTerms": { "required": [ "negativePrompt", "positivePrompt", "text" ], "type": "object", "properties": { "text": { "type": "array", "items": { "type": "string" } }, "positivePrompt": { "type": "array", "items": { "type": "string" } }, "negativePrompt": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "XGuardModerationInput": { "required": [ "includeReasoning", "mode", "storeFullResponse" ], "type": "object", "properties": { "mode": { "type": "string" }, "labels": { "type": [ "null", "array" ], "items": { "type": "string" }, "description": "Only the named labels are evaluated; names not in the defaults (or overrides) are silently ignored.\nOmitted or empty evaluates all labels." }, "labelOverrides": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/XGuardLabelConfiguration" }, "description": "Optional label configuration overrides. When provided, these merge with/override the\ndefaults from the XGuardModerationOptionsGrain for the given mode." }, "storeFullResponse": { "type": "boolean", "description": "Stores the full raw chat completion (including all logprobs) in the destination blob, ~200KB instead of ~2-3KB; debugging only.\nNot the reasoning switch (see Civitai.Orchestration.Grains.Workflows.Steps.XGuardModeration.XGuardModerationInput.IncludeReasoning): it only raises the token budget from 1 to 128." }, "includeReasoning": { "type": "boolean", "description": "Site-text moderation only (prompt scan always emits one token). Generates an explanation after the verdict,\npopulating ModelReason and MatchedTerms, with a larger token budget and a distinct blob-cache key." } }, "additionalProperties": false, "discriminator": { "propertyName": "mode", "mapping": { "prompt": "#/components/schemas/XGuardPromptModerationInput", "text": "#/components/schemas/XGuardTextModerationInput" } } }, "XGuardModerationOutput": { "required": [ "blocked", "results", "triggeredLabels" ], "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/XGuardLabelResult" } }, "signalMetadata": { "$ref": "#/components/schemas/XGuardSignalMetadata" }, "blocked": { "type": "boolean" }, "triggeredLabels": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "XGuardModerationStep": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/XGuardModerationInput" }, "output": { "$ref": "#/components/schemas/XGuardModerationOutput" }, "$type": { "enum": [ "xGuardModeration" ], "type": "string" } }, "additionalProperties": false } ], "description": "XGuardModeration" }, "XGuardModerationStepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/XGuardModerationInput" }, "$type": { "enum": [ "xGuardModeration" ], "type": "string" } }, "additionalProperties": false } ], "description": "XGuardModeration" }, "XGuardPromptModerationInput": { "allOf": [ { "$ref": "#/components/schemas/XGuardModerationInput" }, { "required": [ "mode", "positivePrompt", "scope" ], "type": "object", "properties": { "positivePrompt": { "type": "string" }, "negativePrompt": { "type": [ "null", "string" ] }, "instructions": { "type": [ "null", "string" ], "description": "Additional instructions are unsupported by the fixed Civitai Scan contract." }, "scope": { "$ref": "#/components/schemas/XGuardPromptScope" }, "mode": { "enum": [ "prompt" ], "type": "string" } }, "additionalProperties": false } ] }, "XGuardPromptScope": { "enum": [ "combined", "positive", "negative" ], "type": "string", "description": "Which generation-prompt field(s) the model is asked to evaluate in Prompt mode." }, "XGuardSignalMetadata": { "required": [ "customSignals", "negativeAdultCount", "negativeAdultSignals", "negativeAgeDownCount", "negativeAgeDownSignals", "negativeSexualCount", "negativeSexualSignals", "positiveAdultCount", "positiveAdultSignals", "positiveAgeDownCount", "positiveAgeDownSignals", "positiveSexualCount", "positiveSexualSignals" ], "type": "object", "properties": { "positiveAgeDownSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "negativeAgeDownSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "positiveAdultSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "negativeAdultSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "positiveSexualSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "negativeSexualSignals": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "customSignals": { "type": "array", "items": { "$ref": "#/components/schemas/XGuardCustomSignalMetadata" } }, "positiveAgeDownCount": { "type": "integer", "format": "int32", "readOnly": true }, "negativeAgeDownCount": { "type": "integer", "format": "int32", "readOnly": true }, "positiveAdultCount": { "type": "integer", "format": "int32", "readOnly": true }, "negativeAdultCount": { "type": "integer", "format": "int32", "readOnly": true }, "positiveSexualCount": { "type": "integer", "format": "int32", "readOnly": true }, "negativeSexualCount": { "type": "integer", "format": "int32", "readOnly": true } }, "additionalProperties": false }, "XGuardTextModerationInput": { "allOf": [ { "$ref": "#/components/schemas/XGuardModerationInput" }, { "required": [ "mode", "text" ], "type": "object", "properties": { "text": { "type": "string" }, "mode": { "enum": [ "text" ], "type": "string" } }, "additionalProperties": false } ] }, "YuE2AIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "defaultSteps", "ecosystem", "engine" ], "type": "object", "properties": { "samplesOverrides": { "type": "array", "items": { "$ref": "#/components/schemas/YuE2SampleOverride" } }, "defaultSteps": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "yue2" ], "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 } ], "description": "YuE2 music LoRA training. Audio captions contain style followed by [Lyrics] and lyrics." }, "YuE2Input": { "required": [ "loras", "lyrics", "mode", "seed", "style" ], "type": "object", "properties": { "style": { "minLength": 1, "type": "string", "description": "Musical style, instrumentation, mood, tempo, and vocal description." }, "lyrics": { "minLength": 1, "type": "string", "description": "Lyrics with section markers such as [verse] and [chorus]." }, "seed": { "type": "integer", "format": "int32" }, "maxDuration": { "maximum": 360, "minimum": 0.03999999910593033, "type": "number", "description": "Maximum song duration in seconds; generation can stop earlier.", "format": "float", "default": 120 }, "steps": { "maximum": 100, "minimum": 1, "type": "integer", "description": "Diffusion steps using the upstream dpm_2 / sgm_uniform sampler.", "format": "int32", "default": 32 }, "mode": { "minLength": 1, "pattern": "^(full|melody|off)$", "type": "string", "description": "Score planning: full (melody and chords), melody, or off.", "default": "full" }, "abc": { "type": [ "null", "string" ], "description": "Optional ABC score to use instead of generating a score. Ignored in off mode." }, "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": "Optional YuE2 checkpoint override containing the model, text encoder, and audio VAE." }, "loras": { "type": "object", "additionalProperties": { "type": "number", "format": "double" }, "description": "Optional LoRAs for both YuE2 experts." } }, "additionalProperties": false, "description": "YuE2 text-to-music generation with optional ABC score planning." }, "YuE2Output": { "required": [ "blob" ], "type": "object", "properties": { "blob": { "$ref": "#/components/schemas/AudioBlob" } }, "additionalProperties": false }, "YuE2SampleOverride": { "type": "object", "properties": { "lyrics": { "type": [ "null", "string" ] }, "duration": { "maximum": 360, "minimum": 0.03999999910593033, "type": [ "null", "number" ], "format": "float" }, "steps": { "maximum": 100, "minimum": 1, "type": [ "null", "integer" ], "format": "int32" }, "mode": { "pattern": "^(full|melody|off)$", "type": [ "null", "string" ] }, "abc": { "type": [ "null", "string" ] } }, "additionalProperties": false, "description": "Optional overrides aligned with Samples.Prompts." }, "YuE2Step": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStep" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/YuE2Input" }, "output": { "$ref": "#/components/schemas/YuE2Output" }, "$type": { "enum": [ "yuE2" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a song from style and lyrics with YuE2." }, "YuE2StepTemplate": { "allOf": [ { "$ref": "#/components/schemas/WorkflowStepTemplate" }, { "required": [ "$type", "input" ], "type": "object", "properties": { "input": { "$ref": "#/components/schemas/YuE2Input" }, "$type": { "enum": [ "yuE2" ], "type": "string" } }, "additionalProperties": false } ], "description": "Generate a song from style and lyrics with YuE2." }, "ZImageBaseAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "maxBatchSize" ], "type": "object", "properties": { "maxBatchSize": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "zimagebase" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" }, "batchSize": { "maximum": 2, "minimum": 1, "type": [ "null", "integer" ], "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.", "default": 1 } }, "additionalProperties": false } ] }, "ZImageBaseCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ZImageBaseImageGenInput" }, { "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": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "ZImageBaseImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ZImageImageGenInput" }, { "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" ] }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "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" } }, "controlNets": { "type": "array", "items": { "$ref": "#/components/schemas/ImageJobControlNet" } }, "model": { "enum": [ "base" ], "type": "string" }, "ecosystem": { "enum": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/ZImageBaseCreateImageGenInput" } } } ] }, "ZImageImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/SdCppImageGenInput" }, { "required": [ "ecosystem", "engine", "model" ], "type": "object", "properties": { "model": { "type": "string" }, "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": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "model", "mapping": { "turbo": "#/components/schemas/ZImageTurboImageGenInput", "base": "#/components/schemas/ZImageBaseImageGenInput" } } } ] }, "ZImageTurboAIToolkitTrainingInput": { "allOf": [ { "$ref": "#/components/schemas/AIToolkitTrainingInput" }, { "required": [ "ecosystem", "engine", "maxBatchSize" ], "type": "object", "properties": { "maxBatchSize": { "type": "integer", "format": "int32", "readOnly": true }, "ecosystem": { "enum": [ "zimageturbo" ], "type": "string" }, "engine": { "enum": [ "ai-toolkit" ], "type": "string" }, "batchSize": { "maximum": 2, "minimum": 1, "type": [ "null", "integer" ], "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.", "default": 1 } }, "additionalProperties": false } ] }, "ZImageTurboCreateImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ZImageTurboImageGenInput" }, { "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": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false } ] }, "ZImageTurboImageGenInput": { "allOf": [ { "$ref": "#/components/schemas/ZImageImageGenInput" }, { "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" ] }, "sampleMethod": { "$ref": "#/components/schemas/SdCppSampleMethod" }, "schedule": { "$ref": "#/components/schemas/SdCppSchedule" }, "steps": { "maximum": 150, "minimum": 1, "type": "integer", "format": "int32", "default": 9 }, "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" } }, "controlNets": { "type": "array", "items": { "$ref": "#/components/schemas/ImageJobControlNet" } }, "model": { "enum": [ "turbo" ], "type": "string" }, "ecosystem": { "enum": [ "zImage" ], "type": "string" }, "engine": { "enum": [ "sdcpp" ], "type": "string" } }, "additionalProperties": false, "discriminator": { "propertyName": "operation", "mapping": { "createImage": "#/components/schemas/ZImageTurboCreateImageGenInput" } } } ] }, "ZipTrainingData": { "allOf": [ { "$ref": "#/components/schemas/TrainingData" }, { "required": [ "count", "sourceUrl", "type" ], "type": "object", "properties": { "sourceUrl": { "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" }, "count": { "type": "integer", "description": "The number of images/frames/items in this training data", "format": "int32" }, "type": { "enum": [ "zip" ], "type": "string" } }, "additionalProperties": false } ] }, "ZoeDepthEnvironment": { "enum": [ "indoor", "outdoor" ], "type": "string" } }, "securitySchemes": { "ApiKey": { "type": "http", "description": "Copy valid authorization token into field", "scheme": "bearer", "bearerFormat": "JWT" } } }, "security": [ {} ], "tags": [ { "name": "Blobs" }, { "name": "CivitaiConsumer" }, { "name": "Free tier" }, { "name": "Recipes" }, { "name": "Resources" }, { "name": "Services" }, { "name": "StreamingBlobs" }, { "name": "Workflows" }, { "name": "WorkflowSteps" } ] }