--- name: seedance-video-creator description: Seedance 2.0 专业分镜提示词生成 + 视频生成一体化工具。当用户想要创作分镜视频、使用 Seedance/即梦生成视频、需要专业分镜提示词并直接生成视频时调用。支持多图参考、分镜引导、API 调用生成视频、自动下载。 disable-model-invocation: false --- # 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`(推荐) - 比例:`1:1` / `4:3` / `3:4` / `16:9` / `9:16` - 时长:`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: ${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 | `seedance-2.0` | | 比例 | 视频画面比例 | 与首帧图片一致 | | 时长 | 4-15 秒 | `4` | | 参考图片 | 首帧图片路径(第二阶段生成或用户提供) | 必需 | ### 步骤二:调用 Seedance 视频生成 API **使用本地图片(multipart/form-data)**: ```bash curl -s --max-time 300 -X POST "${API_URL}/v1/videos/generations" \ -H "Authorization: ${SESSION_ID}" \ -F "model=seedance-2.0" \ -F "prompt=${VIDEO_PROMPT}" \ -F "ratio=${RATIO}" \ -F "duration=${DURATION}" \ -F "files=@${IMAGE_FILE}" ``` **多张图片时**: ```bash curl -s --max-time 300 -X POST "${API_URL}/v1/videos/generations" \ -H "Authorization: ${SESSION_ID}" \ -F "model=seedance-2.0" \ -F "prompt=${VIDEO_PROMPT}" \ -F "ratio=${RATIO}" \ -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` 前缀,直接传 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: ${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: ${SESSION_ID}" \ -F "model=seedance-2.0" \ -F "prompt=可爱3D动画风格,4秒,9:16竖屏,阳光明媚的海边 @1 作为画面首帧参考 0-1秒:中景,画面中的橘猫好奇地盯着沙滩上的小螃蟹,海浪轻拍岸边 1-3秒:近景跟随,橘猫伸出爪子试探性地去抓螃蟹,螃蟹举起钳子反击,橘猫被吓得往后一跳,表情夸张可爱 3-4秒:中景微拉远,橘猫和螃蟹对峙,背景碧蓝大海和白色浪花 背景音效:欢快俏皮卡通配乐 + 海浪声" \ -F "ratio=9:16" \ -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: ${SESSION_ID}" \ -F "model=seedance-2.0" \ -F "prompt=电影级写实风格,10秒,4:3画幅,舞台灯光氛围 @1 和 @2 面对面站立,两人开始双人舞,镜头缓慢环绕,动作优雅协调,光影交错" \ -F "ratio=4:3" \ -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` 前缀,直接传 SessionID --- ## 输出格式 最终输出应包含: 1. **理解确认**:确认理解的故事内容 2. **首帧提示词**:用于文生图的首帧画面描述 3. **分镜提示词**:用于 Seedance 视频生成的完整提示词(含 @1 引用) 4. **首帧图片**:文生图生成的参考图路径(如果调用了 API) 5. **生成参数**:model/ratio/duration 6. **生成结果**:视频文件路径(如果调用了 API)