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

  1. Getting Started
  2. Submit a Task
  3. Response Format
  4. Query a Task
  5. Language Examples
  6. Capability List
  7. Capability Parameters and Request Examples
  8. Related Documentation

Getting Started

Get Your AK and SK

  1. Sign in to the MeituHub Console and open Account Overview.

  2. 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/json

Request Parameters

FieldTypeRequiredDescription
taskstringYesCapability identifier. See the capability list for supported values.
task_typestringYesAlways formula.
init_imagesobject[]YesInput media list. See each capability for media types, count, and order. Use [] when no media are required.
paramsstringYesA JSON string containing capability-specific parameters. See below.
sync_timeoutintegerNoSynchronous 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"
    }
  }
}
FieldTypeDescription
urlstringAn accessible media URL.
profile.versionstringAlways v1.
profile.media_profiles.media_data_typestringAlways 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

FieldTypeDescription
statusintegerTask status. See the task status table.
task_idstringTask ID for subsequent queries.
progressnumberTask progress, typically from 0 to 1.
resultobject / nullTask result. May be empty if the task is unfinished or has failed.
result.idstringTask ID associated with the result.
result.media_info_listobject[], optionalOutput media list containing one or more results.
result.media_info_list[].media_datastringOutput media URL.
result.media_info_list[].media_profilesobjectMedia metadata. URL-based results use media_data_type=url.
result.media_info_list[].media_extraobject / null, optionalAdditional media information.
result.parametersJSON value, optionalAdditional capability-specific business data.

Task Status

statusMeaningAction
-1Task not foundCheck the task ID and query validity period.
0CreatedContinue querying.
1RunningContinue querying.
2FailedHandle the error based on the error information.
9Synchronous wait timed outSave the task ID and continue querying.
10SucceededRead 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
ParameterLocationTypeRequiredDescription
task_idQuerystringYesThe 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

LanguageOfficial DocumentationDependencies
PythonPython SDKsign_sdk, requests
GoGo SDKgithub.com/mtlab/api/signer
PHPPHP SDKOfficial signer.php, cURL extension, PHP 7.3+
JavaJava SDKOfficial 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 requests

