> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apipod.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedance 2.5 特价版 参考生视频

> Seedance 2.5 特价版参考视频生成是特价版满血路由，使用参考图、参考视频或参考音频约束主体、运动、视觉风格与声音。支持最多 30 张参考图、10 条参考视频和 10 段参考音频，时长最长 30 秒，仅输出 720p。该系列为满血版：媒体 URL 默认（real_person=true）会先经素材服务送审再提交任务；确认素材不含真人时可设置 real_person=false 跳过送审、直接透传，公网 URL 均可直接使用。

<Warning title="条件校验">必须至少提供一种参考素材；图片、视频和音频的数量上限以 API 参数定义为准。</Warning>

## 素材与场景限制

Seedance 2.5 特价版参考素材生视频为满血版本，自带素材库，无面部畸变，真人通过率 100%，长期稳定。特价计费，仅成功任务收费——实时单价以定价页为准。

* **文本提示词**：中文建议不超过 500 字符；英文建议不超过 1000 单词。
* **图片输入**：支持 jpeg、png、webp、bmp、tiff、gif、heic、heif 格式；单张图片小于 30 MB，宽高比范围 (0.4, 2.5)，宽高取值范围 (300px, 6000px)。
* **图片数量**：不超过 30 张。
* **视频输入**：单个视频时长 \[2, 30] 秒；最多支持 10 条参考视频；全部视频总时长不得超过 30 秒。
* **音频输入**：单段音频时长 \[2, 30] 秒；最多支持 10 段参考音频；全部音频总时长不得超过 30 秒。
* **音频输入限制**：音频不可单独输入，必须同时至少提供一张参考图片或一条参考视频。
* **分辨率**：仅支持 720p——不支持 480p、1080p、2K、4K。
* **单条时长**：4–30 秒（默认 4 秒）。

<Note>
  🔸注意🔸：启用带视频输入时，因计费计算公式不同，单价更低：无视频 = 单价 × 输出时长；带视频 = 单价 ×（输入时长 + 输出时长）。
</Note>

## 真人素材送审（real\_person）

请求携带参考素材时，通过 `real_person` 布尔字段控制素材是否先经人脸素材送审：

* `real_person: true`（默认）：素材先经素材服务送审，通过后以 `assetId://{assetId}` 引用提交任务；送审期间任务等待，审核拒绝时报错。
* `real_person: false`：跳过送审，素材 URL 直接透传提交任务。

仅在确认素材不含真人/人脸时才设置为 `false` 以省去送审等待；含真人素材保持默认 `true` 即可。

## 素材库引用

除可公开访问的 URL 外，`image_url` / `image_urls`、`video_urls`、`audio_url` / `audio_urls` 字段还支持素材库引用，格式为 `assetId://{assetId}`。素材 ID 为全平台共享标识：任何账号都可以引用已知的 `assetId`，不限提交者，与公开 URL 的共享语义一致。仅 `ACTIVE` 状态的素材可通过校验。素材的提交与状态查询见[素材提交](/zh-CN/seedance/asset-upload)与[素材详情](/zh-CN/seedance/asset-detail)。


## OpenAPI

````yaml api-reference/openapi/seedance--2-5-lite-reference-to-video.zh.yaml POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Seedance 2.5 特价版参考生视频 API
  version: 1.0.0
  description: >-
    Seedance 2.5 特价版参考视频生成是官方满血特价路由，使用参考图、参考视频或参考音频约束主体、运动、视觉风格与声音。Seedance
    系列强调提示词遵循、连贯运动、多镜头叙事和音画同步。在 APIPod 中，公开模型 ID 为 seedance-2.5-lite-r2v，支持最多 30
    张参考图、10 个参考视频和 10 段参考音频，时长最长 30 秒，输出 720p，并通过异步视频任务返回结果。该系列为满血版：媒体 URL
    默认（real_person=true）会先经素材服务送审再提交任务；确认素材不含真人时可设置 real_person=false
    跳过送审、直接透传，公网 URL 均可直接使用。
servers:
  - url: https://api.apipod.ai
    description: 生产环境
