POST
/api/v1/image-to-video.php
Image to Video
Bring any image to life. The endpoint accepts a public image URL and a creative prompt. It runs the image through Nano Banana Pro Edit (image transformation) then generates a cinematic video with your chosen model.
Generation Pipeline
Image URL + Prompt
Nano Banana Pro Edit
→ Transformed Image
Video Model
MP4 Video URL
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
image_url |
string | Required | Public HTTPS URL of the source image (JPEG, PNG, WebP). Must be accessible from our servers. |
prompt |
string | Optional | Creative direction for the video. Defaults to "Generate a video from this image". |
video_model |
string | Optional | seedance2 (default), veo3, sora2. |
resolution |
string | Optional | 480p (default), 720p, 1080p. |
duration |
integer | Optional | Seconds (3–12). VEO fixed at 8. Sora: 10 or 15 only. Default: 5. |
aspect_ratio |
string | Optional | Default: 16:9. Seedance also supports 9:16, 1:1, 4:3, 3:4, 21:9. |
motion_intensity |
string | Optional | low, medium (default), high. |
Image Requirements
Format
JPEG, PNG, or WebP (auto-converted to JPEG)
Accessibility
Must be reachable over HTTPS from our servers
Max file size
Up to 10 MB (larger images are auto-compressed)
Min dimensions
Recommended 512 × 512 px minimum
Examples by Model
Seedance 2.0 — cURL
curl https://nanobananavideo.com/api/v1/image-to-video.php \ -X POST \ -H "Authorization: Bearer $NB_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "image_url": "https://example.com/my-product-photo.jpg", "prompt": "Product rotates slowly on a reflective white surface with soft shadows", "video_model": "seedance2", "resolution": "720p", "duration": 6, "aspect_ratio": "1:1", "motion_intensity": "low" }'
Response
Success Response (200)
{ "success": true, "video_id": "vid_f7g8h9i0j1k2", "video_url": "https://cdn.nanobananavideo.com/videos/vid_f7g8h9.mp4", "thumbnail_url": "https://cdn.nanobananavideo.com/thumbs/vid_f7g8h9.jpg", "credits_used": 6, "rate_limit": { "count": 2, "limit": 30, "remaining": 28 } }