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.
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.
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.
| Field | Type | Accepts | Default |
|---|---|---|---|
promptrequiredHow to edit the input images. | text | 0…5000 chars | — |
image_urlsrequiredjpeg/png/webp, up to 30MB each. | url[] | 1…10 items, image | — |
image_sizeNamed size preset. | enum | square | square_hd | portrait_4_3 | portrait_3_2 | portrait_16_9 | landscape_4_3 | landscape_3_2 | landscape_16_9 | landscape_21_9 | "square_hd" |
image_resolutionScale tier applied on top of the size preset. | enum | 1K | 2K | 4K | "1K" |
max_imagesHow many images one run may produce. | number | 1…6, step 1 | 1 |
seedControls the randomness of generation. | seed | — | — |
nsfw_checkerWhen off, results are returned directly by the model without filtering. | boolean | — | false |
The models most easily confused with this one.