qwen3/pro-image-to-imageimage-to-imageoutputs imagedocs.kie.aipast runsSLUG TRAP: doc page `market/qwen3-pro/image-to-image`, slug `qwen3/pro-image-to-image`. Input schema is byte-identical to qwen3/image-to-image.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.
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.
image_size accepts different values on different models13 modelsA value that works on one of these is rejected on another. accepts landscape_16_9,landscape_4_3,portrait_16_9,portrait_4_3,square,square_hd: bytedance/seedream, qwen/text-to-image, qwen/image-edit — accepts landscape_16_9,landscape_21_9,landscape_3_2,landscape_4_3,portrait_16_9,portrait_3_2,portrait_4_3,square,square_hd: bytedance/seedream-v4-text-to-image, bytedance/seedream-v4-edit — 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 — accepts 16:9,1:1,3:4,4:3,9:16: qwen2/text-to-image — accepts 16:9,1:1,21:9,2:3,3:2,3:4,4:3,9:16: qwen2/image-edit, qwen3/text-to-image, qwen3/image-to-image +2.
SLUG TRAP: doc page `market/qwen3-pro/image-to-image`, slug `qwen3/pro-image-to-image`. Input schema is byte-identical to qwen3/image-to-image.
| Field | Type | Accepts | Default |
|---|---|---|---|
image_urlsrequiredUp to 3 images, by URL. jpeg, png, webp, bmp, gif or tiff, max 10 MB each. Qwen 2.1 takes up to 10. | url[] | 1…3 items, image | — |
promptrequiredWhat to generate or edit. Chinese and English are both supported. Up to 5000 characters. | text | 0…5000 chars | — |
negative_promptWhat must not appear in the image. Up to 5000 characters. | text | 0…5000 chars | — |
resolutionOutput resolution tier. | enum | 1K | 2K | "1K" |
image_sizeThe output shape. Back under `image_size` again after Qwen 2.1 called it `aspect_ratio`, and with no `9:21` member. | enum | 1:1 | 3:2 | 2:3 | 4:3 | 3:4 | 16:9 | 9:16 | 21:9 | "16:9" |
output_formatThe generated image format. | enum | png | jpeg | "png" |
prompt_extendIntelligent prompt rewriting, recommended for short descriptions. Qwen 2.1 spells the same idea `enhance_prompt`. | boolean | — | true |
seedA fixed seed keeps results relatively stable. Range 0–2147483647; the only Qwen generation that documents one. | seed | 0…2147483647 | 1 |
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.