security: []
paths:
  /v1/videos/generations:
    post:
      tags:
        - Seedance 2.5 特价版参考生视频
      summary: 创建生成任务
      description: >-
        Seedance 2.5 特价版参考视频生成是官方满血特价路由，使用参考图、参考视频或参考音频约束主体、运动、视觉风格与声音。Seedance
        系列强调提示词遵循、连贯运动、多镜头叙事和音画同步。在 APIPod 中，公开模型 ID 为
        seedance-2.5-lite-r2v，支持最多 30 张参考图、10 个参考视频和 10 段参考音频，时长最长 30 秒，输出
        720p，并通过异步视频任务返回结果。该系列为满血版：媒体 URL
        默认（real_person=true）会先经素材服务送审再提交任务；确认素材不含真人时可设置 real_person=false
        跳过送审、直接透传，公网 URL 均可直接使用。
      operationId: create-seedance-2-5-lite-reference-to-video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: Seedance 2.5 特价版参考生视频
              properties:
                model:
                  type: string
                  title: Model ID
                  description: APIPod 公开模型 ID。
                  const: seedance-2.5-lite-r2v
                prompt:
                  type: string
                  title: Prompt
                  description: >-
                    生成或编辑指令，最长 30000 字符。建议提示词不超过 500 个汉字或 1000
                    个英文单词；过长的文本会导致信息分散，模型可能忽略细节、只关注重点，导致生成的视频缺少元素。
                  maxLength: 30000
                image_urls:
                  type: array
                  title: Image Urls
                  description: 参考图 URL。最多支持 30 张；单张图片小于 30 MB。
                  maxItems: 30
                  items:
                    type: string
                video_urls:
                  type: array
                  title: Video Urls
                  description: 参考视频 URL。最多支持 10 个；单个视频时长 2-30 秒，所有视频总时长不超过 30 秒。
                  maxItems: 10
                  items:
                    type: string
                audio_urls:
                  type: array
                  title: Audio Urls
                  description: >-
                    参考音频 URL。最多支持 10 段；单个音频时长 2-30 秒，所有音频总时长不超过 30
                    秒。注意音频不能单独上传，需至少包含一个参考图或参考视频。
                  maxItems: 10
                  items:
                    type: string
                duration:
                  type: integer
                  title: Duration
                  enum:
                    - 4
                    - 5
                    - 6
                    - 7
                    - 8
                    - 9
                    - 10
                    - 11
                    - 12
                    - 13
                    - 14
                    - 15
                    - 16
                    - 17
                    - 18
                    - 19
                    - 20
                    - 21
                    - 22
                    - 23
                    - 24
                    - 25
                    - 26
                    - 27
                    - 28
                    - 29
                    - 30
                  default: 4
                  description: 视频时长，单位为秒。 最小值：4。 最大值：30。
                resolution:
                  type: string
                  title: Resolution
                  description: 输出分辨率档位。
                  enum:
                    - 720p
                  default: 720p
                aspect_ratio:
                  type: string
                  title: Aspect Ratio
                  description: 输出宽高比。
                  enum:
                    - adaptive
                    - '16:9'
                    - '4:3'
                    - '1:1'
                    - '3:4'
                    - '9:16'
                    - '21:9'
                  default: adaptive
                generate_audio:
                  type: boolean
                  title: Generate Audio
                  description: 为视频生成同步音频。
                  default: true
                real_person:
                  type: boolean
                  title: Real Person
                  description: >-
                    素材是否包含真人/人脸。默认 true：素材先经素材服务送审换取 assetId 引用再提交任务；确认素材不含真人时设置
                    false 跳过送审、直接透传素材 URL。
                  default: true
              required:
                - model
                - prompt
            example:
              model: seedance-2.5-lite-r2v
              prompt: >-
                Keep the character and voice, cinematic product shot with
                natural lighting.
              image_urls:
                - https://example.com/reference.png
              video_urls:
                - https://example.com/reference.mp4
              audio_urls:
                - https://example.com/voice.mp3
              duration: 4
              resolution: 720p
              aspect_ratio: adaptive
              generate_audio: true
      responses:
        '200':
          description: 任务已受理
          content:
            application/json:
              schema:
                type: object
                title: Task Submit Response
                description: Standard response for task submission
                properties:
                  code:
                    type: integer
                    description: HTTP 状态码。
                  data:
                    type: object
                    title: Task Submit Data
                    description: 响应数据。
                    properties:
                      task_id:
                        type: string
                        description: 用于查询任务状态的 APIPod 任务 ID。
                  message:
                    type: string
                    description: 响应消息。
                required:
                  - code
                  - message
                  - data
              example:
                code: 200
                message: success
                data:
                  task_id: vid_task_01JEXAMPLE
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl https://api.apipod.ai/v1/videos/generations \
              -H "Authorization: Bearer $APIPOD_API_KEY" \
              -H "Content-Type: application/json" \
              -d '{
              "model": "seedance-2.5-lite-r2v",
              "prompt": "Keep the character and voice, cinematic product shot with natural lighting.",
              "image_urls": ["https://example.com/reference.png"],
              "video_urls": ["https://example.com/reference.mp4"],
              "audio_urls": ["https://example.com/voice.mp3"],
              "duration": 4,
              "resolution": "720p",
              "aspect_ratio": "adaptive",
              "generate_audio": true
            }'
        - lang: Python
          label: Python
          source: |-
            import os
            import requests

            payload = {
              "model": "seedance-2.5-lite-r2v",
              "prompt": "Keep the character and voice, cinematic product shot with natural lighting.",
              "image_urls": ["https://example.com/reference.png"],
              "video_urls": ["https://example.com/reference.mp4"],
              "audio_urls": ["https://example.com/voice.mp3"],
              "duration": 4,
              "resolution": "720p",
              "aspect_ratio": "adaptive",
              "generate_audio": True
            }

            response = requests.post(
                "https://api.apipod.ai/v1/videos/generations",
                headers={
                    "Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
                    "Content-Type": "application/json",
                },
                json=payload,
                timeout=60,
            )
            response.raise_for_status()
            print(response.json())
        - lang: Go
          label: Go
          source: |-
            package main

            import (
                "bytes"
                "encoding/json"
                "fmt"
                "net/http"
                "os"
            )

            func main() {
                payload := map[string]any{}
                if err := json.Unmarshal([]byte(`{
              "model": "seedance-2.5-lite-r2v",
              "prompt": "Keep the character and voice, cinematic product shot with natural lighting.",
              "image_urls": ["https://example.com/reference.png"],
              "video_urls": ["https://example.com/reference.mp4"],
              "audio_urls": ["https://example.com/voice.mp3"],
              "duration": 4,
              "resolution": "720p",
              "aspect_ratio": "adaptive",
              "generate_audio": true
            }`), &payload); err != nil {
                    panic(err)
                }
                body, err := json.Marshal(payload)
                if err != nil {
                    panic(err)
                }

                req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/videos/generations", bytes.NewReader(body))
                if err != nil {
                    panic(err)
                }
                req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
                req.Header.Set("Content-Type", "application/json")

                resp, err := http.DefaultClient.Do(req)
                if err != nil {
                    panic(err)
                }
                defer resp.Body.Close()
                fmt.Println(resp.Status)
            }
        - lang: Rust
          label: Rust
          source: |-
            use reqwest::Client;
            use serde_json::json;
            use std::env;

            #[tokio::main]
            async fn main() -> Result<(), Box<dyn std::error::Error>> {
                let payload = json!({
              "model": "seedance-2.5-lite-r2v",
              "prompt": "Keep the character and voice, cinematic product shot with natural lighting.",
              "image_urls": ["https://example.com/reference.png"],
              "video_urls": ["https://example.com/reference.mp4"],
              "audio_urls": ["https://example.com/voice.mp3"],
              "duration": 4,
              "resolution": "720p",
              "aspect_ratio": "adaptive",
              "generate_audio": true
            });
                let response = Client::new()
                    .post("https://api.apipod.ai/v1/videos/generations")
                    .bearer_auth(env::var("APIPOD_API_KEY")?)
                    .json(&payload)
                    .send()
                    .await?
                    .error_for_status()?;

                println!("{}", response.text().await?);
                Ok(())
            }
        - lang: JavaScript
          label: JavaScript
          source: >-
            const response = await
            fetch("https://api.apipod.ai/v1/videos/generations", {
              method: "POST",
              headers: {
                Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
                "Content-Type": "application/json",
              },
              body: JSON.stringify(
                {
                  "model": "seedance-2.5-lite-r2v",
                  "prompt": "Keep the character and voice, cinematic product shot with natural lighting.",
                  "image_urls": ["https://example.com/reference.png"],
                  "video_urls": ["https://example.com/reference.mp4"],
                  "audio_urls": ["https://example.com/voice.mp3"],
                  "duration": 4,
                  "resolution": "720p",
                  "aspect_ratio": "adaptive",
                  "generate_audio": true
                }
              ),
            });


            if (!response.ok) {
              throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
            }


            console.log(await response.json());
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: APIPod API key
      description: 使用你的 APIPod API Key 作为 Authorization 请求头中的 Bearer token。

````