qwen/image-to-imageimage-to-imageoutputs imagedocs.kie.aipast runsTakes a SINGLE image_url, not the image_urls array Qwen 2.1 and Qwen 3 use. No image_size at all — the output follows the reference. `strength` exists on this endpoint only.takes 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 a SINGLE image_url, not the image_urls array Qwen 2.1 and Qwen 3 use. No image_size at all — the output follows the reference. `strength` exists on this endpoint only.
| Field | Type | Accepts | Default |
|---|---|---|---|
image_urlrequiredThe image to work from. jpeg, png or webp, max 10.0 MB. | url | image | — |
promptrequiredWhat to generate. Up to 5000 characters. | text | 0…5000 chars | — |
negative_promptWhat must not appear in the image. Up to 500 characters. | text | 0…500 chars | — |
strengthDenoising strength. 1.0 remakes the picture completely; 0.0 preserves the original. Only this endpoint has it. | number | 0…1, step 0.01 | 0.8 |
output_formatThe generated image format. | enum | png | jpeg | "png" |
accelerationHigher is faster. 'regular' balances speed and quality; 'high' is recommended for images without text. | enum | none | regular | high | "none" |
num_inference_stepsDenoising steps. More is slower and usually more detailed. 2–250. | number | 2…250, step 1 | 30 |
guidance_scaleCFG — how tightly the image is held to the prompt. Higher follows the words more literally and costs variety. | number | 0…20, step 0.1 | 2.5 |
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 | — | — |
enable_safety_checkerThe model's own checker, not Kie's. Always on in the Playground; pass false over the API to turn it off. | boolean | — | — |
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.