Run 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.Capabilitytask
1Clothing Virtual Try-Onkoozee-ai-clothing-tryon
2Swimwear and Lingerie Virtual Try-Onkoozee-clothing-tryon-beauty
3Model Pose Changekoozee-ai-change-model-position
4Garment Image-to-Videokoozee-ai-video-generation
5Single-Garment Outfit Videokoozee-video-ootd-single-clothes
6Outfit Beat-Sync Videokoozee-video-ootd-card-point
7Prompt-Based Object Removalkoozee-prompt-removal
8Garment Print Replacementkoozee-clothing-pattern-change
9Garment Line Drawingkoozee-ai-clothing-line-drawing
10Shoe Line Drawingkoozee-ai-shoe-line-drawing
11Flat-Lay to 3Dkoozee-ai-3d-flat-v2
12Main Garment Image Extractionkoozee-ai-clothing-extraction-v2
13Standard Garment Flat-Laykoozee-ai-standard-flat-v3
14Model Replacementkoozee-ai-change-model
15Model Background Replacementkoozee-ai-change-model-background
16Model Viewpoint Changekoozee-ai-change-model-perspective
17Product Background Replacementkoozee-ai-change-product-background
18Garment Detail Imageskoozee-ai-clothing-detail
19Garment Print Extractionkoozee-ai-print-extraction
20Shoe Extractionkoozee-ai-shoe-extraction
21Shoe Virtual Try-Onkoozee-ai-shoe-tryon
22Garment Wrinkle Removalkoozee-wrinkle-removal
23HD Image Restorationkoozee-image-enhance-hd
24Portrait Image Enhancementkoozee-image-enhance-human
25AI Ultra-Clear Image Restorationkoozee-image-enhance-ai-super-clear
26Mask-Based Object Removalkoozee-algorithm-removal
274K Video Upscalingkoozee-video-4k
28AI Ultra-Clear Video 2.0 (4K)koozee-video-4k-pro
29Portrait Video Restorationkoozee-video-enhance-portrait
30Prompt-Based Generationkoozee-prompt-generation
31Nano Banana Text-to-Image / Image Editingkoozee-nano-banana
32Flux 3 Text-to-Image / Image Editingkoozee-flux-3
33Nano Lite Text-to-Image / Image Editingkoozee-nano-lite
34Nano 2 / Nano 2 Lite Text-to-Image / Image Editingkoozee-plugin-nano
35Prompt-to-Video with First/Last Frameskoozee-prompt-video-generation-frame
36Seedance First/Last Frame-to-Videokoozee-seedance-frame
37Seedance Multimodal Reference-to-Videokoozee-seedance-omni
38Seedance 2.5 First/Last Frame-to-Videokoozee-seedance2-5-frame
39Seedance 2.5 Multimodal Reference-to-Videokoozee-seedance2-5-omni
40Dreamina Seedance 2.5 First/Last Frame-to-Videokoozee-dreamina-seedance2-5-frame
41Dreamina Seedance 2.5 Multimodal Reference-to-Videokoozee-dreamina-seedance2-5-omni
42ChatGPT Images 2koozee-chatgpt-images-2
43GPT Imagekoozee-gpt-image
44Talking-Head Video Generationkoozee-ai-speak-video
45Image Background Removalkoozee-image-remove-background
46Passerby Detectionkoozee-recognition-passerby
47Watermark / Text Recognitionkoozee-recognition-watermark
48Clothing Segmentationkoozee-clothing-segmentation
49RAW to PNGkoozee-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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.cloth_type_liststringYes"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.cloth_promptstringYesMin. 1 characterVideo generation prompt.
parameter.video_lengthnumberYes—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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.video_lengthnumberYes10, 15Video 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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.numnumberYes—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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.wordstringYesMin. 1 characterA 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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.clothes_categorystringYes"Full Set", "Top", "Coat", "Skirt", "Pants", "Dress", "Jumpsuit", "Scarf", "shawl"Garment category. Use an exact value from the allowed values column.
parameter.sizestringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.multi_listnumber[]NoItem values: 0, 1, 2, 3List 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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.multi_listnumber[]NoItem values: 0, 1, 2, 3, 4List 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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.cloth_imagestringNoMin. 1 characterGarment image URL.
parameter.anglestringYes"正面", "背面", "正侧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.sizestringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.cloth_imagestringNoMin. 1 characterGarment image URL.
parameter.clothes_categorystringYes"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.sizestringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.cloth_imagestringNoMin. 1 characterGarment image URL.
parameter.clothes_categorystringYes"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.sizestringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.multi_listnumber[]NoItem values: 0, 1, 2, 3List 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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.need_srstringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.multi_listnumber[]NoItem values: 0, 1, 2, 3List 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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.media_info_listobject[]Yes—Media list containing the original image and mask.
parameter.media_info_list[].media_datastringYes, if parent is presentMin. 1 characterMedia URL.
parameter.text_remove_paramobjectNo—Text / watermark removal options.
parameter.text_remove_param.is_textbooleanNo—Whether the content is text.
parameter.text_remove_param.is_translucent_watermarkbooleanNo—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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.promptstringYesMin. 1 characterPrompt.
parameter.resolutionstringYes"1k", "2k", "4k"Output resolution.
parameter.aspect_ratiostringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.promptstringYesMin. 1 characterPrompt.
parameter.modelstringYes"gemini-3-pro-image", "nanobanana2.1"gemini-3-pro-image selects Pro; nanobanana2.1 selects 2.1.
parameter.resolutionstringYes"2K", "4K"Output resolution.
parameter.aspect_ratiostringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.promptstringYesMin. 1 characterPrompt.
parameter.resolutionstringNo"1k", "2k", "4k"Output resolution.
parameter.aspect_ratiostringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.promptstringYesMin. 1 characterPrompt.
parameter.aspect_ratiostringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.promptstringYesMin. 1 characterPrompt.
parameter.modelstringYes"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.resolutionstringYes"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.promptstringYesMin. 1 characterPrompt.
parameter.image_listobject[]No—List of first/last-frame images.
parameter.image_list[].image_urlstringYes, if parent is presentMin. 1 characterImage URL.
parameter.image_list[].typestringYes, if parent is present"first_frame", "end_frame"Frame type.
parameter.modestringYes"std", "pro"Use std for 720p and pro for 1080p. The default is pro (1080p).
parameter.durationnumberYes—Video duration, in seconds.
parameter.soundstringYes"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.generate_audiobooleanNo—Whether to generate audio.
parameter.resolutionstringYes"480p", "720p", "1080p", "4k"Output resolution.
parameter.promptstringNo—Prompt.
parameter.video_durationnumberNo—Video duration, in seconds.
parameter.ratiostringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.generate_audiobooleanNo—Whether to generate audio.
parameter.resolutionstringYes"480p", "720p", "1080p", "4k"Output resolution.
parameter.video_durationnumberYes—Video duration, from 4 to 15 seconds.
parameter.promptstringNo—Prompt.
parameter.ratiostringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.generate_audiobooleanNo—Whether to generate audio.
parameter.resolutionstringNo"480p", "720p", "1080p"Output resolution.
parameter.video_durationnumberNo—Video duration, in seconds.
parameter.promptstringNo—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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.reference_image_urlsstring[]No—List of reference image URLs.
parameter.reference_video_urlsstring[]No—List of reference video URLs.
parameter.reference_audio_urlsstring[]No—List of reference audio URLs.
parameter.generate_audiobooleanNo—Whether to generate audio.
parameter.resolutionstringNo"480p", "720p", "1080p"Output resolution.
parameter.video_durationnumberYes—Video duration, from 4 to 30 seconds.
parameter.ratiostringNo"16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive"Output aspect ratio.
parameter.promptstringNo—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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.generate_audiobooleanNo—Whether to generate audio.
parameter.resolutionstringNo"480p", "720p", "1080p"Output resolution.
parameter.video_durationnumberNo—Video duration, in seconds.
parameter.promptstringNo—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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.reference_image_urlsstring[]No—List of reference image URLs.
parameter.reference_video_urlsstring[]No—List of reference video URLs.
parameter.reference_audio_urlsstring[]No—List of reference audio URLs.
parameter.generate_audiobooleanNo—Whether to generate audio.
parameter.resolutionstringNo"480p", "720p", "1080p"Output resolution.
parameter.video_durationnumberYes—Video duration, from 4 to 30 seconds.
parameter.promptstringNo—Prompt.
parameter.ratiostringNo"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.path_scenestringYes"imgEdit", "text2img"Use imgEdit when images are provided, or text2img when no images are provided.
parameter.promptstringYesMin. 1 characterPrompt.
parameter.sizestringYes"auto", "1024x1536", "1536x1024", "2048x2048", "3840x2160", "2160x3840", "2304x1728", "1728x2304"Output size.
parameter.qualitystringYes"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.promptstringYesMin. 1 character; Max. 4000 charactersGeneration or editing prompt, 1–4000 characters.
parameter.modelstringYes"gpt-image-2", "gpt-image-2.5-sunburst", "gpt-image-2.5-flare"Model identifier. The default is gpt-image-2.5-sunburst.
parameter.sizestringYesMin. 1 characterDetermined 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.qualitystringYes"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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.video_lengthnumberYes—Spoken video duration, in seconds.
parameter.languagestringYesMin. 1 characterSpoken language, for example English.
parameter.promptstringYesMin. 1 characterText 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

FieldTypeRequiredAllowed Values / ConstraintsDescription
parameter.targetstringYes"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
}