You need to enable JavaScript to run this app.
导航
视频生成
最近更新时间:2025.02.25 15:44:31首次发布时间:2025.01.26 11:29:51

视频生成模型具备出色的语义理解能力,可根据用户输入的文本、图片等内容,快速生成优质的视频片段。通过这篇教程您可以学习到如何通过调用视频生成模型 API 来生成视频。

模型优势

  • 逼真度极高,具备丰富的细节层次。
  • 视觉美感高,展示专业级色彩与光影。
  • 运动画面流畅自然,速度快慢符合物理运动规律。

应用场景

模型支持生成具备高级视觉美感与丰富细节层次的视频,能够将用户的文本、图像转化为高质量的视频作品。可以应用于电商营销、城市文旅宣传、动画教育、短剧等广泛的应用场景。

场景

描述

广告创意

可依据产品特点和营销目标迅速产出广告视频,为广告创意提供多样选择。

影视制作

生成各种复杂的特效镜头,快速构建逼真的虚拟场景、为角色生成动画、快速生成短剧视频等。

教育动画

快速生成教学动画示例,直观展示原理、制作流程等知识内容,辅助动画教学。

游戏开发

生成游戏中的动画片段、角色动作、过场动画等视频内容,加速游戏创意的可视化进程。

社交媒体互动

将照片转化为动态视频用于故事讲述与日常记录。如让老照片动起来、个性化表情包等。

模型列表

当前支持视频生成的模型如下。

模型名称

模型版本

生成方式

生成视频格式

模型说明

计费

Doubao-视频生成-Seaweed

241128

  • 文生视频
  • 图生视频
  • 分辨率:720p
  • 帧率:24 fps
  • 时长:
    • 文生视频:5 秒/10秒
    • 图生视频:5 秒

基于Transformer结构,利用时空压缩的潜空间进行训练,适配横屏、竖屏,并能够根据用户输入的高清图像分辨率进行适配和保真。

0.03 元/千 token
具体详情参见 视频生成模型

文生视频示例

输入示例

输出视频

文本提示词:
一位身穿绿色亮片礼服的女性站在粉红色背景前,周围飘落着五彩斑斓的彩纸

文本提示词:
一只蜥蜴

文本提示词:
真实电影场景中,林黛玉端坐于古朴雅致的厅堂,凝视着一册精美的线装古籍,面容满含忧伤,镜头聚焦其半身,捕捉那份细腻的情感

图生视频示例

输入示例

输出视频

文本提示词:
一个玉质月饼,镜头旋转摇镜,展现物体的其他角度,镜头缓慢前移,月饼的反光凸显它玉的质感
首帧图片:
Image

文本提示词:
女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动
首帧图片:
Image

文本提示词:
一个老人深情的看海,海风吹动他的头发,镜头向右摇镜,逐渐看到老人的正面,显现出他沧桑的脸
首帧图片:
Image

文本提示词:
一个女孩在水中,她开心的笑了起来,她的头发随着水摆动
首帧图片:
Image

接口说明

视频生成的 API 接口详细介绍请参见视频生成 API

前提条件

  • 您已有方舟 API Key,作为模型推理服务调用鉴权使用。如无,请参考1.获取 API Key
  • 您已创建推理接入点,其中模型请选择视频生成大模型。如无,请参考获取 Endpoint ID

快速开始

您可以通过下面代码快速体验文生视频能力。

说明

  • 视频生成为异步接口,您需要先创建视频生成任务,再通过视频生成任务的 ID 去查询视频生成结果。
  • 视频生成过程耗时较长,查询结果时请您耐心等待。
import os
# 通过 pip install 'volcengine-python-sdk[ark]' 安装方舟SDK
from volcenginesdkarkruntime import Ark

# 请确保您已将 API Key 存储在环境变量 ARK_API_KEY 中
# 初始化Ark客户端,从环境变量中读取您的API Key
client = Ark(
    # 此为默认路径,您可根据业务所在地域进行配置
    base_url="https://ark.cn-beijing.volces.com/api/v3",
    # 从环境变量中获取您的 API Key。此为默认方式,您可根据需要进行修改
    api_key=os.environ.get("ARK_API_KEY"),
)
if __name__ == "__main__":
    print("----- create request -----")
    create_result = client.content_generation.tasks.create(
        model="ep-2025****", # 替换成您的模型推理接入点 ID
        content=[
            {
                # 文本提示词
                "type": "text",
                "text": "戴着帽子的老爷爷面带微笑往前走"
            },
        ]
    )
    print(create_result)

    print("----- get request -----")
    get_result = client.content_generation.tasks.get(task_id=create_result.id)
    print(get_result)


模型回复预览:

# 视频生成过程中
----- create request -----
ContentGenerationTaskID(id='cgt-2025****-**')
----- get request -----
ContentGenerationTask(id='cgt-2025****-**', model='doubao-seaweed-241128', status='running', failure_reason=None, content=None, usage=None, created_at=1737530694, updated_at=1737530694)

