$npx -y skills add freestylefly/canghe-skills --skill canghe-seedance-video使用字节跳动 Seedance 模型生成视频。支持文生视频和图生视频功能,通过 volcengine-ark SDK 调用 API。当用户需要生成视频、创建视频内容或基于文字/图片制作视频时激活此技能。
| 1 | # Seedance 视频生成 |
| 2 | |
| 3 | 使用字节跳动 Seedance-1.5-pro 模型 (doubao-seedance-1-5-pro-251215) 根据文本或图片生成视频。 |
| 4 | |
| 5 | ## 前置要求 |
| 6 | |
| 7 | 安装 SDK: |
| 8 | ```bash |
| 9 | pip install 'volcengine-python-sdk[ark]' |
| 10 | ``` |
| 11 | |
| 12 | ## 功能 |
| 13 | |
| 14 | - **文生视频**: 根据文本提示词生成视频 |
| 15 | - **图生视频**: 根据首帧图片生成视频 |
| 16 | - **自定义参数**: 支持设置时长、宽高比、水印等 |
| 17 | - **任务管理**: 创建任务、查询状态、自动下载 |
| 18 | |
| 19 | ## 使用方法 |
| 20 | |
| 21 | ### 1. 快速生成视频 (文生视频) |
| 22 | |
| 23 | ```bash |
| 24 | cd ~/.openclaw/workspace/skills/seedance-video |
| 25 | python3 scripts/generate_video.py "一只可爱的猫咪在草地上玩耍" --wait -o cat.mp4 |
| 26 | ``` |
| 27 | |
| 28 | ### 2. 自定义参数 |
| 29 | |
| 30 | ```bash |
| 31 | python3 scripts/generate_video.py "日落时分的海边" \ |
| 32 | --duration 10 \ |
| 33 | --ratio 16:9 \ |
| 34 | --wait \ |
| 35 | -o sunset.mp4 |
| 36 | ``` |
| 37 | |
| 38 | ### 3. 图生视频 |
| 39 | |
| 40 | ```bash |
| 41 | python3 scripts/generate_video.py "猫咪动起来" \ |
| 42 | --image-url https://example.com/cat.jpg \ |
| 43 | --duration 5 \ |
| 44 | --wait |
| 45 | ``` |
| 46 | |
| 47 | ### 4. 仅创建任务(不等待) |
| 48 | |
| 49 | ```bash |
| 50 | python3 scripts/generate_video.py "星空下的城市" -o starry.mp4 |
| 51 | # 返回任务ID |
| 52 | ``` |
| 53 | |
| 54 | 然后稍后查询状态并下载: |
| 55 | ```bash |
| 56 | python3 scripts/generate_video.py --status <task_id> --wait -o starry.mp4 |
| 57 | ``` |
| 58 | |
| 59 | ## 参数说明 |
| 60 | |
| 61 | | 参数 | 默认值 | 说明 | |
| 62 | |------|--------|------| |
| 63 | | `prompt` | 必填 | 视频描述提示词 | |
| 64 | | `-o, --output` | output.mp4 | 输出文件路径 | |
| 65 | | `-m, --model` | doubao-seedance-1-5-pro-251215 | 模型 ID | |
| 66 | | `-d, --duration` | 5 | 视频时长(秒) | |
| 67 | | `-r, --ratio` | 16:9 | 宽高比 (16:9, 9:16, 1:1, 4:3 等) | |
| 68 | | `--watermark` | false | 添加水印 | |
| 69 | | `--return-last-frame` | false | 返回最后一帧图片 | |
| 70 | | `--image-url` | 无 | 首帧图片 URL (图生视频) | |
| 71 | | `--wait` | false | 等待视频生成完成并下载 | |
| 72 | | `--status` | 无 | 查询指定任务ID的状态 | |
| 73 | |
| 74 | ## API 密钥配置 |
| 75 | |
| 76 | 需要设置 `ARK_API_KEY` 或 `SEEDANCE_API_KEY` 环境变量。 |
| 77 | |
| 78 | ### 配置方式(推荐) |
| 79 | |
| 80 | 1. 复制配置模板: |
| 81 | ```bash |
| 82 | cp .canghe-skills/.env.example .canghe-skills/.env |
| 83 | ``` |
| 84 | |
| 85 | 2. 编辑 `.canghe-skills/.env` 文件,填写你的 API Key: |
| 86 | ``` |
| 87 | ARK_API_KEY=your-actual-api-key-here |
| 88 | ``` |
| 89 | |
| 90 | ### 或使用环境变量 |
| 91 | |
| 92 | ```bash |
| 93 | export ARK_API_KEY="your-api-key" |
| 94 | # 或 |
| 95 | export SEEDANCE_API_KEY="your-api-key" |
| 96 | ``` |
| 97 | |
| 98 | ### 加载优先级 |
| 99 | |
| 100 | 1. 系统环境变量 (`process.env`) |
| 101 | 2. 当前目录 `.canghe-skills/.env` |
| 102 | 3. 用户主目录 `~/.canghe-skills/.env` |
| 103 | |
| 104 | ## 提示词优化建议 |
| 105 | |
| 106 | 根据 [Seedance-1.5-pro 提示词指南](https://www.volcengine.com/docs/82379/2168087): |
| 107 | |
| 108 | 1. **具体描述**: 描述场景、主体、动作、环境等细节 |
| 109 | 2. **风格明确**: 指定摄影风格(如"电影感"、"纪录片风格") |
| 110 | 3. **光线描述**: 说明光线条件(如"黄金时刻"、"柔和自然光") |
| 111 | 4. **镜头语言**: 描述镜头运动(如"缓慢推进"、"稳定器拍摄") |
| 112 | |
| 113 | ### 示例提示词 |
| 114 | |
| 115 | ``` |
| 116 | 一只金毛犬在秋天的公园里奔跑,金色落叶飘落,下午的阳光透过树叶,电影感镜头,稳定器拍摄,4K画质 |
| 117 | ``` |
| 118 | |
| 119 | ``` |
| 120 | 一个机器人在未来城市的霓虹灯街道上行走,赛博朋克风格,雨夜,倒影,广角镜头,电影色调 |
| 121 | ``` |
| 122 | |
| 123 | ## Python API 使用 |
| 124 | |
| 125 | ```python |
| 126 | from volcenginesdkarkruntime import Ark |
| 127 | from scripts.generate_video import create_video_task, wait_for_video |
| 128 | |
| 129 | # 初始化客户端 |
| 130 | client = Ark( |
| 131 | base_url="https://ark.cn-beijing.volces.com/api/v3", |
| 132 | api_key="your-api-key" |
| 133 | ) |
| 134 | |
| 135 | # 创建视频任务 |
| 136 | result = create_video_task( |
| 137 | client=client, |
| 138 | model="doubao-seedance-1-5-pro-251215", |
| 139 | prompt="一只鸟在天空中飞翔", |
| 140 | duration=5 |
| 141 | ) |
| 142 | |
| 143 | task_id = result["task_id"] |
| 144 | |
| 145 | # 等待并获取结果 |
| 146 | final_status = wait_for_video(client, task_id) |
| 147 | video_url = final_status["video_url"] |
| 148 | ``` |
| 149 | |
| 150 | ## 注意事项 |
| 151 | |
| 152 | - **异步生成**: 视频生成是异步过程,通常需要 30-60 秒 |
| 153 | - **任务保存时间**: 任务数据仅保留 24 小时 |
| 154 | - **限流**: 注意账号的 RPM 和并发数限制 |
| 155 | - **视频比例**: 建议视频宽高比与首帧图片比例接近 |
| 156 | |
| 157 | ## 任务状态 |
| 158 | |
| 159 | - `queued`: 排队中 |
| 160 | - `running`: 生成中 |
| 161 | - `succeeded`: 成功 |
| 162 | - `failed`: 失败 |