# Account Information Source: https://docs.unifically.com/api-reference/account-information GET https://api.unifically.com/account Retrieve your account information and usage statistics Retrieve detailed information about your account, including balance, email, timestamps, and restrictions. ## Request ```bash theme={null} curl --location 'https://api.unifically.com/account' \ --header 'Authorization: Bearer YOUR_API_KEY' ``` ## Response ### Success Response ```json theme={null} { "success": true, "code": 200, "data": { "user_id": 12345, "balance_usd": 100.50, "email": "user@example.com", "created_at": 123, "updated_at": 123, } } ``` ## Response Fields Indicates whether the request was successful (`true`) or failed (`false`) HTTP status code (200 for success) Account information Unique user identifier Current account balance in USD Account email address Unix timestamp of account creation Unix timestamp of last account update ## Authentication All requests require a valid API key in the Authorization header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from the [Unifically Dashboard](https://unifically.com/dashboard). # Authentication Source: https://docs.unifically.com/api-reference/authentication Learn how to authenticate your API requests ## API Key Authentication All Unifically API endpoints require authentication using a Bearer token. Sign up at [unifically.com](https://unifically.com) to get your API key Include your API key in the Authorization header of every request ## Authentication Header ```bash theme={null} Authorization: Bearer YOUR_API_KEY ``` ## Best Practices Never hardcode your API key. Always store it securely in environment variables or secrets management systems. ```bash theme={null} export UNIFICALLY_API_KEY="your_api_key_here" ``` * Never commit API keys to version control * Don't share keys in public forums or documentation * Rotate keys regularly * Use separate keys for development and production Always check for authentication errors and handle them appropriately in your application. If your API key is compromised, regenerate it immediately from your dashboard. # Webhooks & Callbacks Source: https://docs.unifically.com/api-reference/callbacks Receive task completion notifications via webhook callbacks When creating tasks, you can provide a `callback_url` to receive webhook notifications when the task completes or fails. This avoids polling and lets you integrate with your backend asynchronously. ## Enabling Callbacks Pass `callback_url` at the top level of your request (outside the `input` object): ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" }, "callback_url": "https://your-server.com/webhook" }' ``` Optional webhook URL. When provided, the API sends a POST request to this URL when the task completes or fails. ## Webhook Payload Format The API sends a POST request to your `callback_url` with a JSON body. The payload structure depends on whether the task succeeded or failed. ### Success Payload When the task completes successfully: ```json theme={null} { "task_id": "abc123def456", "status": "completed", "data": { "video_url": "https://cdn.unifically.com/outputs/abc123.mp4" } } ``` The `data` object contains the output URL(s) based on the task type: | Task Type | Output Field | Description | | --------- | ------------ | -------------------------- | | Video | `video_url` | URL to the generated video | | Image | `image_url` | URL to the generated image | | Audio | `audio_url` | URL to the generated audio | Some models may return additional fields. For example, multi-output models might include `image_urls` or `audio_urls` as arrays. ### Failure Payload When the task fails: ```json theme={null} { "task_id": "abc123def456", "status": "failed", "error_message": "Description of what went wrong" } ``` | Field | Type | Description | | --------------- | ------ | -------------------------------- | | `task_id` | string | The task ID | | `status` | string | `"failed"` | | `error_message` | string | Human-readable error description | ## Request Details * **Method:** POST * **Content-Type:** `application/json` * **Body:** JSON payload as shown above ## Best Practices 1. **Respond quickly** — Return a 2xx status code within a few seconds to acknowledge receipt. Process the payload asynchronously if needed. 2. **Verify webhook origin** — Use HTTPS and consider validating requests (e.g., via a shared secret or signature if supported in the future). 3. **Handle duplicates** — The same webhook may be delivered more than once; use `task_id` to deduplicate. 4. **Validate URLs** — Ensure your callback URL is publicly accessible and accepts POST requests. ## Example Handler ```javascript theme={null} // Express.js example app.post('/webhook', (req, res) => { const { task_id, status, data, error_message } = req.body; // Acknowledge immediately res.status(200).send('OK'); if (status === 'completed') { const url = data.video_url || data.image_url || data.audio_url; console.log(`Task ${task_id} completed: ${url}`); // Process the completed task... } else if (status === 'failed') { console.error(`Task ${task_id} failed: ${error_message}`); // Handle the failure... } }); ``` # Error Handling Source: https://docs.unifically.com/api-reference/error-handling Understanding Unifically API error responses ## Response Structure All Unifically API responses follow a consistent structure: ### Success Response ```json theme={null} { "success": true, "code": 200, "data": { // Response data } } ``` ### Error Response ```json theme={null} { "success": false, "code": 400, "data": { "message": "Error message" } } ``` Empty arrays and objects are omitted from responses when not needed. ## HTTP Status Codes | Code | Meaning | Description | | ----- | --------------------- | --------------------------- | | `200` | Success | Task successfully submitted | | `400` | Bad Request | Task generation failed | | `401` | Unauthorized | Invalid or missing API key | | `422` | Validation Error | Invalid request parameters | | `429` | Too Many Requests | Rate limit exceeded | | `500` | Internal Server Error | Server error occurred | ## Error Response Format When an error occurs, the API returns a simplified structure: ```json theme={null} { "success": false, "code": 400, "data": { "message": "Error message" } } ``` ### Response Fields Indicates whether the request was successful (`true`) or failed (`false`) HTTP status code (200, 400, 401, 422, 429, 500) Response data or error details Human-readable error message (on error) ## Example Error Responses ```json theme={null} { "success": false, "code": 401, "data": { "message": "Invalid API key provided" } } ``` **Solution**: Verify your API key is correct and properly formatted in the Authorization header: ```bash theme={null} Authorization: Bearer YOUR_ACTUAL_API_KEY ``` ```json theme={null} { "success": false, "code": 429, "data": { "message": "Rate limit exceeded. Please try again later" } } ``` **Solution**: Implement exponential backoff and respect rate limits ```json theme={null} { "success": false, "code": 422, "data": { "message": "Missing required parameter: prompt" } } ``` **Solution**: Check the API documentation for required parameters and valid values ```json theme={null} { "success": false, "code": 400, "data": { "message": "Task generation failed" } } ``` **Solution**: Review your request parameters and try again ```json theme={null} { "success": false, "code": 500, "data": { "message": "Internal server error occurred" } } ``` **Solution**: Retry the request after a brief delay. Contact support if the issue persists ## Best Practices Check the `success` field in every response to determine success or failure Retry failed requests with exponential backoff for 429 and 500 errors Log all error responses including the error message for debugging Implement rate limit handling to avoid 429 errors Always parse the `error.message` field to provide helpful feedback to your users Never expose your API key in client-side code or public repositories # Resources Source: https://docs.unifically.com/api-reference/resources Get provider resources like motions, voices, and sounds The `/v1/resources` endpoint provides access to provider-specific resources such as motion presets, voices, and sounds that can be used with various models. ## Quick Reference | Endpoint | Provider | Resource | | ----------------------------------------------------- | ---------- | -------------------------- | | `GET /v1/resources/kuaishou/kling/voices` | Kling | Kling voice presets | | `GET /v1/resources/google/voices/veo-3.1` | Google | Google video voice presets | | `GET /v1/resources/elevenlabs/voices` | ElevenLabs | Voices | | `GET /v1/resources/suno-ai/voice/verification-phrase` | Suno | Voice verification phrase | *** ## Examples ### Get Kling Voices Returns available voice presets for use with Kling video models that support `voice_id` (e.g. v2.6, v3.0, v3.0 Omni). ```bash theme={null} curl https://api.unifically.com/v1/resources/kuaishou/kling/voices \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "code": 200, "success": true, "data": [ { "id": 1, "name": "Male Voice 1" }, { "id": 2, "name": "Female Voice 1" } ] } ``` ### Get Google Veo Voices Returns available Google Flow voice presets for Google video models that support the `voice` parameter, including Veo 3.1 reference mode and Omni Flash video/edit requests. Voice use requires at least 1 image or character reference in the task input. ```bash theme={null} curl https://api.unifically.com/v1/resources/google/voices/veo-3.1 \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "code": 200, "success": true, "data": [ { "id": "achernar", "name": "Achernar", "description": "Female, soft, high pitch", "sample": "https://gstatic.com/aistudio/voices/samples/Achernar.wav" }, { "id": "achird", "name": "Achird", "description": "Male, friendly, mid pitch", "sample": "https://gstatic.com/aistudio/voices/samples/Achird.wav" }, { "id": "algenib", "name": "Algenib", "description": "Male, gravelly, low pitch", "sample": "https://gstatic.com/aistudio/voices/samples/Algenib.wav" } ] } ``` Common Google Flow preset IDs include: ```text theme={null} achernar, achird, algenib, algieba, alnilam, aoede, autonoe, callirrhoe, charon, despina, enceladus, erinome, fenrir, gacrux, iapetus, kore, laomedeia, leda, orus, puck, pulcherrima, rasalgethi, sadachbia, sadaltager, schedar, sulafat, umbriel, vindemiatrix, zephyr, zubenelgenubi ``` `lapetus` is accepted as an alias for `iapetus`. ### Get ElevenLabs Voices ```bash theme={null} curl https://api.unifically.com/v1/resources/elevenlabs/voices \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "code": 200, "success": true, "data": { "voices": [ { "voice_id": "21m00Tcm4TlvDq8ikWAM", "name": "Rachel", "category": "premade", "labels": { "accent": "american", "age": "young", "gender": "female" }, "preview_url": "https://storage.googleapis.com/..." } ] } } ``` ### Get Suno Voice Verification Phrase Generates a verification phrase for Suno voice creation. **Query Parameters:** | Parameter | Type | Required | Description | | ---------- | ------ | -------- | --------------------------------------------------------------------------------------------------- | | `language` | string | No | Language code for the phrase. Available: `zh`, `en`, `es`, `fr`, `pt`, `de`, `ja`, `ko`, `hi`, `ru` | ```bash theme={null} curl https://api.unifically.com/v1/resources/suno-ai/voice/verification-phrase?language=ru \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "success": true, "code": 200, "data": { "phrase_id": "ea748c01-6257-45ff-a037-c8657ff5c09d", "phrase_text": "Sing a cheerful melody with your clear voice today" } } ``` *** ## Using Resources Use the `id` value from the response as the corresponding parameter when creating a task: | Resource Type | Use As Parameter | | ------------------------- | -------------------------------------- | | Voices (ElevenLabs) | `voice_id` | | Voices (Kling) | `voice_id` in elements or voices array | | Voices (Google Veo) | `voice` | | Voice Verification Phrase | `phrase_id` | # Base64 Upload Source: https://docs.unifically.com/api-reference/storage/base64-upload PUT https://files.storagecdn.online/upload Upload files as base64-encoded strings Upload a file as a base64-encoded string in JSON format. Base64 string can be either raw or data string. ## Request ```bash theme={null} curl --location --request PUT 'https://files.storagecdn.online/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" }' ``` ## Request Body ```json theme={null} { "base64": "YOUR_BASE64_ENCODED_FILE_STRING" } ``` ## Parameters Base64-encoded file content ## Example ```bash theme={null} curl --location --request PUT 'https://files.storagecdn.online/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" }' ``` ## Response ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.storagecdn.online/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` Whether the upload was successful URL to access the uploaded file ## Use Cases * Uploading files from web applications * When file is already in base64 format * Best for: Browser-based uploads, embedded images, API integrations ## Notes * Ensure your file is properly base64-encoded before sending * Base64 encoding increases file size by approximately 33% * Maximum file size may be limited by your API plan # Direct File Upload Source: https://docs.unifically.com/api-reference/storage/direct-upload PUT https://files.storagecdn.online/upload Upload files directly using multipart/form-data Upload a file directly from your local system using multipart/form-data. ## Request ```bash theme={null} curl --location --request PUT 'https://files.storagecdn.online/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --form 'file=@"/path/to/your/file.png"' ``` ## Parameters The file to upload. Use `@` prefix followed by the file path ## Example ```bash theme={null} curl --location --request PUT 'https://files.storagecdn.online/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --form 'file=@"/Users/john/Documents/image.png"' ``` ## Response ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.storagecdn.online/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` Whether the upload was successful URL to access the uploaded file ## Use Cases * Uploading files from local file system * Direct file uploads from applications * Best for: Command-line uploads, server-to-server transfers # Storage Overview Source: https://docs.unifically.com/api-reference/storage/overview Upload and store files using multiple methods Unifically provides flexible file storage with three upload methods to suit different use cases. ## Available Upload Methods Upload files directly from your local system using multipart/form-data Upload files as base64-encoded strings in JSON format Upload files by providing a publicly accessible URL ## Response Format All upload methods return a consistent response format: ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.storagecdn.online/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` ### Error Response **Status Code:** `400 Bad Request` ```json theme={null} { "success": false, "message": "Error message here" } ``` ## Authentication All storage endpoints require a valid API key in the Authorization header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from the [Unifically Dashboard](https://unifically.com/dashboard). # URL Upload Source: https://docs.unifically.com/api-reference/storage/url-upload PUT https://files.storagecdn.online/upload Upload files by providing a URL Upload a file by providing a publicly accessible URL. The server will fetch and store the file. ## Request ```bash theme={null} curl --location --request PUT 'https://files.storagecdn.online/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "file_url": "https://example.com/path/to/file.png" }' ``` ## Request Body ```json theme={null} { "file_url": "https://example.com/path/to/file.png" } ``` ## Parameters Publicly accessible URL of the file to upload ## Example ```bash theme={null} curl --location --request PUT 'https://files.storagecdn.online/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "file_url": "https://file.com/images/sample.png" }' ``` ## Response ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.storagecdn.online/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` Whether the upload was successful URL to access the uploaded file ## Use Cases * Importing files from external sources * Migrating files from other storage services * Best for: Bulk imports, file migrations, webhook integrations ## Requirements * The URL must be publicly accessible (no authentication required) * The file must be directly downloadable * HTTPS URLs are recommended # Unified Tasks API Source: https://docs.unifically.com/api-reference/v1-tasks POST https://api.unifically.com/v1/tasks Create and manage AI generation tasks with a unified interface The `/v1/tasks` endpoint provides a unified interface for all AI generation models (video, image, audio). This is the unified API for all AI generation models. Use this endpoint for all integrations. ## Create Task **POST** `/v1/tasks` Creates a new generation task for any supported model. ### Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" }, "callback_url": "https://your-server.com/webhook" }' ``` ### Request Parameters Model identifier in `provider/model-name` format. See [Available Models](#available-models) below. Model-specific input parameters. See [Input Parameters](#input-parameters) for details. Optional webhook URL. When provided, the API sends a POST request to this URL when the task completes or fails. See [Webhooks & Callbacks](/api-reference/callbacks) for payload formats and details. Optional. When set to `true`, the request is validated and the cost is calculated without actually creating a task or deducting from your balance. Useful for previewing the price of a request before committing. ### Response ```json 200 theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ### Dry Run To check the cost of a request without creating a task or deducting from your balance, set `dry_run` to `true`: ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" }, "dry_run": true }' ``` ```json 200 theme={null} { "code": 200, "success": true, "data": { "cost": 0.40 } } ``` *** ## Get Task Status **GET** `/v1/tasks/:task_id` Retrieves the status and output of a task. ### Request ```bash theme={null} curl https://api.unifically.com/v1/tasks/abc123def456 \ -H "Authorization: Bearer YOUR_API_KEY" ``` ### Path Parameters The unique task ID returned from the create task endpoint ### Response (Processing) ```json 200 theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ### Response (Completed) ```json 200 theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "video_url": "https://cdn.unifically.com/outputs/abc123.mp4" } } } ``` *** ## Available Models ### Video Generation | Model | Description | | ------------------------------------- | ----------------------------------- | | `google/veo-3.1-fast` | Google Veo 3.1 Fast | | `google/veo-3.1-quality` | Google Veo 3.1 Quality | | `google/veo-3.1-lite` | Google Veo 3.1 Lite | | `google/veo-3.1-lite-relaxed` | Google Veo 3.1 Lite Relaxed | | `google/veo-3.1-extend` | Google Veo 3.1 Extend | | `google/veo-3.1-upscale` | Google Veo 3.1 Upscale | | `google/gemini-omni-flash-video` | Google Gemini Omni Flash Video | | `google/gemini-omni-flash-video-edit` | Google Gemini Omni Flash Video Edit | | `hailuo/minimax-2.0` | Minimax Hailuo 2.0 | | `hailuo/minimax-2.3` | Minimax Hailuo 2.3 | | `hailuo/minimax-2.3-fast` | Minimax Hailuo 2.3 Fast | | `kuaishou/kling-3.0-omni-video` | Kling v3.0 Omni Video | | `kuaishou/kling-3.0-omni-video-edit` | Kling v3.0 Omni Video Edit | | `kuaishou/kling-o1-video` | Kling O1 Video | | `kuaishou/kling-o1-video-edit` | Kling O1 Video Edit | | `kuaishou/kling-3.0-video` | Kling v3.0 Video | | `kuaishou/kling-2.6-video` | Kling v2.6 Video | | `kuaishou/kling-2.5-turbo-video` | Kling v2.5 Turbo Video | | `kuaishou/kling-2.1-video` | Kling v2.1 Video | | `kuaishou/kling-2.1-master-video` | Kling v2.1 Master Video | | `kuaishou/kling-2.6-motion-control` | Kling v2.6 Motion Control | | `kuaishou/kling-3.0-motion-control` | Kling v3.0 Motion Control | | `xai/grok-imagine-video-extend` | Grok Imagine Video Extend | | `topaz-labs/video-upscale` | Topaz Video Upscale | ### Image Generation | Model | Description | | ------------------------------- | ---------------------------------------------- | | `google/nano-banana` | Nano Banana | | `google/nano-banana-pro` | Nano Banana Pro | | `openai/gpt-image-2` | GPT Image 2 (1K/2K/4K, multiple aspect ratios) | | `black-forest-labs/flux.2-pro` | Flux.2 Pro | | `black-forest-labs/flux.2-flex` | Flux.2 Flex | | `black-forest-labs/flux.2-max` | Flux.2 Max | | `kuaishou/kling-o1-image` | Kling O1 Image | | `kuaishou/kling-3.0-omni-image` | Kling v3.0 Omni Image | | `kuaishou/kling-3.0-image` | Kling v3.0 Image | | `kuaishou/kling-2.1-image` | Kling v2.1 Image | | `topaz-labs/image-upscale` | Topaz Image Upscale | | `topaz-labs/image-generative` | Topaz Image Generative | | `alibaba/qwen-image-2.0-pro` | Qwen Image 2.0 Pro (T2I + editing) | | `alibaba/qwen-image-2.0` | Qwen Image 2.0 (T2I + editing) | | `alibaba/qwen-image-max` | Qwen Image Max (T2I + editing) | | `alibaba/qwen-image-plus` | Qwen Image Plus (T2I + editing) | | `alibaba/qwen-image` | Qwen Image (T2I + editing) | | `alibaba/z-image-turbo` | Z-Image Turbo (T2I only) | | `alibaba/wan-2.7-pro-image` | Wan 2.7 Pro Image (T2I + editing, up to 4K) | | `alibaba/wan-2.7-image` | Wan 2.7 Image (T2I + editing) | | `alibaba/wan-2.6-image` | Wan 2.6 Image (T2I + editing) | | `alibaba/wan-2.5-image` | Wan 2.5 Image (T2I + editing) | | `alibaba/wan-2.2-image` | Wan 2.2 Image (T2I only) | | `alibaba/wan-2.2-flash-image` | Wan 2.2 Flash Image (T2I only) | | `xai/grok-imagine-image` | Grok Imagine Image (T2I + editing) | ### Audio Generation | Model | Description | | ----------------------------- | ------------------------------- | | `suno-ai/music` | Suno Music Generation | | `suno-ai/add-vocals` | Add Vocals to Track | | `suno-ai/add-instrumental` | Add Instrumental | | `suno-ai/extend` | Extend Audio | | `suno-ai/cover` | Create Cover | | `suno-ai/stems` | Extract Stems | | `suno-ai/stems-all` | Extract All Stems | | `suno-ai/lyrics` | Generate Lyrics | | `suno-ai/wav` | WAV Export | | `elevenlabs/text-to-speech` | ElevenLabs Text-to-Speech | | `elevenlabs/text-to-dialogue` | ElevenLabs Multi-Voice Dialogue | | `elevenlabs/sound-effect` | ElevenLabs Sound Effects | | `elevenlabs/voice-isolation` | ElevenLabs Voice Isolation | | `elevenlabs/speech-to-text` | ElevenLabs Speech-to-Text | *** ## Model Parameters All tasks support `callback_url` (outside the `input` object) for webhook notifications. See [Webhooks & Callbacks](/api-reference/callbacks) for full payload formats and best practices. ### Google Veo 3.1 #### Generate Models: `google/veo-3.1-fast`, `google/veo-3.1-quality`, `google/veo-3.1-lite`, `google/veo-3.1-lite-relaxed` Veo supports text-to-video, first-frame, first-and-last-frame, and reference-to-video workflows. Frame mode and reference mode are mutually exclusive. | Mode | Fields | Availability | | ------------------ | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | | **Frame mode** | `start_image_url` \[+ `end_image_url`] | All models | | **Reference mode** | `reference_image_urls`, `reference_characters` \[+ `voice`] | Image references are available on all modes. Character references are available on Fast, Lite, and Lite Relaxed only. | | Parameter | Type | Required | Description | | ---------------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text prompt for video generation. Use `@ImageN` or `@CharacterN` to point at specific references. | | `aspect_ratio` | string | No | `"16:9"` (default) or `"9:16"` | | `duration` | integer | No | `4`, `6`, or `8` seconds. Default `4`. Must be `8` when any image or character reference is set. | | `seed` | integer | No | Reproducibility seed | | `start_image_url` | string | No | Public image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `end_image_url` | string | No | Public image URL used as the final frame. Requires `start_image_url`; cannot be used by itself. | | `reference_image_urls` | string\[] | No | Image references for reference-to-video. Max 3 total expanded image URLs across `reference_image_urls` and character images. Cannot be combined with start/end frame fields. | | `reference_characters` | array | No | Character references. Max 3 total expanded image URLs across images and character `image_urls`. Not available on Quality. | | `voice` | string | No | Voice preset ID. Requires at least 1 image or character reference. See [voices endpoint](/api-reference/resources#get-google-veo-voices). | Character items must be objects with `image_urls`, plus optional `name` and `description`. `image_url` and plain string character entries are not supported. Rejected combinations: `end_image_url` without `start_image_url`; frame fields with reference fields; `reference_characters` on `google/veo-3.1-quality`; any image or character reference with `duration` other than `8`; more than 3 total expanded image URLs; empty character `image_urls`; character `image_url`; plain string character entries. #### Extend Model: `google/veo-3.1-extend` Extend a previously generated video. Aspect ratio is inherited from the source task. | Parameter | Type | Required | Description | | ---------- | ------- | -------- | ----------------------------------------------------------- | | `prompt` | string | Yes | Text prompt for the extended content | | `task_id` | string | Yes | Task ID of a completed generation | | `model` | string | Yes | One of: `lite`, `fast`, `quality`, `lite-relaxed` | | `duration` | integer | No | Must be `8` (only supported value for extend). Default `8`. | | `seed` | integer | No | Reproducibility seed | #### Upscale Model: `google/veo-3.1-upscale` Upscale a completed video to a higher resolution. | Parameter | Type | Required | Description | | ------------ | ------ | -------- | --------------------------------- | | `task_id` | string | Yes | Task ID of a completed generation | | `resolution` | string | Yes | `"1080p"` or `"4k"` | *** ### Google Gemini Omni Flash Video Model: `google/gemini-omni-flash-video` Generate 4, 6, 8, or 10 second clips in text-to-video or reference-to-video mode. | Parameter | Type | Required | Description | | ---------------------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Main video prompt. Use `@ImageN` or `@CharacterN` to point at specific references. | | `seed` | integer | No | Reproducibility seed. If omitted, one is generated automatically. | | `aspect_ratio` | string | No | `"16:9"` (default) or `"9:16"` | | `duration` | integer | No | `4`, `6`, `8`, or `10` seconds. Default `4`. | | `reference_image_urls` | string\[] | No | Public image reference URLs. Max 7 total expanded image + character image URLs. | | `reference_characters` | array | No | Character references. Max 3 character items; expanded image URLs count toward the total 7 reference limit. | | `voice` | string | No | Request-level voice preset ID. Requires at least one image or character reference. See [voices endpoint](/api-reference/resources#get-google-veo-voices). | Start/end frame fields are not enabled for Gemini Omni Flash video generation. Use Veo 3.1 for first-frame or first-and-last-frame workflows. *** ### Google Gemini Omni Flash Video Edit Model: `google/gemini-omni-flash-video-edit` Edit an existing uploaded video. Provide exactly one source video URL in `reference_video_urls`. | Parameter | Type | Required | Description | | ---------------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `reference_video_urls` | string\[] | Yes | Public source video URL. Must contain exactly one URL. | | `prompt` | string | Yes | Edit instruction. Use `@Video1` to refer to the source video and `@ImageN`/`@CharacterN` for extra references. | | `reference_image_urls` | string\[] | No | Public image URLs used as edit references. | | `reference_characters` | array | No | Character references for the edit. Max 3 character items. Supports per-character `voice` or `custom_voice`. See [voices endpoint](/api-reference/resources#get-google-veo-voices). | | `seed` | integer | No | Reproducibility seed. If omitted, one is generated automatically. | | `start_frame` | integer | No | First source frame index included in the edit range. Default `0`. | | `end_frame` | integer | No | Last source frame index included in the edit range. Defaults to the detected final frame when available. | Limits: one video reference, up to 3 character references, up to 7 total video + image + character references, uploaded source video up to 1 GB and up to 30 seconds. Rejected combinations: `task_id`; missing, empty, or multiple `reference_video_urls`; `end_frame` lower than `start_frame`; more than 7 total references; empty character `image_urls`; character `image_url`; plain string character entries. *** ### Minimax Hailuo Models: `hailuo/minimax-2.0`, `hailuo/minimax-2.3`, `hailuo/minimax-2.3-fast` | Parameter | Type | Required | Description | | --------------------- | ------- | -------- | ---------------------------------------------------------------------------- | | `prompt` | string | Yes\* | Max 2000 chars. \*Required if no `start_image_url` | | `start_image_url` | string | Yes\* | Image URL (auto-uploaded). \*Required if no `prompt` (required for 2.3-fast) | | `end_image_url` | string | No | End frame image URL (minimax-2.0 only, 768p/1080p) | | `duration` | integer | No | `6` or `10` seconds. 1080p only supports `6` | | `resolution` | string | No | `"768p"` (default), `"1080p"` | | `prompt_optimization` | boolean | No | Let MiniMax optimize prompt | *** ### Kling v3.0 Omni Video Model: `kuaishou/kling-3.0-omni-video` | Parameter | Type | Required | Description | | ----------------- | --------- | ----------- | ----------------------------------------------------------------------------------------- | | `video_mode` | string | No | `"elements"` (default), `"start_end_frame"`, `"transform"`, `"video_reference"` | | `prompt` | string | Conditional | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | 3–15 seconds (default 5) | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"`, `"auto"` (start\_end\_frame only) | | `native_audio` | boolean | No | Generate AI audio (default false) | | `keep_audio` | boolean | No | Preserve audio from source video (default true) | | `image_urls` | string\[] | No | Up to 7 reference image URLs. Use `@Image1`, `@Image2` in prompt | | `start_frame_url` | string | No | First frame image URL (start\_end\_frame mode) | | `end_frame_url` | string | No | Last frame image URL (start\_end\_frame mode) | | `video_url` | string | No | Source video URL (transform/video\_reference modes) | | `multi_shots` | array | No | 2–6 shots, each `{ "prompt": string, "duration": int }`. Mutually exclusive with `prompt` | | `elements` | array | No | Character/object elements (IMAGE + VIDEO) | *** ### Kling O1 Video Model: `kuaishou/kling-o1-video` Same parameters as Omni 3.0 but does not support `multi_shots` or `native_audio`. Max duration 10s. | Parameter | Type | Required | Description | | ----------------- | --------- | -------- | ------------------------------------------------------------------------------- | | `video_mode` | string | No | `"elements"` (default), `"start_end_frame"`, `"transform"`, `"video_reference"` | | `prompt` | string | Yes | Text prompt | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | 3–10 seconds (default 5) | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"`, `"auto"` (start\_end\_frame only) | | `keep_audio` | boolean | No | Preserve audio from source video (default true) | | `image_urls` | string\[] | No | Up to 7 reference image URLs. Use `@Image1`, `@Image2` in prompt | | `start_frame_url` | string | No | First frame image URL (start\_end\_frame mode) | | `end_frame_url` | string | No | Last frame image URL (start\_end\_frame mode) | | `video_url` | string | No | Source video URL (transform/video\_reference modes) | *** ### Kling v3.0 Omni Video Edit Model: `kuaishou/kling-3.0-omni-video-edit` | Parameter | Type | Required | Description | | -------------- | --------- | -------- | ---------------------------------------------------------------- | | `video_url` | string | Yes | Source video URL to edit | | `prompt` | string | Yes | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` (default) or `"transform"` | | `keep_audio` | boolean | No | Preserve original audio (default false) | | `mode` | string | No | `"std"` (default) or `"pro"` | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"` | | `image_urls` | string\[] | No | Up to 4 reference image URLs. Use `@Image1`, `@Image2` in prompt | | `elements` | array | No | Up to 4 character/object elements | Duration is locked to the input video length. *** ### Kling O1 Video Edit Model: `kuaishou/kling-o1-video-edit` Same parameters as Omni 3.0 video edit but does not support `elements`. | Parameter | Type | Required | Description | | -------------- | --------- | -------- | ---------------------------------------------------------------- | | `video_url` | string | Yes | Source video URL to edit | | `prompt` | string | Yes | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` (default) or `"transform"` | | `keep_audio` | boolean | No | Preserve original audio (default false) | | `mode` | string | No | `"std"` (default) or `"pro"` | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"` | | `image_urls` | string\[] | No | Up to 4 reference image URLs. Use `@Image1`, `@Image2` in prompt | *** ### Kling v3.0 Video Model: `kuaishou/kling-3.0-video` | Parameter | Type | Required | Description | | ----------------- | ------- | ----------- | ----------------------------------------------------------------------------------------- | | `prompt` | string | Conditional | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | 3–15 seconds (default 5) | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"` | | `native_audio` | boolean | No | Generate AI audio (default true) | | `start_frame_url` | string | Yes | First frame image URL | | `end_frame_url` | string | No | Last frame image URL | | `elements` | array | No | Character/object elements | | `multi_shots` | array | No | 2–6 shots, each `{ "prompt": string, "duration": int }`. Mutually exclusive with `prompt` | *** ### Kling v2.6 Video Model: `kuaishou/kling-2.6-video` | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text prompt | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` or `10` seconds | | `native_audio` | boolean | No | Enable AI audio generation (default false). Requires pro mode | | `start_frame_url` | string | Yes | First frame image URL | | `end_frame_url` | string | No | Last frame image URL (not available with native\_audio) | | `voices` | array | No | Voice references (max 5, requires native\_audio). Each: `{ "voice_id": int }` or `{ "voice_url": string }` | *** ### Kling v2.5 Turbo Video Model: `kuaishou/kling-2.5-turbo-video` | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text prompt | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` or `10` seconds | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"`. Ignored when `start_frame_url` is set | | `start_frame_url` | string | No | First frame image URL | | `end_frame_url` | string | No | Last frame image URL | | `sound_effects` | object | No | `{ "sound": string, "music": string, "asmr_mode": boolean }`. Omit to disable audio | *** ### Kling v2.1 Video Model: `kuaishou/kling-2.1-video` Image-to-video only. | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text prompt | | `start_frame_url` | string | Yes | First frame image URL | | `end_frame_url` | string | No | Last frame image URL | | `duration` | integer | No | `5` or `10` seconds | | `mode` | string | No | `"pro"` (default). `"std"` or `"pro"` | | `sound_effects` | object | No | `{ "sound": string, "music": string, "asmr_mode": boolean }`. Omit to disable audio | *** ### Kling v2.1 Master Video Model: `kuaishou/kling-2.1-master-video` Pro-only. No end frame support. | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text prompt | | `duration` | integer | No | `5` or `10` seconds | | `start_frame_url` | string | No | First frame image URL (optional) | | `sound_effects` | object | No | `{ "sound": string, "music": string, "asmr_mode": boolean }`. Omit to disable audio | *** ### Kling v3.0 Motion Control Model: `kuaishou/kling-3.0-motion-control` | Parameter | Type | Required | Description | | ----------------------- | ------- | -------- | ----------------------------------------------- | | `prompt` | string | Yes | Text prompt describing the motion | | `image_url` | string | Yes | Character/subject image URL | | `video_url` | string | Yes | Motion reference video URL | | `mode` | string | No | `"std"` (default) or `"pro"` | | `keep_audio` | boolean | No | Preserve audio from motion video (default true) | | `character_orientation` | string | No | `"video"` (default) or `"image"` | | `elements` | array | No | Additional character/object elements | *** ### Kling v2.6 Motion Control Model: `kuaishou/kling-2.6-motion-control` | Parameter | Type | Required | Description | | ----------------------- | ------- | -------- | ----------------------------------------------- | | `prompt` | string | Yes | Text prompt describing the motion | | `image_url` | string | Yes | Character/subject image URL | | `video_url` | string | Yes | Motion reference video URL | | `mode` | string | No | `"std"` (default) or `"pro"` | | `keep_audio` | boolean | No | Preserve audio from motion video (default true) | | `character_orientation` | string | No | `"video"` (default) or `"image"` | *** ### Grok Imagine Video Extend Model: `xai/grok-imagine-video-extend` Extend a previously generated video via HTTP streaming. Two mutually exclusive modes: | Mode | How to activate | Behaviour | | ---------- | ---------------------- | ----------------------------------------------------------------------------------------- | | **Preset** | Provide `video_preset` | The preset controls the video style; `prompt`, `extend_at`, `extend_duration` are ignored | | **Custom** | Omit `video_preset` | You control timing and prompt; `prompt`, `extend_at`, `extend_duration` are required | | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------------------------------------- | | `task_id` | string | Yes | Task ID of a completed video generation | | `video_preset` | string | No | `"spicy"` or `"normal"`. Enables preset mode | | `prompt` | string | No | Text prompt to guide the extension. **Required in custom mode** | | `extend_at` | float | No | Second to start the extension from. **Required in custom mode** | | `extend_duration` | int | No | `6` or `10` seconds. **Required in custom mode** | *** ### GPT Image Models: `openai/gpt-image-2` | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ------------------------------------------- | | `prompt` | string | Yes | Text description | | `image_urls` | array | No | Reference image URLs for image editing mode | | `aspect_ratio` | string | No | `1:1`, `3:2`, `2:3`, `16:9`. Default: `1:1` | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | *** ### Nano Banana Models: `google/nano-banana`, `google/nano-banana-pro` | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------------------------------------- | | `prompt` | string | Yes | Text description | | `aspect_ratio` | string | Yes | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` | | `image_urls` | array | No | Reference images | | `resolution` | string | No | Pro only: `1k`, `2k`, `4k` | *** ### Flux.2 Models: `black-forest-labs/flux.2-pro`, `black-forest-labs/flux.2-flex`, `black-forest-labs/flux.2-max` | Parameter | Type | Required | Description | | -------------- | ------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description | | `image_urls` | array | No | Reference images (Pro/Max: 8, Flex: 10) | | `aspect_ratio` | string | No | `auto`, `1:1`, `4:3`, `16:9`, `3:2`, `2:3`, `9:16`, `3:4` (Max also: `5:4`, `21:9`) | | `quality` | string | No | `1K` or `2K` | | `steps` | integer | No | Flex only: 1-50 (more = higher quality) | | `cfg` | number | No | Flex only: 1.5-10 (higher = follows prompt more strictly) | *** ### Qwen Image 2.0 Pro Model: `alibaba/qwen-image-2.0-pro` — **\$0.0525/image** Best quality. Text rendering, realistic textures. Automatically switches between T2I and editing based on whether `image_urls` is provided. | Parameter | Type | Required | Description | | ----------------- | --------- | -------- | --------------------------------------------- | | `prompt` | string | Yes | Text prompt (max 800 chars) | | `aspect_ratio` | string | No | `1:1` (default), `16:9`, `9:16`, `4:3`, `3:4` | | `image_urls` | string\[] | No | Omit for T2I. Provide image URLs for editing | | `negative_prompt` | string | No | What to avoid (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default true) | | `seed` | integer | No | Seed for reproducibility | *** ### Qwen Image 2.0 Model: `alibaba/qwen-image-2.0` — **\$0.0245/image** Faster version of 2.0 Pro. Same capabilities and parameters. *** ### Qwen Image Max Model: `alibaba/qwen-image-max` — T2I **$0.0525/image** / Edit **$0.0525/image** Highest realism, fewest AI artifacts. Editing uses a specialized edit model under the hood (industrial design, geometric reasoning, character consistency). Same parameters as Qwen Image 2.0 Pro. *** ### Qwen Image Plus Model: `alibaba/qwen-image-plus` — T2I **$0.021/image** / Edit **$0.021/image** Diverse artistic styles, fast. Editing uses a specialized edit model under the hood. Same parameters as Qwen Image 2.0 Pro. *** ### Qwen Image Model: `alibaba/qwen-image` — T2I **$0.0245/image** / Edit **$0.0315/image** Older base model. Editing uses a specialized edit model under the hood. Same parameters as Qwen Image 2.0 Pro. *** ### Z-Image Turbo Model: `alibaba/z-image-turbo` — \*\*$0.0105/image** (or $0.021 with prompt rewriting) Lightweight fast T2I only. Chinese and English text rendering. | Parameter | Type | Required | Description | | --------------- | ------- | -------- | ----------------------------------------------------------- | | `prompt` | string | Yes | Text prompt (max 800 chars) | | `aspect_ratio` | string | No | `1:1` (default), `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` | | `prompt_extend` | boolean | No | Prompt rewriting (default false, doubles cost) | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.7 Pro Image Model: `alibaba/wan-2.7-pro-image` — **\$0.0525/image** Highest quality. Thinking mode for T2I. Supports editing with up to 9 images. Up to 4K resolution for T2I. | Parameter | Type | Required | Description | | --------------- | --------- | -------- | ------------------------------------------------------------------------------------------ | | `prompt` | string | Yes | Text prompt (max 5000 chars) | | `aspect_ratio` | string | No | `1:1` (default), `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`. Editing preserves input ratio | | `image_urls` | string\[] | No | Omit for T2I. Up to 9 images for editing | | `thinking_mode` | boolean | No | Better quality, slower (default true). T2I only | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.7 Image Model: `alibaba/wan-2.7-image` — **\$0.021/image** Faster variant of 2.7 Pro. Same capabilities, max 2K resolution. Same parameters as Wan 2.7 Pro Image. *** ### Wan 2.6 Image Model: `alibaba/wan-2.6-image` — **\$0.021/image** Automatically selects T2I or editing mode based on `image_urls`. Supports style transfer with 1–4 reference images. | Parameter | Type | Required | Description | | ----------------- | --------- | -------- | ----------------------------------------------------------- | | `prompt` | string | Yes | Text prompt (max 2000 chars) | | `aspect_ratio` | string | No | `1:1` (default), `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` | | `image_urls` | string\[] | No | Omit for T2I. 1–4 images for editing/style transfer | | `negative_prompt` | string | No | What to avoid (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default true) | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.5 Image Model: `alibaba/wan-2.5-image` — **\$0.021/image** Automatically selects T2I or editing mode based on `image_urls`. Supports 1–3 reference images. Same parameters as Wan 2.6 Image. *** ### Wan 2.2 Image Model: `alibaba/wan-2.2-image` — **\$0.035/image** T2I only. Does not accept `image_urls`. | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | --------------------------------------------- | | `prompt` | string | Yes | Text prompt (max 500 chars) | | `aspect_ratio` | string | No | `1:1` (default), `3:4`, `4:3`, `9:16`, `16:9` | | `negative_prompt` | string | No | What to avoid | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.2 Flash Image Model: `alibaba/wan-2.2-flash-image` — **\$0.0175/image** Fast T2I only. Cheapest Wan image model. Same parameters as Wan 2.2 Image. *** ### Grok Imagine Image Model: `xai/grok-imagine-image` — Pro mode: **\$0.025/image** Generate and edit images using xAI's Grok Imagine model. When `image_urls` is provided, the model runs in edit mode. | Parameter | Type | Required | Description | | ----------------- | --------- | -------- | ------------------------------------------------------- | | `prompt` | string | Yes | Text description or edit instruction | | `aspect_ratio` | string | No | `"1:1"` (default), `"2:3"`, `"3:2"`, `"9:16"`, `"16:9"` | | `image_urls` | string\[] | No | 1–5 reference image URLs (triggers edit mode) | | `enable_pro` | boolean | No | Enable pro mode for higher quality results | | `upsample_prompt` | boolean | No | Let AI enhance your prompt for better results | | `enable_nsfw` | boolean | No | Enable NSFW content generation | *** ### Suno Music Model: `suno-ai/music` | Parameter | Type | Required | Description | | ------------------------ | ------- | -------- | ----------------------------------------------------------------------------------- | | `mv` | string | Yes | Model version: `chirp-v3-5`, `chirp-v4`, `chirp-auk`, `chirp-bluejay`, `chirp-crow` | | `custom` | boolean | Yes | `false` for simple mode, `true` for custom mode | | `gpt_description_prompt` | string | No | Simple mode: song description with lyrics | | `prompt` | string | No | Custom mode: detailed lyrics/prompt | | `tags` | string | No | Custom mode: genre/style tags | | `title` | string | No | Song title | | `make_instrumental` | boolean | No | Generate instrumental only | | `negative_tags` | string | No | Custom mode: styles to avoid | | `persona_id` | string | No | Custom voice ID from Suno voice creation; music uses that voice for vocals | *** ### Suno Audio Operations Models: `suno-ai/add-vocals`, `suno-ai/add-instrumental`, `suno-ai/extend`, `suno-ai/cover` | Parameter | Type | Required | Description | | ------------------------ | ------- | -------- | ---------------------------------------- | | `mv` | string | Yes | Model version | | `clip_id` | string | Yes\* | Existing clip ID | | `audio_url` | string | Yes\* | Audio file URL (alternative to clip\_id) | | `custom` | boolean | Yes | Simple or custom mode | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode prompt | | `continue_at` | number | No | Extend: time in seconds to continue from | | `start_s` | number | No | Start time for overlay | | `end_s` | number | No | End time for overlay | *** ### Suno Stems Models: `suno-ai/stems`, `suno-ai/stems-all` | Parameter | Type | Required | Description | | --------- | ------ | -------- | ----------------------------- | | `clip_id` | string | Yes | Clip ID to extract stems from | | `title` | string | No | Title for extraction | *** ### Suno Lyrics Model: `suno-ai/lyrics` | Parameter | Type | Required | Description | | --------- | ------ | -------- | ------------------------------------ | | `prompt` | string | Yes | Description of lyrics to generate | | `mv` | string | Yes | Lyrics model: `remi-v1` or `default` | *** ### Rate Limit Error Response ```json theme={null} { "success": false, "code": 429, "data": { "message": "You have been ratelimited, this temporary restriction will be lifted in: 45 seconds" } } ``` *** ## Error Responses | Code | Description | | ---- | ----------------------------------------- | | 400 | Bad Request - Invalid parameters | | 401 | Unauthorized - Invalid or missing API key | | 402 | Payment Required - Insufficient balance | | 404 | Not Found - Task or model not found | | 429 | Too Many Requests - Rate limited | | 500 | Internal Server Error | ### Error Response Format ```json theme={null} { "success": false, "code": 400, "data": { "message": "Description of the error", "request_id": "abc123" } } ``` # Introduction Source: https://docs.unifically.com/introduction Welcome to Unifically - Your unified API for AI Models Unifically Logo Unifically Logo ## Welcome to Unifically Unifically provides a **unified API** for accessing multiple AI models including: * **Image Generation** - GPT Image, Nano Banana (Gemini 2.5 Flash), Flux.2 * **Video Generation** - Veo 3.1, Kling 3.0/2.6/2.1, Minimax Hailuo 2.0 * **Audio Generation** - Suno API for music and voice, ElevenLabs TTS ## For LLMs & AI Agents Unifically publishes machine-readable docs that any LLM or coding agent can ingest directly: * **`llms.txt`** — concise index of every page, ideal for in-context routing * **`llms-full.txt`** — the entire documentation site as a single plain-text file Compact link index of the docs for LLM context Full documentation as a single plain-text file ## Getting Started Sign up and get your API key to start using Unifically Create and manage AI generation tasks with a unified interface GPT Image, Nano Banana, Flux.2, and more Veo 3.1, Kling, Hailuo, and more ## Features One API endpoint (`/v1/tasks`) for all models - video, image, and audio generation One API key for all models - no need to manage multiple accounts High-performance infrastructure with 99.9% uptime No subscriptions - only pay for what you use Clean REST API with comprehensive documentation and examples ## Quick Start ```bash theme={null} # Create a task curl -X POST https://api.unifically.com/v1/tasks \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" } }' # Check status curl https://api.unifically.com/v1/tasks/{task_id} \ -H "Authorization: Bearer YOUR_API_KEY" ``` Replace `YOUR_API_KEY` with your actual API key from [unifically.com](https://unifically.com) ## Support Need help? Check out the documentation sections or contact our support team at [contact@unifically.com](mailto:contact@unifically.com) # Sound Effect Source: https://docs.unifically.com/models/audio/elevenlabs/sound-effect Generate sound effects with ElevenLabs Generate sound effects from text descriptions using ElevenLabs AI. ## Model ``` elevenlabs/sound-effect ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------ | ------------- | -------- | ------- | ----------------------------------------------- | | `text` | string | Yes | - | Description of the sound effect | | `prompt_influence` | number | No | `0.5` | How much the prompt influences generation (0-1) | | `duration` | number/string | No | `auto` | Duration in seconds (0.5-30) or `"auto"` | | `loop` | boolean | No | `false` | If true, audio loops seamlessly | ## Duration Options | Value | Description | | ------------ | ----------------------------------------------- | | `"auto"` | Automatic duration based on the sound (default) | | `0.5` - `30` | Specific duration in seconds | ## Example - Basic Sound Effect ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "wolf howling at the moon" } }' ``` ## Example - With Duration ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "thunder rumbling in the distance", "duration": 5, "prompt_influence": 0.7 } }' ``` ## Example - Looping Sound ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "rain falling on a window", "loop": true, "duration": 10 } }' ``` ## Example - Ambient Sound ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "busy coffee shop with people chatting and cups clinking", "prompt_influence": 0.8, "duration": "auto", "loop": true } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.storagecdn.online/abc123.mp3" } } } ``` # Speech-to-Text Source: https://docs.unifically.com/models/audio/elevenlabs/speech-to-text Transcribe audio to text with ElevenLabs Transcribe audio files to text using ElevenLabs Scribe v2 with word-level timestamps, speaker diarization, and entity detection. ## Model ``` elevenlabs/speech-to-text ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------------ | ------------ | -------- | ----------- | ----------------------------------------------------------------------------------------------------- | | `audio_url` | string | Yes | - | URL of the audio file to transcribe | | `language_code` | string | No | auto-detect | ISO 639-1/639-3 language code | | `diarize` | boolean | No | `false` | Identify who is speaking (speaker diarization) | | `num_speakers` | integer | No | auto | Max number of speakers (up to 32) | | `diarization_threshold` | number | No | `0.22` | Higher = fewer speakers, lower = more. Only used when `diarize` is true and `num_speakers` is not set | | `timestamps_granularity` | string | No | `word` | `"none"`, `"word"`, or `"character"` | | `tag_audio_events` | boolean | No | `true` | Tag events like (laughter), (music), (footsteps) | | `entity_detection` | string/array | No | - | Detect entities: `"all"`, or specific types like `"pii"`, `"phi"`, `"pci"`, `"offensive_language"` | | `temperature` | number | No | `0` | Randomness (0–2). Higher = more diverse output | | `seed` | integer | No | - | Seed for deterministic results (0–2147483647) | | `keyterms` | array | No | - | Words/phrases to boost recognition accuracy (max 100, each under 50 chars) | ## Example - Basic Transcription ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/speech-to-text", "input": { "audio_url": "https://example.com/audio.mp3" } }' ``` ## Example - With Diarization ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/speech-to-text", "input": { "audio_url": "https://example.com/meeting.mp3", "diarize": true, "num_speakers": 3, "language_code": "en", "timestamps_granularity": "word", "tag_audio_events": true, "entity_detection": "all", "keyterms": ["ElevenLabs", "API"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "language_code": "eng", "language_probability": 0.97, "text": "Hello world", "words": [ { "text": "Hello", "start": 0.0, "end": 0.5, "type": "word", "speaker_id": "speaker_0" }, { "text": " ", "start": 0.5, "end": 0.6, "type": "spacing" }, { "text": "world", "start": 0.6, "end": 1.0, "type": "word", "speaker_id": "speaker_0" } ] } } } ``` ## Word Object Each word in the `words` array contains: | Field | Type | Description | | ------------ | ------ | ---------------------------------------------- | | `text` | string | The transcribed text | | `start` | number | Start time in seconds | | `end` | number | End time in seconds | | `type` | string | `"word"`, `"spacing"`, or audio event type | | `speaker_id` | string | Speaker identifier (when `diarize` is enabled) | # Text-to-Dialogue Source: https://docs.unifically.com/models/audio/elevenlabs/text-to-dialogue Generate multi-voice dialogue with ElevenLabs Generate multi-voice dialogue audio using ElevenLabs eleven\_v3 model with support for multiple speakers and emotion tags. ## Model ``` elevenlabs/text-to-dialogue ``` ## Parameters | Parameter | Type | Required | Default | Description | | --------------- | ------ | -------- | ------- | ---------------------------------------------------------- | | `dialogue` | array | Yes | - | Array of dialogue objects with `text` and `voice` | | `language_code` | string | No | `en` | Language code for generation (`"auto"` defaults to `"en"`) | | `stability` | number | No | `0.5` | Voice stability 0-1 | ### Dialogue Object Each item in the `dialogue` array must contain: | Parameter | Type | Required | Description | | --------- | ------ | -------- | ---------------------------------------------------------------- | | `text` | string | Yes | Text for this speaker (supports emotion tags like `[excitedly]`) | | `voice` | string | Yes | [Voice ID](/api-reference/resources#elevenlabs) for this speaker | Text-to-Dialogue always uses the `eleven_v3` model - no model selection needed. ## Resources Get available voices from the [Resources API](/api-reference/resources): ``` GET /v1/resources/elevenlabs/voices ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/text-to-dialogue", "input": { "stability": 0.5, "language_code": "auto", "dialogue": [ { "text": "[excitedly] Hey Jessica! Have you tried the new ElevenLabs V3?", "voice": "TX3LPaxmHKxFdv7VOQHJ" }, { "text": "[curiously] Yeah, just got it! The emotion is so amazing.", "voice": "cgSgspJ2msm6clMCkdW9" } ] } }' ``` ## Example - Longer Conversation ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/text-to-dialogue", "input": { "stability": 0.6, "dialogue": [ { "text": "[warmly] Welcome to the podcast! Today we have a special guest.", "voice": "TX3LPaxmHKxFdv7VOQHJ" }, { "text": "[grateful] Thanks for having me! I am excited to be here.", "voice": "cgSgspJ2msm6clMCkdW9" }, { "text": "[interested] So tell us about your latest project.", "voice": "TX3LPaxmHKxFdv7VOQHJ" }, { "text": "[enthusiastically] Well, it all started last year when...", "voice": "cgSgspJ2msm6clMCkdW9" } ] } }' ``` ## Emotion Tags You can add emotion tags in square brackets at the start of text to control the speaker's tone: * `[excitedly]` - Excited, energetic delivery * `[curiously]` - Questioning, interested tone * `[warmly]` - Friendly, welcoming tone * `[sadly]` - Melancholic delivery * `[angrily]` - Frustrated, angry tone * `[whispered]` - Quiet, whispered speech * `[shouted]` - Loud, shouted delivery ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.storagecdn.online/abc123.mp3" } } } ``` # Text-to-Speech Source: https://docs.unifically.com/models/audio/elevenlabs/text-to-speech Generate speech with ElevenLabs TTS Generate high-quality speech audio from text using ElevenLabs models with a variety of voices. ## Model ``` elevenlabs/text-to-speech ``` ## Parameters | Parameter | Type | Required | Default | Description | | ---------------- | ------- | -------- | ------------------- | ------------------------------------------------------ | | `text` | string | Yes | - | Text to convert to speech | | `voice` | string | Yes | - | [Voice ID](/api-reference/resources#elevenlabs) to use | | `model_id` | string | No | `eleven_flash_v2_5` | TTS model (see models below) | | `output_format` | string | No | `mp3_44100_128` | Audio output format (see formats below) | | `language_code` | string | No | `auto` | ISO 639-1 language code to force language | | `seed` | integer | No | - | Seed for deterministic output (0–4294967295) | | `voice_settings` | object | No | - | Fine-tune voice behavior (see below) | ### voice\_settings | Field | Type | Description | | ------------------- | ------- | --------------------------------------------------------------------- | | `stability` | number | 0–1. Lower = more emotional range, higher = more monotone | | `similarity_boost` | number | 0–1. How closely to match the original voice | | `style` | number | 0–1. Amplifies the style of the original speaker. Increases latency | | `speed` | number | Speech speed multiplier. `1.0` = normal, `<1` = slower, `>1` = faster | | `use_speaker_boost` | boolean | Boost similarity to original voice. Slightly increases latency | ## Available Models | Model | Description | Languages | Char Limit | | ------------------------ | ------------------------------------ | --------- | ---------- | | `eleven_flash_v2_5` | Ultra-fast, low latency (\~75ms) | 32 | 40,000 | | `eleven_turbo_v2_5` | Balanced quality and speed (\~250ms) | 32 | 40,000 | | `eleven_multilingual_v2` | Highest quality, rich emotion | 29 | 10,000 | | `eleven_v3` | Most expressive, dramatic delivery | 70+ | 5,000 | ## Output Formats | Format | Description | | ---------------- | ----------------------------- | | `mp3_22050_32` | MP3 22.05kHz 32kbps | | `mp3_44100_64` | MP3 44.1kHz 64kbps | | `mp3_44100_96` | MP3 44.1kHz 96kbps | | `mp3_44100_128` | MP3 44.1kHz 128kbps (default) | | `mp3_44100_192` | MP3 44.1kHz 192kbps | | `opus_48000_32` | Opus 48kHz 32kbps | | `opus_48000_64` | Opus 48kHz 64kbps | | `opus_48000_96` | Opus 48kHz 96kbps | | `opus_48000_128` | Opus 48kHz 128kbps | | `opus_48000_192` | Opus 48kHz 192kbps | | `pcm_16000` | Raw PCM 16kHz | | `pcm_22050` | Raw PCM 22.05kHz | | `pcm_24000` | Raw PCM 24kHz | | `pcm_44100` | Raw PCM 44.1kHz | | `pcm_48000` | Raw PCM 48kHz | | `wav_44100` | WAV 44.1kHz | | `ulaw_8000` | μ-law 8kHz (Twilio) | | `alaw_8000` | A-law 8kHz | ## Resources Get available voices from the [Resources API](/api-reference/resources): ``` GET /v1/resources/elevenlabs/voices ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/text-to-speech", "input": { "text": "Hello world, this is a test.", "voice": "TX3LPaxmHKxFdv7VOQHJ", "model_id": "eleven_flash_v2_5", "output_format": "mp3_44100_128", "language_code": "en", "seed": 42, "voice_settings": { "stability": 0.5, "similarity_boost": 0.75, "speed": 1.0 } } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.storagecdn.online/audio/abc123.mp3" } } } ``` # Voice Changer Source: https://docs.unifically.com/models/audio/elevenlabs/voice-changer Convert voice in audio with ElevenLabs Convert the voice in an audio file to a target ElevenLabs voice using speech-to-speech technology. ## Model ``` elevenlabs/voice-changer ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------------- | ------- | -------- | ---------------------------- | ----------------------------------------------------------------- | | `audio_url` | string | Yes | - | URL of the source audio file to convert | | `voice_id` | string | Yes | - | Target [ElevenLabs voice ID](/api-reference/resources#elevenlabs) | | `model_id` | string | No | `eleven_multilingual_sts_v2` | ElevenLabs speech-to-speech model ID | | `output_format` | string | No | - | Audio output format (e.g. `mp3_44100_128`) | | `file_format` | string | No | - | Input audio format hint: `pcm_s16le_16` or `other` | | `remove_background_noise` | boolean | No | - | Strip background noise from input audio before conversion | | `seed` | integer | No | - | Random seed for reproducible generation (0–4294967295) | | `voice_settings` | object | No | - | Advanced voice configuration overrides (see below) | ### voice\_settings | Field | Type | Description | | ------------------- | ------- | ------------------------------------------ | | `stability` | number | 0–1. Voice stability | | `similarity_boost` | number | 0–1. How closely to match the target voice | | `style` | number | 0–1. Style exaggeration | | `speed` | number | Speech speed multiplier | | `use_speaker_boost` | boolean | Boost speaker clarity | ## Resources Get available voices from the [Resources API](/api-reference/resources): ``` GET /v1/resources/elevenlabs/voices ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/voice-changer", "input": { "audio_url": "https://example.com/source-audio.mp3", "voice_id": "TX3LPaxmHKxFdv7VOQHJ", "model_id": "eleven_multilingual_sts_v2", "output_format": "mp3_44100_128", "remove_background_noise": true, "seed": 42, "voice_settings": { "stability": 0.5, "similarity_boost": 0.75, "style": 0.5, "speed": 1.0, "use_speaker_boost": true } } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.storagecdn.online/audio/abc123.mp3" } } } ``` # Voice Isolation Source: https://docs.unifically.com/models/audio/elevenlabs/voice-isolation Isolate vocals from audio with ElevenLabs Isolate vocals from audio files using ElevenLabs AI, removing background music and noise. ## Model ``` elevenlabs/voice-isolation ``` ## Parameters | Parameter | Type | Required | Description | | ----------- | ------ | -------- | -------------------------------------------- | | `audio_url` | string | Yes | URL of the audio file to isolate vocals from | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/voice-isolation", "input": { "audio_url": "https://example.com/audio.mp3" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.storagecdn.online/abc123.mp3" } } } ``` # Add Instrumental Source: https://docs.unifically.com/models/audio/suno/add-instrumental Add instrumental backing to uploaded music Add instrumental backing to uploaded music. Only works with uploaded audio, not Suno-generated clips. ## Model ``` suno-ai/add-instrumental ``` ## Parameters | Parameter | Type | Required | Description | | ------------------------ | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `mv` | string | Yes | Model version | | `clip_id` | string | Yes | Clip ID from uploaded audio | | `audio_url` | string | No | Audio file URL | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode prompt | | `start_s` | number | No | Start time in seconds | | `end_s` | number | No | End time in seconds | | `title` | string | No | Title for result | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | ## Example - Simple Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/add-instrumental", "input": { "mv": "chirp-bluejay", "clip_id": "ec0be483-2de2-4abc-a5ce-3d8258f52ed4", "gpt_description_prompt": "Hip-hop beats with 808 bass", "start_s": 0, "end_s": 60 } }' ``` ## Example - Custom Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/add-instrumental", "input": { "mv": "chirp-bluejay", "clip_id": "ec0be483-2de2-4abc-a5ce-3d8258f52ed4", "prompt": "Rock guitar and drums with heavy bass", "title": "With Instrumental", "start_s": 0, "end_s": 60 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Add Vocals Source: https://docs.unifically.com/models/audio/suno/add-vocals Add vocals to uploaded music Add vocals to uploaded music. Only works with uploaded audio, not Suno-generated clips. ## Model ``` suno-ai/add-vocals ``` ## Parameters | Parameter | Type | Required | Description | | ------------------------ | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `mv` | string | Yes | Model version | | `clip_id` | string | Yes | Clip ID from uploaded audio | | `audio_url` | string | No | Audio file URL | | `gpt_description_prompt` | string | No | Vocal description/lyrics | | `prompt` | string | No | Custom mode prompt | | `start_s` | number | No | Start time in seconds | | `end_s` | number | No | End time in seconds | | `make_instrumental` | boolean | No | Generate instrumental | | `title` | string | No | Title for result | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/add-vocals", "input": { "mv": "chirp-bluejay", "clip_id": "ec0be483-2de2-4abc-a5ce-3d8258f52ed4", "gpt_description_prompt": "[Verse 1]\nNew vocal lyrics here", "start_s": 10, "end_s": 60 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Cover Generation Source: https://docs.unifically.com/models/audio/suno/cover Create cover versions with Suno AI Generate a cover version of an existing song or uploaded audio. ## Model ``` suno-ai/cover ``` ## Parameters | Parameter | Type | Required | Description | | ------------------------ | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `mv` | string | Yes | Model version | | `custom` | boolean | Yes | Simple or custom mode | | `clip_id` | string | No | Existing Suno clip ID | | `audio_url` | string | No | Audio file URL | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode prompt | | `title` | string | No | Title for cover | | `make_instrumental` | boolean | No | Generate instrumental | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | ## Example - Cover Existing Clip ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/cover", "input": { "mv": "chirp-bluejay", "custom": false, "clip_id": "5a6bb955-1536-4f43-877a-b4aa9fb18a4e", "gpt_description_prompt": "Jazz style cover with saxophone" } }' ``` ## Example - Upload and Cover ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/cover", "input": { "mv": "chirp-bluejay", "custom": true, "audio_url": "https://example.com/audio.mp3", "prompt": "Acoustic guitar cover with soft vocals", "title": "Acoustic Cover" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Extend Music Source: https://docs.unifically.com/models/audio/suno/extend Extend existing songs with Suno AI Extend an existing song or uploaded audio. ## Model ``` suno-ai/extend ``` ## Parameters | Parameter | Type | Required | Description | | ------------------------ | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `mv` | string | Yes | Model version | | `custom` | boolean | Yes | Simple or custom mode | | `clip_id` | string | No | Existing Suno clip ID to extend | | `audio_url` | string | No | Audio file URL to extend | | `continue_at` | number | Yes | Time in seconds where extension should begin | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode lyrics/prompt | | `title` | string | No | Title for extended version | | `make_instrumental` | boolean | No | Generate instrumental | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | Provide either `clip_id` (for Suno-generated clips) or `audio_url` (for uploaded audio). ## Example - Extend Existing Clip ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/extend", "input": { "mv": "chirp-bluejay", "custom": false, "clip_id": "69ad968a-23c4-40e0-9cdc-80f9649c5209", "continue_at": 99.6, "gpt_description_prompt": "Continue the epic chorus" } }' ``` ## Example - Upload and Extend ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/extend", "input": { "mv": "chirp-bluejay", "custom": true, "audio_url": "https://example.com/audio.mp3", "continue_at": 60, "prompt": "[Verse 3]\nExtended lyrics here...", "title": "Extended Version" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Generate Lyrics Source: https://docs.unifically.com/models/audio/suno/lyrics Generate lyrics with Suno AI Generate AI-powered lyrics based on a description. ## Model ``` suno-ai/lyrics ``` ## Parameters | Parameter | Type | Required | Description | | --------- | ------ | -------- | ------------------------------------ | | `prompt` | string | Yes | Description of lyrics to generate | | `mv` | string | Yes | Lyrics model: `remi-v1` or `default` | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/lyrics", "input": { "prompt": "A chill rock song about summer days at the beach", "mv": "remi-v1" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Completed Response The API returns two variations of lyrics (a and b): ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "fd743167-d03d-4c48-84c1-2ca01002562b", "status": "completed", "output": { "a": { "text": "[Verse]\nOut in the yard\nCrawlin' with all the animals...", "title": "All the Days", "tags": ["chill rock", "rock"] }, "b": { "text": "[Verse]\nGimme those nights on a beach somewhere...", "title": "Summer Days", "tags": ["rock", "electric guitar", "chill"] } } } } ``` # Music Generation Source: https://docs.unifically.com/models/audio/suno/music Generate music with Suno AI Generate complete songs using Suno AI with simple or custom mode. To sing with a voice you created via [Voice Creation](/models/audio/suno/voice), pass its `persona_id` in the request input. ## Model ``` suno-ai/music ``` ## Parameters | Parameter | Type | Required | Description | | ------------------------ | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ | | `mv` | string | Yes | Model version (see below) | | `custom` | boolean | Yes | `false` for simple mode, `true` for custom mode | | `gpt_description_prompt` | string | No | Simple mode: song description with lyrics | | `prompt` | string | No | Custom mode: detailed lyrics/prompt | | `tags` | string | No | Custom mode: genre/style tags | | `title` | string | No | Song title | | `make_instrumental` | boolean | No | Generate instrumental only | | `negative_tags` | string | No | Custom mode: styles to avoid | | `persona_id` | string | No | ID of a custom voice from [Voice Creation](/models/audio/suno/voice). When set, the generated music uses that voice for vocals | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model definition — see [Custom Model](#custom-model) | ## Model Versions | Version | Description | | --------------- | ------------------------------------------------------------------------------------ | | `chirp-v3-5` | Version 3.5 | | `chirp-v4` | Version 4.0 | | `chirp-auk` | Version 4.5 | | `chirp-bluejay` | Version 4.5+ | | `chirp-crow` | Version 5.0 | | `chirp-fenix` | Version 5.5 | | `chirp-custom` | Inline custom model trained from your own tracks (see [Custom Model](#custom-model)) | ## Model Limits | Version | Prompt Limit | Style Limit | | --------------------- | ------------ | ----------- | | v3.5, v4 | 3,000 chars | 200 chars | | v4.5, v4.5+, v5, v5.5 | 5,000 chars | 1,000 chars | | Simple Mode | 500 chars | - | ## Example - Simple Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/music", "input": { "mv": "chirp-bluejay", "custom": false, "gpt_description_prompt": "[Verse 1]\nHello world\n[Chorus]\nThis is my song", "make_instrumental": false, "title": "My First Song" } }' ``` ## Example - Custom Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/music", "input": { "mv": "chirp-bluejay", "custom": true, "prompt": "[Verse 1]\nWalking down the street at night...", "tags": "pop, electronic, upbeat", "title": "Night Walk", "negative_tags": "metal, jazz" } }' ``` ## Custom Model Set `mv` to `chirp-custom` and pass an inline `custom_model` object to generate music in the style of your own reference tracks. The custom model is ephemeral — it's trained for the request and discarded once generation completes. Pass the same `custom_model` payload on every request you want to use that style. ### `custom_model` fields | Field | Type | Required | Description | | ------------ | ------------- | -------- | --------------------------- | | `name` | string | Yes | Model name | | `audio_urls` | list\[string] | Yes | 6–24 audio URLs to train on | ### Example - Custom Model ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/music", "input": { "mv": "chirp-custom", "custom": true, "custom_model": { "name": "audio model v1", "audio_urls": [ "https://example.com/track1.mp3", "https://example.com/track2.mp3", "https://example.com/track3.mp3", "https://example.com/track4.mp3", "https://example.com/track5.mp3", "https://example.com/track6.mp3" ] }, "prompt": "[Verse 1]\nWalking down the street at night...", "tags": "pop, electronic, upbeat", "title": "Night Walk" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Sound Effects Source: https://docs.unifically.com/models/audio/suno/sound Generate sound effects with Suno AI Generate sound effects (not music) using Suno AI. ## Model ``` suno-ai/sound ``` ## Parameters | Parameter | Type | Required | Default | Description | | --------------- | ------ | -------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | — | Sound description (e.g. `"dog barking in street"`) | | `mv` | string | Yes | — | Model version (e.g. `chirp-fenix`) | | `title` | string | No | — | Sound title | | `negative_tags` | string | No | — | Tags to avoid | | `bpm` | int | No | — | Tempo / beats per minute (1–300) | | `key` | string | No | — | Musical key (see Valid Keys) | | `type` | string | No | `"one-shot"` | `"one-shot"` or `"loop"` | | `custom_model` | object | No | — | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | ## Valid Keys | Mode | Keys | | ----- | ---------------------------------------------------------------- | | Major | `C` `C#` `D` `D#` `E` `F` `F#` `G` `G#` `A` `A#` `B` | | Minor | `Cm` `C#m` `Dm` `D#m` `Em` `Fm` `F#m` `Gm` `G#m` `Am` `A#m` `Bm` | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/sound", "input": { "prompt": "dog barking in street", "mv": "chirp-fenix", "title": "Dog Bark", "type": "one-shot", "bpm": 120, "key": "Am" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` Status response uses the same clip format as [Music Generation](/models/audio/suno/music). # Extract Stems Source: https://docs.unifically.com/models/audio/suno/stems Extract vocals and instrumental tracks Extract vocals and instrumental tracks from a song. ## Models | Model | Description | | ------------------- | ----------------------------- | | `suno-ai/stems` | Extract vocals + instrumental | | `suno-ai/stems-all` | Extract all stems | ## Parameters | Parameter | Type | Required | Description | | --------- | ------ | -------- | ----------------------------- | | `clip_id` | string | Yes | Clip ID to extract stems from | | `title` | string | No | Title for extraction | ## Available Stems (stems-all) * Vocals * Backing Vocals * Drums * Bass * Guitar * Keyboard * Percussion * Strings * Synth * FX * Brass * Woodwinds ## Example - Basic Stems ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/stems", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "title": "My Stems" } }' ``` ## Example - All Stems ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/stems-all", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "title": "All My Stems" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Voice Creation Source: https://docs.unifically.com/models/audio/suno/voice Create custom voices with Suno AI Create a custom voice from audio recordings. This is an async operation — returns a `task_id`, poll for the result. When the task completes, use the returned `persona_id` as `persona_id` in [Music Generation](/models/audio/suno/music) so tracks use your custom voice. ## Model ``` suno-ai/voice ``` ## Flow 1. Call [`GET /v1/resources/suno-ai/voice/verification-phrase`](/api-reference/resources#get-suno-voice-verification-phrase) to get a `phrase_id` and `phrase_text` 2. Record two audio files: a voice sample and the user reading the verification phrase 3. Host both as publicly accessible URLs 4. Call this endpoint with both URLs and the `phrase_id` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------------ | ------ | -------- | ------------ | ------------------------------------------------------ | | `voice_audio_url` | string | Yes | — | URL to voice recording | | `verification_audio_url` | string | Yes | — | URL to verification phrase recording | | `phrase_id` | string | Yes | — | Phrase ID from verification-phrase endpoint | | `name` | string | Yes | — | Voice name | | `description` | string | No | `""` | Voice description | | `styles` | string | No | `""` | Genre tags (e.g. `"funk edm"`) | | `singer_skill_level` | string | No | `"Beginner"` | `Beginner`, `Intermediate`, `Advanced`, `Professional` | | `vocal_start_s` | float | No | `0` | Vocal start time in voice audio | | `vocal_end_s` | float | No | auto | Vocal end time in voice audio | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/voice", "input": { "voice_audio_url": "https://example.com/my-voice.wav", "verification_audio_url": "https://example.com/my-verification.wav", "phrase_id": "35989bb7-9fe5-4be2-b7d2-ef8124ae3e8b", "name": "My Voice", "description": "Warm male vocal", "styles": "funk edm", "singer_skill_level": "Intermediate" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` ## Status Response (Completed) ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "...", "status": "completed", "persona_id": "44706829-...", "name": "My Voice", "image_url": "https://...", "styles": "funk edm" } } ``` ## Status Response (Failed — Verification Rejected) ```json theme={null} { "success": false, "data": { "message": "Voice verification rejected: didnt_say_verification_phrase", "status": "failed" } } ``` # WAV Export Source: https://docs.unifically.com/models/audio/suno/wav Export Suno clips as WAV files Export Suno AI clips as high-quality WAV audio files. ## Model ``` suno-ai/wav ``` ## Parameters | Parameter | Type | Required | Description | | --------- | ------ | -------- | ------------------------ | | `clip_id` | string | Yes | Clip ID to export as WAV | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/wav", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Qwen Image Source: https://docs.unifically.com/models/image/alibaba/qwen-image Base Qwen image model with text-to-image and editing support Generate AI images using Qwen Image, the base model in the Qwen image family. Supports text-to-image and image editing via a specialized edit model under the hood. ## Model ``` alibaba/qwen-image ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing. Omit for text-to-image | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image", "input": { "prompt": "A serene Japanese garden with cherry blossoms", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image", "input": { "prompt": "Add snow falling in the scene", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Qwen Image 2.0 Source: https://docs.unifically.com/models/image/alibaba/qwen-image-2.0 Balanced quality and speed image generation with editing support Generate AI images using Qwen Image 2.0, a faster accelerated version of 2.0 Pro. Supports text-to-image and image editing via reference images with the same capabilities at a lower price. ## Model ``` alibaba/qwen-image-2.0 ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing or multi-image fusion | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0", "input": { "prompt": "Watercolor painting of a cozy bookshop interior", "aspect_ratio": "1:1" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0", "input": { "prompt": "Add a rainbow in the sky behind the mountains", "image_urls": ["https://example.com/landscape.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Qwen Image 2.0 Pro Source: https://docs.unifically.com/models/image/alibaba/qwen-image-2.0-pro Best quality image generation with text rendering and image editing Generate the highest quality AI images using Qwen Image 2.0 Pro with best-in-class text rendering, semantic adherence, and realistic textures. Supports text-to-image and image editing via reference images. ## Model ``` alibaba/qwen-image-2.0-pro ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing or multi-image fusion | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0-pro", "input": { "prompt": "A cinematic portrait of a fox in autumn forest, golden hour lighting", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0-pro", "input": { "prompt": "Change the background to a beach at sunset", "image_urls": ["https://example.com/photo.jpg"], "aspect_ratio": "4:3" } }' ``` ## Example - Multi-Image Fusion ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0-pro", "input": { "prompt": "The girl from Image 1 wears the dress from Image 2", "image_urls": ["https://example.com/girl.jpg", "https://example.com/dress.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Qwen Image Max Source: https://docs.unifically.com/models/image/alibaba/qwen-image-max Highest realism image generation with fewest AI artifacts and image editing Generate photorealistic AI images using Qwen Image Max. Produces the highest realism with the fewest AI artifacts. Supports text-to-image and image editing via a specialized edit model under the hood (industrial design, geometric reasoning, character consistency). ## Model ``` alibaba/qwen-image-max ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing. Omit for text-to-image | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-max", "input": { "prompt": "Photorealistic close-up of a bumblebee on a lavender flower", "aspect_ratio": "4:3" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-max", "input": { "prompt": "Change the dress to red", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Qwen Image Plus Source: https://docs.unifically.com/models/image/alibaba/qwen-image-plus Diverse artistic styles with fast image generation and editing Generate AI images in diverse artistic styles using Qwen Image Plus. Fast generation optimized for creative and stylistic variety. Supports text-to-image and image editing via a specialized edit model under the hood. ## Model ``` alibaba/qwen-image-plus ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing. Omit for text-to-image | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-plus", "input": { "prompt": "Art deco poster of a jazz musician playing saxophone", "aspect_ratio": "9:16" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-plus", "input": { "prompt": "Replace the background with a neon-lit cityscape", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.2 Flash Source: https://docs.unifically.com/models/image/alibaba/wan-2.2-flash-image Fast and affordable text-to-image generation Generate AI images quickly using Wan 2.2 Flash Image. The fastest and cheapest Wan image model. Text-to-image only — does not support image editing. ## Model ``` alibaba/wan-2.2-flash-image ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 500 chars) | | `aspect_ratio` | string | No | `1:1`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `negative_prompt` | string | No | What to avoid in the image | | `seed` | integer | No | Seed for reproducibility | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-flash-image", "input": { "prompt": "A minimalist logo design for a coffee shop" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.2 Source: https://docs.unifically.com/models/image/alibaba/wan-2.2-image Text-to-image generation with Wan 2.2 Generate AI images using Wan 2.2 Image. Text-to-image only — does not support image editing. ## Model ``` alibaba/wan-2.2-image ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 500 chars) | | `aspect_ratio` | string | No | `1:1`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `negative_prompt` | string | No | What to avoid in the image | | `seed` | integer | No | Seed for reproducibility | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-image", "input": { "prompt": "Aurora borealis over a snowy chapel, soft light", "aspect_ratio": "16:9" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.5 Source: https://docs.unifically.com/models/image/alibaba/wan-2.5-image Image generation with text-to-image and editing support Generate AI images using Wan 2.5 Image. Automatically selects T2I or editing mode based on whether `image_urls` is provided. Supports 1–3 reference images for editing. ## Model ``` alibaba/wan-2.5-image ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ------------------------------------------------------------------ | | `prompt` | string | Yes | Text description of the image (max 2000 chars) | | `aspect_ratio` | string | No | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `image_urls` | array | No | Omit for T2I. 1–3 images for editing | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-image", "input": { "prompt": "A flower shop with a beautiful wooden door" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-image", "input": { "prompt": "Change the floral dress to a vintage lace dress", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.6 Source: https://docs.unifically.com/models/image/alibaba/wan-2.6-image Image generation with style transfer and editing support Generate AI images using Wan 2.6 Image. Automatically selects T2I or editing mode based on whether `image_urls` is provided. Supports style transfer with 1–4 reference images. ## Model ``` alibaba/wan-2.6-image ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ------------------------------------------------------------------ | | `prompt` | string | Yes | Text description of the image (max 2000 chars) | | `aspect_ratio` | string | No | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `image_urls` | array | No | Omit for T2I. 1–4 images for editing/style transfer | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-image", "input": { "prompt": "A cozy reading nook with warm lighting" } }' ``` ## Example - Style Transfer ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-image", "input": { "prompt": "Generate a tomato stir-fry in the style of this image", "image_urls": ["https://example.com/style.png"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.7 Source: https://docs.unifically.com/models/image/alibaba/wan-2.7-image Fast variant of Wan 2.7 Pro with text-to-image and editing Generate AI images using Wan 2.7 Image, a faster variant of Wan 2.7 Pro. Same capabilities with max 2K resolution. Supports text-to-image and editing. ## Model ``` alibaba/wan-2.7-image ``` ## Parameters | Parameter | Type | Required | Description | | --------------- | ------- | -------- | ------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 5000 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` (default: `1:1`). Editing preserves input ratio | | `image_urls` | array | No | Omit for T2I. Up to 9 images for editing | | `thinking_mode` | boolean | No | Better quality, slower (default: `true`). T2I only | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-image", "input": { "prompt": "A cozy cabin in the mountains surrounded by pine trees", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-image", "input": { "prompt": "Add a sunset sky behind the mountains", "image_urls": ["https://example.com/landscape.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.7 Pro Source: https://docs.unifically.com/models/image/alibaba/wan-2.7-pro-image Highest quality image generation with thinking mode and up to 4K Generate the highest quality AI images using Wan 2.7 Pro Image. Features thinking mode for text-to-image, supports editing with up to 9 reference images, and up to 4K resolution. ## Model ``` alibaba/wan-2.7-pro-image ``` ## Parameters | Parameter | Type | Required | Description | | --------------- | ------- | -------- | ------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the image (max 5000 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` (default: `1:1`). Editing preserves input ratio | | `image_urls` | array | No | Omit for T2I. Up to 9 images for editing | | `thinking_mode` | boolean | No | Better quality, slower (default: `true`). T2I only | | `seed` | integer | No | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-pro-image", "input": { "prompt": "A flower shop with exquisite windows and flowers on display", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-pro-image", "input": { "prompt": "Change the dress to a red evening gown", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Z-Image Turbo Source: https://docs.unifically.com/models/image/alibaba/z-image-turbo Lightweight fast text-to-image with text rendering support Generate AI images quickly using Z-Image Turbo. Lightweight and fast text-to-image model with Chinese and English text rendering. Does not support image editing. ## Model ``` alibaba/z-image-turbo ``` ## Parameters | Parameter | Type | Required | Description | | --------------- | ------- | -------- | ------------------------------------------------------------------ | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `prompt_extend` | boolean | No | Prompt rewriting (default: `false`). Enabling doubles cost | | `seed` | integer | No | Seed for reproducibility | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/z-image-turbo", "input": { "prompt": "Stylish young woman in front of a cartoon mural", "aspect_ratio": "3:4" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDream 4.0 Source: https://docs.unifically.com/models/image/bytedance/seedream-4.0 Image generation with up to 6 reference images Generate images using ByteDance SeeDream 4.0 with support for up to 6 reference images, resolutions up to 4K, and 8 aspect ratios. ## Model ``` bytedance/seedream-4.0 ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | ------- | --------------------------------------------------------- | | `prompt` | string | **Yes** | — | Text description of the image to generate | | `image_urls` | string\[] | No | `null` | Reference image URLs for image-to-image mode (max 6) | | `aspect_ratio` | string | No | `"1:1"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `2:3`, `3:2`, `21:9` | | `resolution` | string | No | `"2k"` | `2k` or `4k` | | `seed` | integer | No | random | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.0", "input": { "prompt": "A futuristic cityscape at night with neon lights", "aspect_ratio": "16:9", "resolution": "2k" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.0", "input": { "prompt": "Add dramatic lighting and cinematic atmosphere", "image_urls": ["https://example.com/reference.jpg"], "aspect_ratio": "16:9", "resolution": "2k" } }' ``` Each generation returns **4 images**. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.storagecdn.online/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg", "https://files.storagecdn.online/image/42eaa39a-a305-4d5d-a542-a6579dc5514d.jpg", "https://files.storagecdn.online/image/974167b1-4a7a-4258-ab01-dd46064ae036.jpg", "https://files.storagecdn.online/image/aa7765bd-ce24-46a6-8be9-cc9e281f7e87.jpg" ] } } } ``` # SeeDream 4.1 Source: https://docs.unifically.com/models/image/bytedance/seedream-4.1 Image generation with up to 6 reference images and 4K resolution Generate images using ByteDance SeeDream 4.1 with support for up to 6 reference images, resolutions up to 4K, and 8 aspect ratios. ## Model ``` bytedance/seedream-4.1 ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | ------- | --------------------------------------------------------- | | `prompt` | string | **Yes** | — | Text description of the image to generate | | `image_urls` | string\[] | No | `null` | Reference image URLs for image-to-image mode (max 6) | | `aspect_ratio` | string | No | `"1:1"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `2:3`, `3:2`, `21:9` | | `resolution` | string | No | `"2k"` | `2k` or `4k` | | `seed` | integer | No | random | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.1", "input": { "prompt": "An astronaut floating above Earth with the Milky Way in the background", "aspect_ratio": "16:9", "resolution": "2k" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.1", "input": { "prompt": "Add dramatic lighting and cinematic atmosphere", "image_urls": ["https://example.com/reference.jpg"], "aspect_ratio": "16:9", "resolution": "2k" } }' ``` Each generation returns **4 images**. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.storagecdn.online/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg", "https://files.storagecdn.online/image/42eaa39a-a305-4d5d-a542-a6579dc5514d.jpg", "https://files.storagecdn.online/image/974167b1-4a7a-4258-ab01-dd46064ae036.jpg", "https://files.storagecdn.online/image/aa7765bd-ce24-46a6-8be9-cc9e281f7e87.jpg" ] } } } ``` # SeeDream 4.5 Source: https://docs.unifically.com/models/image/bytedance/seedream-4.5 Image generation with up to 6 reference images and 4K resolution Generate images using ByteDance SeeDream 4.5 with support for up to 6 reference images, resolutions up to 4K, and 8 aspect ratios. ## Model ``` bytedance/seedream-4.5 ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | ------- | --------------------------------------------------------- | | `prompt` | string | **Yes** | — | Text description of the image to generate | | `image_urls` | string\[] | No | `null` | Reference image URLs for image-to-image mode (max 6) | | `aspect_ratio` | string | No | `"1:1"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `2:3`, `3:2`, `21:9` | | `resolution` | string | No | `"2k"` | `2k` or `4k` | | `seed` | integer | No | random | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.5", "input": { "prompt": "A magical forest with glowing mushrooms and fireflies", "resolution": "4k", "aspect_ratio": "1:1" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.5", "input": { "prompt": "Transform into a fantasy art style with vibrant colors", "image_urls": ["https://example.com/reference.jpg"], "resolution": "4k", "aspect_ratio": "16:9" } }' ``` Each generation returns **4 images**. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.storagecdn.online/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg", "https://files.storagecdn.online/image/42eaa39a-a305-4d5d-a542-a6579dc5514d.jpg", "https://files.storagecdn.online/image/974167b1-4a7a-4258-ab01-dd46064ae036.jpg", "https://files.storagecdn.online/image/aa7765bd-ce24-46a6-8be9-cc9e281f7e87.jpg" ] } } } ``` # SeeDream 4.6 Source: https://docs.unifically.com/models/image/bytedance/seedream-4.6 High-quality image generation with up to 6 reference images and 4K resolution Generate images using ByteDance SeeDream 4.6 with support for up to 6 reference images, resolutions up to 4K, and 8 aspect ratios. ## Model ``` bytedance/seedream-4.6 ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | ------- | --------------------------------------------------------- | | `prompt` | string | **Yes** | — | Text description of the image to generate | | `image_urls` | string\[] | No | `null` | Reference image URLs for image-to-image mode (max 6) | | `aspect_ratio` | string | No | `"1:1"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `2:3`, `3:2`, `21:9` | | `resolution` | string | No | `"2k"` | `2k` or `4k` | | `seed` | integer | No | random | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.6", "input": { "prompt": "A serene Japanese garden with cherry blossoms and a stone bridge", "aspect_ratio": "4:3", "resolution": "4k" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.6", "input": { "prompt": "Transform the scene into a watercolor painting style", "image_urls": ["https://example.com/photo.jpg"], "resolution": "2k" } }' ``` Each generation returns **4 images**. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.storagecdn.online/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg", "https://files.storagecdn.online/image/42eaa39a-a305-4d5d-a542-a6579dc5514d.jpg", "https://files.storagecdn.online/image/974167b1-4a7a-4258-ab01-dd46064ae036.jpg", "https://files.storagecdn.online/image/aa7765bd-ce24-46a6-8be9-cc9e281f7e87.jpg" ] } } } ``` # SeeDream 5.0 Lite Source: https://docs.unifically.com/models/image/bytedance/seedream-5.0-lite Latest lightweight image generation with up to 6 reference images and 4K resolution Generate images using ByteDance SeeDream 5.0 Lite with support for up to 6 reference images, resolutions up to 4K, and 8 aspect ratios. ## Model ``` bytedance/seedream-5.0-lite ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | ------- | --------------------------------------------------------- | | `prompt` | string | **Yes** | — | Text description of the image to generate | | `image_urls` | string\[] | No | `null` | Reference image URLs for image-to-image mode (max 6) | | `aspect_ratio` | string | No | `"1:1"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `2:3`, `3:2`, `21:9` | | `resolution` | string | No | `"2k"` | `2k` or `4k` | | `seed` | integer | No | random | Seed for reproducibility | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-5.0-lite", "input": { "prompt": "A cyberpunk city at sunset, neon lights reflecting on wet streets", "aspect_ratio": "16:9", "resolution": "2k" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-5.0-lite", "input": { "prompt": "Place the animal inside the vintage car", "image_urls": [ "https://example.com/animal.jpg", "https://example.com/car.jpg" ] } }' ``` Each generation returns **4 images**. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.storagecdn.online/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg", "https://files.storagecdn.online/image/42eaa39a-a305-4d5d-a542-a6579dc5514d.jpg", "https://files.storagecdn.online/image/974167b1-4a7a-4258-ab01-dd46064ae036.jpg", "https://files.storagecdn.online/image/aa7765bd-ce24-46a6-8be9-cc9e281f7e87.jpg" ] } } } ``` # Flux.2 Flex Source: https://docs.unifically.com/models/image/flux/flux.2-flex Flexible image generation with advanced controls Generate images using Flux.2 Flex with advanced controls for guidance, steps, and reproducibility. ## Model ``` black-forest-labs/flux.2-flex ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------- | --------- | -------- | -------- | ----------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `guidance` | float | No | - | Guidance scale (e.g. `1.5`) | | `steps` | integer | No | - | Number of generation steps | | `seed` | integer | No | random | Seed for reproducibility | | `prompt_upsampling` | boolean | No | `true` | Auto-enhance prompt for more creative output | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-flex", "input": { "prompt": "A cyberpunk city at night with neon reflections", "aspect_ratio": "21:9", "resolution": "2mp", "guidance": 1.5, "steps": 30, "seed": 124242, "prompt_upsampling": false } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Flux.2 Klein 4B Source: https://docs.unifically.com/models/image/flux/flux.2-klein-4b Fastest image generation with Flux.2 Klein 4B Generate images using the smallest and fastest Flux.2 Klein 4B model. ## Model ``` black-forest-labs/flux.2-klein-4b ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | -------- | ----------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `seed` | integer | No | random | Seed for reproducibility | Klein models do not support `guidance`, `steps`, or `prompt_upsampling`. ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-klein-4b", "input": { "prompt": "A simple icon of a coffee cup", "aspect_ratio": "1:1" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Flux.2 Klein 9B Source: https://docs.unifically.com/models/image/flux/flux.2-klein-9b Lightweight image generation with Flux.2 Klein 9B Generate images using the lightweight Flux.2 Klein 9B model for fast results. ## Model ``` black-forest-labs/flux.2-klein-9b ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | -------- | ----------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `seed` | integer | No | random | Seed for reproducibility | Klein models do not support `guidance`, `steps`, or `prompt_upsampling`. ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-klein-9b", "input": { "prompt": "A minimalist line drawing of a mountain landscape", "aspect_ratio": "16:9", "resolution": "1mp", "seed": 42 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Flux.2 Max Source: https://docs.unifically.com/models/image/flux/flux.2-max Maximum quality image generation Generate the highest quality images using Flux.2 Max. ## Model ``` black-forest-labs/flux.2-max ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | -------- | ----------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-max", "input": { "prompt": "A beautiful sunset over mountains", "aspect_ratio": "21:9", "resolution": "2mp" } }' ``` ## With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-max", "input": { "prompt": "Make him dance", "image_urls": ["https://example.com/photo.jpg"], "aspect_ratio": "9:16", "resolution": "2mp" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Flux.2 Pro Source: https://docs.unifically.com/models/image/flux/flux.2-pro High-quality image generation with Flux.2 Pro Generate high-quality images using Flux.2 Pro with balanced quality and speed. ## Model ``` black-forest-labs/flux.2-pro ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | -------- | ----------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-pro", "input": { "prompt": "A photorealistic portrait of a woman in golden hour light", "aspect_ratio": "9:16", "resolution": "2mp" } }' ``` ## With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-pro", "input": { "prompt": "A portrait in this style", "image_urls": ["https://example.com/ref1.jpg", "https://example.com/ref2.jpg"], "resolution": "2mp" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Nano Banana Source: https://docs.unifically.com/models/image/google/nano-banana Fast image generation with Google Gemini 2.5 Flash Generate images quickly using Nano Banana powered by Gemini 2.5 Flash. ## Model ``` google/nano-banana ``` ## Parameters | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the image | | `aspect_ratio` | string | No | `default`, `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`. Default: `1:1` | | `image_urls` | array | No | Reference images | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana", "input": { "prompt": "A futuristic city skyline at sunset with flying cars", "aspect_ratio": "16:9" } }' ``` ## With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana", "input": { "prompt": "Transform this into anime style", "aspect_ratio": "1:1", "image_urls": ["https://example.com/reference.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Nano Banana 2 Source: https://docs.unifically.com/models/image/google/nano-banana-2 Next-generation image generation with Google Gemini Generate high-quality images using Nano Banana 2, the latest generation of the Nano Banana Pro model. ## Model ``` google/nano-banana-2 ``` ## Parameters | Parameter | Type | Required | Description | | -------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the image | | `aspect_ratio` | string | No | `1:1`, `1:4`, `1:8`, `2:3`, `3:2`, `3:4`, `4:1`, `4:3`, `4:5`, `5:4`, `8:1`, `9:16`, `16:9`, `21:9`, `match_input_image`. Default: `1:1` | | `image_search` | boolean | No | Enable image search grounding | | `image_urls` | array | No | Reference image URLs | | `resolution` | string | No | `0.5K`, `1K`, `2K`, `4K`. Default: `1K` | | `seed` | integer | No | Seed for reproducible generation | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana-2", "input": { "prompt": "A photorealistic portrait in golden hour lighting", "aspect_ratio": "3:4", "resolution": "4k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Nano Banana Pro Source: https://docs.unifically.com/models/image/google/nano-banana-pro Advanced image generation with Google Gemini 3 Generate high-quality images using Nano Banana Pro powered by Gemini 3. ## Model ``` google/nano-banana-pro ``` ## Parameters | Parameter | Type | Required | Description | | -------------- | ------- | -------- | ----------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the image | | `aspect_ratio` | string | No | `auto`, `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`. Default: `1:1` | | `image_urls` | array | No | Reference image URLs | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | | `seed` | integer | No | Seed for reproducible generation | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana-pro", "input": { "prompt": "A photorealistic portrait in golden hour lighting", "aspect_ratio": "3:4", "resolution": "4k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v2.1 Image Source: https://docs.unifically.com/models/image/kling/kling-2.1-image Generate images with 4 reference modes: restyle, portrait, character, and elements Generate high-quality AI images using Kling v2.1 Image with 4 reference modes for flexible image generation. ## Model ``` kuaishou/kling-2.1-image ``` ## Parameters | Parameter | Type | Required | Default | Description | | ---------------- | --------- | ----------- | ----------- | ----------------------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description of the image to generate | | `reference_mode` | string | No | `"restyle"` | Reference strategy: `"restyle"`, `"portrait"`, `"character"`, or `"elements"` | | `image_url` | string | Conditional | - | Source image URL. Required for restyle, portrait, and character modes | | `aspect_ratio` | string | No | `"1:1"` | `"21:9"`, `"16:9"`, `"3:2"`, `"4:3"`, `"1:1"`, `"3:4"`, `"2:3"`, `"9:16"` | | `fidelity` | float | No | `0.5` | How closely to follow the reference image (0.0–1.0) | | `human_fidelity` | float | No | `0.65` | Face similarity preservation strength (0.0–1.0, portrait mode only) | | `elements` | string\[] | Conditional | - | Element image/video URLs (2–4 required for elements mode) | | `scene_url` | string | No | - | Background scene image URL (elements mode only) | | `style_url` | string | No | - | Style reference image URL (elements mode only) | ## Mode Requirements * **`restyle`** — requires `image_url`. Uses `fidelity` to control reference adherence * **`portrait`** — requires `image_url`. Uses `fidelity` and `human_fidelity` for face control * **`character`** — requires `image_url`. Uses `fidelity` only * **`elements`** — requires 2–4 `elements` URLs. Optionally accepts `scene_url` and `style_url` ## Example - Restyle Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-image", "input": { "prompt": "Transform into an oil painting with vivid colors", "reference_mode": "restyle", "image_url": "https://example.com/photo.jpg", "fidelity": 0.7, "aspect_ratio": "16:9" } }' ``` ## Example - Portrait Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-image", "input": { "prompt": "Professional headshot in a modern office setting", "reference_mode": "portrait", "image_url": "https://example.com/face.jpg", "fidelity": 0.5, "human_fidelity": 0.8, "aspect_ratio": "1:1" } }' ``` ## Example - Elements Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-image", "input": { "prompt": "Two characters standing in a futuristic city", "reference_mode": "elements", "elements": [ "https://example.com/character1.jpg", "https://example.com/character2.jpg" ], "scene_url": "https://example.com/city-bg.jpg", "style_url": "https://example.com/cyberpunk-style.jpg", "aspect_ratio": "16:9" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v3.0 Image Source: https://docs.unifically.com/models/image/kling/kling-3.0-image Generate high-quality images with batch generation support Generate high-quality AI images using Kling v3.0 Image with support for batch generation of up to 4 images and up to 10 reference images. ## Model ``` kuaishou/kling-3.0-image ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description. Use `@Image1`, `@Image2` to reference inputs | | `resolution` | string | No | `"2k"` | `"1k"` or `"2k"` | | `aspect_ratio` | string | No | `"auto"` | `"auto"`, `"1:1"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"3:2"`, `"2:3"`, `"21:9"` | | `count` | integer | No | `1` | Number of images to generate (1–4) | | `image_urls` | string\[] | No | - | Reference image URLs (max 10). Use `@Image1`, `@Image2` in prompt | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-image", "input": { "prompt": "A serene mountain landscape at sunset, photorealistic", "aspect_ratio": "16:9", "resolution": "2k", "count": 4 } }' ``` ## Example - With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-image", "input": { "prompt": "Transform @Image1 into a watercolor painting style", "image_urls": ["https://example.com/reference.jpg"], "aspect_ratio": "1:1", "resolution": "2k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling Omni Image Source: https://docs.unifically.com/models/image/kling/kling-omni-image Generate high-quality images with reference image support Generate high-quality AI images using Kling Omni Image models with support for up to 10 reference images. ## Models | Model | Resolution | Aspect Ratio | | ------------------------------- | ---------------- | --------------------- | | `kuaishou/kling-o1-image` | `1k`, `2k` | No `4k` | | `kuaishou/kling-3.0-omni-image` | `1k`, `2k`, `4k` | Adds `auto` (default) | *** ## Parameters ### O1 Image (`kuaishou/kling-o1-image`) | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description. Use `@Image1`, `@Image2` to reference inputs | | `resolution` | string | No | `"1k"` | `"1k"`, `"2k"` | | `aspect_ratio` | string | No | `"auto"` | `"auto"`, `"1:1"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"3:2"`, `"2:3"`, `"21:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 10). Use `@Image1`, `@Image2` in prompt | ### v3.0 Omni Image (`kuaishou/kling-3.0-omni-image`) | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | Yes | - | Text description. Use `@Image1`, `@Image2` to reference inputs | | `resolution` | string | No | `"1k"` | `"1k"`, `"2k"`, `"4k"` | | `aspect_ratio` | string | No | `"auto"` | `"auto"`, `"1:1"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"3:2"`, `"2:3"`, `"21:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 10). Use `@Image1`, `@Image2` in prompt | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-image", "input": { "prompt": "A serene mountain landscape at sunset, photorealistic", "aspect_ratio": "16:9", "resolution": "2k" } }' ``` ## Example - With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-image", "input": { "prompt": "Transform @Image1 into a watercolor painting style", "image_urls": ["https://example.com/reference.jpg"], "aspect_ratio": "auto", "resolution": "2k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # GPT Image 2 Source: https://docs.unifically.com/models/image/openai/gpt-image-2 Generate images with OpenAI's GPT Image 2 model Generate high-quality images using GPT Image 2 with improved capabilities. ## Model ``` openai/gpt-image-2 ``` ## Parameters | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ------------------------------------------- | | `prompt` | string | Yes | Text description of the image to generate | | `aspect_ratio` | string | No | `1:1`, `3:2`, `2:3`, `16:9`. Default: `1:1` | | `image_urls` | array | No | Reference image URLs for image editing mode | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-image-2", "input": { "prompt": "A serene mountain landscape", "aspect_ratio": "16:9", "resolution": "2K" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Topaz Image Upscale Source: https://docs.unifically.com/models/image/topaz-labs/image-upscale AI-powered image upscaling with selectable presets, face recovery, and per-preset tuning Upscale and enhance images using Topaz Labs AI models. Pick a preset for your source type, set an output size via `upscale_factor`, and optionally fine-tune the result through `extra_settings`. ## Model ``` topaz-labs/image-upscale ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------ | ---------------- | -------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `image_url` | string | Yes | - | Publicly-accessible URL of the source image | | `preset` | string | No | `standard-v2` | Topaz model variant. One of `standard-v2`, `low-resolution-v2`, `cgi`, `high-fidelity-v2`, `text-refine` | | `upscale_factor` | string \| number | No | - | Output-dimension multiplier. Accepts a number (e.g. `2`, `2.5`, `4`) or a string suffix (e.g. `"2x"`, `"4x"`). The source image is probed automatically to derive output dimensions | | `crop_to_fill` | boolean | No | `false` | Crop to fill output dimensions instead of letterboxing | | `face_enhancement` | boolean | No | `false` | Enable face recovery. When `true`, set `face_enhancement_strength` and `face_enhancement_creativity` inside `extra_settings` | | `output_format` | string | No | - | Output image format. One of `jpeg`, `jpg`, `png`, `tiff`, `tif` | | `extra_settings` | object | No | - | Model-specific tuning. See [Extra settings](#extra-settings) | Maximum output is **1024 MP** (megapixels). Requests whose computed output exceeds this are rejected pre-flight. ## Presets | Preset | Best for | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `standard-v2` (default) | General-purpose upscaling for most photos and graphics. Balances detail, sharpness, and noise reduction | | `low-resolution-v2` | Small, heavily compressed, or degraded inputs. Recovers usable detail from difficult sources | | `cgi` | Illustrations, digital art, renders, and stylised graphics. Preserves clean edges and flat colour regions. Adds `deblur_strength` | | `high-fidelity-v2` | Already high-resolution sources. Enlarges while preserving fine detail and natural texture without over-sharpening | | `text-refine` | Images with typography, logos, UI elements, and geometric shapes. Preserves edge clarity and shape accuracy. Adds `denoise_strength`, `deblur_strength`, `decompression_strength`, `opacity` | ## Extra settings Pass any of these inside `extra_settings`. Anything omitted is auto-configured by Topaz. ### Common (all presets) | Key | Type | Range | Description | | ----------------------------- | ------ | --------------------------------- | ----------------------------------------------------------------------- | | `face_enhancement_strength` | float | 0–1 | Required when `face_enhancement: true`. Strength of face recovery | | `face_enhancement_creativity` | float | 0–1 | Required when `face_enhancement: true`. `0` = realistic, `1` = creative | | `subject_detection` | string | `foreground`, `background`, `all` | Where enhancements are applied | | `sharpen` | float | 0–1 | Slightly sharpens the output | | `denoise` | float | 0–1 | Reduces noise | | `fix_compression` | float | 0–1 | Reduces JPEG compression artifacts | | `strength` | float | 0.01–1 | Overall model strength. Too high can look unrealistic | ### CGI-only | Key | Type | Range | Default | Description | | ----------------- | ----- | ----- | ------- | -------------------- | | `deblur_strength` | float | 0–1 | 0.5 | Deblur pass strength | ### Text Refine-only | Key | Type | Range | Default | Description | | ------------------------ | ----- | ----- | ------- | ------------------------------------------------ | | `denoise_strength` | float | 0–1 | 0.5 | Noise reduction strength | | `deblur_strength` | float | 0–1 | 0.5 | Deblur pass strength | | `decompression_strength` | float | 0–1 | 0.5 | Compression-artifact recovery strength | | `opacity` | float | 0–1 | 1.0 | Blend amount between source and processed output | ## Example - Basic upscale ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/photo.jpg", "upscale_factor": "2x" } }' ``` ## Example - Recovering a low-resolution source ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/old-photo.jpg", "preset": "low-resolution-v2", "upscale_factor": "4x", "extra_settings": { "fix_compression": 0.6, "denoise": 0.4 } } }' ``` ## Example - CGI / illustration ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/illustration.png", "preset": "cgi", "upscale_factor": 2, "extra_settings": { "deblur_strength": 0.4 } } }' ``` ## Example - High-fidelity portrait with face recovery ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/portrait.jpg", "preset": "high-fidelity-v2", "upscale_factor": "2x", "face_enhancement": true, "extra_settings": { "face_enhancement_strength": 0.7, "face_enhancement_creativity": 0.2, "subject_detection": "foreground" } } }' ``` ## Example - Text, logos, and UI screenshots ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/screenshot.png", "preset": "text-refine", "upscale_factor": "2x", "output_format": "png", "extra_settings": { "decompression_strength": 0.7, "deblur_strength": 0.4, "opacity": 0.9 } } }' ``` ## Example - Fixed output framing with `crop_to_fill` ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/photo.jpg", "upscale_factor": "4x", "crop_to_fill": true, "output_format": "png" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Grok Imagine Image Source: https://docs.unifically.com/models/image/xai/grok-imagine-image Generate and edit images with xAI Grok Imagine Generate and edit images using xAI's Grok Imagine model. Supports text-to-image generation and reference-based image editing. ## Model ``` xai/grok-imagine-image ``` ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | --------- | -------- | ------- | --------------------------------------------- | | `prompt` | string | Yes | — | Text description or edit instruction | | `aspect_ratio` | string | No | `"1:1"` | `"1:1"`, `"2:3"`, `"3:2"`, `"9:16"`, `"16:9"` | | `image_urls` | string\[] | No | `null` | 1–5 reference image URLs (triggers edit mode) | | `enable_pro` | boolean | No | `false` | Enable pro mode for higher quality results | | `upsample_prompt` | boolean | No | `false` | Let AI enhance your prompt for better results | | `enable_nsfw` | boolean | No | `false` | Enable NSFW content generation | When `image_urls` is provided, the model runs in **edit mode** — it merges or edits the reference images based on your prompt. Otherwise it generates a new image from the prompt. ## Example Request ### Text to Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-image", "input": { "prompt": "A robot dancing in a field of sunflowers", "aspect_ratio": "16:9" } }' ``` ### Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-image", "input": { "prompt": "Merge these images into one scene", "image_urls": [ "https://example.com/img1.jpg", "https://example.com/img2.jpg" ] } }' ``` Text-to-image returns **6 images** as `image_urls`. Image editing returns a single `image_url`. ## Response (Text to Image) ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "image_urls": [ "https://files.storagecdn.online/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg", "https://files.storagecdn.online/image/42eaa39a-a305-4d5d-a542-a6579dc5514d.jpg", "https://files.storagecdn.online/image/974167b1-4a7a-4258-ab01-dd46064ae036.jpg", "https://files.storagecdn.online/image/aa7765bd-ce24-46a6-8be9-cc9e281f7e87.jpg", "https://files.storagecdn.online/image/5c3a7e12-1f8b-4d9a-bc2e-7f6d4e3a1b09.jpg", "https://files.storagecdn.online/image/d8e2f1a4-6b3c-4a7e-9d5f-2c8b1e4a7f03.jpg" ] } } } ``` ## Response (Image Editing) ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "image_url": "https://files.storagecdn.online/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg" } } } ``` # HappyHorse 1.0 Source: https://docs.unifically.com/models/video/alibaba/happyhorse-1.0-video Video generation with text-to-video, image-to-video, and reference-to-video modes Generate videos using HappyHorse 1.0 with three modes: text-to-video, image-to-video (first frame), and reference-to-video (character consistency using reference images). ## Model ``` alibaba/happyhorse-1.0-video ``` ## Modes | Mode | Description | | ----- | ---------------------------------------------------------------------------------- | | `t2v` | Generate video from a text prompt | | `i2v` | Generate video from a first frame image | | `r2v` | Generate video from reference images. Use `characterN` in prompt to reference them | ## Parameters | Parameter | Type | Required | Default | Description | | ---------------------- | --------- | -------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | `mode` | string | No | `"t2v"` | `"t2v"`, `"i2v"`, or `"r2v"` | | `prompt` | string | No | `""` | Text prompt describing the desired video. Supports any language. Max 5,000 non-Chinese characters or 2,500 Chinese characters; excess is truncated | | `first_frame_url` | string | No | `null` | URL of the first frame image for I2V mode | | `reference_image_urls` | string\[] | No | `null` | Reference image URLs for R2V mode (1-9). Use `characterN` in prompt to reference them | | `ratio` | string | No | `null` | Aspect ratio (T2V/R2V only): `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"` | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `duration` | integer | No | `5` | Output duration in seconds (3-15) | | `watermark` | boolean | No | `false` | Add watermark to the output | | `seed` | integer | No | `null` | Random seed for reproducible generation (0-2147483647) | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video", "input": { "mode": "t2v", "prompt": "A golden retriever running through a field of wildflowers at sunset", "resolution": "1080P", "ratio": "16:9", "duration": 5 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video", "input": { "mode": "i2v", "prompt": "The camera slowly zooms out as the scene comes to life", "first_frame_url": "https://example.com/landscape.png", "resolution": "1080P", "duration": 10 } }' ``` ## Example - Reference-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video", "input": { "mode": "r2v", "prompt": "character1 walks confidently through a busy city street", "reference_image_urls": ["https://example.com/person.png"], "resolution": "1080P", "ratio": "16:9", "duration": 8 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # HappyHorse 1.0 Video Edit Source: https://docs.unifically.com/models/video/alibaba/happyhorse-1.0-video-edit Edit existing videos with optional reference images for style guidance Edit an existing video using HappyHorse 1.0 Video Edit. Supports reference images for style guidance. This is a separate model from `alibaba/happyhorse-1.0-video`. ## Model ``` alibaba/happyhorse-1.0-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | ---------------------- | --------- | -------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | — | Text prompt describing the intended edit. Supports any language. Max 5,000 non-Chinese characters or 2,500 Chinese characters; excess is truncated | | `video_url` | string | Yes | — | URL of the source video to edit | | `reference_image_urls` | string\[] | No | `null` | Reference image URLs for style guidance (max 5) | | `audio_setting` | string | No | `"auto"` | Audio handling mode: `"auto"` (model decides) or `"origin"` (keep original audio) | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `watermark` | boolean | No | `false` | Add watermark to the output | | `seed` | integer | No | `null` | Random seed for reproducible generation (0-2147483647) | ## Example - Basic Video Edit ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video-edit", "input": { "prompt": "Convert the scene to a watercolor painting style", "video_url": "https://example.com/scene.mp4", "resolution": "1080P" } }' ``` ## Example - With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video-edit", "input": { "prompt": "Apply the visual style from the reference image to the entire video", "video_url": "https://example.com/clip.mp4", "reference_image_urls": ["https://example.com/style.png"], "audio_setting": "origin" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.2 Flash Source: https://docs.unifically.com/models/video/alibaba/wan-2.2-flash-video Fast silent video generation with text-to-video and image-to-video Generate AI videos using Wan 2.2 Flash, a faster version of Wan 2.2. Produces silent video only. I2V supports 720p in addition to 480p and 1080p. ## Model ``` alibaba/wan-2.2-flash-video ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ------------------------------------------------------- | | `prompt` | string | Yes | Text description of the video | | `mode` | string | No | `t2v` or `i2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL (required for `i2v`) | | `negative_prompt` | string | No | What to avoid in the video | | `resolution` | string | No | `480p`, `720p` (I2V only), or `1080p` (default: `480p`) | | `duration` | integer | No | Fixed at `5` seconds | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `seed` | integer | No | Seed for reproducibility | Wan 2.2 Flash produces silent video only. `720p` resolution is only available in I2V mode. ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-flash-video", "input": { "prompt": "A bird taking flight from a tree branch", "mode": "t2v", "resolution": "1080p" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-flash-video", "input": { "prompt": "A bird taking flight", "mode": "i2v", "start_image_url": "https://example.com/bird.jpg", "resolution": "720p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.2 Source: https://docs.unifically.com/models/video/alibaba/wan-2.2-video Silent video generation with text-to-video and image-to-video Generate AI videos using Wan 2.2 with text-to-video and image-to-video capabilities. Produces silent video only at 480p or 1080p resolution. ## Model ``` alibaba/wan-2.2-video ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ---------------------------------------------- | | `prompt` | string | Yes | Text description of the video | | `mode` | string | No | `t2v` or `i2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL (required for `i2v`) | | `negative_prompt` | string | No | What to avoid in the video | | `resolution` | string | No | `480p` or `1080p` (default: `480p`) | | `duration` | integer | No | Fixed at `5` seconds | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `seed` | integer | No | Seed for reproducibility | Wan 2.2 produces silent video only. `audio`, `audio_url`, `video_urls`, and `multi_prompt` are not supported. ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-video", "input": { "prompt": "A street musician plays guitar in a vintage subway station", "mode": "t2v", "resolution": "1080p" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-video", "input": { "prompt": "Gentle waves lapping against the shore", "mode": "i2v", "start_image_url": "https://example.com/beach.jpg", "resolution": "480p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.5 Source: https://docs.unifically.com/models/video/alibaba/wan-2.5-video Video generation with audio sync and flexible resolution Generate AI videos using Wan 2.5 with text-to-video and image-to-video capabilities. Supports 480p to 1080p resolution, 5-10 second videos, and automatic audio generation. ## Model ``` alibaba/wan-2.5-video ``` ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | ------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the video | | `mode` | string | No | `t2v` or `i2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL (required for `i2v`) | | `audio_url` | string | No | Custom audio URL for audio-video sync | | `negative_prompt` | string | No | What to avoid in the video | | `resolution` | string | No | `480p`, `720p`, or `1080p` (default: `720p`) | | `duration` | integer | No | `5` or `10` seconds (default: `5`) | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `audio` | boolean | No | Auto-generate audio. Set `false` for silent video (default: `true`) | | `seed` | integer | No | Seed for reproducibility | `video_urls` and `multi_prompt` are not supported on Wan 2.5. For reference-to-video or multi-shot, use [Wan 2.6](/models/video/alibaba/wan-2.6-video). ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-video", "input": { "prompt": "Sunset over ocean waves", "mode": "t2v", "resolution": "1080p", "duration": 10 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-video", "input": { "prompt": "Person walking through a forest", "mode": "i2v", "start_image_url": "https://example.com/person.jpg", "resolution": "720p", "duration": 10 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.6 Flash Source: https://docs.unifically.com/models/video/alibaba/wan-2.6-flash-video Fast video generation with audio, multi-shot, and reference-to-video support Generate AI videos using Wan 2.6 Flash with the same capabilities as Wan 2.6 but faster and cheaper. Supports text-to-video, image-to-video, reference-to-video (character consistency), and multi-shot narratives with audio generation. ## Model ``` alibaba/wan-2.6-flash-video ``` ## Modes Set `mode` explicitly to select generation type: * `t2v` (default) — text-to-video * `i2v` — image-to-video (requires `start_image_url`) * `r2v` — reference-to-video (requires `video_urls`) ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the video. For R2V, use `character1`, `character2`, etc. matching `video_urls` order | | `mode` | string | No | `t2v`, `i2v`, or `r2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL for I2V mode (JPEG, PNG, BMP, WEBP) | | `video_urls` | array | No | Reference image/video URLs for R2V mode. Up to 5 (max 3 videos). Each = one character | | `audio_url` | string | No | Custom audio URL for audio-video sync (wav/mp3, max 15MB, 3-30s) | | `multi_prompt` | array | No | Multi-shot segments `[{prompt, duration}]`. Auto-sets shot type and calculates total duration | | `negative_prompt` | string | No | What to avoid in the video (max 500 chars). Ignored for R2V | | `resolution` | string | No | `720p` or `1080p` (default: `720p`) | | `duration` | integer | No | Video length in seconds, 2-15s (R2V: 2-10s). Overridden by `multi_prompt` if set (default: `5`) | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `audio` | boolean | No | Auto-generate audio. Set `false` for silent video (default: `true`) | | `seed` | integer | No | Seed for reproducibility. Not supported for R2V | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "A cat running on the grass", "mode": "t2v", "resolution": "720p", "duration": 5 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "The camera slowly pans up from below the sea turtle", "mode": "i2v", "start_image_url": "https://example.com/turtle.jpg", "resolution": "720p", "duration": 10 } }' ``` ## Example - Reference-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "character1 gives an enthusiastic product introduction to camera", "mode": "r2v", "video_urls": ["https://example.com/presenter.mp4"], "duration": 5 } }' ``` ## Example - Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "Cinematic detective story", "multi_prompt": [ {"prompt": "Wide shot of rainy New York streets, neon lights", "duration": 5}, {"prompt": "Close-up of detective walking into an old building", "duration": 5} ], "resolution": "1080p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.6 Source: https://docs.unifically.com/models/video/alibaba/wan-2.6-video Advanced video generation with audio, multi-shot, and reference-to-video support Generate AI videos using Wan 2.6 with support for text-to-video, image-to-video, reference-to-video (character consistency), and multi-shot narratives. Includes automatic audio generation. ## Model ``` alibaba/wan-2.6-video ``` ## Modes Set `mode` explicitly to select generation type: * `t2v` (default) — text-to-video * `i2v` — image-to-video (requires `start_image_url`) * `r2v` — reference-to-video (requires `video_urls`) ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | Text description of the video. For R2V, use `character1`, `character2`, etc. matching `video_urls` order | | `mode` | string | No | `t2v`, `i2v`, or `r2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL for I2V mode (JPEG, PNG, BMP, WEBP) | | `video_urls` | array | No | Reference image/video URLs for R2V mode. Up to 5 (max 3 videos). Each = one character | | `audio_url` | string | No | Custom audio URL for audio-video sync (wav/mp3, max 15MB, 3-30s) | | `multi_prompt` | array | No | Multi-shot segments `[{prompt, duration}]`. Auto-sets shot type and calculates total duration | | `negative_prompt` | string | No | What to avoid in the video (max 500 chars). Ignored for R2V | | `resolution` | string | No | `720p` or `1080p` (default: `720p`) | | `duration` | integer | No | Video length in seconds, 2-15s (R2V: 2-10s). Overridden by `multi_prompt` if set (default: `5`) | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `audio` | boolean | No | Auto-generate audio. Set `false` for silent video (default: `true`) | | `seed` | integer | No | Seed for reproducibility. Not supported for R2V | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "A cinematic shot of a red fox walking through a misty forest at dawn", "mode": "t2v", "resolution": "720p", "duration": 5 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "The camera slowly pans up from below the sea turtle", "mode": "i2v", "start_image_url": "https://example.com/turtle.jpg", "resolution": "720p", "duration": 10 } }' ``` ## Example - Reference-to-Video (Single Character) ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "character1 gives an enthusiastic product introduction to camera", "mode": "r2v", "video_urls": ["https://example.com/presenter.mp4"], "duration": 5 } }' ``` ## Example - Reference-to-Video (Multi-Character) ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "character1 says to character2: I will rely on you tomorrow! character2 replies: You can count on me!", "mode": "r2v", "video_urls": ["https://example.com/person-a.mp4", "https://example.com/person-b.mp4"], "duration": 10 } }' ``` ## Example - Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "Cinematic detective story", "multi_prompt": [ {"prompt": "Wide shot of rainy New York streets, neon lights", "duration": 5}, {"prompt": "Close-up of detective walking into an old building", "duration": 5} ], "resolution": "1080p" } }' ``` ## Example - Image-to-Video with Custom Audio ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "A graffiti character raps energetically under a bridge", "mode": "i2v", "start_image_url": "https://example.com/graffiti.png", "audio_url": "https://example.com/rap.mp3", "duration": 10 } }' ``` ## Example - Silent Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "A cat running on the grass", "audio": false, "duration": 5 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.7 Source: https://docs.unifically.com/models/video/alibaba/wan-2.7-video Unified video generation with text-to-video, image-to-video, and reference-to-video modes Generate videos using Wan 2.7 with three modes: text-to-video, image-to-video (first frame, keyframes, continuation, lip-sync), and reference-to-video (character/object consistency). ## Model ``` alibaba/wan-2.7-video ``` ## Modes | Mode | Description | | ----- | -------------------------------------------------------------------------------------------------------------- | | `t2v` | Generate video from a text prompt. Multi-shot via natural language. | | `i2v` | Generate video from a first frame, first + last frames, or continue an existing video. Optional driving audio. | | `r2v` | Generate video from reference images/videos. Use "Image 1"/"Video 1" identifiers in prompt. | ## Common Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | -------- | --------- | ------------------------------------------------------------------- | | `mode` | string | No | `"t2v"` | `"t2v"`, `"i2v"`, or `"r2v"` | | `prompt` | string | Depends | `""` | Text prompt (max 5000 chars). Required for T2V and R2V | | `negative_prompt` | string | No | `""` | What to avoid (max 500 chars) | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `duration` | integer | No | `5` | Output duration in seconds (2-15) | | `prompt_extend` | boolean | No | `true` | LLM-based prompt rewriting. Improves short prompts but adds latency | | `watermark` | boolean | No | `false` | Add "AI Generated" watermark in lower-right corner | | `seed` | integer | No | `null` | Random seed (0-2147483647) | *** ## T2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | ----------- | ------ | -------- | -------- | ----------------------------------------------------------------------------------------------- | | `audio_url` | string | No | `null` | Audio file URL. Formats: WAV, MP3. Duration: 2-30s. Max 15MB. Truncated to `duration` if longer | | `ratio` | string | No | `"16:9"` | Aspect ratio: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"` | ### Multi-shot Control shot structure using natural language in the prompt: * **Single shot:** "Generate a single-shot video" * **Multi-shot:** "Generate a multi-shot video" or describe shots with timestamps (e.g., "Shot 1 \[0-3 seconds] wide shot: Rainy New York street at night") * **Default:** If unspecified, the model interprets the prompt content ### Example - Basic Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "t2v", "prompt": "A kitten running in the moonlight", "resolution": "720P", "ratio": "16:9" } }' ``` ### Example - Multi-shot Narrative ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "t2v", "prompt": "A tense detective story. Shot 1 [0-3 seconds] wide shot: Rainy New York street at night. Shot 2 [3-6 seconds] medium shot: The detective enters an old building.", "resolution": "720P", "ratio": "16:9", "duration": 6 } }' ``` ### Example - With Audio File ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "t2v", "prompt": "A cartoon kitten general stands bravely on a cliff", "audio_url": "https://example.com/epic.mp3", "resolution": "1080P", "ratio": "16:9", "duration": 10 } }' ``` *** ## I2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------ | -------- | ------- | --------------------------------------------------------------------------------------------------------- | | `first_frame_url` | string | Depends | `null` | First frame image URL. Formats: JPEG, JPG, PNG, BMP, WEBP. Resolution: 240-8000px. Max 20MB | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format limits. Requires `first_frame_url` | | `video_url` | string | Depends | `null` | Video to continue (MP4/MOV, 2-10s, max 100MB). Mutually exclusive with `first_frame_url`/`last_frame_url` | | `audio_url` | string | No | `null` | Driving audio URL for lip-sync / action timing. Formats: WAV, MP3. Duration: 2-30s. Max 15MB | ### Validation Rules * At least one of `first_frame_url` or `video_url` is required * `last_frame_url` requires `first_frame_url` * `video_url` (continuation) is mutually exclusive with `first_frame_url` / `last_frame_url` ### Example - First Frame to Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "i2v", "prompt": "A kitten runs across the grass", "first_frame_url": "https://example.com/cat.png", "resolution": "720P", "duration": 10 } }' ``` ### Example - First + Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "i2v", "prompt": "A small black cat looks up at the sky curiously", "first_frame_url": "https://example.com/first.png", "last_frame_url": "https://example.com/last.png", "duration": 10, "prompt_extend": false } }' ``` ### Example - Video Continuation Continue an existing video clip. If the input is 3s and `duration` is 15, the model generates 12s of new content. The final output is 15s. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "i2v", "prompt": "A girl takes a selfie in the mirror, then leaves with her backpack", "video_url": "https://example.com/clip.mp4", "duration": 15 } }' ``` *** ## R2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | ---------------------- | --------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- | | `reference_image_urls` | string\[] | Depends | `null` | Reference images for characters/objects/scenes. Each must contain a single subject. Formats: JPEG, JPG, PNG, BMP, WEBP. Max 20MB each | | `reference_video_urls` | string\[] | Depends | `null` | Reference videos for characters. Each must contain a single subject. Formats: MP4, MOV. Duration: 1-30s. Max 100MB each | | `first_frame_url` | string | No | `null` | First frame image for scene control. Overrides `ratio` | | `reference_voice_url` | string | No | `null` | Audio URL for voice timbre override. Formats: WAV, MP3. Duration: 1-10s. Max 15MB | | `ratio` | string | No | `"16:9"` | Aspect ratio: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`. Ignored when `first_frame_url` is set | ### Prompt Identifiers Use "Image 1", "Image 2" to reference images and "Video 1", "Video 2" to reference videos. Images and videos are numbered separately based on array order. If there is only one reference, you can use "the reference image" or "the reference video". ### Validation Rules * At least 1 `reference_image_urls` or `reference_video_urls` is required * Total images + videos must not exceed 5 ### Example - Multi-Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "r2v", "prompt": "Video 2 holds Image 3 and plays a soothing country ballad, while Video 1 smiles and watches", "reference_video_urls": [ "https://example.com/person1.mp4", "https://example.com/person2.mp4" ], "reference_image_urls": [ "https://example.com/guitar.png" ], "resolution": "720P", "duration": 10, "prompt_extend": false } }' ``` ### Example - Single Reference Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "r2v", "prompt": "The reference image character walks through a sunlit garden", "reference_image_urls": ["https://example.com/person.png"], "resolution": "1080P", "ratio": "16:9", "duration": 5 } }' ``` *** ## Input Limits | Asset | Formats | Resolution | Duration | File Size | | ------------------------------ | ------------------------- | ---------------------------- | -------- | --------- | | Audio (T2V / I2V driving) | WAV, MP3 | — | 2-30s | 15MB | | Voice timbre (R2V) | WAV, MP3 | — | 1-10s | 15MB | | First/last frame image | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio 1:8 to 8:1 | — | 20MB | | Input video (I2V continuation) | MP4, MOV | 240-4096px, ratio 1:8 to 8:1 | 2-10s | 100MB | | Reference video (R2V) | MP4, MOV | 240-4096px, ratio 1:8 to 8:1 | 1-30s | 100MB | | Reference image (R2V) | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio 1:8 to 8:1 | — | 20MB | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Wan 2.7 Video Edit Source: https://docs.unifically.com/models/video/alibaba/wan-2.7-video-edit Edit or style-transfer existing videos with optional reference images Edit or style-transfer an existing video using Wan 2.7 Video Edit. Supports reference images for content transfer. This is a separate model from `alibaba/wan-2.7-video`. ## Model ``` alibaba/wan-2.7-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | ---------------------- | --------- | -------- | --------- | ------------------------------------------------------------------------------------------------------ | | `prompt` | string | No | `""` | Text prompt describing the desired edit (max 5000 chars) | | `negative_prompt` | string | No | `""` | What to avoid (max 500 chars) | | `video_url` | string | Yes | — | Video to edit (MP4/MOV, 2-10s, max 100MB) | | `reference_image_urls` | string\[] | No | `null` | Up to 4 reference images for style/content transfer. Formats: JPEG, JPG, PNG, BMP, WEBP. Max 20MB each | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `duration` | integer | No | `null` | Output duration in seconds (2-10). Omit to keep input duration | | `ratio` | string | No | `null` | Force output aspect ratio: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`. Omit to match input video | | `audio_setting` | string | No | `"auto"` | `"auto"` (model decides based on prompt) or `"origin"` (keep original audio unchanged) | | `prompt_extend` | boolean | No | `true` | LLM-based prompt rewriting. Improves short prompts but adds latency | | `watermark` | boolean | No | `false` | Add "AI Generated" watermark in lower-right corner | | `seed` | integer | No | `null` | Random seed (0-2147483647) | ## Example - Style Transfer ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video-edit", "input": { "prompt": "Convert the entire scene to a claymation style", "video_url": "https://example.com/scene.mp4", "resolution": "720P" } }' ``` ## Example - With Reference Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video-edit", "input": { "prompt": "Replace the clothes of the girl with the clothes from the image", "video_url": "https://example.com/girl.mp4", "reference_image_urls": ["https://example.com/outfit.png"] } }' ``` ## Input Limits | Asset | Formats | Resolution | Duration | File Size | | --------------- | ------------------------- | ---------------------------- | -------- | --------- | | Input video | MP4, MOV | 240-4096px, ratio 1:8 to 8:1 | 2-10s | 100MB | | Reference image | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio 1:8 to 8:1 | — | 20MB | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 1.0 Fast Source: https://docs.unifically.com/models/video/bytedance/seedance-1.0-fast Fast video generation with multi-frame keyframe support Generate videos using ByteDance SeeDance 1.0 Fast with text-to-video, first & last frame, and multi-frame modes. Supports 5 and 10 second durations at 720p or 1080p. ## Model ``` bytedance/seedance-1.0-fast ``` ## Supported Modes | Mode | Description | | ------------------ | -------------------------------------------------------------------------------- | | `text_to_video` | Text-to-video. You control the aspect ratio. | | `first_last_frame` | Start frame required, end frame optional. Aspect ratio auto-detected from input. | | `multi_frame` | Keyframe images with per-frame prompts and durations. | ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | --------- | ----------- | -------- | ------------------------------------------------------------------------- | | `prompt` | string | No | `""` | Text description of the desired video | | `mode` | string | Yes | — | `text_to_video`, `first_last_frame`, or `multi_frame` | | `aspect_ratio` | string | No | `"1:1"` | `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`. Only used for text-to-video. | | `duration` | integer | No | `5` | Duration in seconds: `5` or `10`. Auto-calculated in `multi_frame` mode. | | `resolution` | string | No | `"720p"` | `720p` or `1080p` | | `seed` | integer | No | random | Seed for reproducibility | | `first_frame_url` | string | Conditional | `null` | Start frame image. **Required** for `first_last_frame`. | | `last_frame_url` | string | No | `null` | End frame image. Optional for `first_last_frame`. | | `frames` | object\[] | Conditional | `null` | Keyframes. **Required** for `multi_frame`. Min 1. | ### Multi-Frame `frames` Object | Field | Type | Required | Default | Description | | ----------- | ------- | -------- | ------- | --------------------------------------------- | | `image_url` | string | No | `null` | Keyframe image URL. Omit for text-only frame. | | `prompt` | string | No | `""` | Per-frame prompt | | `duration` | integer | No | `5` | Segment duration in seconds | At least one frame must have an `image_url`. Total video duration = sum of all frame durations. ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-fast", "input": { "prompt": "A person breakdancing in an urban setting", "mode": "text_to_video", "aspect_ratio": "9:16", "duration": 10, "resolution": "1080p" } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-fast", "input": { "prompt": "Smooth transition from standing to sitting", "mode": "first_last_frame", "duration": 5, "resolution": "720p", "first_frame_url": "https://example.com/standing.jpg", "last_frame_url": "https://example.com/sitting.jpg" } }' ``` ## Example - Multi-Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-fast", "input": { "mode": "multi_frame", "resolution": "720p", "frames": [ { "prompt": "A car driving through a city transitioning from day to night", "duration": 3 }, { "image_url": "https://example.com/daytime.jpg", "prompt": "Bright sunny street with the car approaching", "duration": 5 }, { "image_url": "https://example.com/nighttime.jpg", "prompt": "Neon-lit street at night as the car drives away", "duration": 5 } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 1.0 Mini Source: https://docs.unifically.com/models/video/bytedance/seedance-1.0-mini Compact video generation with multi-frame keyframe support Generate videos using ByteDance SeeDance 1.0 Mini with text-to-video, first & last frame, and multi-frame modes. Supports 5 and 10 second durations at 720p or 1080p. ## Model ``` bytedance/seedance-1.0-mini ``` ## Supported Modes | Mode | Description | | ------------------ | -------------------------------------------------------------------------------- | | `text_to_video` | Text-to-video. You control the aspect ratio. | | `first_last_frame` | Start frame required, end frame optional. Aspect ratio auto-detected from input. | | `multi_frame` | Keyframe images with per-frame prompts and durations. **720p only.** | ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | --------- | ----------- | -------- | ------------------------------------------------------------------------- | | `prompt` | string | No | `""` | Text description of the desired video | | `mode` | string | Yes | — | `text_to_video`, `first_last_frame`, or `multi_frame` | | `aspect_ratio` | string | No | `"1:1"` | `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`. Only used for text-to-video. | | `duration` | integer | No | `5` | Duration in seconds: `5` or `10`. Auto-calculated in `multi_frame` mode. | | `resolution` | string | No | `"720p"` | `720p` or `1080p`. Multi-frame mode requires `720p`. | | `seed` | integer | No | random | Seed for reproducibility | | `first_frame_url` | string | Conditional | `null` | Start frame image. **Required** for `first_last_frame`. | | `last_frame_url` | string | No | `null` | End frame image. Optional for `first_last_frame`. | | `frames` | object\[] | Conditional | `null` | Keyframes. **Required** for `multi_frame`. Min 1. | ### Multi-Frame `frames` Object | Field | Type | Required | Default | Description | | ----------- | ------- | -------- | ------- | --------------------------------------------- | | `image_url` | string | No | `null` | Keyframe image URL. Omit for text-only frame. | | `prompt` | string | No | `""` | Per-frame prompt | | `duration` | integer | No | `5` | Segment duration in seconds | At least one frame must have an `image_url`. Total video duration = sum of all frame durations. ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-mini", "input": { "prompt": "A butterfly landing on a flower in slow motion", "mode": "text_to_video", "aspect_ratio": "1:1", "duration": 5, "resolution": "1080p" } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-mini", "input": { "prompt": "Gradual zoom into the subject", "mode": "first_last_frame", "duration": 10, "resolution": "1080p", "first_frame_url": "https://example.com/start.jpg" } }' ``` ## Example - Multi-Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-mini", "input": { "mode": "multi_frame", "resolution": "720p", "frames": [ { "prompt": "A car driving through a city transitioning from day to night", "duration": 3 }, { "image_url": "https://example.com/daytime.jpg", "prompt": "Bright sunny street with the car approaching", "duration": 5 }, { "image_url": "https://example.com/nighttime.jpg", "prompt": "Neon-lit street at night as the car drives away", "duration": 5 } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 1.0 Pro Source: https://docs.unifically.com/models/video/bytedance/seedance-1.0-pro High-quality video generation with first & last frame support Generate videos using ByteDance SeeDance 1.0 Pro with text-to-video and first & last frame modes. Supports 5 and 10 second durations at 720p. ## Model ``` bytedance/seedance-1.0-pro ``` ## Supported Modes | Mode | Description | | ------------------ | -------------------------------------------------------------------------------- | | `text_to_video` | Text-to-video. You control the aspect ratio. | | `first_last_frame` | Start frame required, end frame optional. Aspect ratio auto-detected from input. | ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | ----------- | ------- | ------------------------------------------------------------------------- | | `prompt` | string | No | `""` | Text description of the desired video | | `mode` | string | Yes | — | `text_to_video` or `first_last_frame` | | `aspect_ratio` | string | No | `"1:1"` | `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`. Only used for text-to-video. | | `duration` | integer | No | `5` | Duration in seconds: `5` or `10` | | `seed` | integer | No | random | Seed for reproducibility | | `first_frame_url` | string | Conditional | `null` | Start frame image. **Required** for `first_last_frame`. | | `last_frame_url` | string | No | `null` | End frame image. Optional for `first_last_frame`. | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-pro", "input": { "prompt": "A person dancing in a vibrant street scene", "mode": "text_to_video", "aspect_ratio": "9:16", "duration": 5 } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-pro", "input": { "prompt": "Smooth transition between poses", "mode": "first_last_frame", "duration": 10, "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 1.5 Pro Source: https://docs.unifically.com/models/video/bytedance/seedance-1.5-pro Professional video generation with first & last frame support up to 1080p Generate videos using ByteDance SeeDance 1.5 Pro with text-to-video and first & last frame modes. Supports 5, 10, and 12 second durations at 720p or 1080p. ## Model ``` bytedance/seedance-1.5-pro ``` ## Supported Modes | Mode | Description | | ------------------ | -------------------------------------------------------------------------------- | | `text_to_video` | Text-to-video. You control the aspect ratio. | | `first_last_frame` | Start frame required, end frame optional. Aspect ratio auto-detected from input. | ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | ----------- | -------- | ------------------------------------------------------------------------- | | `prompt` | string | No | `""` | Text description of the desired video | | `mode` | string | Yes | — | `text_to_video` or `first_last_frame` | | `aspect_ratio` | string | No | `"1:1"` | `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`. Only used for text-to-video. | | `duration` | integer | No | `5` | Duration in seconds: `5`, `10`, or `12` | | `resolution` | string | No | `"720p"` | `720p` or `1080p` | | `seed` | integer | No | random | Seed for reproducibility | | `first_frame_url` | string | Conditional | `null` | Start frame image. **Required** for `first_last_frame`. | | `last_frame_url` | string | No | `null` | End frame image. Optional for `first_last_frame`. | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.5-pro", "input": { "prompt": "A dancer performing an elegant routine on a moonlit stage", "mode": "text_to_video", "aspect_ratio": "9:16", "duration": 10, "resolution": "1080p" } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.5-pro", "input": { "prompt": "The car accelerates and drives away into the sunset", "mode": "first_last_frame", "duration": 10, "resolution": "1080p", "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 2.0 Fast Source: https://docs.unifically.com/models/video/bytedance/seedance-2.0-fast Fast video generation with omni-reference support Generate videos using ByteDance SeeDance 2.0 Fast with text-to-video, first & last frame, and omni-reference modes. Supports 4–15 second durations at 720p. ## Model ``` bytedance/seedance-2.0-fast ``` ## Supported Modes | Mode | Description | | ------------------ | --------------------------------------------------------------------------------------------------------------- | | `text_to_video` | Text-to-video. You control the aspect ratio. | | `first_last_frame` | Start frame required, end frame optional. Aspect ratio auto-detected from input. | | `omni_reference` | Up to 9 image/video/audio references (audio max 15s). Use `@Image1`/`@Video1`/`@Audio1` placeholders in prompt. | ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | --------- | ----------- | ------- | ------------------------------------------------------------------------------------------ | | `prompt` | string | No | `""` | Text prompt. Use `@Image1`/`@Video1`/`@Audio1` placeholders in `omni_reference` mode. | | `mode` | string | Yes | — | `text_to_video`, `first_last_frame`, or `omni_reference` | | `aspect_ratio` | string | No | `"1:1"` | `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`. Only used for text-to-video. | | `duration` | integer | No | `5` | Duration in seconds (4–15) | | `seed` | integer | No | random | Seed for reproducibility | | `first_frame_url` | string | Conditional | `null` | Start frame image. **Required** for `first_last_frame`. | | `last_frame_url` | string | No | `null` | End frame image. Optional for `first_last_frame`. | | `references` | string\[] | Conditional | `null` | Media URLs (images/videos/audio). Audio max 15s. **Required** for `omni_reference`. Max 9. | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast", "input": { "prompt": "A drone shot flying over a neon-lit cyberpunk city at night", "mode": "text_to_video", "aspect_ratio": "16:9", "duration": 5 } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast", "input": { "prompt": "Smooth camera pan from left to right", "mode": "first_last_frame", "duration": 8, "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Example - Omni-Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast", "input": { "prompt": "Transform the background of @Video1 to match the scenery in @Image1", "mode": "omni_reference", "duration": 8, "references": [ "https://example.com/scenery.jpg", "https://example.com/clip.mp4" ] } }' ``` References are numbered in order: first image = `@Image1`, first video = `@Video1`, first audio = `@Audio1`, etc. Images, videos, and audio are numbered independently. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 2.0 Fast (Low Restriction) Source: https://docs.unifically.com/models/video/bytedance/seedance-2.0-fast-low-restriction Fast video generation with face usage and reduced moderation Generate videos using ByteDance SeeDance 2.0 Fast Low Restriction. This variant allows face usage and is less restricted and moderated than the standard SeeDance 2.0 Fast model. Supports text-to-video with optional image, video, and audio references at 480p, 720p, or 1080p with synchronized audio. ## Model ``` bytedance/seedance-2.0-fast-low-restriction ``` This model allows face usage and applies reduced content moderation. ## Parameters | Parameter | Type | Required | Default | Description | | ----------------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | — | Text prompt describing the video to generate (2–3000 characters). | | `aspect_ratio` | string | No | — | Output aspect ratio. One of `auto`, `9:16`, `3:4`, `1:1`, `4:3`, `16:9`, `21:9`. | | `audio` | boolean | No | — | Generate synchronized audio. | | `audio_urls` | string\[] | No | — | Reference audio(s) for text-to-video (max 3). Requires `video_urls` or `reference_image_urls`. | | `duration` | integer | No | — | Video length in seconds (4–15). | | `end_frame_image_url` | string | No | `null` | Optional last frame (requires `start_frame_image_url`). | | `reference_image_urls` | string\[] | No | — | Reference image(s) for visual guidance (max 9). | | `resolution` | string | No | — | Output resolution preset. One of `480p`, `720p`, `1080p`. | | `start_frame_image_url` | string | No | `null` | Start frame for image-to-video. Cannot combine with `video_urls`, `reference_image_urls`, or `audio_urls`. | | `video_urls` | string\[] | No | — | Reference video(s) for text-to-video visual guidance (max 3). | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast-low-restriction", "input": { "prompt": "A drone shot flying over a neon-lit cyberpunk city at night", "aspect_ratio": "16:9", "duration": 5, "audio": true } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast-low-restriction", "input": { "prompt": "Smooth camera pan from left to right", "duration": 8, "start_frame_image_url": "https://example.com/start.jpg", "end_frame_image_url": "https://example.com/end.jpg" } }' ``` ## Example - Reference-Guided ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast-low-restriction", "input": { "prompt": "A character animated with natural movement matching the references", "duration": 8, "reference_image_urls": [ "https://example.com/scenery.jpg", "https://example.com/style.jpg" ] } }' ``` ## Example - Text-to-Video with Video Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast-low-restriction", "input": { "prompt": "Transform the background to match a sunset scenery", "duration": 8, "video_urls": [ "https://example.com/clip.mp4" ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 2.0 Pro Source: https://docs.unifically.com/models/video/bytedance/seedance-2.0-pro High-quality video generation with omni-reference support Generate videos using ByteDance SeeDance 2.0 Pro with text-to-video, first & last frame, and omni-reference modes. Supports 4–15 second durations at 720p or 1080p with higher quality output. ## Model ``` bytedance/seedance-2.0-pro ``` ## Supported Modes | Mode | Description | | ------------------ | --------------------------------------------------------------------------------------------------------------- | | `text_to_video` | Text-to-video. You control the aspect ratio. | | `first_last_frame` | Start frame required, end frame optional. Aspect ratio auto-detected from input. | | `omni_reference` | Up to 9 image/video/audio references (audio max 15s). Use `@Image1`/`@Video1`/`@Audio1` placeholders in prompt. | ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | --------- | ----------- | -------- | ------------------------------------------------------------------------------------------ | | `prompt` | string | No | `""` | Text prompt. Use `@Image1`/`@Video1`/`@Audio1` placeholders in `omni_reference` mode. | | `mode` | string | Yes | — | `text_to_video`, `first_last_frame`, or `omni_reference` | | `aspect_ratio` | string | No | `"1:1"` | `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`. Only used for text-to-video. | | `duration` | integer | No | `5` | Duration in seconds (4–15) | | `resolution` | string | No | `"720p"` | `720p` or `1080p` | | `seed` | integer | No | random | Seed for reproducibility | | `first_frame_url` | string | Conditional | `null` | Start frame image. **Required** for `first_last_frame`. | | `last_frame_url` | string | No | `null` | End frame image. Optional for `first_last_frame`. | | `references` | string\[] | Conditional | `null` | Media URLs (images/videos/audio). Audio max 15s. **Required** for `omni_reference`. Max 9. | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro", "input": { "prompt": "Cinematic slow-motion shot of a dancer performing on a rain-soaked stage", "mode": "text_to_video", "aspect_ratio": "16:9", "duration": 10, "resolution": "1080p" } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro", "input": { "prompt": "The car accelerates and drives away into the sunset", "mode": "first_last_frame", "duration": 12, "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Example - Omni-Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro", "input": { "prompt": "Make @Image1 come alive in the style of @Video1", "mode": "omni_reference", "duration": 8, "references": [ "https://example.com/portrait.jpg", "https://example.com/animation-style.mp4" ] } }' ``` References are numbered in order: first image = `@Image1`, first video = `@Video1`, first audio = `@Audio1`, etc. Images, videos, and audio are numbered independently. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # SeeDance 2.0 Pro (Low Restriction) Source: https://docs.unifically.com/models/video/bytedance/seedance-2.0-pro-low-restriction High-quality video generation with face usage and reduced moderation Generate videos using ByteDance SeeDance 2.0 Pro Low Restriction. This variant allows face usage and is less restricted and moderated than the standard SeeDance 2.0 Pro model. Supports text-to-video with optional image, video, and audio references at 480p, 720p, or 1080p with synchronized audio. ## Model ``` bytedance/seedance-2.0-pro-low-restriction ``` This model allows face usage and applies reduced content moderation. ## Parameters | Parameter | Type | Required | Default | Description | | ----------------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | — | Text prompt describing the video to generate (2–3000 characters). | | `aspect_ratio` | string | No | — | Output aspect ratio. One of `auto`, `9:16`, `3:4`, `1:1`, `4:3`, `16:9`, `21:9`. | | `audio` | boolean | No | — | Generate synchronized audio. | | `audio_urls` | string\[] | No | — | Reference audio(s) for text-to-video (max 3). Requires `video_urls` or `reference_image_urls`. | | `duration` | integer | No | — | Video length in seconds (4–15). | | `end_frame_image_url` | string | No | `null` | Optional last frame (requires `start_frame_image_url`). | | `reference_image_urls` | string\[] | No | — | Reference image(s) for visual guidance (max 9). | | `resolution` | string | No | — | Output resolution preset. One of `480p`, `720p`, `1080p`. | | `start_frame_image_url` | string | No | `null` | Start frame for image-to-video. Cannot combine with `video_urls`, `reference_image_urls`, or `audio_urls`. | | `video_urls` | string\[] | No | — | Reference video(s) for text-to-video visual guidance (max 3). | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro-low-restriction", "input": { "prompt": "Cinematic slow-motion shot of a dancer performing on a rain-soaked stage", "aspect_ratio": "16:9", "duration": 10, "resolution": "1080p", "audio": true } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro-low-restriction", "input": { "prompt": "The car accelerates and drives away into the sunset", "duration": 12, "start_frame_image_url": "https://example.com/start.jpg", "end_frame_image_url": "https://example.com/end.jpg" } }' ``` ## Example - Reference-Guided ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro-low-restriction", "input": { "prompt": "A portrait subject brought to life with natural movement", "duration": 8, "resolution": "1080p", "reference_image_urls": [ "https://example.com/portrait.jpg", "https://example.com/style.jpg" ] } }' ``` ## Example - Text-to-Video with Video Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro-low-restriction", "input": { "prompt": "Restyle the clip with a moody cinematic color grade", "duration": 8, "video_urls": [ "https://example.com/source.mp4" ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Gemini Omni Flash Video Source: https://docs.unifically.com/models/video/google/gemini-omni-flash-video Generate videos with Google's Gemini Omni Flash video model Generate short text-to-video and reference-to-video clips with Google's Gemini Omni Flash video model. ## Model ```text theme={null} google/gemini-omni-flash-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | ---------------------- | --------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | - | Main video prompt. Use `@ImageN` or `@CharacterN` to point at specific references. Unknown references are left as plain text. | | `seed` | integer | No | Random | Seed sent to Gemini Omni Flash. If omitted, a seed is generated automatically and returned when available. | | `aspect_ratio` | string | No | `"16:9"` | Output orientation. Allowed: `"16:9"`, `"9:16"`. | | `duration` | integer | No | `4` | Clip length in seconds. Allowed: `4`, `6`, `8`, `10`. | | `reference_image_urls` | string\[] | No | - | Publicly reachable image reference URLs. Max 7 total expanded image + character image URLs. | | `reference_characters` | array | No | - | Character references. Max 3 character items; expanded character image URLs count toward the total 7 reference limit. | | `voice` | string | No | - | Request-level Google Flow voice preset ID. Requires at least one image or character reference. See [available voices](/api-reference/resources#get-google-veo-voices). | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | Start/end frame fields are not enabled for Gemini Omni Flash video generation. Use Veo 3.1 for first-frame or first-and-last-frame workflows. ## Character References Each character must be an object with `image_urls`. Even one-image characters must use an array. ```json theme={null} { "image_urls": [ "https://example.com/character-front.png", "https://example.com/character-profile.png" ], "name": "Ada", "description": "warm, sharp, curious" } ``` | Field | Type | Required | Description | | ------------- | --------- | -------- | -------------------------------------------------------------------------------- | | `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. | | `name` | string | No | Display name for the character. | | `description` | string | No | Character notes/personality text. | \*`image_urls` must contain at least one URL. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-video", "input": { "prompt": "Make @Character1 and @Image1 dance in a neon studio with energetic camera movement.", "reference_image_urls": [ "https://example.com/neon-studio.png" ], "reference_characters": [ { "image_urls": [ "https://example.com/dancer.png" ], "name": "Dancer" } ], "duration": 10, "aspect_ratio": "9:16" } }' ``` ## Prompt References | Token | Refers to | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only. With multiple `image_urls`, the token points to the character item; extra images are identity references | ## Rejected Combinations | Input | Why rejected | | ------------------------------------------ | ---------------------------------------------------------------------- | | `start_image_url` or `end_image_url` | Start/end frames are not enabled for Gemini Omni Flash generation yet. | | More than 7 total expanded image URLs | Gemini Omni Flash generation reference limit. | | More than 3 character items | Character item limit. | | `image_url` on a character | Use `image_urls` instead, even for one image. | | Plain string character entries | Character entries must be objects with `image_urls`. | | Empty `image_urls` | A character needs at least one image. | | More than 10 `image_urls` on one character | Character entity image limit. | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Gemini Omni Flash Video Edit Source: https://docs.unifically.com/models/video/google/gemini-omni-flash-video-edit Edit videos with Google's Gemini Omni Flash video edit model Edit an existing uploaded video with Google's Gemini Omni Flash video edit model. Provide exactly one source video URL in `reference_video_urls`. ## Model ```text theme={null} google/gemini-omni-flash-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | ---------------------- | --------- | -------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `reference_video_urls` | string\[] | Yes | - | Publicly reachable source video URL. Must contain exactly one URL. Uploaded source videos must meet the limits below. | | `prompt` | string | Yes | - | Edit instruction. Use `@Video1` to refer to the source video and `@ImageN`/`@CharacterN` for extra references. | | `reference_image_urls` | string\[] | No | - | Publicly reachable image URLs used as edit references. They count toward the total reference limit. | | `reference_characters` | array | No | - | Character references for the edit. Max 3 character items. Each character may include 1-10 `image_urls`. Supports per-character `voice` or `custom_voice`. See [available voices](/api-reference/resources#get-google-veo-voices). | | `seed` | integer | No | Random | Seed sent with the edit request. If omitted, a seed is generated automatically and returned when available. | | `start_frame` | integer | No | `0` | First source frame index included in the edit range. | | `end_frame` | integer | No | Source end | Last source frame index included in the edit range. If omitted, the service uses the detected final frame when available. | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | ## Limits | Limit | Value | | ------------------------------------------ | ---------------- | | Video references | 1 | | Character references | 3 | | Total video + image + character references | 7 | | Uploaded source video size | Up to 1 GB | | Uploaded source video length | Up to 30 seconds | ## Character References Each character must be an object with `image_urls`. Even one-image characters must use an array. Gemini Omni Flash edit also supports per-character preset voices and custom tuned voices. ### Preset Voice ```json theme={null} { "image_urls": [ "https://example.com/character.png" ], "name": "Ada", "description": "warm, sharp, curious", "voice": "achernar" } ``` ### Custom Tuned Voice ```json theme={null} { "image_urls": [ "https://example.com/character.png" ], "name": "Ada", "description": "warm, sharp, curious", "custom_voice": { "voice": "achernar", "name": "Ada voice", "voice_performance": "calm, bright, expressive", "sample_dialogue": "Hello, I am Ada.", "speaker": "Ada" } } ``` | Field | Type | Required | Description | | -------------------------------- | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------- | | `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. | | `name` | string | No | Display name for the character. Used as the temporary character handle/name. | | `description` | string | No | Character notes/personality text. | | `voice` | string | No | Preset voice for this character. Do not combine with `custom_voice` on the same character. | | `custom_voice` | object | No | Tuned voice config for this character. Use this instead of `voice` when you want to modify a base voice. | | `custom_voice.voice` | string | Yes | Preset voice used as the base voice for tuning. See [available voices](/api-reference/resources#get-google-veo-voices). | | `custom_voice.name` | string | Yes | Display name for the tuned voice. | | `custom_voice.voice_performance` | string | Yes | Direction for the tuned voice delivery, such as tone, energy, accent, pacing, or acting notes. | | `custom_voice.sample_dialogue` | string | Yes | Sample line used for tuning. Max 120 characters. | | `custom_voice.speaker` | string | No | Speaker label for the tuned voice. Defaults to the custom voice `name` when omitted. | \*`image_urls` must contain at least one URL. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-video-edit", "input": { "reference_video_urls": [ "https://example.com/source-video.mp4" ], "prompt": "Make @Video1 look like it was filmed underwater, and replace the main person with @Character1.", "reference_image_urls": [ "https://example.com/underwater-style.png" ], "reference_characters": [ { "image_urls": [ "https://example.com/ada-front.png", "https://example.com/ada-profile.png" ], "name": "Ada", "description": "confident explorer", "voice": "achernar" } ], "seed": 4734, "start_frame": 0, "end_frame": 122 } }' ``` ## Prompt References | Token | Refers to | | ---------------------------- | -------------------------------------- | | `@Video1` | The source video for edit requests | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only | ## Rejected Combinations | Input | Why rejected | | ------------------------------------------------- | --------------------------------------------------------------------------------- | | `task_id` | Edit requests must use `reference_video_urls`; source task IDs are not supported. | | Missing or empty `reference_video_urls` | An edit needs exactly one source video URL. | | More than one `reference_video_urls` item | Video edit accepts one source video. | | `end_frame` lower than `start_frame` | Frame range must move forward. | | More than 7 total video + image + character items | Gemini Omni Flash edit reference limit. | | `image_url` on a character | Use `image_urls` instead, even for one image. | | Plain string character entries | Character entries must be objects with `image_urls`. | | Empty `image_urls` | A character needs at least one image. | | More than 10 `image_urls` on one character | Character entity image limit. | | `voice` and `custom_voice` on the same character | Use a preset voice or a tuned voice, not both. | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Veo 3.1 Source: https://docs.unifically.com/models/video/google/veo-3.1 Generate videos with Google's Veo 3.1 models Generate videos with Google's Veo 3.1 modes through the unified task API. Veo 3.1 supports text-to-video, first-frame, first-and-last-frame, and reference-to-video workflows. ## Models | Mode | Model ID | Character references | Notes | | ------------ | ----------------------------- | -------------------- | --------------------------------------------------------------- | | Lite | `google/veo-3.1-lite` | Yes | Balanced default | | Fast | `google/veo-3.1-fast` | Yes | Faster generation | | Quality | `google/veo-3.1-quality` | No | Higher quality text/image-to-video, but no character references | | Lite Relaxed | `google/veo-3.1-lite-relaxed` | Yes | Relaxed queue variant | ## Parameters | Parameter | Type | Required | Default | Description | | ---------------------- | --------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `prompt` | string | Yes | - | Main video prompt. Use `@ImageN` or `@CharacterN` to point at a specific reference. Unknown references are left as plain text. | | `seed` | integer | No | Random | Seed sent to Veo. If omitted, a seed is generated automatically and returned when available. | | `aspect_ratio` | string | No | `"16:9"` | Output orientation. Allowed: `"16:9"`, `"9:16"`. | | `duration` | integer | No | `4` | Text/start-frame requests allow `4`, `6`, or `8`. Any `reference_image_urls` or `reference_characters` reference locks duration to `8`. | | `start_image_url` | string | No | - | Publicly reachable image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `end_image_url` | string | No | - | Publicly reachable image URL used as the final frame. Requires `start_image_url`; cannot be used by itself. | | `reference_image_urls` | string\[] | No | - | Image references for reference-to-video. Max 3 total expanded image URLs across `reference_image_urls` and character images. Cannot be combined with start/end frame fields. | | `reference_characters` | array | No | - | Character references for reference-to-video. Max 3 total expanded image URLs across images and character `image_urls`. Not available on Quality. | | `voice` | string | No | - | Request-level Google Flow voice preset ID. Requires at least one image or character reference. See [available voices](/api-reference/resources#get-google-veo-voices). | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | First/last-frame mode and reference mode are separate generation modes. Do not combine `start_image_url` or `end_image_url` with `reference_image_urls` or `reference_characters`. ## Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cinematic shot of a cat walking through a garden", "aspect_ratio": "16:9", "duration": 4 } }' ``` ## First and Last Frame Use `start_image_url` and optionally `end_image_url` to guide the video with first and final frames. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "Camera slowly zooms in", "start_image_url": "https://example.com/start.jpg", "end_image_url": "https://example.com/end.jpg", "aspect_ratio": "16:9", "duration": 6 } }' ``` ## References and Characters Use `reference_image_urls` for image references and `reference_characters` for character identity consistency. Character references are supported on Lite, Fast, and Lite Relaxed. They are not supported on Quality. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "Make @Character1 walk through a glass city at sunrise, speaking softly to camera.", "reference_characters": [ { "image_urls": [ "https://example.com/ada.png" ], "name": "Ada", "description": "warm, sharp, curious" } ], "duration": 8, "aspect_ratio": "9:16" } }' ``` ## Character References Provide each character as an object with `image_urls`. Even one-image characters must use an array. ```json theme={null} { "image_urls": [ "https://example.com/character-front.png", "https://example.com/character-profile.png" ], "name": "Ada", "description": "warm, sharp, curious" } ``` | Field | Type | Required | Description | | ------------- | --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | | `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. Each URL still consumes a model reference-image slot. | | `name` | string | No | Display name for the character. | | `description` | string | No | Character notes/personality text. | \*`image_urls` must contain at least one URL. `image_url` and plain string character entries are not supported. Use `image_urls` for every character, including one-image characters. ## Prompt References | Token | Refers to | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only. With multiple `image_urls`, the token points to the character item; extra images are identity references | ## Duration | Mode | What you send | 4s | 6s | 8s | | -------------------- | ------------------------------------------------ | --- | --- | --- | | Text-to-video | `prompt` only | Yes | Yes | Yes | | First-frame | `prompt` + `start_image_url` | Yes | Yes | Yes | | First-and-last-frame | `prompt` + `start_image_url` + `end_image_url` | Yes | Yes | Yes | | Reference-to-video | `reference_image_urls` or `reference_characters` | No | No | Yes | ## Rejected Combinations | Input | Why rejected | | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | | `end_image_url` without `start_image_url` | The ending frame needs a starting frame. | | `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters` | First/last-frame mode and reference mode are separate generation modes. | | `reference_characters` on `google/veo-3.1-quality` | Quality does not expose character references. | | Any image or character reference with `duration` other than `8` | Veo reference-image generation is 8 seconds only. | | More than 3 total expanded image URLs | Veo reference generation limit. | | `image_url` on a character | Use `image_urls` instead, even for one image. | | Plain string character entries | Character entries must be objects with `image_urls`. | | Empty `image_urls` | A character needs at least one image. | | More than 10 `image_urls` on one character | Character entity image limit. | ## Extend Extend a previously generated video using `google/veo-3.1-extend`. The aspect ratio is inherited from the source task. | Parameter | Type | Required | Description | | ---------- | ------- | -------- | ------------------------------------------------- | | `prompt` | string | Yes | Text prompt for the extended content | | `task_id` | string | Yes | Task ID of a completed generation | | `model` | string | Yes | One of: `lite`, `fast`, `quality`, `lite-relaxed` | | `duration` | integer | No | Must be `8`. Default `8`. | | `seed` | integer | No | Reproducibility seed | ## Upscale Upscale a completed video to a higher resolution using `google/veo-3.1-upscale`. | Parameter | Type | Required | Description | | ------------ | ------ | -------- | --------------------------------- | | `task_id` | string | Yes | Task ID of a completed generation | | `resolution` | string | Yes | `"1080p"` or `"4k"` | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v2.1 Source: https://docs.unifically.com/models/video/kling/kling-2.1 Generate videos with Kling v2.1 models Generate high-quality AI videos using Kling v2.1 with flexible generation modes. ## Models | Model | Mode | Features | | --------------------------------- | ------------ | -------------------------------------------- | | `kuaishou/kling-2.1-video` | `std`, `pro` | Image-to-video only, end frame supported | | `kuaishou/kling-2.1-master-video` | `pro` only | Text-to-video + image-to-video, no end frame | *** ## Kling v2.1 Image-to-video only — `start_frame_url` is required. ### Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | -------- | ------- | ------------------------------------------------------------ | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `start_frame_url` | string | **Yes** | - | First frame image URL | | `end_frame_url` | string | No | - | Last frame image URL | | `duration` | integer | No | `5` | `5` or `10` seconds | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `sound_effects` | object | No | - | Sound effects and music configuration. Omit to disable audio | ### Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-video", "input": { "prompt": "A butterfly landing on a flower in slow motion", "start_frame_url": "https://example.com/butterfly.jpg", "duration": 5, "mode": "pro" } }' ``` *** ## Kling v2.1 Master Supports both text-to-video and image-to-video. Pro-only mode. No end frame support. ### Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | -------- | ------- | ------------------------------------------------------------ | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `duration` | integer | No | `5` | `5` or `10` seconds | | `start_frame_url` | string | No | - | First frame image URL (optional) | | `sound_effects` | object | No | - | Sound effects and music configuration. Omit to disable audio | ### Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-master-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "duration": 10, "sound_effects": { "music": "cinematic orchestral" } } }' ``` ### Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-master-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "start_frame_url": "https://example.com/start.jpg", "duration": 10 } }' ``` *** ## Sound Effects | Parameter | Type | Default | Description | | ----------- | ------- | ------- | --------------------------------------------------------- | | `sound` | string | `""` | Sound effect prompt (e.g. "wind blowing, birds chirping") | | `music` | string | `""` | Background music prompt (e.g. "cinematic orchestral") | | `asmr_mode` | boolean | `false` | Enable ASMR-style audio generation | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v2.5 Turbo Source: https://docs.unifically.com/models/video/kling/kling-2.5 Generate videos with Kling v2.5 Turbo Generate high-quality AI videos using Kling v2.5 Turbo with optional start/end frame and sound effects. ## Model ``` kuaishou/kling-2.5-turbo-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | -------- | -------- | ----------------------------------------------------------------------------------- | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` | `5` or `10` seconds | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"9:16"`, or `"16:9"`. Ignored when `start_frame_url` is set. Safe to omit | | `start_frame_url` | string | No | - | First frame image URL (uses image native ratio) | | `end_frame_url` | string | No | - | Last frame image URL | | `sound_effects` | object | No | - | Sound effects and music configuration. Omit to disable audio | Sound effects fields: | Parameter | Type | Default | Description | | ----------- | ------- | ------- | --------------------------------------------------------- | | `sound` | string | `""` | Sound effect prompt (e.g. "wind blowing, birds chirping") | | `music` | string | `""` | Background music prompt (e.g. "cinematic orchestral") | | `asmr_mode` | boolean | `false` | Enable ASMR-style audio generation | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.5-turbo-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "duration": 10, "sound_effects": { "music": "cinematic orchestral" } } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.5-turbo-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "start_frame_url": "https://example.com/start.jpg", "duration": 10, "sound_effects": { "sound": "wind blowing, birds chirping", "music": "ambient nature" } } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v2.6 Source: https://docs.unifically.com/models/video/kling/kling-2.6 Generate videos with Kling v2.6 and voice support Generate high-quality AI videos using Kling v2.6 with text-to-video, start/end frame, and voice support. ## Model ``` kuaishou/kling-2.6-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | -------- | ------- | --------------------------------------------------------------------- | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` | `5` or `10` seconds | | `native_audio` | boolean | No | `false` | Enable AI audio generation. Required for voices, pro mode only | | `start_frame_url` | string | No | - | First frame image URL. Omit for text-to-video | | `end_frame_url` | string | No | - | Last frame image URL (not available with native\_audio) | | `voices` | array | No | - | Voice references for character speech (max 5, requires native\_audio) | Each voice accepts: | Parameter | Type | Description | | ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | `voice_id` | integer | Official voice ID (use [GET /v1/resources/kuaishou/kling/voices](/api-reference/resources#get-kling-voices) to list). Mutually exclusive with `voice_url` | | `voice_url` | string | Custom voice MP3 URL. Mutually exclusive with `voice_id` | ## Constraints * `native_audio` requires `mode: "pro"` * `end_frame_url` is not available when `native_audio` is enabled * `voices` require `native_audio` to be enabled ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-video", "input": { "prompt": "A cinematic drone shot over a misty forest at dawn", "duration": 10, "mode": "pro" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-video", "input": { "prompt": "Animate this scene with gentle movement", "start_frame_url": "https://example.com/my-image.jpg", "duration": 5 } }' ``` ## Example - With Voice ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-video", "input": { "prompt": "Person speaking to the camera about their day", "start_frame_url": "https://example.com/person.jpg", "duration": 10, "mode": "pro", "native_audio": true, "voices": [ { "voice_url": "https://example.com/voice-sample.mp3" } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling Motion Control 2.6 Source: https://docs.unifically.com/models/video/kling/kling-2.6-motion-control Transfer motion from reference videos onto characters Transfer motion from a reference video onto a character in a reference image. ## Model ``` kuaishou/kling-2.6-motion-control ``` ## Parameters | Parameter | Type | Required | Default | Description | | ----------------------- | ------- | -------- | --------- | ------------------------------------------------------------------------------------ | | `prompt` | string | **Yes** | - | Text prompt describing the motion to generate | | `image_url` | string | **Yes** | - | Character/subject image URL | | `video_url` | string | **Yes** | - | Motion reference video URL | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `keep_audio` | boolean | No | `true` | Preserve original audio from the motion reference video | | `character_orientation` | string | No | `"video"` | Character orientation source: `"video"` (follow motion) or `"image"` (preserve pose) | ## Image Requirements The reference image must show the subject's **head, shoulders, and torso clearly visible**. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-motion-control", "input": { "prompt": "Person dancing gracefully", "video_url": "https://example.com/dance-motion.mp4", "image_url": "https://example.com/person.jpg", "character_orientation": "video", "mode": "pro", "keep_audio": true } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v3.0 Source: https://docs.unifically.com/models/video/kling/kling-3.0 Generate videos with Kling v3.0 and multi-shot support Kling 3.0 is an advanced video generation model that supports: * Text-to-video generation (omit `start_frame_url`) * Start/end frame video generation * Multi-shot video generation (2–6 shots) * Inline character/object elements with voice support * AI audio generation (on by default) * Resolutions: 720p (std), 1080p (pro), and 4K (4k — \$0.30/sec) * Aspect ratios: 1:1, 16:9, 9:16 * Duration: 3–15 seconds ## Model ``` kuaishou/kling-3.0-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | ----------------- | ------- | ----------- | -------- | ---------------------------------------------------------------------------------------------------- | | `prompt` | string | Conditional | - | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` | `"std"` (720p), `"pro"` (1080p), or `"4k"` (4K — \$0.30/sec) | | `duration` | integer | No | `5` | Video duration in seconds (3–15) | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"16:9"`, or `"9:16"`. Safe to omit — server defaults to `"16:9"` | | `native_audio` | boolean | No | `true` | Generate AI audio from the video content | | `start_frame_url` | string | No | - | First frame image URL. Omit for text-to-video | | `end_frame_url` | string | No | - | Last frame image URL | | `elements` | array | No | - | Character/object elements to include in the video | | `multi_shots` | array | No | - | Multi-shot sequence (2–6 shots, each with `prompt` and `duration`). Mutually exclusive with `prompt` | ## Elements Elements are created automatically from your input, used during generation, then auto-deleted on completion. ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]}, {"description": "Man dancing", "type": "video", "video_url": "dance.mp4"} ] ``` Each element accepts: | Parameter | Type | Default | Description | | ------------- | --------- | --------- | ------------------------------------------------ | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | ## Multi-Shot Mode Generate multi-scene videos with 2–6 shots. When using `multi_shots`, the `prompt` field is not used. **Key Points:** * Each shot **must** have a `prompt` and `duration` (minimum 1 second) * Total duration of all shots must be between 3–15 seconds * `multi_shots` and `prompt` are mutually exclusive *** ## Examples ### Example 1: Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "prompt": "A cinematic drone shot over a misty forest at dawn", "duration": 10, "mode": "pro", "native_audio": true } }' ``` ### Example 2: Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "prompt": "A majestic eagle soaring through mountain peaks at sunset", "start_frame_url": "https://example.com/eagle.jpg", "duration": 10, "mode": "pro", "native_audio": true } }' ``` ### Example 3: Start and End Frames ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "prompt": "Character walks towards the camera with a confident stride", "start_frame_url": "https://example.com/start-pose.jpg", "end_frame_url": "https://example.com/end-pose.jpg", "duration": 8, "mode": "pro" } }' ``` ### Example 4: Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "start_frame_url": "https://example.com/scene.jpg", "mode": "pro", "native_audio": true, "multi_shots": [ { "prompt": "Person walking towards camera in a park", "duration": 5 }, { "prompt": "Close-up of person smiling warmly", "duration": 4 }, { "prompt": "Wide shot of the beautiful landscape panorama", "duration": 6 } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling Motion Control 3.0 Source: https://docs.unifically.com/models/video/kling/kling-3.0-motion-control Transfer motion from reference videos onto characters with high facial consistency Transfer motion from a reference video onto a character in a reference image. Upgraded from v2.6 with high facial consistency and inline element support. ## Model ``` kuaishou/kling-3.0-motion-control ``` ## Parameters | Parameter | Type | Required | Default | Description | | ----------------------- | ------- | -------- | --------- | ------------------------------------------------------------------------------------ | | `prompt` | string | **Yes** | - | Text prompt describing the motion to generate | | `image_url` | string | **Yes** | - | Character/subject image URL | | `video_url` | string | **Yes** | - | Motion reference video URL | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `keep_audio` | boolean | No | `true` | Preserve original audio from the motion reference video | | `character_orientation` | string | No | `"video"` | Character orientation source: `"video"` (follow motion) or `"image"` (preserve pose) | | `elements` | array | No | - | Additional character/object elements | ## Elements ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]} ] ``` Each element accepts: | Parameter | Type | Default | Description | | ------------- | --------- | --------- | ------------------------------------------------ | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | ## Image Requirements The reference image must show the subject's **head, shoulders, and torso clearly visible**. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-motion-control", "input": { "prompt": "Person dancing gracefully", "video_url": "https://example.com/dance-motion.mp4", "image_url": "https://example.com/person.jpg", "character_orientation": "video", "mode": "pro", "keep_audio": true } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v3.0 Omni Source: https://docs.unifically.com/models/video/kling/kling-3.0-omni-video Generate videos with Kling v3.0 Omni Generate high-quality AI videos using Kling v3.0 Omni. Supports text-to-video, raw reference images, persistent subject/object elements, start/end frames, video transform, video reference, and multi-shot generation. ## Model ``` kuaishou/kling-3.0-omni-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------- | ----------------- | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `video_mode` | string | No | - | Input mode. Allowed: `"elements"`, `"start_end_frame"`, `"transform"`, `"video_reference"`. Omit for text-to-video | | `prompt` | string | Conditional | - | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` | `"std"` (720p), `"pro"` (1080p), or `"4k"` (4K — \$0.30/sec) | | `duration` | integer | No | `5` | Video length in seconds (3–15) | | `aspect_ratio` | string | No | - | `"1:1"`, `"9:16"`, `"16:9"`, or `"auto"`. Must be `"auto"` when `video_url` is set; rejected otherwise. Omit to let the server choose (`"auto"` if `video_url`, else `"16:9"`) | | `native_audio` | boolean | No | `false` | Generate AI audio from the video content | | `image_urls` | string\[] | No | - | Raw reference image URLs uploaded per request (max 7). No description, no reuse. Use `@Image1`, `@Image2` in `prompt` | | `start_image_index` | integer | No | - | 1-based index into `image_urls` marking which reference image anchors the first frame. No end-frame equivalent | | `elements` | ElementInput30\[] | No | - | Persistent subject/object assets. Auto-created on Kling and auto-deleted if submit fails. Use `@Element1`, `@Element2` in `prompt`. Coexists with `image_urls` | | `start_frame_url` | string | No | - | First frame image URL (`start_end_frame` mode) | | `end_frame_url` | string | No | - | Last frame image URL (`start_end_frame` mode) | | `video_url` | string | No | - | Source video URL (`transform` / `video_reference` modes) | | `multi_shots` | array | No | - | Multi-shot sequence (2–6 shots, each with `prompt` and `duration`). Mutually exclusive with `prompt` | ## Modes | Mode | Required inputs | Optional inputs | Notes | | ------------------------- | ---------------------------------------- | --------------------------- | -------------------------------------------------------------------------------------------- | | *omitted* (text-to-video) | `prompt` or `multi_shots` | — | Rejects every input field including `elements`, `image_urls`, `start_frame_url`, `video_url` | | `elements` | At least one of `image_urls`, `elements` | — | Combined `image_urls` + `elements` cap of **7**. `video_url` rejected | | `start_end_frame` | `start_frame_url` | `end_frame_url`, `elements` | — | | `transform` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | | `video_reference` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | **Text-to-video with elements** — set `video_mode: "elements"` and pass only the `elements` array (no `image_urls` required). The omit-`video_mode` path is strictly for pure text-to-video with **zero** inputs; any reference (image or element) requires `elements` mode. ## Reference images vs elements * **`image_urls`** — raw images uploaded per request. Single-use, no description, no reuse across tasks. Cap 7. Reference in `prompt` as `@Image1`, `@Image2`, … * **`elements`** — persistent subject/object assets stored on the Kling account. Auto-created from your input on submit and auto-deleted if the submit fails. Reference in `prompt` as `@Element1`, `@Element2`, … Both can be used together; they share the per-mode combined cap. ## Elements v3 Omni supports both IMAGE and VIDEO elements. A `video_url` and any element with `type: "video"` are mutually exclusive — passing both returns 400 (the video element counts as your video reference). ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]}, {"description": "Man dancing", "type": "video", "video_url": "dance.mp4"} ] ``` Each element accepts: | Parameter | Type | Default | Description | | ------------- | --------- | --------- | ------------------------------------------------ | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "prompt": "A majestic eagle soaring through mountain peaks at sunset", "duration": 5, "mode": "pro" } }' ``` ## Example - With Elements ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "video_mode": "elements", "prompt": "@Element1 walks through a park at sunset", "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["https://example.com/front.jpg"]} ], "duration": 10, "mode": "pro" } }' ``` ## Example - Reference Images with Start Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "video_mode": "elements", "prompt": "@Image2 walks toward @Image1 across a meadow", "image_urls": [ "https://example.com/character.jpg", "https://example.com/scene.jpg" ], "start_image_index": 2, "duration": 5, "mode": "pro" } }' ``` ## Example - Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "mode": "pro", "multi_shots": [ { "prompt": "Wide shot of city skyline", "duration": 5 }, { "prompt": "Close-up of glass buildings", "duration": 5 } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling v3.0 Omni Video Edit Source: https://docs.unifically.com/models/video/kling/kling-3.0-omni-video-edit Edit videos with Kling v3.0 Omni Edit and transform videos using Kling v3.0 Omni Video Edit with support for reference images and elements. ## Model ``` kuaishou/kling-3.0-omni-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | ------------- | ---------------------------------------------------------------------------------------- | | `video_url` | string | **Yes** | - | Source video URL to edit | | `prompt` | string | **Yes** | - | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` | Edit mode: `"reference"` (use video as style guide) or `"transform"` (restyle the video) | | `keep_audio` | boolean | No | `false` | Preserve original audio from the source video | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"9:16"`, or `"16:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 4). Use `@Image1`, `@Image2` in prompt | | `elements` | array | No | - | Character/object elements (max 4) | **Note:** Duration is locked to the input video length and cannot be set manually. ## Elements Elements are created automatically from your input, used during generation, then auto-deleted on completion. ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]}, {"description": "Man dancing", "type": "video", "video_url": "dance.mp4"} ] ``` Each element accepts: | Parameter | Type | Default | Description | | ------------- | --------- | --------- | ------------------------------------------------ | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | ## Example - Reference Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video-edit", "input": { "prompt": "Transform into anime style", "video_url": "https://example.com/video.mp4", "video_mode": "reference", "mode": "pro" } }' ``` ## Example - Transform Mode with Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video-edit", "input": { "prompt": "Replace the person with @Image1", "video_url": "https://example.com/video.mp4", "video_mode": "transform", "image_urls": ["https://example.com/person.jpg"], "mode": "pro" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling O1 Video Source: https://docs.unifically.com/models/video/kling/kling-o1-video Generate videos with Kling O1 Generate high-quality AI videos using Kling O1. Supports text-to-video, raw reference images, persistent subject/object elements (image only), start/end frames, video transform, and video reference. Same shape as Omni 3.0 but does not support `multi_shots`, `native_audio`, or video-type elements. Max duration 10s. ## Model ``` kuaishou/kling-o1-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------- | ----------------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `video_mode` | string | No | - | Input mode. Allowed: `"elements"`, `"start_end_frame"`, `"transform"`, `"video_reference"`. Omit for text-to-video | | `prompt` | string | **Yes** | - | Text prompt | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` | Video length in seconds (3–10) | | `aspect_ratio` | string | No | - | `"1:1"`, `"9:16"`, `"16:9"`, or `"auto"`. Must be `"auto"` when `video_url` is set; rejected otherwise. Omit to let the server choose (`"auto"` if `video_url`, else `"16:9"`) | | `image_urls` | string\[] | No | - | Raw reference image URLs uploaded per request (max 7). No description, no reuse. Use `@Image1`, `@Image2` in `prompt` | | `start_image_index` | integer | No | - | 1-based index into `image_urls` marking which reference image anchors the first frame. No end-frame equivalent | | `elements` | ElementInput30\[] | No | - | Persistent subject/object assets (image only on O1). Auto-created on Kling and auto-deleted if submit fails. Use `@Element1`, `@Element2` in `prompt`. Coexists with `image_urls` | | `start_frame_url` | string | No | - | First frame image URL (`start_end_frame` mode) | | `end_frame_url` | string | No | - | Last frame image URL (`start_end_frame` mode) | | `video_url` | string | No | - | Source video URL (`transform` / `video_reference` modes) | ## Modes | Mode | Required inputs | Optional inputs | Notes | | ------------------------- | ---------------------------------------- | --------------------------- | -------------------------------------------------------------------------------------------- | | *omitted* (text-to-video) | `prompt` | — | Rejects every input field including `elements`, `image_urls`, `start_frame_url`, `video_url` | | `elements` | At least one of `image_urls`, `elements` | — | Combined `image_urls` + `elements` cap of **7**. `video_url` rejected | | `start_end_frame` | `start_frame_url` | `end_frame_url`, `elements` | — | | `transform` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | | `video_reference` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | **Text-to-video with elements** — set `video_mode: "elements"` and pass only the `elements` array (no `image_urls` required). The omit-`video_mode` path is strictly for pure text-to-video with **zero** inputs; any reference (image or element) requires `elements` mode. ## Reference images vs elements * **`image_urls`** — raw images uploaded per request. Single-use, no description, no reuse across tasks. Cap 7. Reference in `prompt` as `@Image1`, `@Image2`, … * **`elements`** — persistent subject/object assets stored on the Kling account. Auto-created from your input on submit and auto-deleted if the submit fails. Reference in `prompt` as `@Element1`, `@Element2`, … Both can be used together; they share the per-mode combined cap. ## Elements O1 supports IMAGE elements only — passing an element with `type: "video"` returns 400. ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]} ] ``` Each element accepts: | Parameter | Type | Default | Description | | ------------- | --------- | --------- | ------------------------------------------------ | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Must be `"image"` on O1 | | `image_urls` | string\[] | - | Source image URLs for the element (max 4) | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "prompt": "A cinematic drone shot over a misty forest at dawn", "duration": 10, "mode": "pro" } }' ``` ## Example - Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "video_mode": "elements", "prompt": "Create a video featuring @Image1 and @Image2", "image_urls": ["https://example.com/ref1.jpg", "https://example.com/ref2.jpg"], "duration": 10, "mode": "pro" } }' ``` ## Example - With Elements ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "video_mode": "elements", "prompt": "@Element1 walks through a park at sunset", "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["https://example.com/front.jpg"]} ], "duration": 10, "mode": "pro" } }' ``` ## Example - Start/End Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "prompt": "Smooth transition between scenes", "video_mode": "start_end_frame", "start_frame_url": "https://example.com/start.jpg", "end_frame_url": "https://example.com/end.jpg", "duration": 10, "mode": "pro" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Kling O1 Video Edit Source: https://docs.unifically.com/models/video/kling/kling-o1-video-edit Edit videos with Kling O1 Edit and transform videos using Kling O1 Video Edit with support for reference images. ## Model ``` kuaishou/kling-o1-video-edit ``` ## Parameters Same parameters as Omni 3.0 video edit but does not support `elements`. | Parameter | Type | Required | Default | Description | | -------------- | --------- | -------- | ------------- | ---------------------------------------------------------------- | | `video_url` | string | **Yes** | - | Source video URL to edit | | `prompt` | string | **Yes** | - | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` | Edit mode: `"reference"` or `"transform"` | | `keep_audio` | boolean | No | `false` | Preserve original audio from the source video | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"9:16"`, or `"16:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 4). Use `@Image1`, `@Image2` in prompt | **Note:** Duration is locked to the input video length and cannot be set manually. ## Example - Reference Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video-edit", "input": { "prompt": "Transform into anime style", "video_url": "https://example.com/video.mp4", "video_mode": "reference", "mode": "pro" } }' ``` ## Example - Transform Mode with Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video-edit", "input": { "prompt": "Replace the person with @Image1", "video_url": "https://example.com/video.mp4", "video_mode": "transform", "image_urls": ["https://example.com/person.jpg"], "mode": "pro" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Minimax Hailuo Source: https://docs.unifically.com/models/video/minimax/hailuo Generate videos with Minimax Hailuo models Generate high-quality AI videos using Minimax Hailuo models. ## Models | Model | Description | | ------------------------- | ----------------------------------------------- | | `hailuo/minimax-2.0` | MiniMax 02 — T2V and I2V with end frame support | | `hailuo/minimax-2.3` | MiniMax 2.3 — auto-selects T2V or I2V | | `hailuo/minimax-2.3-fast` | MiniMax I2V-2.3-Fast — faster image-to-video | ## Parameters ### minimax-2.0 | Parameter | Type | Required | Description | | --------------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes\* | Max 2000 chars. \*Required if no `start_image_url` | | `start_image_url` | string | Yes\* | Image URL (auto-uploaded). \*Required if no `prompt` | | `end_image_url` | string | No | End frame image URL (768p/1080p only) | | `duration` | integer | No | `6` (default) or `10`. 1080p only supports `6` | | `resolution` | string | No | `"768p"` (default), `"1080p"` | | `prompt_optimization` | boolean | No | Let MiniMax optimize prompt | * **1080p** only supports `duration: 6` * **end\_image\_url** only with 768p or 1080p * At minimum one of `prompt` or `start_image_url` must be provided ### minimax-2.3 | Parameter | Type | Required | Description | | --------------------- | ------- | -------- | ---------------------------------------------------- | | `prompt` | string | Yes\* | Max 2000 chars. \*Required if no `start_image_url` | | `start_image_url` | string | Yes\* | Image URL (auto-uploaded). \*Required if no `prompt` | | `duration` | integer | No | `6` (default) or `10`. 1080p only supports `6` | | `resolution` | string | No | `"768p"` (default), `"1080p"` | | `prompt_optimization` | boolean | No | Let MiniMax optimize prompt | Auto-selects **T2V-2.3** (prompt only) or **I2V-2.3** (when `start_image_url` is provided). ### minimax-2.3-fast | Parameter | Type | Required | Description | | --------------------- | ------- | -------- | ---------------------------------------------- | | `prompt` | string | No | Max 2000 chars | | `start_image_url` | string | **Yes** | Image URL (auto-uploaded) | | `duration` | integer | No | `6` (default) or `10`. 1080p only supports `6` | | `resolution` | string | No | `"768p"` (default), `"1080p"` | | `prompt_optimization` | boolean | No | Let MiniMax optimize prompt | ## Resolution Limits | Model | 6s Duration | 10s Duration | | ------------------------------ | ----------- | ------------ | | minimax-2.0 | 768p, 1080p | 768p only | | minimax-2.3 / minimax-2.3-fast | 768p, 1080p | 768p only | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "hailuo/minimax-2.0", "input": { "prompt": "A beautiful sunset animation", "start_image_url": "https://example.com/sunset.jpg", "duration": 6, "resolution": "1080p" } }' ``` ## With End Image (minimax-2.0 only) ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "hailuo/minimax-2.0", "input": { "prompt": "Smooth transition between scenes", "start_image_url": "https://example.com/start.jpg", "end_image_url": "https://example.com/end.jpg", "duration": 6 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Topaz Video Upscale Source: https://docs.unifically.com/models/video/topaz-labs/video-upscale AI-powered video upscaling with selectable Topaz models, enhancement tuning, and optional frame interpolation Upscale videos using Topaz Labs AI models. One endpoint covers both upscale-only and upscale + frame-interpolation flows. Output sizing is set via a `resolution` tier — the long edge maps to exact pixels and the short edge is derived from the probed source aspect ratio. ## Model ``` topaz-labs/video-upscale ``` ## Parameters | Parameter | Type | Required | Default | Description | | ------------------------ | ------- | ----------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | `video_url` | string | Yes | - | Publicly-accessible URL of the source video | | `preset` | string | No | `prob-4` | Topaz upscale model short-code. See [Upscale presets](#upscale-presets) | | `resolution` | string | No | - | Output resolution tier. One of `480p`, `720p`, `1080p`, `1440p`, `4k`, `8k`. Short edge is derived from the source aspect ratio | | `target_fps` | number | No | source fps | Output frame rate. Defaults to the source video's fps | | `frame_interpolation` | boolean | No | `false` | Enable a frame-interpolation pass chained after the upscale. When `true`, `interpolation_preset` is required | | `interpolation_preset` | string | Conditional | - | Required when `frame_interpolation: true`. One of `apo-8`, `apf-2`, `chr-2`, `chf-3` | | `interpolation_settings` | object | No | - | Pass-through key/values for the interpolation filter. Only valid when `frame_interpolation: true`. See [Interpolation settings](#interpolation-settings) | | `extra_settings` | object | No | - | Model-specific enhancement tuning. See [Enhancement parameters](#enhancement-parameters) | ## Upscale presets | Code | Model | Best for | | ----------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------- | | `prob-4` (default) | Proteus | General purpose. Recommended for most sources; handles low-to-medium quality, grainy, or compressed footage | | `rhea-1` | Rhea | 4x high-fidelity upscaling of organic textures, fine detail, and faces. Best for clean or low-res sources | | `thd-3` | Theia Fine Tune Detail | Aggressive per-frame sharpening and detail extraction; may introduce subtle frame-to-frame variation | | `thf-4` | Theia Fine Tune Fidelity | Stable clarity-focused sharpening with reduced artifacts. More consistent than the Detail variant | | `iris-2`, `iris-3` | Iris | Face recovery for degraded footage. Restores faces in old, low-quality, or compressed video | | `gcg-5`, `ghq-5` | Gaia CG / HQ | CGI and animation upscaling. Preserves clean edges and flat colour regions | | `amq-13`, `ahq-12`, `alq-13` | Artemis | Balanced denoise + sharpening across quality tiers (Medium / High / Low quality sources) | | `ddv-3` | Dione DV | Deinterlacing for legacy DV footage | | `dtd-4`, `dtv-4` | Dione TV / Detail | Deinterlacing for broadcast / TV legacy footage | | `nyx-3`, `nxf-1`, `nxl-1`, `nxhf-1` | Nyx | Video denoise variants (standard, fast, lossless, high-fidelity) | | `aaa-9` | Artemis AA / Moiré | Aliasing and moiré artifact correction | | `color-1` | Colorize | Black-and-white to colour conversion | | `thm-2` | Themis | Motion deblur for fast-moving footage | ## Enhancement parameters Pass any of these inside `extra_settings`. Anything omitted is auto-configured by Topaz. Use `auto: "Manual"` to override all values explicitly, or `auto: "Relative"` to use autopilot as a base with your values as offsets. | Key | Type | Range / values | Description | | ------------------------------- | ------ | ---------------------------------------------------- | ---------------------------------------------------------------- | | `auto` | string | `Auto` (default), `Manual`, `Relative` | Parameter mode | | `video_type` | string | `Progressive`, `Interlaced`, `ProgressiveInterlaced` | Source frame/field type | | `field_order` | string | `TopFirst`, `BottomFirst`, `Auto` | Interlaced field order (interlaced sources only) | | `focus_fix_level` | string | `None`, `Normal`, `Strong` | Downscales input before the model for stronger blur correction | | `compression` | float | -1 to 1 | Compression-artifact recovery strength. Higher = more aggressive | | `details` | float | -1 to 1 | Detail reconstruction amount | | `noise` | float | -1 to 1 | Noise reduction. Higher = more reduction | | `blur` | float | -1 to 1 | Sharpness applied to output. Higher = sharper | | `halo` | float | -1 to 1 | Halo reduction around edges | | `preblur` | float | -1 to 1 | Anti-aliasing / deblur applied before the model | | `prenoise` | float | 0 to 0.1 | Adds noise to input to reduce over-smoothing | | `recover_original_detail_value` | float | 0 to 1 | Blends source detail back into the output | | `grain` | float | 0 to 0.1 | Adds film grain after AI processing | | `grain_size` | float | 0 to 5 | Size of generated grain | | `grain_sigma` | float | 0 to 1 | Grain softness | | `grain_type` | string | `silver_rich`, `gaussian`, `grey` | Grain character / style | ## Frame interpolation Set `frame_interpolation: true` to chain a frame-interpolation filter after the upscale. This is used to increase frame rate or create slow motion. | Code | Model | Best for | | ------- | ------------ | ----------------------------------------------------------------------- | | `apo-8` | Apollo | Smooth slow-motion and frame-rate conversion. Handles non-linear motion | | `apf-2` | Apollo Fast | Faster Apollo variant for simpler motion | | `chr-2` | Chronos | Natural slow motion for real-world motion with minimal artifacts | | `chf-3` | Chronos Fast | Faster Chronos variant | ### Interpolation settings Pass any of these inside `interpolation_settings`. Only valid when `frame_interpolation: true`. | Key | Type | Range | Description | | -------------------- | ------- | --------- | ----------------------------------------------------------------------- | | `slowmo` | int | 1–16 | Slow-motion multiplier. `2` makes output 2x slower and doubles duration | | `fps` | number | 15–240 | Target output frame rate without changing duration | | `duplicate` | boolean | - | Detect and remove duplicate frames from input before interpolating | | `duplicateThreshold` | number | 0.001–0.1 | Sensitivity for duplicate-frame detection | ## Resolution Output resolution is set via `resolution`. The long edge is mapped to exact pixels; the short edge is computed from the source aspect ratio so the output matches source orientation. | Tier | Long edge | | ------- | --------- | | `480p` | 854 px | | `720p` | 1280 px | | `1080p` | 1920 px | | `1440p` | 2560 px | | `4k` | 3840 px | | `8k` | 7680 px | ## Example - Basic upscale ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/video.mp4", "resolution": "1080p" } }' ``` ## Example - CGI / animation upscale ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/animation.mp4", "preset": "gcg-5", "resolution": "4k" } }' ``` ## Example - Face recovery on degraded footage ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/old-interview.mp4", "preset": "iris-3", "resolution": "1080p" } }' ``` ## Example - Deinterlacing legacy TV footage ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/legacy-tv.mp4", "preset": "dtv-4", "resolution": "1080p", "extra_settings": { "video_type": "Interlaced", "field_order": "TopFirst" } } }' ``` ## Example - 4K upscale with 2x slow motion ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/action.mp4", "preset": "prob-4", "resolution": "4k", "frame_interpolation": true, "interpolation_preset": "chr-2", "interpolation_settings": { "slowmo": 2 } } }' ``` ## Example - Interpolate to 60 fps without changing duration ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/clip.mp4", "resolution": "1080p", "frame_interpolation": true, "interpolation_preset": "apo-8", "interpolation_settings": { "fps": 60, "duplicate": true } } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Grok Imagine Upscale Source: https://docs.unifically.com/models/video/xai/grok-imagine-upscale Upscale a Grok Imagine video to HD Upscale a completed xAI Grok Imagine video to a higher-definition result. Provide the task ID of the source generation. ## Model ``` xai/grok-imagine-upscale ``` ## Parameters | Parameter | Type | Required | Default | Description | | --------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------ | | `task_id` | string | Yes | — | Task ID of a completed Grok Imagine video generation. Returns an HD-upscaled result. | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-upscale", "input": { "task_id": "abc123def456" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Grok Imagine Video Source: https://docs.unifically.com/models/video/xai/grok-imagine-video Generate videos with xAI Grok Imagine Generate high-quality AI videos using xAI's Grok Imagine model. ## Model ``` xai/grok-imagine-video ``` ## Parameters | Parameter | Type | Required | Default | Allowed Values | Description | | -------------- | ------ | -------- | ---------- | --------------------------------------------- | ------------------------------ | | `prompt` | string | Yes | — | — | Video generation prompt | | `aspect_ratio` | string | No | `"1:1"` | `"1:1"`, `"2:3"`, `"3:2"`, `"9:16"`, `"16:9"` | Output aspect ratio | | `duration` | int | No | `6` | `1`–`10` | Video duration in seconds | | `resolution` | string | No | `"720p"` | `"480p"`, `"720p"` | Output resolution | | `image_url` | string | No | `null` | — | Reference image URL (optional) | | `video_preset` | string | No | `"custom"` | `"custom"`, `"spicy"`, `"fun"`, `"normal"` | Generation style preset | **Video presets:** | Preset | Style | | -------- | -------------------- | | `custom` | Default generation | | `spicy` | Extremely spicy/nsfw | | `fun` | Extremely crazy/fun | | `normal` | Normal style | ## Example Request ### Text to Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video", "input": { "prompt": "A futuristic cityscape at sunset with flying cars", "duration": 10, "resolution": "720p", "aspect_ratio": "16:9", "video_preset": "custom" } }' ``` ### Image to Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video", "input": { "prompt": "Camera slowly zooms in while clouds move across the sky", "image_url": "https://example.com/landscape.jpg", "duration": 6, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Grok Imagine Video 1.5 Preview Source: https://docs.unifically.com/models/video/xai/grok-imagine-video-1.5-preview Animate images into video with xAI Grok Imagine 1.5 (preview) Animate a starting image into video using xAI's Grok Imagine 1.5 preview model (image-to-video). ## Model ``` xai/grok-imagine-video-1.5-preview ``` ## Parameters | Parameter | Type | Required | Default | Allowed Values | Description | | ----------------------- | ------ | -------- | -------- | ----------------------------------------------------------------- | -------------------------------------------------------- | | `prompt` | string | Yes | — | 2–3000 chars | Text prompt describing how to animate the starting frame | | `start_frame_image_url` | string | Yes | — | — | Start frame image URL (required; I2V only) | | `aspect_ratio` | string | No | `"auto"` | `"auto"`, `"9:16"`, `"3:4"`, `"1:1"`, `"4:3"`, `"16:9"`, `"21:9"` | Output aspect ratio | | `duration` | int | No | — | `1`–`15` | Video length in seconds | | `resolution` | string | No | — | `"480p"`, `"720p"` | Output resolution | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video-1.5-preview", "input": { "start_frame_image_url": "https://example.com/start-frame.jpg", "prompt": "Camera slowly zooms in while clouds drift across the sky", "aspect_ratio": "16:9", "duration": 6, "resolution": "720p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Grok Imagine Video Edit Source: https://docs.unifically.com/models/video/xai/grok-imagine-video-edit Edit videos with xAI Grok Imagine Edit videos using xAI's Grok Imagine model. Provide an input video and a prompt describing the desired changes. ## Model ``` xai/grok-imagine-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | ----------- | ------ | -------- | ------- | ------------------------------------- | | `prompt` | string | Yes | — | Text description of the edit to apply | | `video_url` | string | Yes | — | URL of the input video to edit | The maximum input video length is **8.7 seconds**. The `duration`, `aspect_ratio`, and `resolution` parameters are not supported — the output retains the duration and aspect ratio of the input and matches its resolution (capped at 720p). ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video-edit", "input": { "prompt": "Make the sky turn purple and add shooting stars", "video_url": "https://files.storagecdn.online/video/d0ff305c-0200-4d27-9b94-d183ebc91a7c.mp4" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "pending" } } ``` # Grok Imagine Video Extend Source: https://docs.unifically.com/models/video/xai/grok-imagine-video-extend Extend videos with xAI Grok Imagine Extend a previously generated video using xAI's Grok Imagine model via HTTP streaming. Provide the `task_id` of a completed video generation and choose between **preset mode** or **custom mode**. ## Model ``` xai/grok-imagine-video-extend ``` ## Modes There are two mutually exclusive modes: | Mode | How to activate | Behaviour | | ---------- | ---------------------- | --------------------------------------------------------------------------------------------- | | **Preset** | Provide `video_preset` | The preset controls the video style. `prompt`, `extend_at`, and `extend_duration` are ignored | | **Custom** | Omit `video_preset` | You control timing and prompt. `prompt`, `extend_at`, and `extend_duration` are required | ## Parameters | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ----------------------------------------------------------------------------------- | | `task_id` | string | Yes | Task ID of a completed video generation | | `video_preset` | string | No | `"spicy"` or `"normal"`. Enables preset mode | | `prompt` | string | No | Text prompt to guide the extension. **Required in custom mode** | | `extend_at` | float | No | Second in the source video to start the extension from. **Required in custom mode** | | `extend_duration` | int | No | Length of the extension: `6` or `10` seconds. **Required in custom mode** | ## Example Requests ### Preset Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video-extend", "input": { "task_id": "abc123def456", "video_preset": "spicy" } }' ``` ### Custom Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video-extend", "input": { "task_id": "abc123def456", "prompt": "The camera continues panning right to reveal a mountain range", "extend_at": 8.5, "extend_duration": 10 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "xyz789ghi012", "status": "pending" } } ```