cURL
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
}'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())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)
}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(())
}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());{
"code": 200,
"message": "success",
"data": {
"task_id": "vid_task_01JEXAMPLE"
}
}Seedance 2.5 特价版
Seedance 2.5 特价版 参考生视频
Seedance 2.5 特价版参考视频生成是特价版满血路由,使用参考图、参考视频或参考音频约束主体、运动、视觉风格与声音。支持最多 30 张参考图、10 条参考视频和 10 段参考音频,时长最长 30 秒,仅输出 720p。该系列为满血版:媒体 URL 会先经素材服务送审再提交任务,公网 URL 均可直接使用。
POST
https://api.apipod.ai
/
v1
/
videos
/
generations
cURL
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
}'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())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)
}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(())
}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());{
"code": 200,
"message": "success",
"data": {
"task_id": "vid_task_01JEXAMPLE"
}
}必须至少提供一种参考素材;图片、视频和音频的数量上限以 API 参数定义为准。
素材与场景限制
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 秒)。
🔸注意🔸:启用带视频输入时,因计费计算公式不同,单价更低:无视频 = 单价 × 输出时长;带视频 = 单价 ×(输入时长 + 输出时长)。
授权
使用你的 APIPod API Key 作为 Authorization 请求头中的 Bearer token。
请求体
application/json
APIPod 公开模型 ID。
Allowed value:
"seedance-2.5-lite-r2v"生成或编辑指令,最长 30000 字符。建议提示词不超过 500 个汉字或 1000 个英文单词;过长的文本会导致信息分散,模型可能忽略细节、只关注重点,导致生成的视频缺少元素。
Maximum string length:
30000参考图 URL。最多支持 30 张;单张图片小于 30 MB。
Maximum array length:
30参考视频 URL。最多支持 10 个;单个视频时长 2-30 秒,所有视频总时长不超过 30 秒。
Maximum array length:
10参考音频 URL。最多支持 10 段;单个音频时长 2-30 秒,所有音频总时长不超过 30 秒。注意音频不能单独上传,需至少包含一个参考图或参考视频。
Maximum array length:
10视频时长,单位为秒。 最小值:4。 最大值:30。
可用选项:
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 输出分辨率档位。
可用选项:
720p 输出宽高比。
可用选项:
adaptive, 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 为视频生成同步音频。
此页面对您有帮助吗?