# Bytedance | Seedance 2.0 | Image to Video A next-generation video model delivering cinematic visuals with native audio, realistic physics, and precise camera control, supporting text, image, audio, and video inputs. ## API Information - **Model Slug:** bytedance-seedance-2-0-image-to-video - **Branded URL:** https://www.eachlabs.ai/bytedance/seedance-2-0/bytedance-seedance-2-0-image-to-video - **Provider:** ByteDance - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 720p resolution: $0.3024 per second based on output duration. - **Estimated Processing Time:** 220 seconds - **Last Updated:** 2026-06-01 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/bytedance-seedance-2-0-image-to-video ## Pricing - **Charge Type:** dynamic - **Pricing Details:** 720p resolution: $0.3024 per second based on output duration. ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution == "720p" | 720p resolution: $0.3024 per second based on output duration. | | resolution == "480p" | 480p resolution: $0.1412 per second based on output duration. | | resolution == "1080p" | 1080p resolution: $0.685 per second based on output duration. | | Rule 4 | Default fallback (720p rate) when resolution is not specified. | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt describing the desired motion and action for the video. | | image_url | string | Yes | - | - | The URL of the starting frame image to animate. Supported formats: JPEG, PNG, WebP. Max 30 MB. | | end_image_url | string | No | - | - | The URL of the image to use as the last frame of the video. When provided, the generated video will transition from the starting image to this ending image. Supported formats: JPEG, PNG, WebP. Max 30 MB. | | resolution | string | No | 720p | 480p, 720p | Video resolution - 480p for faster generation, 720p for balance. | | duration | string | No | auto | auto, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 | Duration of the video in seconds. Supports 4 to 15 seconds, or auto to let the model decide based on the prompt. | | aspect_ratio | string | No | auto | auto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | The aspect ratio of the generated video. Use 16:9 for landscape, 9:16 for portrait/vertical, 1:1 for square, 21:9 for ultrawide cinematic, or auto to infer from the input image. | | generate_audio | boolean | No | true | - | Whether to generate synchronized audio for the video, including sound effects, ambient sounds, and lip-synced speech. The cost of video generation is the same regardless of whether audio is generated or not. | | seed | string | No | - | - | Random seed for reproducibility. Note that results may still vary slightly even with the same seed. | | end_user_id | string | No | - | - | The unique user ID of the end user. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance-seedance-2-0-image-to-video", "input": { "prompt": "Ultra-realistic UGC-style vertical video of a woman in her early 30s with short wavy auburn hair, blue-grey eyes, light freckles and natural glowy skin, wearing a casual oversized white tee and light wash jeans, filmed as if she's holding her phone at arm's length in a bright airy room with soft natural window light. She's holding up two washed dad caps — one in faded rust red, one in vintage denim blue — both embroidered with \"ship happens.\" on the front panel. She holds them up side by side toward the camera and says: \"Okay so I finally got both colorways and I genuinely can't pick — the rust one is so warm and vintage, the blue is giving total coastal cool girl, both are washed cotton so they're already broken in straight out of the bag — and honestly? Ship happens, so I just got both. Which one would you wear?\" She tilts each hat slightly as she mentions it, laughs softly at her own joke, smiling naturally, not overly posed. Handheld slightly shaky camera feel, authentic TikTok/Instagram Reel style, warm indoor lighting.", "image_url": "https://storage.googleapis.com/magicpoint/inputs/bytedance-seedance-2-0-image-to-video-input.jpg" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Bytedance | Seedance 2.0 | Image to Video Overview** Bytedance | Seedance 2.0 | Image to Video transforms static images into dynamic, cinematic videos with native audio synchronization, realistic physics, and precise motion control. Developed by ByteDance's Seed research team as part of the Seedance family, this flagship model excels in multimodal workflows, accepting images alongside text, video, and audio inputs for superior reference handling. Its primary differentiator is the ability to combine up to 9 images, 3 video clips, and 3 audio files in a single generation pass, enabling role-based asset tagging like "@Image1 as main character" for unmatched consistency in identity locking and motion transfer. Creators gain directorial control over complex scenes, from character animations to beat-synced performances, making Bytedance | Seedance 2.0 | Image to Video ideal for professional video production on each::labs. Released in early 2026, it supports image-to-video animation up to 1080p, powering applications in marketing, tutorials, and storytelling where visual fidelity and audio alignment are critical. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.