qwen2-1/image-to-imageimage-to-imageoutputs imagedocs.kie.aipast runsTakes up to 10 references, the most of any Qwen endpoint (Qwen 3 caps at 3). Supplying mask_url is a MODE SWITCH, not an extra option: it demands exactly one reference image, forbids a transparent background, and makes aspect_ratio and enhance_prompt no-ops that Kie lists in an `ignored` field rather than rejecting. All three are encoded as constraints so the form cannot build the request Kie would silently reinterpret.1K/2K · takes image
aspect_ratio vs ratio vs image_size — the same idea, two names67 modelsCopying a payload between these models silently drops the field, because the receiving model has never heard of that key. uses aspect_ratio: kling-2.6/text-to-video, kling/v2-5-turbo-text-to-video-pro, kling/v2-1-master-text-to-video +52 — uses ratio: wan/2-7-text-to-video — uses image_size: bytedance/seedream, bytedance/seedream-v4-text-to-image, bytedance/seedream-v4-edit +10. google/nano-banana and google/nano-banana-edit declare more than one of these spellings, so setting two of them on the same request sets one idea twice — check which the docs mark current.
resolution accepts different values on different models57 modelsA value that works on one of these is rejected on another. accepts 1080p,720p: kling/v3-turbo-text-to-video, kling/v3-turbo-image-to-video, bytedance/v1-pro-fast-image-to-video +12 — accepts 1080p,4k,720p: kling-3.0-omni/text-to-video, kling-3.0-omni/image-to-video, kling-3.0-omni/reference-to-video +5 — accepts 1080p,480p,4k,720p: bytedance/seedance-2 — accepts 480p,720p: bytedance/seedance-2-fast, bytedance/seedance-2-mini, wan/2-2-a14b-text-to-video-turbo +1 — accepts 1080p,480p,720p: bytedance/seedance-2-5, bytedance/seedance-1.5-pro, bytedance/v1-pro-text-to-video +3 — accepts 480p,580p,720p: wan/2-2-a14b-speech-to-video-turbo, wan/2-2-animate-move, wan/2-2-animate-replace — accepts 1080P,480P,720P: wan/3-0-video, wan/3-0-video-prime — accepts 1K,2K,4K: wan/2-7-image, wan/2-7-image-pro, nano-banana-2 +8 — accepts 1080p,360p,4k,720p: google/gemini-omni-flash-1-1 — accepts 1K,2K: qwen2-1/text-to-image, qwen2-1/image-to-image, qwen3/text-to-image +3.
aspect_ratio accepts different values on different models55 modelsA value that works on one of these is rejected on another. accepts 16:9,1:1,9:16: kling-2.6/text-to-video, kling/v2-5-turbo-text-to-video-pro, kling/v2-1-master-text-to-video +4 — accepts 16:9,1:1,9:16,auto: kling-3.0-omni/image-to-video, kling-3.0-omni/reference-to-video, kling-3.0-omni/transformation — accepts 16:9,1:1,21:9,3:4,4:3,9:16,adaptive: bytedance/seedance-2, bytedance/seedance-2-fast, bytedance/seedance-2-mini +1 — accepts 16:9,1:1,21:9,3:4,4:3,9:16: bytedance/seedance-1.5-pro, bytedance/v1-pro-text-to-video — accepts 16:9,1:1,3:4,4:3,9:16,9:21: bytedance/v1-lite-text-to-video — accepts 16:9,1:1,21:9,2:3,3:2,3:4,4:3,9:16: seedream/4.5-text-to-image, seedream/4.5-edit, seedream/5-lite-text-to-image +4 — accepts 16:9,9:16: wan/2-2-a14b-text-to-video-turbo, gemini-omni-video, google/gemini-omni-flash-1-1 — accepts 16:9,1:1,3:4,4:3,9:16: wan/2-7-videoedit, wan/2-7-r2v — accepts 16:9,1:1,3:4,4:3,9:16,adaptive: wan/3-0-video, wan/3-0-video-prime — accepts 16:9,1:1,1:8,21:9,3:4,4:3,8:1,9:16: wan/2-7-image, wan/2-7-image-pro — accepts 16:9,1:1,3:4,4:3,9:16,auto: google/imagen4, google/imagen4-fast, google/imagen4-ultra — accepts 16:9,1:1,21:9,2:3,3:2,3:4,4:3,4:5,5:4,9:16,auto: google/nano-banana, google/nano-banana-edit, nano-banana-pro — accepts 16:9,1:1,1:4,1:8,21:9,2:3,3:2,3:4,4:1,4:3,4:5,5:4,8:1,9:16,auto: nano-banana-2, nano-banana-2-1, nano-banana-2-lite — accepts 16:9,9:16,Auto: veo3, veo3_fast, veo3_lite — accepts 1:1,2:3,3:2: gpt-image/1.5-text-to-image, gpt-image/1.5-image-to-image — accepts 16:9,1:1,1:2,1:3,21:9,2:1,2:3,3:1,3:2,3:4,4:3,4:5,5:4,9:16,9:21,auto: gpt-image-2-text-to-image, gpt-image-2-image-to-image — accepts 16:27,16:9,1:1,21:9,27:16,2:3,3:2,3:4,4:3,8:9,9:16,9:8,auto: gpt-image-2-5-flare-text-to-image, gpt-image-2-5-flare-image-to-image, gpt-image-2-5-sunburst-text-to-image +1 — accepts 16:9,1:1,21:9,2:3,3:2,3:4,4:3,9:16,9:21: qwen2-1/text-to-image — accepts 16:9,1:1,21:9,2:3,3:2,3:4,4:3,9:16,9:21,auto: qwen2-1/image-to-image.
image vs image_url vs image_urls vs image_input vs input_urls vs imageUrls — the same idea, two names55 modelsCopying a payload between these models silently drops the field, because the receiving model has never heard of that key. uses image: recraft/crisp-upscale, recraft/remove-background — uses image_url: kling/v2-5-turbo-image-to-video-pro, kling/v2-1-master-image-to-video, kling/v2-1-pro +16 — uses image_urls: kling-2.6/image-to-video, kling-3.0/video, kling/v3-turbo-image-to-video +16 — uses image_input: nano-banana-2, nano-banana-2-1, nano-banana-pro — uses input_urls: kling-2.6/motion-control, kling-3.0/motion-control, bytedance/seedance-1.5-pro +6 — uses imageUrls: veo3, veo3_fast, veo3_lite.
seed is not the same type on every model36 modelsSending the wrong JSON type is rejected as a 422 that names the field but not the reason. as number: bytedance/v1-pro-text-to-video, bytedance/v1-pro-image-to-video, bytedance/v1-lite-text-to-video +31 — as string: google/imagen4, google/imagen4-ultra.
output_format accepts different values on different models23 modelsA value that works on one of these is rejected on another. accepts mov,mp4: bytedance/seedance-2-5 — accepts jpeg,png: seedream/5-lite-text-to-image, seedream/5-lite-image-to-image, seedream/5-flash-text-to-image +14 — accepts jpg,png: nano-banana-2, nano-banana-2-1, nano-banana-pro — accepts jpeg,png,webp: qwen2-1/text-to-image, qwen2-1/image-to-image.
Takes up to 10 references, the most of any Qwen endpoint (Qwen 3 caps at 3). Supplying mask_url is a MODE SWITCH, not an extra option: it demands exactly one reference image, forbids a transparent background, and makes aspect_ratio and enhance_prompt no-ops that Kie lists in an `ignored` field rather than rejecting. All three are encoded as constraints so the form cannot build the request Kie would silently reinterpret.
The form enforces these up front — it disables the conflicting control rather than letting you submit and reading back a 422.
allowedValuesWhenoutput_formatA transparent background needs an alpha channel, and JPEG has none — pick PNG or WebP, or set the background back to opaque.
allowedValuesWhenbackgroundJPEG has no alpha channel, so the background stays opaque while the output format is JPEG.
maxWhenimage_urlsA mask applies to exactly one reference image — Kie returns 422 if the mask arrives with more than one.
allowedValuesWhenbackgroundLocal-edit mode cannot produce a transparent background — a mask with transparency returns 422.
forbiddenWhenaspect_ratio, enhance_promptIn local-edit mode the output keeps the reference image's shape, so these two are ignored — Kie accepts the job and reports them back in the result's `ignored` field.
| Field | Type | Accepts | Default |
|---|---|---|---|
image_urlsrequired1 to 10 images, by URL. The array order is the order the prompt refers to ("the first image"). jpeg, png or webp, max 30 MB and 25 MP each. Detail per reference drops as you add more — stay within 4 when fidelity matters. | url[] | 1…10 items, image | — |
promptrequiredWhat you want back. With a mask, describe what belongs inside the white area. Any language, up to 5000 characters. | text | 1…5000 chars | — |
mask_urlSwitches the request into local-edit mode. Black and white, WHITE marks what changes, with a few pixels of feathering. Same aspect ratio as the reference image; a different size is scaled to it. | url | image | — |
aspect_ratio`auto` takes the first reference image's shape and snaps it to the nearest supported ratio. | enum | auto | 1:1 | 4:3 | 3:4 | 3:2 | 2:3 | 16:9 | 9:16 | 21:9 | 9:21 | "auto" |
resolution1K is the faster tier; 2K is four times the pixels and can take about 3 minutes with reference images. 4K returns 422. | enum | 1K | 2K | "1K" |
backgroundTransparent gives a real alpha channel, so describe only the subject — a prompt that mentions a scene or a surface usually fills it back in. | enum | opaque | transparent | "opaque" |
output_formatPNG and WebP carry an alpha channel; JPEG does not, so it cannot be combined with a transparent background. | enum | png | webp | jpeg | "png" |
enhance_promptRewrites the prompt into a fuller scene description before generating. On by default, including when omitted. | boolean | — | true |
seedThe same seed with the same prompt and parameters reproduces the same image on the same model version. Omit it for a random one. | seed | — | — |
nsfw_checkerKie's own filter, separate from the model's. Off by default over the API — the Playground turns it on. Filtering is never a guarantee. | boolean | — | false |
The models most easily confused with this one.