# Seedance Video Creator

> Seedance 2.0 专业分镜提示词生成 + 视频生成一体化工具。当用户想要创作分镜视频、使用 Seedance/即梦生成视频、需要专业分镜提示词并直接生成视频时调用。支持多图参考、分镜引导、API 调用生成视频、自动下载。

- Skill: `wwwzhouhui/seedance-video-creator` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds add wwwzhouhui/seedance-video-creator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wwwzhouhui/seedance-video-creator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: wwwzhouhui (https://skillmd.com/u/wwwzhouhui)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/wwwzhouhui/seedance-video-creator

---


# Seedance 2.0 分镜视频创作工具

将创意想法转化为专业分镜提示词，通过即梦 API 先生成参考图，再基于图片+提示词生成视频、自动下载。

---

## 前置条件

使用本技能前，确保以下服务可用：

1. **jimeng-free-api-all 服务运行中**（默认端口 8000）
   ```bash
   # Docker 部署
   docker run -it -d --init --name jimeng-free-api-all \
     -p 8000:8000 -e TZ=Asia/Shanghai \
     wwwzhouhui569/jimeng-free-api-all:latest
   ```

2. **获取 SessionID**：
   - 打开 https://jimeng.jianying.com 并登录
   - F12 → Application → Cookies → 复制 `sessionid` 值

3. **环境变量**（可选，也可在交互中指定）：
   - `JIMENG_API_URL`：API 基础地址（默认 `http://127.0.0.1:8000`），**注意只填基础地址，不要包含路径部分**。如使用 duckcloud 服务则为 `https://jimeng.duckcloud.fun`
   - `JIMENG_SESSION_ID`：即梦 SessionID

---

## 核心能力

### Seedance 2.0 特性

**重要约束**：Seedance 2.0 **必须至少提供一张参考图片**，不支持纯文本生成视频。当用户没有提供图片时，需要先通过文生图 API 生成首帧参考图。

**多模态输入**（最多12个文件）：
- 图片：≤9张（首帧/尾帧/角色/场景参考）
- 视频：≤3个，总时长≤15s（运镜/动作/特效参考）
- 音频：≤3个，总时长≤15s（配乐/音效/对白参考）
- 文本：自然语言描述

**视频参数**：
- 模型：`seedance-2.0-fast`（推荐，快速版）/ `jimeng-video-seedance-2.0-fast`（等价别名）/ `jimeng-video-seedance-2.0`（Pro版）/ `seedance-2.0` / `seedance-2.0-pro`（Pro等价别名）
- 比例：`1:1` / `4:3` / `3:4` / `16:9` / `9:16` / `3:2` / `2:3` / `21:9`
- 分辨率：`480p` / `720p`（默认）/ `1080p`
- 时长：`4` - `15` 秒

**交互方式**：使用 `@1`、`@2`（或 `@图1`、`@image1`）指定素材用途

---

## 完整工作流（三阶段）

**核心流程**：分镜提示词 → 文生图生成首帧 → 图片+提示词生成视频

```
用户输入创意 → 第一阶段：生成分镜提示词
             → 第二阶段：调用文生图 API 生成首帧参考图 → 下载图片到本地
             → 第三阶段：用参考图 + 分镜提示词调用 Seedance 2.0 → 下载视频
```

---

## 第一阶段：分镜提示词生成

### 步骤一：理解用户想法

用友好的方式询问用户：
1. **你想讲什么故事？**（一句话概括核心内容）
2. **视频时长？**（4-15秒，默认4秒）
3. **有参考素材吗？**（图片/视频路径）
4. **是否需要直接生成视频？**（是→进入第二、三阶段 / 否→只输出提示词）

### 步骤二：深入挖掘细节

根据用户的初步回答，逐步引导完善以下维度：

#### 1. 内容叙事
- 故事的起承转合
- 关键情节和角色
- 对白/旁白内容

#### 2. 视觉风格
- 整体风格：写实/动画/水墨/科幻/复古/电影感
- 色调氛围：明亮/昏暗/暖色/冷色/黑白
- 画面比例：竖屏(9:16)/横屏(16:9)/标准(4:3)

#### 3. 镜头语言
- 景别变化：远景→全景→中景→近景→特写
- 运镜方式：推/拉/摇/移/跟/环绕/升降/希区柯克变焦
- 转场方式：硬切/渐变/匹配剪辑/特效转场

#### 4. 动作与节奏
- 主体动作：行走/奔跑/打斗/舞蹈/表情变化
- 动作节奏：舒缓/急促/有张有弛

#### 5. 声音设计
- 配乐风格：激昂/温馨/悬疑/欢快/史诗
- 音效需求：环境音/动作音效/特殊音效

### 步骤三：构建分镜结构

将故事拆解为时间轴上的镜头序列。

**示例结构（4秒视频）**：
```
0-1秒：开场镜头，建立场景
1-3秒：发展，核心动作/情感
3-4秒：结尾，画面定格
```

### 步骤四：生成两种提示词

根据收集的信息，分别生成：

#### A. 首帧图片提示词（用于文生图）

描述视频第一帧的静态画面，作为 Seedance 2.0 的首帧参考图。

**首帧提示词要求**：
- 描述一个静止的画面瞬间（不含动作、运镜等动态描述）
- 包含：场景、人物/主体外观、光影、色调、构图
- 画面比例应与视频比例一致
- 简洁精炼，100-200 字

**示例**：
```
日落时分的海边沙滩，一位穿着白色飘逸长裙的年轻女孩站在海边，面朝大海，夕阳逆光照射，金色光晕笼罩全身，长发和裙摆被海风轻轻吹动，远处海平线上的落日将天空染成橘红色，脚边浅浅的海浪泡沫
```

#### B. 视频分镜提示词（用于 Seedance 视频生成）

完整的分镜提示词，用 `@1` 引用首帧参考图。

**提示词结构模板**：
```
【整体描述】风格 + 时长 + 画面比例 + 整体氛围

@1 作为画面首帧参考

【分镜描述】
0-X秒：[镜头运动]，[画面内容]，[主体动作]，[光影/特效]
X-Y秒：[镜头运动]，[画面内容]，[主体动作]，[光影/特效]
...

【声音说明】配乐风格/音效/对白
```

**提示词书写原则**：
1. 时间轴清晰，标注每段的秒数范围
2. 镜头语言明确（推/拉/摇/移/跟/环绕等）
3. 动作描述具体，避免模糊词汇
4. **必须使用 `@1` 引用首帧图片**（首帧图片由第二阶段自动生成）
5. 如果用户提供了多张图片，使用 `@1`、`@2` 分别引用
6. 总长度控制在 500 字以内

### 步骤五：优化与确认

- 检查是否违反平台规则（写实人脸限制）
- 确认用户满意后进入第二阶段

---

## 第二阶段：文生图生成首帧参考图

**目的**：Seedance 2.0 必须有参考图片，当用户没有提供图片时，先通过文生图 API 生成首帧画面。

**如果用户已提供图片**：跳过此阶段，直接进入第三阶段。

### 步骤一：调用文生图 API

```bash
curl -s --max-time 120 -X POST "${API_URL}/v1/images/generations" \
  -H "Authorization: Bearer ${SESSION_ID}" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"jimeng-4.5\",
    \"prompt\": \"${首帧图片提示词}\",
    \"ratio\": \"${RATIO}\",
    \"resolution\": \"2k\"
  }"
```

**参数说明**：
| 参数 | 说明 | 推荐值 |
|------|------|--------|
| model | 图像生成模型 | `jimeng-4.5`（稳定高质量） |
| prompt | 首帧画面描述 | 第一阶段生成的首帧提示词 |
| ratio | 画面比例 | 与视频比例一致（如 `9:16`） |
| resolution | 图片分辨率 | `2k` |

**API 返回格式**：
```json
{
  "created": 1700000000,
  "data": [
    { "url": "https://p6-heycan-hgt.byteimg.com/..." }
  ]
}
```

### 步骤二：下载首帧图片到本地

```bash
IMAGE_URL=$(echo "${RESPONSE}" | jq -r '.data[0].url')
IMAGE_FILE="/tmp/seedance_frame_$(date +%Y%m%d_%H%M%S).png"
curl -sL -o "${IMAGE_FILE}" "${IMAGE_URL}"
```

### 步骤三：向用户展示首帧图片

报告生成结果，让用户确认首帧画面满意后进入第三阶段。

---

## 第三阶段：Seedance 2.0 视频生成与下载

### 步骤一：确认生成参数

| 参数 | 说明 | 默认值 |
|------|------|--------|
| API 地址 | jimeng-free-api-all 服务地址 | `http://127.0.0.1:8000` |
| SessionID | 即梦平台的 sessionid | 环境变量或用户提供 |
| 模型 | seedance-2.0-fast | `seedance-2.0-fast` |
| 比例 | 视频画面比例 | 与首帧图片一致 |
| 分辨率 | 视频分辨率 | `720p` |
| 时长 | 4-15 秒 | `4` |
| 参考图片 | 首帧图片路径（第二阶段生成或用户提供） | 必需 |

### 步骤二：调用 Seedance 视频生成 API

**使用本地图片（multipart/form-data）**：

```bash
curl -s --max-time 300 -X POST "${API_URL}/v1/videos/generations" \
  -H "Authorization: Bearer ${SESSION_ID}" \
  -F "model=seedance-2.0-fast" \
  -F "prompt=${VIDEO_PROMPT}" \
  -F "ratio=${RATIO}" \
  -F "resolution=${RESOLUTION}" \
  -F "duration=${DURATION}" \
  -F "files=@${IMAGE_FILE}"
```

**多张图片时**：

```bash
curl -s --max-time 300 -X POST "${API_URL}/v1/videos/generations" \
  -H "Authorization: Bearer ${SESSION_ID}" \
  -F "model=seedance-2.0-fast" \
  -F "prompt=${VIDEO_PROMPT}" \
  -F "ratio=${RATIO}" \
  -F "resolution=${RESOLUTION}" \
  -F "duration=${DURATION}" \
  -F "files=@/path/to/image1.jpg" \
  -F "files=@/path/to/image2.jpg"
```

**重要**：
- **Seedance 2.0 必须至少上传一张图片**，否则返回错误 `{"code":-2001,"message":"Seedance 2.0 需要至少一张图片"}`
- API 是同步阻塞的，会自动轮询直到视频生成完成（通常 60-120 秒）
- curl 超时建议设置为 300 秒：`--max-time 300`
- 提示词中的 `@1`、`@2` 对应 `files` 参数中图片的上传顺序
- Authorization 头**需要** `Bearer` 前缀，格式为 `Bearer your_sessionid`

### 步骤三：解析结果

API 返回 OpenAI 兼容格式：

```json
{
  "created": 1700000000,
  "data": [
    {
      "url": "https://v3-dreamnia.jimeng.com/...",
      "revised_prompt": "原始提示词"
    }
  ]
}
```

### 步骤四：下载视频

```bash
VIDEO_URL=$(echo "${RESPONSE}" | jq -r '.data[0].url')
OUTPUT_FILE="seedance_$(date +%Y%m%d_%H%M%S).mp4"
curl -L -o "${OUTPUT_FILE}" "${VIDEO_URL}"
echo "视频已下载到: $(pwd)/${OUTPUT_FILE}"
```

### 步骤五：展示结果

向用户报告：
1. 视频生成成功/失败
2. 视频文件路径和大小
3. 使用的首帧图片和分镜提示词（方便用户微调重试）

---

## 错误处理

### API 错误码

| 错误 | 含义 | 处理方式 |
|------|------|----------|
| `code: -2001` | Seedance 需要至少一张图片 | 先调文生图 API 生成首帧，再重试 |
| HTTP 200 | 成功 | 提取 data[0].url |
| HTTP 401 | SessionID 过期 | 提示用户重新获取 |
| HTTP 400 | 参数错误 | 检查 model/ratio/duration |
| HTTP 429 | 积分不足 | 提示用户等待或充值 |
| HTTP 500 | 服务器错误 | 重试或检查服务状态 |

### 常见问题

| 问题 | 解决方案 |
|------|----------|
| Seedance 报错需要图片 | 必须先通过文生图生成首帧，再用图片调 Seedance |
| 连接拒绝 | 检查 jimeng-free-api-all 容器是否运行 |
| 生成超时 | 增加 curl --max-time，或降低时长 |
| 内容被过滤 | 修改提示词，避免敏感内容 |
| 视频 URL 失效 | URL 有时效性，及时下载 |
| 积分不足 | 每日免费积分有限，次日刷新 |

---

## 完整示例对话

### 示例一：纯文本创作（无用户图片 → 自动生成首帧）

**用户**：帮我生成一个橘猫在海边捉螃蟹的视频，9:16竖屏，4秒

**第一阶段 - 生成提示词**：

首帧图片提示词：
```
阳光明媚的海边沙滩，一只圆滚滚的橘色猫咪蹲在潮湿的沙滩上，好奇地盯着面前一只小螃蟹，金色阳光照射，海浪轻轻拍打岸边，色彩鲜明活泼，3D动画风格
```

视频分镜提示词：
```
可爱3D动画风格，4秒，9:16竖屏，阳光明媚的海边

@1 作为画面首帧参考

0-1秒：中景，画面中的橘猫好奇地盯着沙滩上的小螃蟹，海浪轻拍岸边
1-3秒：近景跟随，橘猫伸出爪子试探性地去抓螃蟹，螃蟹举起钳子反击，橘猫被吓得往后一跳，表情夸张可爱
3-4秒：中景微拉远，橘猫和螃蟹对峙，背景碧蓝大海和白色浪花

背景音效：欢快俏皮卡通配乐 + 海浪声
```

**第二阶段 - 生成首帧参考图**：
```bash
# 1. 调用文生图 API 生成首帧
curl -s --max-time 120 -X POST "${API_URL}/v1/images/generations" \
  -H "Authorization: Bearer ${SESSION_ID}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jimeng-4.5",
    "prompt": "阳光明媚的海边沙滩，一只圆滚滚的橘色猫咪蹲在潮湿的沙滩上，好奇地盯着面前一只小螃蟹，金色阳光照射，海浪轻轻拍打岸边，色彩鲜明活泼，3D动画风格",
    "ratio": "9:16",
    "resolution": "2k"
  }'

# 2. 下载图片
IMAGE_URL=$(echo "${RESPONSE}" | jq -r '.data[0].url')
curl -sL -o /tmp/seedance_frame.png "${IMAGE_URL}"
```

**第三阶段 - 生成视频**：
```bash
curl -s --max-time 300 -X POST "${API_URL}/v1/videos/generations" \
  -H "Authorization: Bearer ${SESSION_ID}" \
  -F "model=seedance-2.0-fast" \
  -F "prompt=可爱3D动画风格，4秒，9:16竖屏，阳光明媚的海边

@1 作为画面首帧参考

0-1秒：中景，画面中的橘猫好奇地盯着沙滩上的小螃蟹，海浪轻拍岸边
1-3秒：近景跟随，橘猫伸出爪子试探性地去抓螃蟹，螃蟹举起钳子反击，橘猫被吓得往后一跳，表情夸张可爱
3-4秒：中景微拉远，橘猫和螃蟹对峙，背景碧蓝大海和白色浪花

背景音效：欢快俏皮卡通配乐 + 海浪声" \
  -F "ratio=9:16" \
  -F "resolution=720p" \
  -F "duration=4" \
  -F "files=@/tmp/seedance_frame.png"
```

### 示例二：用户提供图片（跳过第二阶段）

**用户**：用这两张图片生成一个两人跳舞的视频
- 图片1：/home/user/dancer1.jpg
- 图片2：/home/user/dancer2.jpg

**跳过第二阶段**，直接进入第三阶段：
```bash
curl -s --max-time 300 -X POST "${API_URL}/v1/videos/generations" \
  -H "Authorization: Bearer ${SESSION_ID}" \
  -F "model=seedance-2.0-fast" \
  -F "prompt=电影级写实风格，10秒，4:3画幅，舞台灯光氛围

@1 和 @2 面对面站立，两人开始双人舞，镜头缓慢环绕，动作优雅协调，光影交错" \
  -F "ratio=4:3" \
  -F "resolution=720p" \
  -F "duration=10" \
  -F "files=@/home/user/dancer1.jpg" \
  -F "files=@/home/user/dancer2.jpg"
```

---

## 分镜模板速查

### 模板一：叙事故事类

```
【风格】电影级写实/动画/水墨/科幻风格
【时长】4-15秒
【画幅】16:9

@1 作为画面首帧参考

0-X秒：[镜头运动]，[场景建立]，[主体引入]
X-Y秒：[镜头运动]，[情节发展]，[动作描述]
Y-Z秒：[镜头运动]，[高潮/结尾]

【声音】配乐风格 + 音效 + 对白
```

### 模板二：产品展示类

```
【风格】商业广告/极简/高端/科技感
【时长】4-15秒

@1 作为产品首帧参考

0-X秒：产品展示，运镜环绕/推拉
X-Y秒：产品细节特写，材质/工艺展示
Y-Z秒：品牌落版，slogan展示

【声音】大气恢宏/轻快时尚/科技感配乐
```

### 模板三：角色动作类

```
【风格】根据角色设定（武侠/科幻/现代/奇幻）
【时长】4-15秒

@1 作为角色参考

0-X秒：角色亮相，定格或缓慢展示造型
X-Y秒：核心动作展示（打斗/舞蹈/特技）
Y-Z秒：动作收尾，pose定格

【声音】动作音效 + 氛围配乐
```

### 模板四：风景旅拍类

```
【风格】电影级纪录片/治愈系/史诗感
【时长】4-15秒

@1 作为场景首帧参考

0-X秒：大景别建立镜头，展示环境全貌
X-Y秒：中景推进，引入人物或细节
Y-Z秒：回到大景别或意境落版

【声音】环境音 + 氛围配乐
```

---

## 镜头语言速查

| 中文 | 效果 | 适用场景 |
|------|------|----------|
| 推镜头 | 强调主体，营造紧张感 | 情感爆发、细节展示 |
| 拉镜头 | 展现场景，营造疏离感 | 开场建立、结尾收束 |
| 摇镜头 | 左右/上下展示环境 | 环境介绍、角色关系 |
| 移镜头 | 平行移动，跟随主体 | 行走、追逐 |
| 跟镜头 | 跟随主体移动 | 动作跟拍 |
| 环绕镜头 | 360度展示主体 | 产品展示、角色亮相 |
| 升降镜头 | 从上往下或从下往上 | 场景全貌、气势展示 |
| 希区柯克变焦 | 背景压缩/拉伸效果 | 悬疑、心理变化 |
| 手持晃动 | 纪实感/紧张感 | 纪录片、追逐 |
| 一镜到底 | 不切镜头，连续拍摄 | 沉浸感、长叙事 |

## 氛围关键词速查

**光影**：逆光、侧光、顶光、伦勃朗光、剪影、轮廓光、体积光、丁达尔效应
**色调**：暖色调、冷色调、高饱和、低饱和、黑白、赛博朋克、复古胶片
**质感**：电影级、纪录片风格、广告质感、MV风格、油画感、水墨感
**情绪**：温馨、紧张、悬疑、欢快、忧伤、史诗、治愈、惊悚

---

## 注意事项

- **Seedance 2.0 必须至少提供一张图片**，纯文本会返回错误
- 没有用户图片时，必须先通过文生图 API 生成首帧参考图
- 暂不支持上传包含写实真人脸部的素材
- 混合输入总上限是12个文件
- API 调用是同步阻塞的，生成视频通常需要 60-120 秒
- 视频下载 URL 有时效性，生成后应立即下载
- 每日免费积分有限（约66积分），文生图和视频生成都消耗积分，合理规划
- Authorization 头**需要** `Bearer` 前缀，格式为 `Bearer your_sessionid`

---

## 输出格式

最终输出应包含：
1. **理解确认**：确认理解的故事内容
2. **首帧提示词**：用于文生图的首帧画面描述
3. **分镜提示词**：用于 Seedance 视频生成的完整提示词（含 @1 引用）
4. **首帧图片**：文生图生成的参考图路径（如果调用了 API）
5. **生成参数**：model/ratio/duration
6. **生成结果**：视频文件路径（如果调用了 API）

