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
  }
}