# Bytedance | Seedance 2.0 | Text to Video ByteDance’s most advanced video generation model delivers cinematic output with native audio, realistic physics, and director-level camera control, supporting text, image, audio, and video inputs. "Please use this model only with AI-generated human faces, not real human faces. If you use real human faces, you accept full responsibility and liability for any consequences." ## API Information - **Model Slug:** bytedance-seedance-2-0-text-to-video - **Branded URL:** https://www.eachlabs.ai/bytedance/seedance-2-0/bytedance-seedance-2-0-text-to-video - **Provider:** ByteDance - **Category:** Text to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 720p resolution (default): approximately $0.18 per second of output video - **Estimated Processing Time:** 150 seconds - **Last Updated:** 2026-08-12 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/bytedance-seedance-2-0-text-to-video ## Pricing - **Charge Type:** dynamic - **Pricing Details:** 720p resolution (default): approximately $0.18 per second of output video ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution == "480p" | 480p resolution: approximately $0.084 per second of output video | | resolution == "1080p" | 1080p resolution: approximately $0.444 per second of output video | | Rule 3 | 720p resolution (default): approximately $0.18 per second of output video | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt used to generate the video | | 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 let the model decide. | | 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 "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance-seedance-2-0-text-to-video", "input": { "prompt": "Ultra realistic 1903 first human flight attempt, wooden airplane lifting gently off sandy ground at sunrise, wind moving fabric wings, emotional faces watching in awe, cinematic golden morning light, slow motion takeoff moment, shallow depth of field, detailed textures of wood and fabric, hopeful atmosphere, 4K HDR" } }' ``` ## 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 "Authorization: Bearer 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 `Authorization` bearer token | | `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 | Text to Video Overview** Bytedance | Seedance 2.0 | Text to Video is ByteDance's flagship AI model that transforms text prompts, images, videos, and audio into cinematic videos with native synchronized sound, solving the challenge of creating director-level content without extensive crews or editing suites. Part of the Seedance family, this model stands out with its unified multimodal architecture, enabling up to 9 image references, 3 video clips, and 3 audio files in a single workflow for precise control over consistency, motion, and audio sync. Creators gain realistic physics, character locking, and beat-aware generation, making it ideal for professional video production on platforms like each::labs. Available via the Bytedance | Seedance 2.0 | Text to Video API, it empowers users to produce high-quality clips efficiently. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer 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.