# 视频生成后
----- get request -----
ContentGenerationTask(id='cgt-2025****-**', model='doubao-seaweed-241128', status='succeeded', failure_reason=None, content=Content(video_url='https://xxx'), usage=Usage(completion_tokens=108900), created_at=1737530694, updated_at=1737530766)

使用限制

  • 任务数据(如任务状态、视频URL等)仅保留24小时,超时后会被自动清除。请您务必及时保存生成的视频。
  • 单主账号在方舟服务端排队(queued)的任务数量上限为120个。

使用说明及建议

  • 用简洁准确的自然语言写出你想要的效果。
  • 如果有较为明确的效果预期,建议先用生图模型生成符合预期的图片,再用图生视频进行视频片段的生成
  • 文生视频会有较大的结果随机性,可以用于激发创作灵感
  • 图生视频时请尽量上传高清高质量的图片,上传图片的质量对图生视频影响较大。
  • 当生成的视频不符合预期时,建议修改提示词,将抽象描述换成具象描述,并注意删除不重要的部分,将重要内容前置。

使用示例

设置生成视频格式

通过在文本提示词后追加--[parameters]的方式,可控制视频输出的规格,包括宽高比、帧率、分辨率等。

// 指定生成视频的宽高比为16:9,时长为 5 秒,帧率为 24 fps,分辨率为720p,包含水印
一位身穿绿色亮片礼服的女性站在粉红色背景前,周围飘落着五彩斑斓的彩纸 --rt 16:9 --dur 5 --fps 24 --rs 720p --wm true

文生视频

import os
from volcenginesdkarkruntime import Ark

# 请确保您已将 API Key 存储在环境变量 ARK_API_KEY 中
# 初始化Ark客户端,从环境变量中读取您的API Key

client = Ark(
    # 从环境变量中获取您的 API Key。此为默认方式,您可根据需要进行修改
    api_key=os.environ.get("ARK_API_KEY"),
)

print("----- create request -----")
# 创建视频生成任务
create_result = client.content_generation.tasks.create(
    model="ep-2025****", # 替换成您的模型推理接入点 ID
    content=[
        {
            # 文本提示词与参数组合
            "type": "text",
            "text": "一位身穿绿色亮片礼服的女性站在粉红色背景前,周围飘落着五彩斑斓的彩纸  --dur 10"
        }
    ]
)
print(create_result)


print("----- get request -----")
# 获取任务详情
get_result = client.content_generation.tasks.get(task_id=create_result.id)
print(get_result)


print("----- list request -----")
# 列出符合特定条件的任务
list_result = client.content_generation.tasks.list(
    page_num=1,
    page_size=10,
    status="queued",  # 按状态筛选, e.g succeeded, failed, running, cancelled
    # model="<YOUR_MODEL_EP>, # 按 ep 筛选
    # task_ids=["test-id-1", "test-id-2"] # 按 task_id 筛选
)
print(list_result)


print("----- delete request -----")
# 通过任务 id 删除任务
try:
    client.content_generation.tasks.delete(task_id=create_result.id)
    print(create_result.id)
except Exception as e:
    print(f"failed to delete task: {e}")

图生视频

import os
from volcenginesdkarkruntime import Ark

# 请确保您已将 API Key 存储在环境变量 ARK_API_KEY 中
# 初始化Ark客户端,从环境变量中读取您的API Key

client = Ark(
    # 从环境变量中获取您的 API Key。此为默认方式,您可根据需要进行修改
    api_key=os.environ.get("ARK_API_KEY"),
)

print("----- create request -----")
# 创建视频生成任务
create_result = client.content_generation.tasks.create(
    model="ep-2025****", # 替换成您的模型推理接入点 ID
    content=[
        {
            # 文本提示词与参数组合
            "type": "text",
            "text": "女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动  --ratio 16:9  --dur 5"
        },
        {
            # 图片URL
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            },
        }
    ]
)
print(create_result)


print("----- get request -----")
# 获取任务详情
get_result = client.content_generation.tasks.get(task_id=create_result.id)
print(get_result)


print("----- list request -----")
# 列出符合特定条件的任务
list_result = client.content_generation.tasks.list(
    page_num=1,
    page_size=10,
    status="queued",  # 按状态筛选, e.g succeeded, failed, running, cancelled
    # model="<YOUR_MODEL_EP>", # 按 ep 筛选
    # task_ids=["test-id-1", "test-id-2"] # 按 task_id 筛选
)
print(list_result)


print("----- delete request -----")
# 通过任务 id 删除任务
try:
    client.content_generation.tasks.delete(task_id=create_result.id)
    print(create_result.id)
except Exception as e:
    print(f"failed to delete task: {e}")