Seedance Video Generation
概述
该技能通过 Replicate API 使用字节跳动 Seedance 1.5 Pro 模型进行 AI 视频生成。可从文本提示词生成视频、为静态图片添加动画,并创建音频与唇形完美同步的内容。
核心能力
- 文本到视频生成
从自然语言描述生成视频。
示例请求:
"Generate a video of waves crashing on a beach at sunset"
"Create a video of a cat playing with a ball of yarn"
"Make a 10-second video of a city skyline timelapse"
流程:
从用户请求中提取场景描述
确定合适的时长与宽高比
使用提示词执行 scripts/generate_video.py
将生成的视频保存到用户工作目录
- 图片到视频动画
将静态图片动画化为动态视频。
示例请求:
"Animate this portrait photo with subtle movements"
"Turn this landscape image into a video with moving clouds"
"Make this product image come alive with gentle motion"
流程:
确保输入图片可访问(本地文件或 URL)
如有需要,将图片上传到 Replicate
使用图片与提示词执行 scripts/generate_video.py
将动画视频保存到用户工作目录
- 音频同步视频
生成音频与唇部动作完美同步的视频。
关键特性:
音频与视频同时生成(而非先后生成)
毫秒级精度的唇形同步,支持多种语言
支持语言:英语、普通话、日语、韩语、西班牙语、葡萄牙语、印尼语
示例请求:
"Generate a video of a person saying 'Hello, welcome to my channel'"
"Create a talking head video explaining quantum physics"
"Make a video with a character singing a song"
- 镜头控制
为生成的视频应用电影级镜头运动。
可用运动:
Pan(横移)- 水平扫视
Tilt(俯仰)- 垂直镜头运动
Zoom(变焦)- 靠近或远离主体
Tracking(跟踪)- 跟随移动主体
Orbital(环绕)- 围绕主体旋转
示例请求:
"Generate a video with a slow zoom into the subject"
"Create a video with the camera panning across a landscape"
"Make a video with orbital camera movement around the character"
要固定相机位置,请指定 "fixed camera" 或使用 camera_fixed 参数。
参数
参数 | 类型 | 默认值 | 说明
prompt | string | 必填 | 场景描述
duration | int | 5 | 视频长度(秒,2-12)
aspect_ratio | string | 16:9 | 输出尺寸比例
image | file/URL | 无 | 用于图片到视频的输入图片
last_frame_image | file/URL | 无 | 目标结束帧
camera_fixed | bool | false | 锁定相机位置
generate_audio | bool | true | 是否包含同步音频
seed | int | 随机 | 用于可复现的结果
宽高比
16:9 - 宽屏(YouTube、演示)
9:16 - 竖屏(TikTok、Instagram Reels、Stories)
1:1 - 方形(Instagram 帖子)
4:3 - 标准(传统视频)
3:4 - 竖版
21:9 - 超宽(电影感)
9:21 - 超长竖版
使用生成脚本
scripts/generate_video.py 脚本负责所有 Replicate API 交互。
基础文本到视频:
python scripts/generate_video.py "a sunset over mountains" --output sunset.mp4
指定时长与宽高比:
python scripts/generate_video.py "a cat playing"
--duration 8
--aspect-ratio 9:16
--output cat_playing.mp4
图片到视频:
python scripts/generate_video.py "gentle wind blowing through hair"
--image portrait.jpg
--output animated_portrait.mp4
固定相机:
python scripts/generate_video.py "person talking to camera"
--camera-fixed
--output talking_head.mp4
不生成音频:
python scripts/generate_video.py "abstract visuals"
--no-audio
--output silent_video.mp4
可复现输出:
python scripts/generate_video.py "a forest scene"
--seed 42
--output forest.mp4
输出格式
格式:MP4(H.264 视频、AAC 音频)
帧率:24 fps(固定)
音频:同步立体声音频(启用时)
分辨率:随宽高比变化(通常为 1280x720 或类似)
环境设置
确保已设置 REPLICATE_API_KEY 环境变量:
export REPLICATE_API_KEY="your-api-key-here"
从 https://replicate.com/account/api-tokens 获取 API 密钥
性能考量
视频生成耗时 30 秒至 3 分钟,取决于时长与复杂度
较长的视频(10-12 秒)需要更长的生成时间
图片到视频可能因图片处理而稍慢
脚本在生成期间显示进度更新
最佳实践
详细提示词:更具体的描述产生更好的结果
佳:"A golden retriever running through a sunlit meadow with wildflowers, slow motion"
次:"A dog running"
宽高比匹配平台:TikTok/Reels 用 9:16,YouTube 用 16:9
时长选择:先以较短时长(5秒)快速迭代,再增加
镜头引导:在提示词中包含镜头运动,或用 camera_fixed 保持稳定
音频考量:对于将添加自定义音乐/配音的视频,禁用音频(--no-audio)
角色一致性:对于多片段叙事,使用相似的提示词与种子值
常见用例
社交媒体内容
TikTok/Reels 竖版视频
python scripts/generate_video.py "trendy dance moves in neon-lit studio"
--aspect-ratio 9:16 --duration 8 --output tiktok_content.mp4
产品展示
为产品图片添加动画
python scripts/generate_video.py "elegant rotation revealing product details"
--image product.jpg --duration 6 --output product_showcase.mp4
口播/虚拟形象
生成说话视频
python scripts/generate_video.py "professional presenter explaining a concept, direct eye contact"
--camera-fixed --duration 10 --output presenter.mp4
电影感空镜
氛围素材
python scripts/generate_video.py "aerial view of misty mountains at dawn, slow pan"
--aspect-ratio 21:9 --duration 12 --output broll.mp4
限制
单次生成最长时长:12 秒
固定帧率:24 fps(不可更改)
音频为生成所得,而非来自外部来源
跨片段的角色一致性需要仔细的提示词
包含多个角色的复杂场景可能质量下降
错误处理
脚本处理常见错误:
缺少 API 密钥:带有设置说明的清晰错误消息
无效的图片 URL/路径:带有故障排除步骤的有用错误
速率限制:自动重试并退避
生成失败:来自 Replicate API 的详细错误
故障排除
视频生成卡住:
检查 API 密钥是否有效且有额度
先尝试较短的时长
简化提示词
唇形同步不佳:
确保提示词清楚描述说话/对话
口播视频使用 camera_fixed
在画面描述中保持主体居中
意外的镜头运动:
添加 camera_fixed 标志以获得稳定镜头
或在提示词中明确指定所需的运动
图片到视频不工作:
确保图片可访问(有效 URL 或本地路径)
检查图片格式(支持 JPG、PNG)
尝试使用更简单、更清晰的图片