Seedance 模型具备出色的语义理解能力,可根据用户输入的文本、图片、视频、音频等多模态内容,快速生成优质的视频片段。本文为您介绍视频生成模型的通用基础能力,指导您调用 Video Generation API 生成视频。如需了解 Seedance 2.0 系列模型的最新能力,请参见 Doubao Seedance 2.0 系列教程 。 注意 火山方舟现已上线 Seedance 2.0 mini 模型。当前仅支持 控制台体验中心 调试体验(体验期内控制台体验中心的并发数限制为 1,体验期结束后将恢复默认限流),预计北京时间 6月25日 支持 API 调用。 效果预览 访问模型卡片查看更多示例。 场景 输入:提示词 输入:图片、视频、音频 输出 多模态参考 可参考图、 视频和音频 以 图片1 为首帧,画面放大至飞机舷窗外,一团团云朵缓缓飘至画面中,其中一朵为彩色糖豆点缀的云朵,始终在画面中居中,然后缓缓变形为 图片2 中的冰淇淋,镜头推远回到机舱内,坐在窗边的 图片3 中的角色伸手从窗外拿进冰淇淋,吃了一口,嘴巴上沾满奶油,脸上洋溢出甜蜜的笑容,此时视频配音为 音频1 冰淇淋 .mp3 编辑视频 替换视频主体、视频中对象增删改、局部画面重绘/修复等 将 视频1 中的房子外立面墙壁刷成蓝色,天气和光线参考 图片1 的雪天 延长视频 向前或者向后延长视频,或多个视频片段串联成一个连贯视频 将 视频1 向后延长,11秒视频,汽车丝滑行驶到一片沙漠绿洲,背景音乐使用 音频1 汽车背景音.mp3 首帧图生视频 镜头围绕人物推镜头拉近,特写人物面部,她正在用京剧唱腔唱“月移花影,疑是玉人来”,唱词充满情感,唱腔充满传统京剧特有的韵味与技巧,完美体现了花旦角色的内心世界 首尾帧生视频 360度环绕运镜 新手入门 说明 下文详细介绍使用不同编程语言调用视频生成 API 的示例代码。 若您是编程零基础用户,推荐使用控制台体验中心,包含丰富的模板库,可一键生成同款视频,无需编写代码即可快速上手创作。 若您想快速体验 API 调用,推荐使用API Explorer,内置预设参数模板,可一键发起 API 调用;同时也支持灵活调整参数(例如设置视频水印等),满足多样化的测试和使用场景。 若您想真正开始编程开发,但苦于搭建开发环境、依赖安装等问题,推荐阅读 seedance 2.0 新手入门。 视频生成是一个异步过程: 成功调用 POST /contents/generations/tasks 接口后,API 将返回一个任务 ID 。 您可以轮询 GET /contents/generations/tasks/{id} 接口,直到任务状态变为 succeeded;或者使用 Webhook 自动接收视频生成任务的状态变化。 任务完成后,您可在 content. video_url 字段处,下载最终生成的 MP4 文件。 说明 方舟平台的新用户?获取 API Key 及 开通模型等准备工作,请参见 快速入门。 Step1: 创建视频生成任务 通过 POST /contents/generations/tasks 创建视频生成任务。 Curl Python Java Go Bash curl https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $ARK_API_KEY" \ -d '{ "model": "doubao-seedance-2-0-260128", "content": [ "type": "text", "text": "女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动,可以听到风声" "type": "image_url", "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png" "generate_audio": true, "ratio": "adaptive", "duration": 5, "watermark": false Python import os from volcenginesdkarkruntime import Ark # Get API Key:https://console.volcengine.com/ark/region:ark+cn-beijing/apikey client = Ark(api_key=os.environ.get("ARK_API_KEY")) if __name__ == "__main__": print("----- create request -----") resp = client.content_generation.tasks.create( model="doubao-seedance-2-0-260128", # Replace with Model ID content=[ "text": ( "女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动" "type": "text" "image_url": { "url": ( "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png" "type": "image_url" generate_audio=True, ratio="adaptive", duration=5, watermark=False, print(resp) Java package com.ark.sample; import com.volcengine.ark.runtime.model.content.generation.; import com.volcengine.ark.runtime.model.content.generation.CreateContentGenerationTaskRequest.Content; import com.volcengine.ark.runtime.service.ArkService; import okhttp3.ConnectionPool; import okhttp3.Dispatcher; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; public class ContentGenerationTaskExample { // Make sure that you have stored the API Key in the environment variable ARK_API_KEY // Initialize the Ark client to read your API Key from an environment variable static String apiKey = System.getenv("ARK_API_KEY"); static ConnectionPool connectionPool = new ConnectionPool(5, 1, TimeUnit.SECONDS); static Dispatcher dispatcher = new Dispatcher(); static ArkService service = ArkService.builder() .baseUrl("https://ark.cn-beijing.volces.com/api/v3") // The base URL for model invocation .dispatcher(dispatcher) .connectionPool(connectionPool) .apiKey(apiKey) .build(); public static void main(String[] args) { String model = "doubao-seedance-2-0-260128"; // Replace with Model ID Boolean generateAudio = true; String ratio = "adaptive"; Long duration = 5L; Boolean watermark = false; System.out.println("----- create request -----"); List contents = new ArrayList<>(); // Combination of text prompt and parameters contents.add(Content.builder() .type("text") .text("女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动,可以听到风声") .build()); // The URL of the first frame image contents.add(Content.builder() .type("image_url") .imageUrl(CreateContentGenerationTaskRequest.ImageUrl.builder() .url("https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png") .build()) .build()); // Create a video generation task CreateContentGenerationTaskRequest createRequest = CreateContentGenerationTaskRequest.builder() .model(model) .content(contents) .generateAudio(generateAudio) .ratio(ratio) .duration(duration) .watermark(watermark) .build(); CreateContentGenerationTaskResult createResult = service.createContentGenerationTask(createRequest); System.out.println(createResult); service.shutdownExecutor(); package main import ( "context" "fmt" "os" "time" "github.com/volcengine/volcengine-go-sdk/service/arkruntime" "github.com/volcengine/volcengine-go-sdk/service/arkruntime/model" "github.com/volcengine/volcengine-go-sdk/volcengine" func main() { // Make sure that you have stored the API Key in the environment variable ARK_API_KEY // Initialize the Ark client to read your API Key from an environment variable client := arkruntime.NewClientWithApiKey( // Get your API Key from the environment variable. This is the default mode and you can modify it as required os.Getenv("ARK_API_KEY"), // The base URL for model invocation arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"), ctx := context.Background() // Replace with Model ID modelEp := "doubao-seedance-2-0-260128" // Generate a task fmt.Println("----- create request -----") createReq := model.CreateContentGenerationTaskRequest{ Model: modelEp, GenerateAudio: volcengine.Bool(true), Ratio: volcengine.String("adaptive"), Duration: volcengine.Int64(5), Watermark: volcengine.Bool(false), Content: []model.CreateContentGenerationContentItem{ // Combination of text prompt and parameters Type: model.ContentGenerationContentItemTypeText, Text: volcengine.String("女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动,可以听到风声"), // The URL of the first frame image Type: model.ContentGenerationContentItemTypeImage, ImageURL: &model.ImageURL{ URL: "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png", createResp, err := client.CreateContentGenerationTask(ctx, createReq) if err != nil { fmt.Printf("create content generation error: %v", err) return taskID := createResp.ID fmt.Printf("Task Created with ID: %s", taskID) 请求成功后,系统将返回一个任务 ID。 JSON "id": "cgt-2025-*" Step2: 查询视频生成任务 利用创建视频生成任务时返回的 ID ,您可以查询视频生成任务的详细状态与结果。此接口会返回任务的当前状态(如 queued 、 running 、 succeeded 等)以及生成的视频相关信息(如视频下载链接、分辨率、时长等)。 说明 因模型、API负载和视频输出规格的不同,视频生成的过程可能耗时较长。为高效管理这一过程,您可以通过轮询 API 接口(详见 基础使用 和 进阶使用 部分的 SDK 示例)来请求状态更新,或通过 使用 Webhook 通知 接收通知。 Curl Python Java Go Bash # Replace cgt-2025 with the ID acquired from "Create Video Generation Task". curl https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/cgt-2025 \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $ARK_API_KEY" Python import os from volcenginesdkarkruntime import Ark client = Ark(api_key=os.environ.get("ARK_API_KEY")) if __name__ == "__main__": resp = client.content_generation.tasks.get( task_id="cgt-2025", print(resp) Java package com.ark.sample; import com.fasterxml.jackson.core.JsonProcessingException; import com.volcengine.ark.runtime.model.content.generation.GetContentGenerationTaskRequest; import com.volcengine.ark.runtime.service.ArkService; import java.util.concurrent.TimeUnit; import okhttp3.ConnectionPool; import okhttp3.Dispatcher; public class Sample { static String apiKey = System.getenv("ARK_API_KEY"); static ConnectionPool connectionPool = new ConnectionPool(5, 1, TimeUnit.SECONDS); static Dispatcher dispatcher = new Dispatcher(); static ArkService service = ArkService.builder() .dispatcher(dispatcher) .connectionPool(connectionPool) .apiKey(apiKey) .build(); public static void main(String[] args) throws JsonProcessingException { String taskId = "cgt-2025"; GetContentGenerationTaskRequest req = GetContentGenerationTaskRequest.builder() .taskId(taskId) .build(); service.getContentGenerationTask(req).toString(); System.out.println(service.getContentGenerationTask(req)); service.shutdownExecutor(); package main import ( "context" "fmt" "os" "github.com/volcengine/volcengine-go-sdk/service/arkruntime" "github.com/volcengine/volcengine-go-sdk/service/arkruntime/model" func main() { client := arkruntime.NewClientWithApiKey(os.Getenv("ARK_API_KEY")) ctx := context.Background() req := model.GetContentGenerationTaskRequest{ ID: "cgt-2025", resp, err := client.GetContentGenerationTask(ctx, req) if err != nil { fmt.Printf("get content generation task error: %v\n", err) return fmt.Printf("%+v\n", resp) 当任务状态变为 succeeded 后,您可在 content. video_url 字段处,下载最终生成的视频文件。 JSON "id": "cgt-2025", "model": "doubao-seedance-2-0-260128", "status": "succeeded", "content": { // Video download URL (file format is MP4) "video_url": "https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/*" "usage": { "completion_tokens": 246840, "total_tokens": 246840 "created_at": 1765510475, "updated_at": 1765510559, "seed": 58944, "resolution": "1080p", "ratio": "16:9", "duration": 5, "framespersecond": 24, "service_tier": "default", "execution_expires_after": 172800 模型能力 本表格展示所有 Seedance 模型支持的能力,方便您对比和选型。如需了解 Seedance 2.0 系列模型的最新用法,请参见 Doubao Seedance 2.0 系列教程 。 模型名称 Seedance 2.0 Seedance 2.0 fast Seedance 2.0 mini Seedance 1.5 pro Seedance 1.0 pro Seedance 1.0 pro fast Model ID doubao-seedance-2-0-260128 doubao-seedance-2-0-fast-260128 doubao-seedance-2-0-mini-260615 doubao-seedance-1-5-pro-251215 doubao-seedance-1-0-pro-250528 doubao-seedance-1-0-pro-fast-251015 文生视频 图生视频-首帧 图生视频-首尾帧 多模态参考 【New】 图片参考 视频参考 组合参考 图片 + 音频 图片 + 视频 视频 + 音频 图片 + 视频 + 音频 编辑视频【New】 延长视频【New】 生成有声视频 "generate_audio": "true" 联网搜索工具 【New】 样片模式 返回视频产物对应的尾帧图 "return_last_frame": "true" 输出视频规格 输出分辨率 "resolution": "720p" 480p 720p 1080p 4k(10bi...