Koozee API Integration Documentation
Version: V1 | Last updated: October 26, 2026
Koozee provides 49 capabilities for virtual try-on, image editing, image generation, video generation, quality enhancement, and image recognition. This guide covers authentication, request parameters, task queries, and integration examples in Python, Go, PHP, and Java.
Replace the media URLs, credentials, and output-size placeholders in the examples with your own values.
Contents
- Getting Started
- Submit a Task
- Response Format
- Query a Task
- Language Examples
- Capability List
- Capability Parameters and Request Examples
- Related Documentation
Getting Started
Get Your AK and SK
-
Sign in to the MeituHub Console and open Account Overview.
-
In the API Keys section, click Copy next to each of the following fields to obtain your AK and SK:
MEITU_OPENAPI_ACCESS_KEY: Access Key (AK).MEITU_OPENAPI_SECRET_KEY: Secret Key (SK).
Use the SK only for server-side request signing. Do not include it in browser code, mobile apps, public repositories, or logs.
Request Signing
Both submission and query requests require AK/SK signing. Use the official signing SDK to sign the full URL, HTTP method, headers, and request body, then send the request generated by the SDK. Do not modify the body after signing.
For signing details, see API Request Signing.
Submit a Task
POST https://openapi.meitu.com/api/v1/sdk/sync/push
Content-Type: application/jsonRequest Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| task | string | Yes | Capability identifier. See the capability list for supported values. |
| task_type | string | Yes | Always formula. |
| init_images | object[] | Yes | Input media list. See each capability for media types, count, and order. Use [] when no media are required. |
| params | string | Yes | A JSON string containing capability-specific parameters. See below. |
| sync_timeout | integer | No | Synchronous wait time, in seconds. The examples use 30 seconds. |
Media Input
Each element in init_images uses the following structure:
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}| Field | Type | Description |
|---|---|---|
| url | string | An accessible media URL. |
| profile.version | string | Always v1. |
| profile.media_profiles.media_data_type | string | Always url. |
Supply images, video, or audio in the order specified by each capability. Input order matters: do not swap garment and model images, the original image and mask, or first and last frames.
Capability Parameters
Place the capability parameters inside a parameter object, then serialize the entire object into the params string. For example, the object for swimwear and lingerie virtual try-on is:
{
"parameter": {
"cloth_type_list": "cloth"
}
}The params field in the request body is:
{
"params": "{\"parameter\":{\"cloth_type_list\":\"cloth\"}}"
}If no additional parameters are required, use the string {"parameter":{}} for params. Provide all required fields. Enum values are case-sensitive.
Response Format
Response Fields
| Field | Type | Description |
|---|---|---|
| status | integer | Task status. See the task status table. |
| task_id | string | Task ID for subsequent queries. |
| progress | number | Task progress, typically from 0 to 1. |
| result | object / null | Task result. May be empty if the task is unfinished or has failed. |
| result.id | string | Task ID associated with the result. |
| result.media_info_list | object[], optional | Output media list containing one or more results. |
| result.media_info_list[].media_data | string | Output media URL. |
| result.media_info_list[].media_profiles | object | Media metadata. URL-based results use media_data_type=url. |
| result.media_info_list[].media_extra | object / null, optional | Additional media information. |
| result.parameters | JSON value, optional | Additional capability-specific business data. |
Task Status
| status | Meaning | Action |
|---|---|---|
| -1 | Task not found | Check the task ID and query validity period. |
| 0 | Created | Continue querying. |
| 1 | Running | Continue querying. |
| 2 | Failed | Handle the error based on the error information. |
| 9 | Synchronous wait timed out | Save the task ID and continue querying. |
| 10 | Succeeded | Read result. |
An HTTP 200 response does not necessarily mean that the task succeeded. Check status to determine the outcome; progress=1 or the presence of task_id alone is not sufficient.
Successful Response
{
"progress": 1,
"result": {
"id": "example-task-id",
"media_info_list": [
{
"media_data": "https://example.com/result.jpg",
"media_extra": {},
"media_profiles": {
"media_data_type": "url"
}
}
],
"parameters": {}
},
"status": 10,
"task_id": "example-task-id"
}Image and video outputs are returned through media_info_list. Process all media in the list and download the output files promptly.
Synchronous Wait Timeout
{
"progress": 0,
"result": {
"id": "example-task-id"
},
"status": 9,
"task_id": "example-task-id"
}status=9 does not mean that execution failed. Use the returned task_id to query the result.
Failed Response
{
"progress": 0,
"result": null,
"status": 2,
"task_id": "example-task-id"
}Authentication errors, rate limits, or invalid parameters may result in a response without task_id. Check both the HTTP status and error information. For common error codes, see API Error Codes.
Query a Task
GET https://openapi.meitu.com/api/v1/sdk/status?task_id=example-task-id| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
| task_id | Query | string | Yes | The task ID returned when the task was submitted. |
Use a valid AK/SK pair to sign the full URL, including task_id, with the GET method. The request body is an empty string. Query responses use the task fields and status meanings described in Response Format.
Gradually increase the query interval, for example to 2, 5, and 10 seconds, and set an application-level timeout. Tasks expire after 24 hours, so query and save the results promptly.
If a submission request times out before you receive task_id, verify whether the task was created before submitting again.
Language Examples
The four examples use the same request.json file. Copy the complete request body from the relevant capability section, replace the media URLs and other placeholders, and save it as request.json.
SDK Setup
| Language | Official Documentation | Dependencies |
|---|---|---|
| Python | Python SDK | sign_sdk, requests |
| Go | Go SDK | github.com/mtlab/api/signer |
| PHP | PHP SDK | Official signer.php, cURL extension, PHP 7.3+ |
| Java | Java SDK | Official signing SDK, JDK 11+ |
Download the Python signing package from the SDK download link. Add the extracted sign_sdk package to your import path and install requests:
python -m pip install requestsRun Configuration
To submit a task:
export MEITU_OPENAPI_ACTION='push'
export MEITU_REQUEST_FILE='request.json'To query a task, use this configuration instead:
export MEITU_OPENAPI_ACTION='status'
export MEITU_TASK_ID='example-task-id'Each run performs only the selected operation. The examples do not automatically retry submissions. After receiving a response, handle the result according to the task status.
Python
Save as client.py and run python client.py:
import json
import os
from pathlib import Path
from urllib.parse import urlencode
import requests
from sign_sdk import sign
HOST = "openapi.meitu.com"
ACTION = os.environ.get("MEITU_OPENAPI_ACTION", "push")
ak = os.environ["MEITU_OPENAPI_ACCESS_KEY"]
sk = os.environ["MEITU_OPENAPI_SECRET_KEY"]
if not ak or not sk:
raise ValueError("Missing AK/SK")
if ACTION == "push":
payload = json.loads(Path(os.environ.get("MEITU_REQUEST_FILE", "request.json")).read_text(encoding="utf-8"))
if not isinstance(payload.get("params"), str):
raise ValueError("params must be a JSON string")
json.loads(payload["params"])
method = "POST"
url = f"https://{HOST}/api/v1/sdk/sync/push"
body = json.dumps(payload, ensure_ascii=False, separators=(",", ":"))
elif ACTION == "status":
task_id = os.environ["MEITU_TASK_ID"]
if not task_id:
raise ValueError("Missing task_id")
method = "GET"
url = f"https://{HOST}/api/v1/sdk/status?" + urlencode({"task_id": task_id})
body = ""
else:
raise ValueError("MEITU_OPENAPI_ACTION must be push or status")
headers = {"Content-Type": "application/json", sign.HeaderHost: HOST}
signed_request = sign.Signer(ak, sk).sign(url, method, headers, body)
with requests.Session() as session:
response = session.send(signed_request, timeout=(10, 100), verify=True, allow_redirects=False)
print("HTTP", response.status_code)
print(response.text)
response.raise_for_status()Go
Save as main.go and run go run main.go in a Go module with the signing SDK dependency configured:
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
"os"
"time"
"github.com/mtlab/api/signer"
)
func main() {
if err := run(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
func run() error {
ak, sk := os.Getenv("MEITU_OPENAPI_ACCESS_KEY"), os.Getenv("MEITU_OPENAPI_SECRET_KEY")
if ak == "" || sk == "" {
return fmt.Errorf("missing AK/SK")
}
method, endpoint, body := http.MethodPost, "https://openapi.meitu.com/api/v1/sdk/sync/push", ""
switch os.Getenv("MEITU_OPENAPI_ACTION") {
case "", "push":
filename := os.Getenv("MEITU_REQUEST_FILE")
if filename == "" {
filename = "request.json"
}
raw, err := os.ReadFile(filename)
if err != nil {
return err
}
var payload map[string]interface{}
if err = json.Unmarshal(raw, &payload); err != nil {
return err
}
params, ok := payload["params"].(string)
if !ok || !json.Valid([]byte(params)) {
return fmt.Errorf("params must be a JSON string")
}
body = string(raw)
case "status":
taskID := os.Getenv("MEITU_TASK_ID")
if taskID == "" {
return fmt.Errorf("missing task_id")
}
method = http.MethodGet
endpoint = "https://openapi.meitu.com/api/v1/sdk/status?" + url.Values{"task_id": {taskID}}.Encode()
default:
return fmt.Errorf("MEITU_OPENAPI_ACTION must be push or status")
}
headers := make(http.Header)
headers.Set("Content-Type", "application/json")
headers.Set(signer.HeaderHost, "openapi.meitu.com")
req, err := signer.NewSigner(ak, sk).Sign(endpoint, method, headers, body)
if err != nil {
return err
}
client := &http.Client{Timeout: 100 * time.Second, CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
raw, err := io.ReadAll(resp.Body)
if err != nil {
return err
}
fmt.Println("HTTP", resp.StatusCode)
fmt.Println(string(raw))
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
return fmt.Errorf("HTTP request failed")
}
return nil
}PHP
Place the official signer.php in the same directory, save as client.php, and run php client.php:
<?php
require_once __DIR__ . '/signer.php';
$ak = getenv('MEITU_OPENAPI_ACCESS_KEY');
$sk = getenv('MEITU_OPENAPI_SECRET_KEY');
if (!$ak || !$sk) { throw new RuntimeException('Missing AK/SK'); }
$action = getenv('MEITU_OPENAPI_ACTION') ?: 'push';
$body = '';
if ($action === 'push') {
$file = getenv('MEITU_REQUEST_FILE') ?: 'request.json';
$body = file_get_contents($file);
if ($body === false) { throw new RuntimeException('Cannot read request.json'); }
$payload = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
if (!isset($payload['params']) || !is_string($payload['params'])) { throw new RuntimeException('params must be a JSON string'); }
json_decode($payload['params'], true, 512, JSON_THROW_ON_ERROR);
$method = 'POST';
$url = 'https://openapi.meitu.com/api/v1/sdk/sync/push';
} elseif ($action === 'status') {
$taskId = getenv('MEITU_TASK_ID');
if (!$taskId) { throw new RuntimeException('Missing task_id'); }
$method = 'GET';
$url = 'https://openapi.meitu.com/api/v1/sdk/status?' . http_build_query(['task_id' => $taskId], '', '&', PHP_QUERY_RFC3986);
} else {
throw new RuntimeException('MEITU_OPENAPI_ACTION must be push or status');
}
$headers = ['Content-Type' => 'application/json', 'Host' => 'openapi.meitu.com'];
$curl = (new Signer($ak, $sk))->sign($url, $method, $headers, $body);
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 100,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
]);
$response = curl_exec($curl);
if ($response === false) {
$error = curl_error($curl);
curl_close($curl);
throw new RuntimeException($error);
}
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
echo 'HTTP ' . $status . PHP_EOL . $response . PHP_EOL;
if ($status < 200 || $status >= 300) { throw new RuntimeException('HTTP request failed'); }Java
Add the official SDK to the classpath, save as Main.java, and compile and run with JDK 11+. Encode request.json as UTF-8:
import com.meitu.openai.common.Signer;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
public class Main {
private static String requiredEnv(String name) {
String value = System.getenv(name);
if (value == null || value.isBlank()) throw new IllegalArgumentException("Missing " + name);
return value;
}
public static void main(String[] args) throws Exception {
String ak = requiredEnv("MEITU_OPENAPI_ACCESS_KEY");
String sk = requiredEnv("MEITU_OPENAPI_SECRET_KEY");
String action = System.getenv().getOrDefault("MEITU_OPENAPI_ACTION", "push");
String method;
String url;
String body = "";
if ("push".equals(action)) {
String filename = System.getenv().getOrDefault("MEITU_REQUEST_FILE", "request.json");
body = Files.readString(Path.of(filename), StandardCharsets.UTF_8);
method = "POST";
url = "https://openapi.meitu.com/api/v1/sdk/sync/push";
} else if ("status".equals(action)) {
method = "GET";
url = "https://openapi.meitu.com/api/v1/sdk/status?task_id="
+ URLEncoder.encode(requiredEnv("MEITU_TASK_ID"), StandardCharsets.UTF_8);
} else {
throw new IllegalArgumentException("MEITU_OPENAPI_ACTION must be push or status");
}
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put(Signer.HeaderHost, "openapi.meitu.com");
Map<String, String> signedHeaders = new Signer(ak, sk).sign(url, method, headers, body);
HttpURLConnection connection = (HttpURLConnection) URI.create(url).toURL().openConnection();
try {
connection.setRequestMethod(method);
connection.setConnectTimeout(10000);
connection.setReadTimeout(100000);
connection.setInstanceFollowRedirects(false);
for (Map.Entry<String, String> header : signedHeaders.entrySet()) connection.setRequestProperty(header.getKey(), header.getValue());
if ("POST".equals(method)) {
byte[] bytes = body.getBytes(StandardCharsets.UTF_8);
connection.setDoOutput(true);
connection.setFixedLengthStreamingMode(bytes.length);
try (OutputStream output = connection.getOutputStream()) { output.write(bytes); }
}
int status = connection.getResponseCode();
System.out.println("HTTP " + status);
InputStream stream = status >= 400 ? connection.getErrorStream() : connection.getInputStream();
if (stream != null) {
try (InputStream input = stream) { System.out.println(new String(input.readAllBytes(), StandardCharsets.UTF_8)); }
}
if (status < 200 || status >= 300) throw new IllegalStateException("HTTP request failed");
} finally {
connection.disconnect();
}
}
}Capability List
| No. | Capability | task |
|---|---|---|
| 1 | Clothing Virtual Try-On | koozee-ai-clothing-tryon |
| 2 | Swimwear and Lingerie Virtual Try-On | koozee-clothing-tryon-beauty |
| 3 | Model Pose Change | koozee-ai-change-model-position |
| 4 | Garment Image-to-Video | koozee-ai-video-generation |
| 5 | Single-Garment Outfit Video | koozee-video-ootd-single-clothes |
| 6 | Outfit Beat-Sync Video | koozee-video-ootd-card-point |
| 7 | Prompt-Based Object Removal | koozee-prompt-removal |
| 8 | Garment Print Replacement | koozee-clothing-pattern-change |
| 9 | Garment Line Drawing | koozee-ai-clothing-line-drawing |
| 10 | Shoe Line Drawing | koozee-ai-shoe-line-drawing |
| 11 | Flat-Lay to 3D | koozee-ai-3d-flat-v2 |
| 12 | Main Garment Image Extraction | koozee-ai-clothing-extraction-v2 |
| 13 | Standard Garment Flat-Lay | koozee-ai-standard-flat-v3 |
| 14 | Model Replacement | koozee-ai-change-model |
| 15 | Model Background Replacement | koozee-ai-change-model-background |
| 16 | Model Viewpoint Change | koozee-ai-change-model-perspective |
| 17 | Product Background Replacement | koozee-ai-change-product-background |
| 18 | Garment Detail Images | koozee-ai-clothing-detail |
| 19 | Garment Print Extraction | koozee-ai-print-extraction |
| 20 | Shoe Extraction | koozee-ai-shoe-extraction |
| 21 | Shoe Virtual Try-On | koozee-ai-shoe-tryon |
| 22 | Garment Wrinkle Removal | koozee-wrinkle-removal |
| 23 | HD Image Restoration | koozee-image-enhance-hd |
| 24 | Portrait Image Enhancement | koozee-image-enhance-human |
| 25 | AI Ultra-Clear Image Restoration | koozee-image-enhance-ai-super-clear |
| 26 | Mask-Based Object Removal | koozee-algorithm-removal |
| 27 | 4K Video Upscaling | koozee-video-4k |
| 28 | AI Ultra-Clear Video 2.0 (4K) | koozee-video-4k-pro |
| 29 | Portrait Video Restoration | koozee-video-enhance-portrait |
| 30 | Prompt-Based Generation | koozee-prompt-generation |
| 31 | Nano Banana Text-to-Image / Image Editing | koozee-nano-banana |
| 32 | Flux 3 Text-to-Image / Image Editing | koozee-flux-3 |
| 33 | Nano Lite Text-to-Image / Image Editing | koozee-nano-lite |
| 34 | Nano 2 / Nano 2 Lite Text-to-Image / Image Editing | koozee-plugin-nano |
| 35 | Prompt-to-Video with First/Last Frames | koozee-prompt-video-generation-frame |
| 36 | Seedance First/Last Frame-to-Video | koozee-seedance-frame |
| 37 | Seedance Multimodal Reference-to-Video | koozee-seedance-omni |
| 38 | Seedance 2.5 First/Last Frame-to-Video | koozee-seedance2-5-frame |
| 39 | Seedance 2.5 Multimodal Reference-to-Video | koozee-seedance2-5-omni |
| 40 | Dreamina Seedance 2.5 First/Last Frame-to-Video | koozee-dreamina-seedance2-5-frame |
| 41 | Dreamina Seedance 2.5 Multimodal Reference-to-Video | koozee-dreamina-seedance2-5-omni |
| 42 | ChatGPT Images 2 | koozee-chatgpt-images-2 |
| 43 | GPT Image | koozee-gpt-image |
| 44 | Talking-Head Video Generation | koozee-ai-speak-video |
| 45 | Image Background Removal | koozee-image-remove-background |
| 46 | Passerby Detection | koozee-recognition-passerby |
| 47 | Watermark / Text Recognition | koozee-recognition-watermark |
| 48 | Clothing Segmentation | koozee-clothing-segmentation |
| 49 | RAW to PNG | koozee-raw-to-png |
Capability Parameters and Request Examples
All capabilities share the authentication, submission, query, and response formats described above. The parameter fields in the tables refer to paths in the decoded params object. Nested required fields apply only when their parent object or array element is present.
1. Clothing Virtual Try-On
task: koozee-ai-clothing-tryon.
Media Input
At least 2 images. The first image is the original image; the second and subsequent images are reference images.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-ai-clothing-tryon",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/original.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/clothing-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}2. Swimwear and Lingerie Virtual Try-On
task: koozee-clothing-tryon-beauty.
Media Input
Exactly 2 images. The first image is the garment reference (swimwear or lingerie); the second image is the model image (pose image).
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.cloth_type_list | string | Yes | "cloth", "upper", "coat", "skirt", "pants", "dress", "jumpsuit" | Garment region: cloth = full outfit; upper = top; coat = outerwear; skirt = skirt; pants = pants; dress = dress; jumpsuit = jumpsuit. |
Request Example
{
"task": "koozee-clothing-tryon-beauty",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/swimwear-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/model-pose.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"cloth_type_list\":\"cloth\"}}",
"sync_timeout": 30
}3. Model Pose Change
task: koozee-ai-change-model-position.
Media Input
Exactly 2 images. The first image is the original image; the second image is the pose reference.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-ai-change-model-position",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/original.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/pose-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}4. Garment Image-to-Video
task: koozee-ai-video-generation.
Media Input
At least 1 original image, supplied in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.cloth_prompt | string | Yes | Min. 1 character | Video generation prompt. |
| parameter.video_length | number | Yes | — | Video duration, in seconds. |
Request Example
{
"task": "koozee-ai-video-generation",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"cloth_prompt\":\"The model turns naturally to showcase garment details.\",\"video_length\":5}}",
"sync_timeout": 30
}5. Single-Garment Outfit Video
task: koozee-video-ootd-single-clothes.
Media Input
At least 1 garment image, supplied in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.video_length | number | Yes | 10, 15 | Video duration, in seconds. |
Request Example
{
"task": "koozee-video-ootd-single-clothes",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/clothing.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"video_length\":10}}",
"sync_timeout": 30
}6. Outfit Beat-Sync Video
task: koozee-video-ootd-card-point.
Media Input
At least 1 outfit image, supplied in order. num must equal the number of images.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.num | number | Yes | — | Number of input images. This must match the number of images in init_images. |
Request Example
{
"task": "koozee-video-ootd-card-point",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/outfit-1.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/outfit-2.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/outfit-3.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"num\":3}}",
"sync_timeout": 30
}7. Prompt-Based Object Removal
task: koozee-prompt-removal.
Media Input
At least 1 image containing the content to remove, supplied in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.word | string | Yes | Min. 1 character | A text description of the content to remove, such as people in the image. |
Request Example
{
"task": "koozee-prompt-removal",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"word\":\"Remove the passersby in the background.\"}}",
"sync_timeout": 30
}8. Garment Print Replacement
task: koozee-clothing-pattern-change.
Media Input
At least 2 images. The first image is the original image; the remaining images are print references.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.clothes_category | string | Yes | "Full Set", "Top", "Coat", "Skirt", "Pants", "Dress", "Jumpsuit", "Scarf", "shawl" | Garment category. Use an exact value from the allowed values column. |
| parameter.size | string | No | "1024x1024", "1536x1024", "1024x1536", "2048x2048", "2048x1152", "3840x2160", "2160x3840", "auto" | Output size. |
Request Example
{
"task": "koozee-clothing-pattern-change",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/original.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/pattern-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"clothes_category\":\"Top\",\"size\":\"auto\"}}",
"sync_timeout": 30
}9. Garment Line Drawing
task: koozee-ai-clothing-line-drawing.
Media Input
Supply garment images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.multi_list | number[] | No | Item values: 0, 1, 2, 3 | List of generation option IDs. |
Request Example
{
"task": "koozee-ai-clothing-line-drawing",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"multi_list\":[0]}}",
"sync_timeout": 30
}10. Shoe Line Drawing
task: koozee-ai-shoe-line-drawing.
Media Input
Supply shoe images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.multi_list | number[] | No | Item values: 0, 1, 2, 3, 4 | List of generation option IDs. |
Request Example
{
"task": "koozee-ai-shoe-line-drawing",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"multi_list\":[0]}}",
"sync_timeout": 30
}11. Flat-Lay to 3D
task: koozee-ai-3d-flat-v2.
Media Input
Supply garment images. Submit a separate request for each target view.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.cloth_image | string | No | Min. 1 character | Garment image URL. |
| parameter.angle | string | Yes | "正面", "背面", "正侧45度", "背侧45度" | Target view. Use the exact Chinese values: 正面 = front; 背面 = back; 正侧45度 = front 45-degree view; 背侧45度 = rear 45-degree view. These correspond to view indices 0, 1, 2, and 3, respectively. |
| parameter.size | string | No | "auto", "2048x2048", "1024x1536", "1536x1024", "1728x2304", "2304x1728", "1536x1920", "1920x1536", "2160x3840", "3840x2160" | Choose a size for the output aspect ratio: auto; 1:1 = 2048x2048; 2:3 = 1024x1536; 3:2 = 1536x1024; 3:4 = 1728x2304; 4:3 = 2304x1728; 4:5 = 1536x1920; 5:4 = 1920x1536; 9:16 = 2160x3840; 16:9 = 3840x2160. |
Request Example
{
"task": "koozee-ai-3d-flat-v2",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"angle\":\"正面\",\"size\":\"auto\"}}",
"sync_timeout": 30
}12. Main Garment Image Extraction
task: koozee-ai-clothing-extraction-v2.
Media Input
Supply garment images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.cloth_image | string | No | Min. 1 character | Garment image URL. |
| parameter.clothes_category | string | Yes | "Full outfit", "Top", "Outerwear/Jacket", "Skirt", "Pants", "Dress", "Jumpsuit", "Scarf", "Shoes", "Bag", "Accessories" | Garment category. Use an exact value from the allowed values column. |
| parameter.size | string | No | "auto", "2048x2048", "1024x1536", "1536x1024", "1728x2304", "2304x1728", "1536x1920", "1920x1536", "2160x3840", "3840x2160" | Choose a size for the output aspect ratio: auto; 1:1 = 2048x2048; 2:3 = 1024x1536; 3:2 = 1536x1024; 3:4 = 1728x2304; 4:3 = 2304x1728; 4:5 = 1536x1920; 5:4 = 1920x1536; 9:16 = 2160x3840; 16:9 = 3840x2160. |
Request Example
{
"task": "koozee-ai-clothing-extraction-v2",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"clothes_category\":\"Top\",\"size\":\"auto\"}}",
"sync_timeout": 30
}13. Standard Garment Flat-Lay
task: koozee-ai-standard-flat-v3.
Media Input
Supply garment images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.cloth_image | string | No | Min. 1 character | Garment image URL. |
| parameter.clothes_category | string | Yes | "Full outfit", "Top", "Outerwear/Jacket", "Skirt", "Pants", "Dress", "Jumpsuit", "Scarf", "Shoes", "Bag", "Accessories" | Garment category. Use an exact value from the allowed values column. |
| parameter.size | string | No | "auto", "2048x2048", "1024x1536", "1536x1024", "1728x2304", "2304x1728", "1536x1920", "1920x1536", "2160x3840", "3840x2160" | Choose a size for the output aspect ratio: auto; 1:1 = 2048x2048; 2:3 = 1024x1536; 3:2 = 1536x1024; 3:4 = 1728x2304; 4:3 = 2304x1728; 4:5 = 1536x1920; 5:4 = 1920x1536; 9:16 = 2160x3840; 16:9 = 3840x2160. |
Request Example
{
"task": "koozee-ai-standard-flat-v3",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"clothes_category\":\"Top\",\"size\":\"auto\"}}",
"sync_timeout": 30
}14. Model Replacement
task: koozee-ai-change-model.
Media Input
At least 2 images. The first image is the original image; the remaining images are model references.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-ai-change-model",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/original.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/model-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}15. Model Background Replacement
task: koozee-ai-change-model-background.
Media Input
At least 2 images. The first image is the original image; the remaining images are background references.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-ai-change-model-background",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/original.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/background-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}16. Model Viewpoint Change
task: koozee-ai-change-model-perspective.
Media Input
Supply model images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.multi_list | number[] | No | Item values: 0, 1, 2, 3 | List of generation option IDs. |
Request Example
{
"task": "koozee-ai-change-model-perspective",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"multi_list\":[0]}}",
"sync_timeout": 30
}17. Product Background Replacement
task: koozee-ai-change-product-background.
Media Input
At least 2 images. The first image is the original product image; the remaining images are background references.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-ai-change-product-background",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/product.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/background-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}18. Garment Detail Images
task: koozee-ai-clothing-detail.
Media Input
Supply garment images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.need_sr | string | No | "yes", "no" | Whether to apply super-resolution. Use yes or no. |
Request Example
{
"task": "koozee-ai-clothing-detail",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"need_sr\":\"yes\"}}",
"sync_timeout": 30
}19. Garment Print Extraction
task: koozee-ai-print-extraction.
Media Input
Supply garment images containing the print to extract, in order.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-ai-print-extraction",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}20. Shoe Extraction
task: koozee-ai-shoe-extraction.
Media Input
Supply shoe images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.multi_list | number[] | No | Item values: 0, 1, 2, 3 | List of generation option IDs. |
Request Example
{
"task": "koozee-ai-shoe-extraction",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"multi_list\":[0]}}",
"sync_timeout": 30
}21. Shoe Virtual Try-On
task: koozee-ai-shoe-tryon.
Media Input
At least 2 images. The first image is the original shoe or foot image; the remaining images are references.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-ai-shoe-tryon",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/foot-original.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/shoe-reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}22. Garment Wrinkle Removal
task: koozee-wrinkle-removal.
Media Input
1 garment image.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-wrinkle-removal",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}23. HD Image Restoration
task: koozee-image-enhance-hd.
Media Input
1 image to restore.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-image-enhance-hd",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}24. Portrait Image Enhancement
task: koozee-image-enhance-human.
Media Input
1 portrait image.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-image-enhance-human",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}25. AI Ultra-Clear Image Restoration
task: koozee-image-enhance-ai-super-clear.
Media Input
1 image to enhance.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-image-enhance-ai-super-clear",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}26. Mask-Based Object Removal
task: koozee-algorithm-removal.
Media Input
Exactly 2 images. The first image is the original image; the second image is the mask.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.media_info_list | object[] | Yes | — | Media list containing the original image and mask. |
| parameter.media_info_list[].media_data | string | Yes, if parent is present | Min. 1 character | Media URL. |
| parameter.text_remove_param | object | No | — | Text / watermark removal options. |
| parameter.text_remove_param.is_text | boolean | No | — | Whether the content is text. |
| parameter.text_remove_param.is_translucent_watermark | boolean | No | — | Whether the content is a translucent watermark. |
Request Example
{
"task": "koozee-algorithm-removal",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/original.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/mask.png",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"media_info_list\":[{\"media_data\":\"https://example.com/original.jpg\"},{\"media_data\":\"https://example.com/mask.png\"}],\"text_remove_param\":{\"is_text\":false,\"is_translucent_watermark\":false}}}",
"sync_timeout": 30
}27. 4K Video Upscaling
task: koozee-video-4k.
Media Input
1 video to upscale.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-video-4k",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.mp4",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}28. AI Ultra-Clear Video 2.0 (4K)
task: koozee-video-4k-pro.
Media Input
1 video to upscale.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-video-4k-pro",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.mp4",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}29. Portrait Video Restoration
task: koozee-video-enhance-portrait.
Media Input
1 portrait video to restore.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-video-enhance-portrait",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/portrait.mp4",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}30. Prompt-Based Generation
task: koozee-prompt-generation.
Media Input
Images are optional. When provided, supply reference images in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.prompt | string | Yes | Min. 1 character | Prompt. |
| parameter.resolution | string | Yes | "1k", "2k", "4k" | Output resolution. |
| parameter.aspect_ratio | string | No | "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9" | Output aspect ratio. |
Request Example
{
"task": "koozee-prompt-generation",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"prompt\":\"A minimalist white shirt, e-commerce product photography.\",\"resolution\":\"2k\",\"aspect_ratio\":\"1:1\"}}",
"sync_timeout": 30
}31. Nano Banana Text-to-Image / Image Editing
task: koozee-nano-banana.
Media Input
Images are optional. gemini-3-pro-image supports up to 5 reference images; nanobanana2.1 supports up to 14.
Use uppercase 2K or 4K for resolution.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.prompt | string | Yes | Min. 1 character | Prompt. |
| parameter.model | string | Yes | "gemini-3-pro-image", "nanobanana2.1" | gemini-3-pro-image selects Pro; nanobanana2.1 selects 2.1. |
| parameter.resolution | string | Yes | "2K", "4K" | Output resolution. |
| parameter.aspect_ratio | string | No | "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9" | Output aspect ratio. |
Request Example
{
"task": "koozee-nano-banana",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"prompt\":\"Generate a minimalist garment product image.\",\"model\":\"gemini-3-pro-image\",\"resolution\":\"2K\",\"aspect_ratio\":\"1:1\"}}",
"sync_timeout": 30
}32. Flux 3 Text-to-Image / Image Editing
task: koozee-flux-3.
Media Input
Images are optional. When provided, the task performs image editing. Up to 10 reference images are supported.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.prompt | string | Yes | Min. 1 character | Prompt. |
| parameter.resolution | string | No | "1k", "2k", "4k" | Output resolution. |
| parameter.aspect_ratio | string | No | "auto", "21:9", "2:1", "16:9", "3:2", "7:5", "4:3", "5:4", "1:1", "4:5", "3:4", "5:7", "2:3", "9:16", "1:2" | Output aspect ratio. |
Request Example
{
"task": "koozee-flux-3",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"prompt\":\"Generate a minimalist garment product image.\",\"resolution\":\"2k\",\"aspect_ratio\":\"1:1\"}}",
"sync_timeout": 30
}33. Nano Lite Text-to-Image / Image Editing
task: koozee-nano-lite.
Media Input
Images are optional. When provided, the task performs image editing. Up to 1 reference image is supported.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.prompt | string | Yes | Min. 1 character | Prompt. |
| parameter.aspect_ratio | string | No | "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9" | Output aspect ratio. |
Request Example
{
"task": "koozee-nano-lite",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"prompt\":\"Generate a minimalist garment product image.\",\"aspect_ratio\":\"1:1\"}}",
"sync_timeout": 30
}34. Nano 2 / Nano 2 Lite Text-to-Image / Image Editing
task: koozee-plugin-nano.
Media Input
Images are optional. When provided, the task performs image editing.
gemini-3.1-flash-image-preview supports 1K, 2K, and 4K; gemini-3.1-flash-lite-image uses 1K only.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.prompt | string | Yes | Min. 1 character | Prompt. |
| parameter.model | string | Yes | "gemini-3.1-flash-image-preview", "gemini-3.1-flash-lite-image" | gemini-3.1-flash-image-preview selects Nano 2; gemini-3.1-flash-lite-image selects Nano 2 Lite. |
| parameter.resolution | string | Yes | "1K", "2K", "4K" | Nano 2 supports 1K, 2K, and 4K (default: 1K). Nano 2 Lite uses 1K only. |
Request Example
{
"task": "koozee-plugin-nano",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"prompt\":\"Generate a minimalist garment product image.\",\"model\":\"gemini-3.1-flash-image-preview\",\"resolution\":\"1K\"}}",
"sync_timeout": 30
}35. Prompt-to-Video with First/Last Frames
task: koozee-prompt-video-generation-frame.
Media Input
Images are optional. For first/last-frame generation, supply up to 2 images: the first image is the first frame and the second image is the last frame.
The example below performs text-to-video generation with an empty init_images array.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.prompt | string | Yes | Min. 1 character | Prompt. |
| parameter.image_list | object[] | No | — | List of first/last-frame images. |
| parameter.image_list[].image_url | string | Yes, if parent is present | Min. 1 character | Image URL. |
| parameter.image_list[].type | string | Yes, if parent is present | "first_frame", "end_frame" | Frame type. |
| parameter.mode | string | Yes | "std", "pro" | Use std for 720p and pro for 1080p. The default is pro (1080p). |
| parameter.duration | number | Yes | — | Video duration, in seconds. |
| parameter.sound | string | Yes | "on", "off" | Use on to generate audio and off for no audio. The default is on. |
Request Example
{
"task": "koozee-prompt-video-generation-frame",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"prompt\":\"Showcase the outfit in sunlight as the camera slowly moves forward.\",\"mode\":\"pro\",\"duration\":5,\"sound\":\"on\"}}",
"sync_timeout": 30
}36. Seedance First/Last Frame-to-Video
task: koozee-seedance-frame.
Media Input
1–2 images. The first image is the first frame; the second image is the last frame.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.generate_audio | boolean | No | — | Whether to generate audio. |
| parameter.resolution | string | Yes | "480p", "720p", "1080p", "4k" | Output resolution. |
| parameter.prompt | string | No | — | Prompt. |
| parameter.video_duration | number | No | — | Video duration, in seconds. |
| parameter.ratio | string | No | "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive" | Output aspect ratio. |
Request Example
{
"task": "koozee-seedance-frame",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/first-frame.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/end-frame.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"generate_audio\":true,\"resolution\":\"720p\",\"prompt\":\"The person turns naturally to showcase the outfit.\",\"video_duration\":5,\"ratio\":\"9:16\"}}",
"sync_timeout": 30
}37. Seedance Multimodal Reference-to-Video
task: koozee-seedance-omni.
Media Input
Reference media are optional. When provided, supply reference images, videos, or audio in order. Without reference media, the task performs text-to-video generation.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.generate_audio | boolean | No | — | Whether to generate audio. |
| parameter.resolution | string | Yes | "480p", "720p", "1080p", "4k" | Output resolution. |
| parameter.video_duration | number | Yes | — | Video duration, from 4 to 15 seconds. |
| parameter.prompt | string | No | — | Prompt. |
| parameter.ratio | string | No | "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive" | Output aspect ratio. |
Request Example
{
"task": "koozee-seedance-omni",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/reference.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/reference.mp4",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/reference.wav",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"generate_audio\":true,\"resolution\":\"720p\",\"video_duration\":5,\"prompt\":\"Generate an outfit showcase video using the reference media.\",\"ratio\":\"9:16\"}}",
"sync_timeout": 30
}38. Seedance 2.5 First/Last Frame-to-Video
task: koozee-seedance2-5-frame.
Media Input
1–2 images. The first image is the first frame; the second image is the last frame.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.generate_audio | boolean | No | — | Whether to generate audio. |
| parameter.resolution | string | No | "480p", "720p", "1080p" | Output resolution. |
| parameter.video_duration | number | No | — | Video duration, in seconds. |
| parameter.prompt | string | No | — | Prompt. |
Request Example
{
"task": "koozee-seedance2-5-frame",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/first-frame.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/end-frame.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"generate_audio\":true,\"resolution\":\"720p\",\"video_duration\":5,\"prompt\":\"The person turns naturally to showcase the outfit.\"}}",
"sync_timeout": 30
}39. Seedance 2.5 Multimodal Reference-to-Video
task: koozee-seedance2-5-omni.
Media Input
Images are optional. init_images contains reference images only. Supply reference videos and audio through parameter.reference_video_urls and parameter.reference_audio_urls, respectively.
The example below performs text-to-video generation without reference media.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.reference_image_urls | string[] | No | — | List of reference image URLs. |
| parameter.reference_video_urls | string[] | No | — | List of reference video URLs. |
| parameter.reference_audio_urls | string[] | No | — | List of reference audio URLs. |
| parameter.generate_audio | boolean | No | — | Whether to generate audio. |
| parameter.resolution | string | No | "480p", "720p", "1080p" | Output resolution. |
| parameter.video_duration | number | Yes | — | Video duration, from 4 to 30 seconds. |
| parameter.ratio | string | No | "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive" | Output aspect ratio. |
| parameter.prompt | string | No | — | Prompt. |
Request Example
{
"task": "koozee-seedance2-5-omni",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"generate_audio\":true,\"resolution\":\"720p\",\"video_duration\":5,\"prompt\":\"Generate an outfit showcase video.\",\"ratio\":\"9:16\"}}",
"sync_timeout": 30
}40. Dreamina Seedance 2.5 First/Last Frame-to-Video
task: koozee-dreamina-seedance2-5-frame.
Media Input
1–2 images. The first image is the first frame; the second image is the last frame.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.generate_audio | boolean | No | — | Whether to generate audio. |
| parameter.resolution | string | No | "480p", "720p", "1080p" | Output resolution. |
| parameter.video_duration | number | No | — | Video duration, in seconds. |
| parameter.prompt | string | No | — | Prompt. |
Request Example
{
"task": "koozee-dreamina-seedance2-5-frame",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/first-frame.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
},
{
"url": "https://example.com/end-frame.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"generate_audio\":true,\"resolution\":\"720p\",\"video_duration\":5,\"prompt\":\"The person turns naturally to showcase the outfit.\"}}",
"sync_timeout": 30
}41. Dreamina Seedance 2.5 Multimodal Reference-to-Video
task: koozee-dreamina-seedance2-5-omni.
Media Input
Images are optional. init_images contains reference images only. Supply reference videos and audio through parameter.reference_video_urls and parameter.reference_audio_urls, respectively.
The example below performs text-to-video generation without reference media.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.reference_image_urls | string[] | No | — | List of reference image URLs. |
| parameter.reference_video_urls | string[] | No | — | List of reference video URLs. |
| parameter.reference_audio_urls | string[] | No | — | List of reference audio URLs. |
| parameter.generate_audio | boolean | No | — | Whether to generate audio. |
| parameter.resolution | string | No | "480p", "720p", "1080p" | Output resolution. |
| parameter.video_duration | number | Yes | — | Video duration, from 4 to 30 seconds. |
| parameter.prompt | string | No | — | Prompt. |
| parameter.ratio | string | No | "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive" | Output aspect ratio. |
Request Example
{
"task": "koozee-dreamina-seedance2-5-omni",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"generate_audio\":true,\"resolution\":\"720p\",\"video_duration\":5,\"prompt\":\"Generate an outfit showcase video.\",\"ratio\":\"9:16\"}}",
"sync_timeout": 30
}42. ChatGPT Images 2
task: koozee-chatgpt-images-2.
Media Input
Without images, the task performs text-to-image generation. With images, the task performs image editing and supports 1–9 images.
Use path_scene=text2img without images, or path_scene=imgEdit when images are provided.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.path_scene | string | Yes | "imgEdit", "text2img" | Use imgEdit when images are provided, or text2img when no images are provided. |
| parameter.prompt | string | Yes | Min. 1 character | Prompt. |
| parameter.size | string | Yes | "auto", "1024x1536", "1536x1024", "2048x2048", "3840x2160", "2160x3840", "2304x1728", "1728x2304" | Output size. |
| parameter.quality | string | Yes | "medium", "high" | Use medium for 2K and high for 4K. |
Request Example
{
"task": "koozee-chatgpt-images-2",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"path_scene\":\"text2img\",\"prompt\":\"Generate a minimalist garment product image.\",\"size\":\"2048x2048\",\"quality\":\"medium\"}}",
"sync_timeout": 30
}43. GPT Image
task: koozee-gpt-image.
Media Input
Without images, the task performs text-to-image generation. With images, the task performs image editing and supports up to 16 images in PNG or JPG format.
Replace YOUR_OUTPUT_SIZE in the example with the output size for the selected aspect ratio and resolution tier.
quality=xhigh is supported only by gpt-image-2.5 models.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.prompt | string | Yes | Min. 1 character; Max. 4000 characters | Generation or editing prompt, 1–4000 characters. |
| parameter.model | string | Yes | "gpt-image-2", "gpt-image-2.5-sunburst", "gpt-image-2.5-flare" | Model identifier. The default is gpt-image-2.5-sunburst. |
| parameter.size | string | Yes | Min. 1 character | Determined by the aspect ratio and resolution tier. Aspect ratios: 1:1, 9:16, 16:9, 3:4, 4:3, 3:2, 2:3, 21:9, 9:21 (default: 9:16). Resolution tiers: 1K, 2K, 4K (default: 2K). |
| parameter.quality | string | Yes | "medium", "high", "xhigh" | Use medium or high. xhigh is available only for gpt-image-2.5 models. |
Request Example
{
"task": "koozee-gpt-image",
"task_type": "formula",
"init_images": [],
"params": "{\"parameter\":{\"prompt\":\"Generate a minimalist garment product image.\",\"model\":\"gpt-image-2.5-sunburst\",\"size\":\"YOUR_OUTPUT_SIZE\",\"quality\":\"high\"}}",
"sync_timeout": 30
}44. Talking-Head Video Generation
task: koozee-ai-speak-video.
Media Input
At least 1 image of a person, supplied in order.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.video_length | number | Yes | — | Spoken video duration, in seconds. |
| parameter.language | string | Yes | Min. 1 character | Spoken language, for example English. |
| parameter.prompt | string | Yes | Min. 1 character | Text to be spoken. |
Request Example
{
"task": "koozee-ai-speak-video",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"video_length\":5,\"language\":\"English\",\"prompt\":\"Welcome to our new collection.\"}}",
"sync_timeout": 30
}45. Image Background Removal
task: koozee-image-remove-background.
Media Input
Supply the images whose backgrounds you want to remove.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-image-remove-background",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}46. Passerby Detection
task: koozee-recognition-passerby.
Media Input
1 image to analyze.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-recognition-passerby",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}47. Watermark / Text Recognition
task: koozee-recognition-watermark.
Media Input
1 image to analyze.
Parameters
| Field | Type | Required | Allowed Values / Constraints | Description |
|---|---|---|---|---|
| parameter.target | string | Yes | "watermark", "text" | Recognition target: watermark for watermarks, or text for text. |
Request Example
{
"task": "koozee-recognition-watermark",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{\"target\":\"watermark\"}}",
"sync_timeout": 30
}48. Clothing Segmentation
task: koozee-clothing-segmentation.
Media Input
1 garment image.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-clothing-segmentation",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.jpg",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}49. RAW to PNG
task: koozee-raw-to-png.
Media Input
An accessible URL for 1 RAW file.
Parameters
No additional parameters are required. Use the string {"parameter":{}} for params.
Request Example
{
"task": "koozee-raw-to-png",
"task_type": "formula",
"init_images": [
{
"url": "https://example.com/input.raw",
"profile": {
"version": "v1",
"media_profiles": {
"media_data_type": "url"
}
}
}
],
"params": "{\"parameter\":{}}",
"sync_timeout": 30
}