qwen/text-to-imagetext-to-imageoutputs imagedocs.kie.aipast runsThe Qwen 1 generation is a diffusion passthrough: steps, CFG and acceleration are all exposed. image_size holds NAMED sizes here (square_hd, landscape_4_3), not ratios — Qwen 2 and Qwen 3 reuse the same key for ratios. Two independent safety switches: enable_safety_checker is the model's, nsfw_checker is Kie's.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.
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.
The Qwen 1 generation is a diffusion passthrough: steps, CFG and acceleration are all exposed. image_size holds NAMED sizes here (square_hd, landscape_4_3), not ratios — Qwen 2 and Qwen 3 reuse the same key for ratios. Two independent safety switches: enable_safety_checker is the model's, nsfw_checker is Kie's.
| Field | Type | Accepts | Default |
|---|---|---|---|
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 | — |
image_sizeNamed sizes, not ratios — `portrait_16_9` is a 9:16 picture. Qwen 2 and Qwen 3 reuse this key for aspect ratios instead. | enum | square | square_hd | portrait_4_3 | portrait_16_9 | landscape_4_3 | landscape_16_9 | "square_hd" |
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.