视频生成 视频生成教程 Seedance 模型具备出色的语义理解能力,可根据用户输入的文本、图片、视频、音频等全模态内容,快速生成优质的视频片段。本文为您介绍视频生成模型的通用基础能力,指导您调用 Video Generation API 生成视频。如需了解各版本模型的特色能力,请参见 Doubao Seedance 2.5 教程、Doubao Seedance 2.0 系列教程。 效果预览 场景 输入:提示词 输入:图片、视频、音频 输出 全模态参考 可参考图、 视频和音频 以图片1为首帧,画面放大至飞机舷窗外,一团团云朵缓缓飘至画面中,其中一朵为彩色糖豆点缀的云朵,始终在画面中居中,然后缓缓变形为图片2中的冰淇淋,镜头推远回到机舱内,坐在窗边的图片3中的角色伸手从窗外拿进冰淇淋,吃了一口,嘴巴上沾满奶油,脸上洋溢出甜蜜的笑容,此时视频配音为音频1 冰淇淋 .mp3 编辑视频 替换视频主体、视频中对象增删改、局部画面重绘/修复等 将视频1中的房子外立面墙壁刷成蓝色,天气和光线参考 图片1的雪天 延长视频 向前或者向后延长视频,或多个视频片段串联成一个连贯视频 将视频1向后延长,11秒视频,汽车丝滑行驶到一片沙漠绿洲,背景音乐使用音频1 汽车背景音.mp3 首帧图生视频 镜头围绕人物推镜头拉近,特写人物面部,她正在用京剧唱腔唱“月移花影,疑是玉人来”,唱词充满情感,唱腔充满传统京剧特有的韵味与技巧,完美体现了花旦角色的内心世界 首尾帧生视频 360度环绕运镜 新手入门 说明 下文详细介绍使用不同编程语言调用视频生成 API 的示例代码。 若您是编程零基础用户,推荐使用 控制台体验中心,包含丰富的模板库,可一键生成同款视频,无需编写代码即可快速上手创作。 若您想快速体验 API 调用,推荐使用API Explorer,内置预设参数模板,可一键发起 API 调用;同时也支持灵活调整参数(例如设置视频水印等),满足多样化的测试和使用场景。 若您想真正开始编程开发,但苦于搭建开发环境、依赖安装等问题,推荐阅读 Seedance 2.5 新手入门 或 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-5-260628", "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://ark.volcengine.com/region: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-5-260628", # 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-5-260628"; // 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-5-260628" // 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 arkruntime import Ark # Get API Key: https://ark.volcengine.com/region:cn-beijing/apikey client = Ark( api_key=os.environ.get("ARK_API_KEY"), base_url="https://ark.cn-beijing.volces.com/api/v3", if __name__ == "__main__": resp = client.content_generation.tasks.get( task_id="cgt-2025", print(resp) Java package com.ark.sample; import com.volcengine.ark.runtime.models.content_generation.; import com.fasterxml.jackson.core.JsonProcessingException; 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) .baseUrl("https://ark.cn-beijing.volces.com/api/v3") .build(); public static void main(String[] args) throws JsonProcessingException { String taskId = "cgt-2025"; String req = taskId; service.getContentGenerationTask(req).toString(); System.out.println(service.getContentGenerationTask(req)); service.shutdownExecutor(); package main import ( "context" "fmt" "os" "github.com/volcengine/ark-runtime-go/arkruntime" func main() { client := arkruntime.NewClientWithApiKey( os.Getenv("ARK_API_KEY"), arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"), ctx := context.Background() req := "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-5-260628", "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 模型支持的能力,方便您对比和选型。如需了解各版本模型的特色能力,请参见 Doubao Seedance 2.5 教程、Doubao Seedance 2.0 系列教程。 模型名称 Seedance 2.5 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-5-260628 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 文生视频 图生视频-首帧 图生视频-首尾帧 全模态参考 图片参考 视频参考 音频参考 ✗(需搭配图片/视频) ✗(需搭配图片/视频) ✗(需搭配图片/视频) 组合参考 图片 + 音频 图片 + 视频 视频 + 音频 图片 + 视频 + 音频 编辑视频 延长视频 生成有声视频 联网搜索工具 样片模式 返回视频产物对应的尾帧图 输...