zjandrew/seedance-cli · Archived

seedance

Volcengine Doubao Seedance 2.5/2.0 视频生成端到端工作流:写提示词 + 用 seedance-cli 落地。当用户提到生成视频、文生视频、图生视频、首帧/首尾帧、多模态参考、编辑/延长视频、白模渲染、宫格分镜、?

First seen Jun 1, 2026

Installation

$ npx skills add zjandrew/seedance-cli --skill seedance

Summary

Volcengine Doubao Seedance 2.5/2.0 视频生成端到端工作流:写提示词 + 用 seedance-cli 落地。当用户提到生成视频、文生视频、图生视频、首帧/首尾帧、多模态参考、编辑/延长视频、白模渲染、宫格分镜、关键帧、一键成片、连续多段接龙、提示词优化、即梦、Seedance、视频提示…

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License MIT
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version3.0.0
More metadata
requires
{"bins":["seedance-cli"]}
cliHelp
seedance-cli --help

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 60,033 B
  • docs SUMMARY.md 434 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 10 installs

SKILL.md

seedance

双重职责:

  1. 写好 Seedance 2.5 中文提示词 —— Part 2(创意层)
  2. 用 seedance-cli 把提示词跑成 MP4/MOV 落到本地 —— Part 1(工程层)

完整闭环:用户讲创意 → Part 2 写提示词 → Part 1 跑 CLI → 落盘视频 → 可选接龙/延长下一段。

核心原则:

  • 写提示词时把"形容词堆砌"重写成工程指令:八大要素 + 任务分类句式 + 镜头分镜 + 多模态绑定,全中文输出(见 Part 2)。
  • 跑生成时一律走 seedance-cli,不手拼 curl,不绕开默认轮询+下载。默认模型是 Seedance 2.5(-m 2.0 可切回)。
  • Claude 看不见视频文件——要么验文件 + 元数据,要么 ffmpeg 抽帧后 Read 静图。
  • 2.5 的任务分"有锁定 / 无锁定"两类(见 2.4):编辑锁比例+时长、首尾帧/延长锁比例——锁定任务不要传 --ratio,CLI 会前置拦截,漏网的会变成异步报错(任务建成功、轮询到 failed 才见错误)。
  • Seedance 2.x 不接受写实真人脸部素材——报 InputImageSensitiveContentDetected.PrivacyInformation。豁免:本账号 30 天内 2.x 原始产物、平台预置虚拟人像(asset://)、已授权素材。

Part 1 — 怎么调用 CLI(工程层)

1.1 前置

  1. 确认 seedance-cli 可执行(which seedance-cli 或 seedance-cli --version)。不可执行则提示用户 uv tool install zjandrew-seedance-cli 或 pipx install zjandrew-seedance-cli(PyPI 包名;命令名 seedance-cli 不变)。
  2. 配置 API key:优先 env ARKAPIKEY;缺失时引导 seedance-cli config init。
  3. 默认 endpoint 是 https://ark.cn-beijing.volces.com/api/v3,自建/代理 endpoint 走 seedance-cli config set endpoint https://<...>/api/v3 或 --endpoint 单次覆盖。

1.2 多 profile 配置

seedance-cli config list                # 列所有 profile,active 标 *
seedance-cli config use <name>          # 切 active
seedance-cli config add <name>          # 向导式新增
seedance-cli --profile <name> generate ...   # 单次覆盖,不改 active
seedance-cli config show [<name>]       # 查看(api_key 已脱敏)

优先级:--profile flag > SEEDANCE_PROFILE env > 文件 active。--api-key / --endpoint 是字段级覆盖,不会让 --profile 失效。

1.3 核心命令速查

# 文生视频(默认 2.5,时长 4-30s 或 -1 让模型自选)
seedance-cli generate -p "<prompt>" --ratio 16:9 --duration 5 --out v.mp4

# 图生视频 - 首帧(2.5 上比例锁定跟随首帧,不要传 --ratio)
seedance-cli generate -p "<prompt>" --image start.png --duration 5 --out v.mp4

# 图生视频 - 首尾帧(同上,比例锁定)
seedance-cli generate -p "<prompt>" \
  --image first.png:first_frame --image last.png:last_frame \
  --duration 5 --out v.mp4

# 多模态参考(2.5 最多 30 图;2.0 系最多 9 图)
seedance-cli generate -p "<prompt>" --image a.png --image b.png --image c.png \
  --duration 5 --out v.mp4

# 视频编辑(2.5:显式 --task-type edit 把异步报错变同步;时长锁定跟随输入,勿传 --duration/--ratio)
# ⚠️ 视频输入只收 web URL(http(s)/asset://),本地文件会被前置拒绝(API 不收 base64 视频)
seedance-cli generate -p "把房子刷成蓝色" --video "https://.../orig.mp4" \
  --task-type edit --output-format mov --out edited.mov

# 视频延长(2.5:时长可自定义,比例锁定;mov 声画衔接最佳)
seedance-cli generate -p "向后延长@视频1,..." --video "https://.../orig.mp4" \
  --task-type extend --output-format mov --duration 10 --out extended.mov

# 纯音频驱动(仅 2.5;2.0 系音频必须搭图/视频)
seedance-cli generate -p "<prompt>" --audio voice.mp3 --out v.mp4

# 多模态组合:图 + 视频 + 音频(视频仍须 URL)
seedance-cli generate -p "<prompt>" --image a.png --video "https://.../b.mp4" --audio bgm.mp3 --out v.mp4

# 任务管理
seedance-cli task list --status running
seedance-cli task get <task_id> --wait --out path.mp4
seedance-cli task delete <task_id>

1.4 模型选型(-m flag)

想要 -m 值 关键差异
默认 / 最强 2.5(默认) 30s 直出、50 参考素材(30图/10视/10音)、响应时间戳、纯音频输入、mov 输出、白模/宫格/关键帧;仅 480p/720p
1080p / 4k 输出 2.0 2.0 独有 1080p 与 4k(10bit);素材上限 9/3/3,单段 ≤15s
又快又省 2.0-fast / 2.0-mini 仅 480p/720p;mini 更便宜
离线推理省钱 1.5-pro --service-tier flex 价格 50%,响应小时级
指定帧数 1.0-pro --frames 29 唯一支持 --frames(满足 25+4n,29-289)

Seedance 2.x(2.5 + 2.0 全系)不支持的(CLI 会前置拦截):

  • --seed / --frames / --camera-fixed / --service-tier flex(全是 1.x 专属)
  • 写实真人脸部参考图/视频(豁免见「核心原则」)

仅 2.5 支持:--task-type、--output-format、纯音频输入、4-30s 时长。2.5 不支持 1080p/4k——要高分辨率就 -m 2.0。

1.5 参数选型(CLI flag)

意图 推荐参数
试拍 / 预览 --ratio 16:9 --resolution 720p --duration 5
让模型自选时长 --duration -1(2.5/2.0 系/1.5-pro;编辑任务默认就是 -1)
高分辨率定稿 -m 2.0 --resolution 1080p(或 4k;仅 2.0)
竖版短视频 --ratio 9:16
首帧/首尾帧/编辑/延长 省略 --ratio(2.5 上这些任务比例锁定跟随输入,传了会被拦截)
编辑/延长要同步报错 --task-type edit / --task-type extend(仅 2.5)
编辑/延长链条 --output-format mov(仅 2.5;H.264+yuv444p+PCM,声画一致性最佳)
离线推理 -m 1.5-pro --service-tier flex --execution-expires-after 172800
有声/无声 --generate-audio / --no-generate-audio(2.5/2.0 系/1.5-pro;默认有声)
拿到尾帧做接龙 --return-last-frame --out-last-frame last.png

1.6 本地输入 vs URL

  • 图片/音频本地路径自动 base64 编码,注意限额:单图 ≤ 30 MB、单音频 ≤ 15 MB,请求体总 ≤ 64 MB。
  • 视频只收 web URL(http(s) / asset://):API 不接受 base64 视频,CLI 对本地视频路径前置报 INVALIDINPUT。拿 URL 的两条路:复用上一个任务响应里的 videourl(24h 有效),或上传到 TOS/OSS。
  • 数量上限按模型:2.5 30 图 / 10 视频 / 10 音频(视频、音频各总时长 ≤30s);2.0 系 9 / 3 / 3(总时长 ≤15s)。超限报 INVALID_INPUT。
  • 超大文件先上传到 TOS / OSS 拿公开 URL,再传 --image https://...。URL 输入零成本(服务端拉),优先用 URL。
  • 已验证:data:<mime>;base64,... data URI 形态服务端接受;asset://<ID> 引用平台预置素材/虚拟人像。

1.7 异步与任务管理

什么时候用 --async:

  • 一次性派多个任务,让队列跑
  • 任务很长(1080p + 12s + 2.0),开 --async 然后睡一觉
  • CI 编排,不想 Python 进程挂半小时

恢复模式:

seedance-cli task list --status running    # 看哪些没收
seedance-cli task get <id> --wait --out path.mp4    # 接回阻塞下载
seedance-cli task delete <id>              # 取消排队 / 删历史

POLLCANCELLED(Ctrl-C)或 POLLTIMEOUT(--timeout 命中)时,envelope 里仍含 task_id,用 task get --wait 续杯,不要从头重发(会浪费 token)。

1.8 产物验证

Claude 看不见 MP4。能做的:

  1. 确认 video_path 存在、os.path.getsize 非零
  2. 报 envelope 里的 duration / resolution / ratio / framespersecond 给用户
  3. 想"看"内容时,ffmpeg 抽帧 + Read:
ffmpeg -ss 00:00:00 -i clip.mp4 -frames:v 1 preview-first.jpg
ffmpeg -sseof -1 -i clip.mp4 -frames:v 1 preview-last.jpg

然后 Read preview-first.jpg / preview-last.jpg 让自己看到首尾帧,给用户描述。没 ffmpeg 就明说"装一下或者你自己看",别假装看到了。

1.9 常见错误处置

按退出码处理:

  • CONFIGMISSING / INVALIDINPUT(exit 2)→ 引导 config init 或修参数;报错信息里带修正指引(如"drop --ratio")。
  • IO_ERROR(exit 3)→ 检查 --out 路径是否存在 / 可写;父目录不存在时改用结尾带 / 的目录形式触发 mkdir。
  • ARKAPIERROR(exit 4)→ 读 details.status 和 details.message:

- 429 退避后重试 - 400 改 prompt / 参数 - InputImageSensitiveContentDetected.PrivacyInformation → 输入含真人脸,2.x 不接受;换非真人脸素材或用豁免渠道

  • NETWORK_ERROR(exit 5)→ 重试;多次失败核对 config show 的 endpoint。
  • TASK_FAILED(exit 6)→ 读 details.error.code/message(CLI 已透出):

- InvalidParameter.TaskTypeConstraint → 2.5 异步报错:参数与模型判定的任务类型不符(最常见:锁定任务传了 ratio / 编辑任务传了非 -1 时长)。修参数重发,并加 --task-type edit/extend 让下次错误变成同步 400 - 其他多半是内容策略或参考素材问题

  • TASK_EXPIRED(exit 7)→ 任务超时被标 expired,重新建。
  • POLLTIMEOUT / POLLCANCELLED(exit 8/9)→ envelope 里有 task_id,用 task get --wait 续。
  • INTERNAL(exit 10)→ bug,带 --verbose 跑一次拿 stacktrace,报 issue。

产物时效:视频 URL 24h 有效;2.5 的 URL 还有 100 次下载上限;任务记录仅存 7 天——生成完立即下载落盘(CLI 默认就是),别把 URL 当持久存储。

1.10 Red Flags — 出现这些信号立即停下

  • 我正要把 gpt-image"重生成本图"心智搬过来 → 停,seedance 多轮 = 故事接龙,不是 A/B
  • 我正要 Read clip.mp4 → 停,Read 读不出视频,要么抽帧要么报元数据
  • 我正要在没 --return-last-frame 的情况下接龙 → 停,链断了模型从零构图
  • 我正要给 2.5 的首帧/首尾帧/编辑/延长任务传 --ratio → 停,比例锁定跟随输入,传了被拦截或异步报错
  • 我正要把本地视频文件传给 --video → 停,视频只收 URL;用上一个任务的 video_url 或先传 TOS/OSS
  • 我正要开 1080p → 停,2.5 只有 480p/720p;确实要 1080p/4k 就 -m 2.0,且试拍先 720p
  • 我正要按 2.0 心智告诫"别写绝对秒数" → 停,2.5 响应整数秒时间戳,时间戳是 2.5 的一等公民(2.0 才只认镜头序号)
  • 我正要自己写 Python 轮询循环 → 停,CLI 已经轮询了,用 --wait 别绕开
  • 我正要把多段任务并发派出去 → 停,接龙必须串行(每段依赖上段尾帧),且并发受模型限制(个人 3 / 企业 10)
  • 我正要凭记忆汇报"已生成"→ 停,先确认 video_path 存在 + 报元数据
  • 我正要上传写实真人脸素材 → 停,2.x 拒收(豁免见「核心原则」)

1.11 不要做

  • 不要分析或识别已有视频(本 CLI 不覆盖 vision 任务)
  • 不要自己拼 curl 调 Ark - 走 CLI,envelope / 错误路径才统一
  • 不要在 prompt 里硬写比例数字而 --ratio 是另一个,会拼接撕裂
  • 不要把 ARKAPIKEY 写进 shell history,用 config init 或 env

1.12 安全与预期

  • 单段视频生成耗时 30s - 几分钟;长 duration、含视频输入、2.0 的 1080p/4k 会明显更慢更贵。
  • 2.5 计费(元/百万 token,只算输出):无视频输入 70、含视频输入 42,另含视频输入时有最低 token 用量。参考:16:9 5s 输出 720p 约 7.56 元。
  • --service-tier flex 价格是 default 的 50%,但只支持 1.5-pro / 1.0-pro 系列,且响应时间是小时级。
  • mov 产物(2.5)在 VLC/mpv/IINA(mac) 正常播放,Windows 部分播放器不支持;交付前确认用户环境。
  • 视频文件可能很大,务必传 --out 显式路径,不要在任意目录默认落盘。
  • 脚本场景首选 --format json + --jq '.data.video_path',稳定可解析。

Part 2 — 怎么写提示词(创意层)

你是 Seedance 2.5 的提示词工程师 & 多模态 AI 导演。提示词默认用中文写(2.5 原生支持 11 种语言:中英西印尼葡日马来泰阿越韩,台词可按需选语种),具体到画面、动作、镜头、声音。

2.1 平台规格(Seedance 2.5,括注 2.0 差异)

维度 2.5 规格 2.0 系差异
图片输入 jpeg/png/webp/bmp/tiff/gif/heic/heif,≤30 张,单张 < 30 MB ≤9 张
视频输入 mp4/mov,仅 URL(http(s)/asset://,不收 base64),≤10 个,单个 2-30 秒且总时长 ≤30s,单个 < 50 MB ≤3 个,总 ≤15s
音频输入 mp3/wav,≤10 个,总时长 ≤30 秒,单个 < 15 MB;可仅传音频 ≤3 个;必须搭图/视频
生成时长 4-30 秒,或 -1 让模型自选(编辑任务锁定跟随输入) 4-15 秒
声音输出 默认有声(--no-generate-audio 关) 同
分辨率 仅 480p / 720p 2.0 另有 1080p / 4k
宽高比 6 档 + adaptive;经输入素材可实现 [0.4,2.5] 任意比 仅固定 6 档
输出格式 mp4 / mov(--output-format) 仅 mp4
提示词语言 11 种,响应整数秒时间戳 6 种,只认镜头序号

⚠️ 平台限制(写提示词前必须知道):
- 不支持上传写实真人脸部素材(图片和视频均不可),返回 InputImageSensitiveContentDetected.PrivacyInformation;豁免渠道见 Part 1「核心原则」。
- 有参考视频时生成更慢、更贵(含视频输入还有最低 token 用量)。
- 视频延长时,--duration 选的是"新增部分"的时长(延长 5 秒就 --duration 5);编辑任务时长锁定,--duration 省略或 -1。

有锁定 vs 无锁定(2.5 任务两分法,必读)

2.5 按"输入素材是否会锁定输出属性"把任务分两类——这决定了哪些 CLI 参数能传:

类别 任务 锁定 触发关键词(提示词里)
有锁定 视频编辑 比例=adaptive 且 时长=-1(跟随待编辑视频,输入须 4-30s) 编辑视频、增加/加上、删除/去掉、修改/替换/改成
有锁定 首帧/首尾帧 比例=adaptive(跟随首帧图);时长可自定义 role=firstframe/lastframe(参数触发,非关键词)
有锁定 视频延长 比例=adaptive(跟随待延长视频);时长可自定义 向前/向后延长、延续、续写
无锁定 参考生视频 / 宫格分镜 / 关键帧 无——比例、时长随便选 参考、按分镜、以图片 X 为关键帧 等

实操含义:锁定任务不要传 --ratio(CLI 前置拦截);编辑任务不要传非 -1 的 --duration。auto 模式下模型按关键词自判任务类型,判成锁定任务而参数不符 → 异步报错;显式 --task-type edit/extend 可把校验前置成同步 400。首尾帧想不锁比例 → 改用 reference_image role + 提示词写「图片 X 为首帧」(弱首尾帧,构图相近但不严格)。

2.2 核心心法:工程型指令 ≠ 文案型形容

Seedance 在内部把素材拆成空间层(画面里有什么)与时间层(事情如何随时间变化)两个维度来理解和生成。因此 好的提示词不是堆形容词,而是工程指令:谁、在什么场景、做什么动作、镜头如何运动、按怎样的镜头顺序/时间轴发生。官方对 2.5 的定位:把它当视觉内容生产者,用导演思维写结构化 Prompt——素材指代 → 一句话概述 → 具体情节(时间戳或镜头序号切分)→ 结尾贯穿性细节。

你的首要任务是把用户"纯堆砌形容词"的低质提示词,重写为符合 Seedance 2.5 语法约定(八大要素 + 镜头分镜 + 多模态绑定)的工程化提示词。落地路径:

心法 落到哪一节
先判任务类型,再选句式 2.4 任务分类
逐项核对八大要素,缺啥补啥 2.5 八大核心要素
把烂 prompt 走流程重写 2.6 提示词优化工作流
具体句式工具集 2.7 十大能力模式库

多模态能力总览:

  • 多模态参考:图、视频、音频、文本四种模态输入,用 @引用系统 在提示词中点名。
  • 首尾帧控制:--image x.png:firstframe --image y.png:lastframe。
  • 自动分镜与运镜:模型可根据故事描述自动规划。
  • 视频延长 / 视频编辑 / 一镜到底:详见 2.4 任务分类与 Part 3 workflow。

2.3 引用语法(统一标准)

素材引用

  • 图片:@图片1…@图片30;视频:@视频1…@视频10;音频:@音频1…@音频10(按上传顺序编号,从 1 开始;2.0 系上限 9/3/3)。
  • CLI 对应:--image 出现顺序决定 @图片1/2/…,--video 决定 @视频1/…,--audio 决定 @音频1/…。
seedance-cli generate \
  -p "以@图片1为首帧,参考@视频1的运镜,@图片2作为最终落点" \
  --image start.png \
  --image end.png \
  --video reference.mp4 \
  --out v.mp4
  • 素材多时,映射清单化(2.5 官方建议):人数多用清单逐一列清,如「img1-2 是人物 1,对应音频 1;img3-4 是人物 2,对应音频 2」。不要只在图片里写映射信息(图上写名字、prompt 里直呼其名容易多人混淆)。
  • 素材足够精准时只做指代,减少复述:「严格参考@视频1的动作与运镜,顺序与视频保持一致」即可,不必在 prompt 里逐句重写视频内容。
  • 部分参考要写明参考哪部分:「参考@视频1中施法的动作、@视频2的环绕式运镜」「参考@图片1的光影和滤镜」。

主体引用(推荐两种之一)

  • 未提前定义:<主体N>@图片N,强调主体与素材的绑定关系。例:张红@图片1、<主体1>@图片1。
  • 多主体场景或需复用:先定义 将 @图片N 中的[2-3 个稳定静态特征] 定义为 <主体N>,之后全程用同一标签 <主体N> 指代。
  • 同主体多素材:将 @图片1 中的[…]、@图片2 中的[…] 定义为 <主体N>。
  • 人脸参考策略(如适用):<主体1> 的面部特征参考 @图片1(大头照),妆造参考 @图片2(全身照)。

三条硬规则

  • Asset ID 屏蔽:底层模型不能直接关联无语义 Asset ID,严禁 在动作描述里裸写 [asset-xxx],必须通过 @图片N / <主体N> 桥接。
  • 断句防歧义:裸用 @图片N 紧接动词或方位词(如 @图片1跑向…、@图片2位于…)易触发数字粘连歧义。应改为 <主体N>@图片N,或在 @图片N 后补名词隔断。

- 正确:<主体1>(李武)站起身走向 <主体2>(苏有)、@图片2 中的女生位于画面左侧。 - 错误:@图片2位于…、@图片1跑向…。

  • 用途标注:多素材时每个 @ 对象都要标清用途——是首帧、运镜参考、还是主体形象,别把图、视频、角色搞混。
@图片1为首帧
参考@视频1的运镜效果
背景音乐参考@音频1
@图片1的人物形象

2.4 任务分类(先判定,再选句式)

类型 适用场景 推荐句式 CLI 配套(2.5)
多模态参考 动作迁移、主体复用、氛围借鉴、白模渲染、宫格/关键帧 参考 @图片N 中的 <主体N>,生成… / 参考 @视频N 中的 <动作/运镜/风格/音效>,生成… / 参考 @音频N 中的音色,生成… 无锁定,--ratio/--duration 随意
编辑视频 局部替换、主体抹除、属性/音频修改 增:清晰描述 <元素特征>+<出现时机>+<出现位置>;改:严格编辑 @视频N,将其中的<原特征>修改为<新特征>(写明 A→B 过程,可配时间戳限定生效时段);删:明确指出删除元素,并强调保留元素 --task-type edit --output-format mov,勿传 --ratio/--duration
延长视频 续写剧情、延展动作 向前/向后延长 @视频N,生成… / 轨道补全:@视频1,<过渡描述>,接 @视频2 --task-type extend --output-format mov,勿传 --ratio
组合任务 参考某素材,编辑另一素材 参考 @图片/视频N 的[参考维度],严格编辑 @视频X,[具体编辑内容] 按主任务(编辑)配套

关键警告:编辑 / 延长任务请直接用 @视频N 指代,不要写"参考 @视频N",否则会被误判为参考任务(应写 严格编辑 @视频N / 向后延长 @视频N)。反过来,参考任务的提示词里别混入「增加/删除/修改/替换/延长/续写」这类触发词,auto 模式下会被误判成锁定任务而异步报错。

这 4 类是顶层分类;2.7「十大能力模式库」是挂在这些类型下的具体句式工具集,不是另一套并列体系。简单场景可直接套句式;复杂多分镜的多模态参考必须以 2.6 的路径 B 三段论为骨架。

2.5 八大核心要素

精准主体 + 动作细节 + 场景环境 + 光影色调 + 镜头运镜 + 视觉风格 + 画质 + 约束条件

作用:产出前的自检清单。前 2 项必填,后 6 项按需;缺失时按下表默认策略自动补全,并在"优化问题"段落透明披露。

# 要素 必要性 缺失时的默认策略
1 精准主体(谁) 必填 主体未绑定素材时按 2.3 建立 <主体N>@图片N;仅有泛指("一个女孩")则保留泛指并在披露中标记
2 动作细节(在干什么) 必填 默认低缓连续小动作;按"肢体细化 + 程度量化"补全(见 2.6 路径 B 动作描述要求)
3 场景环境(在哪) 按需 简单场景可省略或一句话带过;有场景图 / 风格暗示时按其推断
4 光影色调(什么氛围) 按需 可合并入风格短语("暖色调电影质感");复杂场景第一段一句话定调
5 镜头运镜(怎么拍) 按需 简单场景可不显式写(默认稳定运镜);复杂场景每镜必填,一镜一运镜不可叠加
6 视觉风格(什么画风) 按需 优先采用用户指定风格;未指定按整体感觉 + 参考素材推断;动漫 / 非写实场景升为必填,显式锚定(2D 日漫 / 3D 国漫 / 赛博朋克)防漂移到写实
7 画质(清晰度要求) 按需 默认挂画质包:高清,细节丰富,电影质感,色彩自然,光影柔和;简单场景压成"高清电影质感"
8 约束条件(兜底防崩) 按需(多人 / 文字生成升为必填) 默认挂稳定包 + 水印 / Logo 兜底;非文字生成挂字幕兜底;多人场景 必挂 双胞胎兜底

2.6 提示词优化工作流(把烂 prompt 重写成工程 prompt)

何时走这套:用户给了待优化的提示词 / 多模态素材时走全流程。用户只讲了高维创意意图(无具体提示词)时,先做 Step 0 引导补足要素,再进入后续步骤。

Step 0:需求分析与启发式提问(仅当只有想法、无具体提示词时)

若用户只给高维度想法(如"我想做一段赛博朋克风格的视频"),先进入引导模式,通过提问帮用户补足八大要素,禁止直接生编硬造:

关于这个视频,您可以补充几个细节吗?1. 主角的外貌特征和穿着?2. 跳舞的场景在哪(赛博朋克街道 / 古典舞台)?3. 您能提供 @图片1 等参考素材吗?

收集到足够信息后再进入 Step 1。

Step 1:任务类型与复杂度判定

  1. 任务类型判定(先做):按 2.4 归类为 多模态参考 / 编辑视频 / 延长视频 / 组合任务 之一。
  2. 复杂度判定(仅对多模态参考做):从"时间维度"和"空间维度"判断事件密度,而不是仅看素材数量或分镜数量。

- 编辑 / 延长 / 组合:本质单点操作,直接走路径 A,无需复杂度判定。 - 路径 A(简单视频):时间维度和空间维度 都"少"——单一场景内、单一连续动作 / 一段台词 / 一次状态展示。即使台词长、动作有细节,只要在同一时空里连续完成,仍属路径 A。例:博主固定位置介绍产品;女孩窗边吃蛋糕;产品 360° 展示。 - 路径 B(复杂影视化场景):时间或空间 任一为"多"——多事件链("先 A 后 B 再 C")/ 空间切换(街上→进店→出店)/ 跨场景叙事 / 用户已写"镜头 1、镜头 2"等分镜暗示 / 长剧情。例:宿舍剧(进门→对话→打闹 3 件事);追逐戏(街巷→集市→翻墙 多空间)。 - 辅助信号(非充分条件):素材 ≥ 4、用户主动写"镜头 1/2/3"、参考视频本身已是多分镜——只是 倾向复杂 的信号,仍要回到时间 / 空间维度判断。

Step 2:元素自检与素材映射(自动解析)

  1. 多模态 JSON / 长文本自动映射:用户直接粘贴含 "content" 数组的完整 JSON 或类似长文本时,主动执行:

- 扫描所有非 text 类型对象("type": "imageurl" / "videourl" / "audio_url")。 - 按 出现顺序 自动分配 @图片1 / @视频1 / @音频1 等代号。 - 提取对应 url 或 asset-xxx ID,回到 text 文本中将 asset-xxx 替换为对应代号。

  1. 长图 / 九宫格确认:上传素材若为长图或九宫格,提示用户拆分为单图。
  2. 多视图素材策略(2.5 支持多视图,2.0 不建议):1-5 个主体时单视图 / 多视图均可;超过 5 个主体单视图更稳。要传多视角时,拆成多张不同视图分别上传,不要传一张含多视角的合图。
  3. 参考人物 > 4 检测:若参考人物超过 4 人,建议先分组生图(每组 ≤ 4 人)再图生视频。
  4. 重要素材前置原则:越需要精准参考的素材(如人脸大头照),在最终提示词里位置越靠前。
  5. 素材配置策略(2.5 官方最佳区间):主体音视频 1-5 个、主体图 1-8 张、主体视频单段 5-10s、编辑输入视频 ≤20s;更多可尝试但稳定性下降(要抽卡)。不建议一上来就用满 30/10/10 上限。

Step 3:要素审查与分级处理(只在关键歧义时打断用户)

3.1 关键歧义检测(必须停下来等用户确认)

出现以下情形之一,用"多选检视意见"交互让用户确认:

  • 方位 / 帧位映射不明:多人或多图未指明谁在左 / 右 / 首帧 / 尾帧。
  • 任务类型误判风险:编辑 / 延长任务里出现"参考 @视频N"字样(应改写为 严格编辑 @视频N / 向后延长 @视频N)。
  • 显式运镜冲突:同一镜头内同时要求推 + 拉 + 摇 + 移。
  • 主体特征自相矛盾:同一 <主体N> 被赋予冲突静态特征。

多选交互模板:

我收到了您的输入,检测到以下关键歧义,请选择处理方式:
1. 【方位待定】@图片1 与 @图片2 谁在左、谁在右?
2. 【任务误判】当前是"延长视频"任务,建议把"参考 @视频1"改写为"向后延长 @视频1"。
3. 【运镜冲突】镜头 2 同时出现"向前推"和"向左平移",建议合并为单一运镜。

[多选框]
- [ ] 接受建议 1:@图片1 在左,@图片2 在右
- [ ] 接受建议 2:改写为"向后延长 @视频1"
- [ ] 接受建议 3:仅保留"镜头向前推"
- [ ] 其他修改(请补充)

3.2 非关键缺失:八大要素 audit + 自动补全(不打断用户)

按 2.5 逐项自检,缺失时按默认策略自动补全,并在"优化问题"段落透明披露。

  • 路径 A 总体观感:1-2 项必填 → 写清楚谁在干什么;3-8 项按需折叠到末尾一两句兜底里(如"暖色调电影质感,画面稳定无变形,无字幕、无水印")。
  • 路径 B 总体观感:1-2 项分散在第一段 + 第二段分镜;3-5 项穿插在第一段定调 + 第二段四要素;6-8 项在第三段集中挂载。
  • 设计原则:仅当出现 3.1 关键歧义时才打断用户;非关键缺失由优化器补全并透明披露,避免每次优化都被追问打断。

Step 4:结构化重写输出(按复杂度路径分流)

- 编辑 / 延长 / 组合 任务 → 一律走 路径 A(单点操作,一段式)。
- 多模态参考任务 → 简单走 路径 A,≥ 2 分镜的影视化场景走 路径 B(三段论)。

路径 A:简单视频(句式直接组装,无需分块)

[任务句式主体],[主体与素材绑定],[场景与简短动作],[风格与约束包]

示例:

  • 多模态参考:参考 @图片1 中的<主体1>(短发女孩),生成她在 @图片2 的咖啡店里吃蛋糕的画面。暖色调电影质感,画面稳定无变形,保持无字幕,不要生成水印,不要生成 Logo。
  • 单点编辑:严格编辑 @视频1,将其中的香水替换为 @图片1 中的面霜,动作和运镜不变。画面稳定无变形,不要生成水印,不要生成 Logo。
  • 单段延长:向后延长 @视频1,生成两人继续走向街角并相视一笑的画面。画面稳定无变形,保持无字幕,不要生成水印,不要生成 Logo。

路径 A 仍要挂默认兜底约束包(画质 / 稳定 / 水印 Logo),但折叠在末尾一两句串联即可,无需分块罗列。

路径 B:复杂影视化场景(严格三段论)

第一段:总体设定 + 主体定义

  • 一句话定调整体场景与氛围(如"傍晚悬崖竹林,烟雨江湖电影感")。
  • 一次性绑定全部主体与核心资产:<主体N>@图片N 或 将 @图片N 中的[特征] 定义为 <主体N>。
  • 人脸参考策略 / 首尾帧约束 / 运镜参考来源(如有 @视频N 作运镜锚定)一并在此声明。

第二段:镜头分镜(仅使用多模态参考形态)

  • 顺序使用 镜头1 / 镜头2 / 镜头3 …(分镜口径见 2.11)。
  • 每个镜头按 运镜方式 → 主体动作与表情 → 位置 / 空间变化 → 音频信息 四要素组织。
  • 一镜一运镜:单镜头只指定 1 种运镜方式(推 / 拉 / 摇 / 移 / 固定 / 跟拍择一),禁止叠加。
  • 动作描述要求(2.5 表演理解更强,策略与 2.0 时代不同):

- 概括性描述优先:「连续做了几组高抬腿和空翻」「双方展开近身搏斗」;只在少数有记忆点的动作上写具体细节,不重复写相同动作。 - 表情写描述性语句、少用成语:「津津有味地吃饭」→「脸上带着满足的笑容,大口地吃饭」。 - 补充动作过渡衔接("借着转身惯性顺势抬手")。 - 情绪具象外化:用身体细节代替"悲伤 / 愤怒",例如悲伤 → "肩膀微微颤抖、眼眶泛红、手指攥紧衣角"。 - (仅当用 -m 2.0 时沿用旧策略:肢体细化 + 程度量化,优先低缓连续小动作,规避高爆发动态。)

第三段:风格 + 约束包(按场景自动挂载标准包)

  • 画质包(默认必挂):高清,细节丰富,电影质感,色彩自然,光影柔和。
  • 稳定包(默认必挂):人物面部稳定不变形、五官清晰、动作连贯自然,不僵硬,无穿模无卡顿。
  • 字幕兜底(非文字生成任务必挂):保持无字幕,避免生成任何文字或字幕。
  • 水印 / Logo 兜底(默认必挂):不要生成水印;不要生成 Logo。
  • 双胞胎兜底(多人 / 多主体场景必挂):视频全程禁止出现外形、着装、配饰完全一致的人物,禁止生成同款分身、双胞胎效果。
  • 风格锚定(动漫 / 非写实场景必挂):明确写出 2D 日漫风格 / 3D 国风漫画 / 赛博朋克冷蓝紫色调 等风格词。
  • 强方位约束(多人正面动态视频):明确写出"左侧角色穿灰蓝色作训服"等强方位描述 + 固定机位,避免穿模 / 跳脸。

实操示例

路径 A(输入:1 张图 + 一句话"@图片1 的女孩在咖啡店吃蛋糕")

参考 @图片1 中的<主体1>(短发女孩),生成她坐在窗边咖啡店里专注吃蛋糕的画面,暖黄色光线柔和洒落。高清电影质感,画面稳定无变形,保持无字幕,不要生成水印,不要生成 Logo。

路径 B(输入:3 图 + 1 视频 + 1 音频,宿舍情感短剧 3 分镜)

整体设定为现代女生宿舍傍晚文戏,自然柔和光照。<主体1> 的面部特征参考 @图片1(大头照),妆造参考 @图片2(全身照);将 @图片3 中的简约木质宿舍 定义为 <场景1>;运镜参考 @视频1 的中景推拉与轻微摇移;环境音色参考 @音频1。

镜头 1:中景平稳跟拍,<主体1> 脚步轻快地走到 <场景1> 门口,暖黄色日光从窗外洒进走廊,她在门口停顿一下,深呼吸,表情略带紧张,伴随轻微的脚步声与远处室内话语声。

镜头 2:镜头切到室内中景,<主体1> 推门进入,舍友们一边整理书本一边抬头看向她,其中一人笑着问 {考得怎么样呀,过了吗},镜头在几人之间缓慢切换半身特写。

镜头 3:近景特写,<主体1> 先低头露出落寞表情,随后抬头憋不住笑意说 {骗你们的},舍友们追着打闹起来,镜头缓慢拉远定格在宿舍内一片欢声笑语的全景。

全程画面高清电影纪实风,色调温暖,光影柔和;人物面部稳定不变形、五官清晰、动作连贯自然,不僵硬,无穿模无卡顿;保持无字幕,不要生成水印,不要生成 Logo;视频全程禁止出现外形、着装、配饰完全一致的人物,禁止生成同款分身、双胞胎效果。

优化问题(透明披露职责)

针对原始提示词,列出:

  1. 已补全的非关键缺失(如:自动挂载画质包;默认动作幅度采用低缓连续小动作)。
  2. 检出的病灶(要素缺失、运镜冲突、Asset ID 裸写、任务类型误判、绝对秒数等)。

随后列举应用到的工程化优化原则(如 Asset ID 屏蔽、断句防歧义、一镜一运镜、重要素材前置、双胞胎兜底 等)。

2.7 十大能力模式库(具体句式 cookbook)

这是挂在 2.4 任务分类下的句式工具集。简单需求直接套;复杂叙事在 2.6 路径 B 的分镜内部调用。

2.7.1 纯文本生成(无参考素材)

模式:(主体) + (动作序列) + (环境/光影) + (镜头语言) + (风格)

镜头跟随黑衣男子快速逃亡,后面一群人在追,镜头转为侧面跟拍,人物惊慌撞倒路边的水果摊爬起来继续逃,人群慌乱的声音。

2.7.2 一致性控制(角色/产品/场景统一)

模式:[角色]@图片N + [动作/剧情] + [场景]@图片N + [运镜/光影]

男人@图片1下班后疲惫的走在走廊,脚步变缓,最后停在家门口,脸部特写镜头,男人深呼吸,调整情绪,收起了负面情绪,变得轻松,然后特写翻找出钥匙,插入门锁,进入家里后,他的小女儿和一只宠物狗,欢快的跑过来迎接拥抱,室内非常的温馨,全程自然对话
对@图片2的包包进行商业化的摄像展示,包包的侧面参考@图片1,包包的表面材质参考@图片3,要求将包包的细节均有所展示,背景音恢宏大气

2.7.3 运镜与动作精准复刻

模式:参考@视频1的[运镜/动作/节奏] + [主体]@图片N + [场景]

参考@图片1的男人形象,他在@图片2的电梯中,完全参考@视频1的所有运镜效果还有主角的面部表情,主角在惊恐时希区柯克变焦,然后几个环绕镜头展示电梯内视角,电梯门打开,跟随镜头走出电梯,电梯外场景参考@图片3,男人环顾四周

2.7.4 创意模板/特效复刻

模式:参考@视频1的[特效/转场/创意] + 将[元素]替换为@图片N + [补充说明]

将@视频1的人物换成@图片1,@图片1为首帧,人物带上虚拟科幻眼镜,参考@视频1的运镜,及近的环绕镜头,从第三人称视角变成人物的主观视角,在 AI 虚拟眼镜中穿梭,来到@图片2的深邃的蓝色宇宙

2.7.5 剧情创作/补全

模式:[分镜脚本/图片内容] + [演绎方式] + [音效/台词要求]

将@图片1以从左到右从上到下的顺序进行漫画演绎,保持人物说的台词与图片上的一致,分镜切换以及重点的情节演绎加入特殊音效,整体风格诙谐幽默;演绎方式参考@视频1

2.7.6 视频延长

模式:将@视频1延长[X]s + [新增内容描述] 或 向前延长[X]s + [前置剧情]

将@视频1延长15秒。1-5秒:光影透过百叶窗在木桌、杯身上缓缓滑过...11-15秒:英文渐显第一行 Lucky Coffee

CLI 落地(--video 把上段 MP4 喂回)见 §3.3。

2.7.7 声音控制(音色/对白/音效)

模式:[画面] + 音色/旁白参考@视频1 + [台词用 {} 标注](深度技巧见 2.9 音频通道)

固定镜头,中央鱼眼镜头透过圆形孔洞向下窥视,参考@视频1的鱼眼镜头,让@视频2中的马看向鱼眼镜头,参考@视频1中的说话动作,背景BGM参考@视频3中的音效。

CLI 这边记得加 --generate-audio。

2.7.8 一镜到底

模式:一镜到底 + @图片1@图片2...@图片N + [连续场景] + 全程不要切镜头

谍战片风格,@图片1作为首帧画面,镜头正面跟拍穿着红风衣的女特工向前走,镜头全景跟随,不断有路人遮挡红衣女子,走到一个拐角处,参考@图片2的拐角建筑,固定镜头红衣女子离开画面,...全程不要切镜头,一镜到底。

2.7.9 视频编辑

模式:将@视频1中的[A]换成@图片1 + [其他修改] 或 颠覆@视频1的剧情 + [新剧情]

@视频1中的女主唱换成@图片1的男主唱,动作完全模仿原视频,不要出现切镜,乐队演唱音乐。
颠覆@视频1里的剧情,男人眼神从温柔瞬间转为冰冷狠厉,在女主毫无防备的瞬间,猛地将女主从桥上往外推

2.7.10 音乐卡点

模式:@图片1@图片2...@图片N + 参考@视频1的画面节奏/卡点 + [画面风格]

@图片1@图片2@图片3@图片4@图片5@图片6@图片7中的图片根据@视频1中的画面关键帧的位置和整体节奏进行卡点,画面中的人物更有动感,整体画面风格更梦幻,画面张力强,可根据音乐及画面需求自行改变参考图的景别,及补充画面的光影变化

2.7.11 白模参考/渲染(仅 2.5)

模式:参考@视频N的[运镜/运动/光影] + [渲染要求:场景/主体/风格描述]

  • 粗粒度白模(简单几何体拼接)效果最好;白模主体建议只保留躯体,含四肢/翅膀时要补全动作序列防僵化。
  • 细粒度白模(重渲染/上色)要提供干净视频——不含轨迹线/坐标线/相机 cone,否则会泄露进成片。
  • 叠加参考图时写明对应关系:将@图片1中穿灰衣的男人对应@视频1中的红色模型。
将@视频1进行白模渲染,无bgm,只生成环境音和动作音。渲染要求:背景为深蓝紫色调的夜晚赛博朋克都市,...;人物为一个身着黑色夜行衣的小浣熊,...

2.7.12 多宫格分镜/故事板参考(仅 2.5)

模式:@图片1为N宫格分镜参考,[素材映射清单] + [整体风格] + [逐镜头描述]

  • ≤15 格;推荐火柴人/线稿分镜,不推荐锐化脏乱的 AI 直出分镜图、不要在图上写太多字。
  • 宫格只提供大致剧情参考,不会严格对齐;要严格对齐用 2.7.13 关键帧。
  • 写法三步:素材指代关系 → 故事梗概 → 按分镜补齐图中没有的信息(动作/运镜/风格),可组合时间戳。

2.7.13 关键帧参考(仅 2.5)

模式:第一句写明 以图片X至图片Y的顺序作为关键帧,后接整体剧情与运镜要求。

  • 生成画面相对严格对齐输入图,适合"必须按分镜走"的场景;时长可自定义。
  • 首尾帧图也可混入关键帧序列。
以图片1至图片7的顺序作为关键帧,在云海群山间,蓝粉长尾灵鱼凌空遨游,镜头缓缓推向依山而建的古镇...新国风浮世绘插画风格

2.7.14 一键成片(仅 2.5)

模式:将所有图片进行一键成片,[顺序策略] + [成片风格] + [文字/贴纸/转场要求] + [音频要求]

将所有图片进行一键成片,图片顺序自由安排,生成一个手绘动态涂鸦抠像风格的咖啡店vlog...生成具有网感的趣味音频或者bgm。图片可以微微动起来,live图的效果,但不要改变原图。

2.7.15 视频无缝转场(仅 2.5)

模式:将@视频1和@视频2衔接起来,[转场触发点与方式],同时不要改变上传的两个视频

将@视频1和@视频2衔接起来,@视频1的视角飞行至顶端快速折返,垂直向下俯冲,无缝自然地转场到@视频2,过程中麻将牌慢慢变成高楼...

2.7.16 视频音频编辑(仅 2.5)

模式:对声音单独增删改,画面不动;支持台词翻译 + 口型同步。

将视频中的人声台词翻译成中文,无字幕,口型做出对应的精准改变,其余均保持不变。
仅编辑@视频1中男人的台词,修改为{你不要过来啊},口音调整为东北口音,其余不变。

2.8 特殊字符规范(强制使用)

信息类型 符号 示例
背景音乐 () (背景中播放着快节奏的摇滚乐)
音效 <> <远处传来狗叫声>
台词 {} {你好,世界};小语种需标注语种
字幕 / 标题 【】 【第一章:启程】

2.9 音频通道

  • 音色参考:参考 @音频N 中的音色,生成…;还原度不佳时补充细致音色描述(如 使用 @音频1 低厚温润带细碎颗粒感中年男声的音色说),并保持台词风格与参考音频语气接近。
  • 纯音频驱动(仅 2.5):可以只传音频不配图/视频(台词对口型、音乐驱动画面等);2.0 系音频必须搭至少一个视觉参考。
  • 音频编辑(仅 2.5):对已有视频的声音单独增删改——加人声/音乐/音效、改台词/口音、删 bgm,支持台词翻译 + 口型精准同步(句式见 2.7.16)。
  • 负向音频控制(2.5 明确支持,可细分维度):无bgm,只生成环境音和动作音、不要任何声音、不额外加入对白字幕。
  • 台词语种:2.5 支持 11 种语言,台词选定语种后保持统一、避免中英混用(专有名词除外);小语种台词标注语种,如 用日语说道 {こんにちは}。
  • 中文发音兜底:模型对多音字 / 生僻字 / 形近字易读错,可改写为发音一致的常用同音字(如"螭龙山" → "吃龙山"),并在"优化问题"段落披露替换。
  • 片尾噪音建议:含旁白的视频片尾可能出现截断杂音,建议后期通过剪映"音量包络线"做淡出处理(非强制建议)。
  • CLI 提醒:2.5/2.0 系默认就有声,不想要声音用 --no-generate-audio;生成的有声视频均为单声道。

2.10 文字生成三模板

  • 广告语:「文字内容」+「出现时机」+「出现位置」+「出现方式」,「文字特征(颜色、风格)」。
  • 字幕:画面底部出现字幕,字幕内容为"…",字幕需与音频节奏完全同步。
  • 气泡:<角色>说:"…",角色说话时周围出现气泡,气泡里写着台词。

文字生成与 2.4 任务分类正交,路径 A、B 都可能调用。涉及文字生成时,约束条件(2.5 第 8 项)升为必填。

2.11 高级提示词技巧:分镜法

时间戳分镜法 vs 镜头顺序分镜法 — 怎么选

⚠️ 按模型选口径——这是 2.5 与 2.0 的头号提示词差异:
- Seedance 2.5 响应整数秒时间戳,时间戳是一等公民。三种时间控制都支持:明确区间(0-3秒...3-7秒,注意时间轴连续、别跳秒)、时间点(第5s快速向左横移转场)、相对时间(3秒后周围的人纷纷摇头)。镜头序号也照常可用,两者可混写(镜头 N + 括注秒数)。
- Seedance 2.0(-m 2.0 时)不响应时间戳只响应镜头序号——叙事用 镜头1/2/3 且禁写绝对秒数;卡点需求配合参考视频节奏。

2.5 上的时间戳三条纪律:段内剧情太少模型会自由发挥、太多会过度剪切或遗漏,时长安排要合理;别用时间戳控频次(如"一秒摇头 3 次");时间轴要连续(避免 0-3秒...5-6秒 中间悬空)。

一句话:2.5 卡点叙事都可上时间戳;2.0 叙事用镜头顺序、禁绝对秒数。

时间戳分镜法(精确卡点 / 长视频)

0-3秒:[画面 + 镜头]
4-8秒:[画面 + 镜头]
9-12秒:[画面 + 镜头]
13-15秒:[画面 + 镜头]

仙侠战斗示例:

15秒仙侠高燃战斗镜头,金红暖色调,0-3秒:低角度特写主角蓝袍衣摆被热浪吹得猎猎飘动,双手紧握雷纹巨剑,剑刃赤红电光持续爆闪;4-8秒:环绕摇镜快切,主角旋身挥剑,剑刃撕裂空气迸射红色冲击波,前排魔兵被击飞碎裂成灰烬;9-12秒:仰拍拉远定格慢放,主角跃起腾空,剑刃凝聚巨型雷光电弧劈向魔兵群;13-15秒:缓推特写主角落地收剑的姿态,衣摆余波微动,冷声道"此界之门,不容踏越"。

短剧对白示例(画面 + 台词 + 音效分开标注):

画面(0-5秒):特写女主撕契约镜头,纸屑飘落,总裁单膝跪地伸手阻拦,眼神慌乱
台词1(总裁,卑微慌乱):"苏晚!契约还没结束,你不能走!我给你钱,给你地位!"
画面(6-10秒):女主抬脚避开他的手,将撕碎的契约纸扔在他脸上,镜头扫过周围宾客的窃窃私语
台词2(女主,冷漠反杀):"契约?顾总,当初是你说,我连给你提鞋都不配,现在求我?晚了!"
画面(11-15秒):总裁僵在原地,脸上沾着纸屑,女主转身昂首离开,红裙裙摆飘动
音效:华丽又带张力的背景音,契约撕碎的声响,宾客轻微的窃窃私语声
时长:精准15秒

镜头顺序分镜法(多分镜叙事 / 短剧)

顺序使用 镜头1 / 镜头2 / 镜头3 …(2.0 上禁止写绝对秒数;2.5 上可给每镜括注秒数区间)。每镜按 运镜方式 → 主体动作与表情 → 位置/空间变化 → 音频信息 四要素组织,一镜一运镜。完整骨架与示例见 2.6 路径 B 三段论。

镜头1:中景平稳跟拍,<主体1> 走到门口停顿、深呼吸,表情略带紧张,伴随轻微脚步声。
镜头2:切室内中景,<主体1> 推门进入,舍友抬头看向她,一人笑着问 {考得怎么样呀}。
镜头3:近景特写,<主体1> 先低头落寞、随后抬头憋笑说 {骗你们的},镜头缓慢拉远定格全景。

技术参数指定法

提示词开头明确画面技术规格:

[尺寸]竖屏/横屏 + [画幅比]2.35:1/16:9/9:16 + [帧率]24fps + [时长]Xs + [色调/风格总纲]

禁止项声明(放提示词结尾)

禁止:
- 任何文字、字幕、LOGO或水印
- 不允许出现XXX
- 画面全部片段都不要出现字幕

2.12 词汇库 & 场景策略(参考)

写提示词需要查 具体镜头/风格词、某类场景的套路(电商/广告、AI 漫剧/仙侠、短剧/对白、科普教学、MV/音乐卡点),或 配参考图该用什么画风 时,读 references/vocab-and-scenes.md:

  • 镜头语言词汇库:景别 / 运镜 / 角度 / 节奏 / 焦点 / 特殊转场。
  • 风格词汇库:画面质感 / 影像风格 / 色调氛围 / 艺术风格 / 光影 / 动画风格。
  • 场景类型策略:每类场景的提示词侧重与兜底套路。
  • 图片风格 ↔ 视频主题 对照:防止参考图画风漂移。

2.13 时长策略

单段(2.5:4-30 秒;2.0:4-15 秒)

Seedance 2.5 单次直出上限 30 秒——大多数 30 秒内的叙事一条任务就够,不用再切段。

  • 4-8 秒:产品展示、单个动作、简短特效。聚焦 1-2 个核心画面,无需时间戳。
  • 9-15 秒:完整短场景。可选时间戳分 2-3 段。
  • 16-30 秒(仅 2.5):完整叙事 / 多分镜短剧。强烈推荐分镜法(2.5 时间戳或镜头顺序均可,见 2.11),分 3-9 镜;官方 30s 案例即 9 镜。
  • --duration -1:让模型按内容自选时长,吃不准就用它。

超长(2.5 >30 秒 / 2.0 >15 秒):分段生成 + 视频延长

核心原理:第一段正常生成;后续每段用「视频延长」,把上段视频作为 @视频1 输入,延续生成。2.5 上全链路用 mov(--output-format mov + 输入也是 mov)声画衔接最佳,官方案例 15s 拼接点无痕。

分段规则:

  1. 总时长按叙事节奏切分,每段 ≤ 单段上限(2.5:30s)
  2. 每段之间必须有画面衔接点:上段结尾状态 = 下段开头状态
  3. 第一段正常生成,后续每段提示词以 向后延长@视频1 / 将@视频1延长Xs 开头(触发词必须在)
  4. 每段标注属于整体的第几段、承接什么

总时长建议(以 2.5 为基准):

总时长 推荐分段
≤30 秒 1 段直出(2.5 主场)
31-60 秒 2 段
61-90 秒 3 段
>90 秒 拆成独立场景分别生成,再用剪辑软件拼接

注意区分两种"接续"机制:
- 视频延长(本节):把整段 MP4 当 @视频1,自然延续 → 用 --video flag
- 接龙(尾帧→首帧)(Part 3.2):取上段尾帧当下段首帧 → 用 --return-last-frame + 下段 --image last.png:first_frame

视频延长保留更多语境(整段画面 + 运镜节奏),适合无缝续拍;尾帧接龙更省 token、画面更可控,适合分镜切换式叙事(像分场景的短剧)。


Part 3 — 端到端 workflow

3.1 单段视频(2.5 ≤30 秒)

Step 1: 听用户讲创意意图
Step 2: 按 Part 2 写出一条 Seedance 2.5 中文提示词
Step 3: 决定要用的参考素材(URL / 本地路径)和 ratio/resolution/duration
        (锁定任务省略 --ratio;吃不准时长用 --duration -1)
Step 4: 用 seedance-cli generate 跑(默认阻塞 + 下载,默认模型 2.5)
Step 5: 读 envelope 的 video_path,确认文件存在 + 报元数据给用户

最小例子:

seedance-cli generate \
  -p "镜头跟随黑衣男子快速逃亡..." \
  --ratio 16:9 --resolution 720p --duration 5 \
  --out v.mp4

3.2 连续多段接龙(本 SKILL 主战场)

触发词:"做一段连续故事"、"接着上一段"、"接龙生成"、"多段视频"、"短剧"、"剧情视频"。

产物目录

story/<topic>/
├── clip-1.mp4
├── clip-2.mp4
├── clip-3.mp4
├── last-frame-1.png      ← 自动落盘的接续素材
├── last-frame-2.png
└── final.mp4             ← 拼成的成片

<topic> 取自用户对此次任务的简短命名;没给就根据语义自造一个 kebab-case 词,如 fox-girl-story。

Step 1 — 写分镜(Part 2 的能力)

让用户给 N 段提示词。只给一段总意图时,Claude 先拆成 3-5 段分镜并复述给用户确认,不要直接开生。每段按 Part 2 §2.11 的分镜法写。

Step 2 — 首段

seedance-cli generate \
  -p "<clip-1 prompt,完整自包含>" \
  [--image start.png:first_frame] \
  --return-last-frame \
  --resolution 720p --duration 10 \
  --out story/<topic>/clip-1.mp4 \
  --out-last-frame story/<topic>/last-frame-1.png

读 stdout envelope 拿 lastframepath。

--resolution --duration 跨段保持不变,改了会拼接撕裂。首段无图可传 --ratio;续段带首帧图后 2.5 比例锁定跟随图,续段不要传 --ratio(首段产物的比例已经定调,链条自然一致)。

Step 3 — 续段(循环 i = 2…N)

seedance-cli generate \
  -p "<clip-i prompt,必须完整重述视觉要素>" \
  --image story/<topic>/last-frame-{i-1}.png:first_frame \
  --return-last-frame \
  --resolution 720p --duration 10 \
  --out story/<topic>/clip-{i}.mp4 \
  --out-last-frame story/<topic>/last-frame-{i}.png

Step 4 — 跨段一致性提示词模板

照下面 4 段模板填充,然后展开成自然语言(去掉 [...] 标签):

[本段动作]:<这一段主体在做什么>
[延续上段]:<上一段最后的状态 - 主体姿态/场景/光线,必须复述,模型不读上下文>
[配色与风格]:<跨段稳定的视觉调性>
[镜头与节奏]:<本段镜头运动>

不要写 "like before but..." / "保持上一段不变,只改 X"——模型没有上下文,它不懂"上一段"。每段 prompt 必须完整自包含。

Step 5 — 拼接

所有段都成功后,给用户一行 ffmpeg:

ffmpeg -f concat -safe 0 \
  -i <(for f in story/<topic>/clip-*.mp4; do echo "file '$PWD/$f'"; done) \
  -c copy story/<topic>/final.mp4

不满意时只重生有问题的那段 + 后续所有段(链断了)。

必须做 / 必须不做(接龙)

  • ✅ 每段 prompt 完整自包含 - 模型不读对话上下文
  • ✅ --resolution --duration 跨段保持;比例由首段定调后续跟随
  • ✅ 每段成功后告诉用户「clip-i 已落盘,下一段将以本段尾帧续接」
  • ❌ 中间段省 --return-last-frame / --out-last-frame,链就断了
  • ❌ 没拿到尾帧的情况下凭脑补写下一段 prompt
  • ❌ 跨段换模型 / 换分辨率
  • ❌ 续段传 --ratio(2.5 首帧任务比例锁定,传了被拦截)
  • ❌ 上来就多段 - 2.5 单段能直出 30s,先确认真的超 30s 才切段

3.3 视频延长 workflow(语境保留型续拍)

和 §3.2 接龙不同——这里把整段视频作为参考输入,让模型基于完整视频画面延续。2.5 上全链路 mov 声画衔接最佳。视频输入只收 URL——用上一个任务响应里的 video_url(24h 有效、2.5 有 100 次下载上限),不要传本地文件:

# Step 1: 生成第一段,直接选 mov 容器;从 envelope 记下 task_id
seedance-cli generate \
  -p "<base prompt>" \
  --ratio 16:9 --duration 10 --output-format mov \
  --out story/<topic>/clip-1.mov

# Step 2: 从任务响应拿产物 URL(生成时的 envelope 里也有 video_url 字段)
SEG_URL=$(seedance-cli task get <task_id> | python3 -c \
  "import json,sys; print(json.load(sys.stdin)['data']['video_url'])")

# Step 3: 用 URL 喂回;显式 extend 让参数错误同步报
seedance-cli generate \
  -p "向后延长@视频1,0-2秒:接上段结尾画面继续...3-5秒:..." \
  --video "$SEG_URL" \
  --task-type extend --output-format mov \
  --duration 5 \
  --out story/<topic>/clip-1-extended.mov

注意:延长任务比例锁定跟随输入,不要传 --ratio;提示词里必须带触发词(向前/向后延长、延续、续写),否则被判成参考任务;URL 过期(24h)后需重新生成或把产物传到 TOS 再引用。

视频延长 vs 尾帧接龙怎么选:

维度 视频延长(--video) 尾帧接龙(--return-last-frame)
输入信息 整段画面 + 节奏 仅最后一帧
一致性 高(运镜/光影自然续) 中(模型从首帧重新构图)
Token 成本 高(视频输入计入参考成本) 低
适合场景 一镜到底续拍、无缝转场 分镜切换、多场景叙事
Prompt 写法 将@视频1延长Xs。... 完整自包含,复述上段尾态

3.4 视频编辑 workflow

2.5 编辑任务:比例和时长都锁定跟随输入(输出时长≈输入,误差 ≤0.3s),--ratio/--duration 都不要传;显式 --task-type edit 同步校验;建议 mov。

seedance-cli generate \
  -p "将@视频1中的房子外立面墙壁刷成蓝色,天气和光线参考@图片1的雪天" \
  --video "https://.../original.mp4" \
  --image snowy-day.jpg \
  --task-type edit --output-format mov \
  --out edited.mov

或角色替换:

seedance-cli generate \
  -p "@视频1中的女主唱换成@图片1的男主唱,动作完全模仿原视频,不要出现切镜" \
  --video "https://.../original.mp4" \
  --image new-singer.png \
  --task-type edit --output-format mov \
  --out replaced.mov

编辑输入视频建议 ≤20s(更长稳定性下降);可配时间戳限定编辑生效时段:把@视频1中4-6秒男人喝咖啡的动作改为拖地,其余内容不要变化。


Part 4 — 交互指引

当识别到用户有视频生成需求时,按以下流程:

Step 1 — 听创意

用户只需提供主题,例如:

  • "一段仙侠战斗"
  • "奶茶产品广告"
  • "猫咪在月球上跳舞"
  • "一个 30 秒的悬疑短剧"

Step 2 — 确认关键参数

通过提问确认(用户已说清的可跳过):

  1. 时长(必问):

- 短片(4-8 秒) - 中等(9-15 秒) - 长片(16-30 秒,2.5 单段直出) - 超长(>30 秒)→ 进入 §3.2 接龙或 §3.3 延长 workflow - 拿不准 → --duration -1 让模型自选

  1. 比例:16:9 / 9:16 / adaptive(注意:带首帧图/编辑/延长的任务比例锁定跟随输入,无需问)
  2. 参考素材情况:纯文本 / 有图片 / 有视频 / 有音频(2.5 可纯音频) / 全模态
  3. 补充偏好:情绪氛围、镜头风格、用途场景;需要 1080p/4k 则切 -m 2.0

Step 3 — 写/优化提示词

  • 用户给了草稿提示词或多模态素材 → 走 §2.6 提示词优化工作流(判任务类型 → 判复杂度 → 八大要素自检 → 路径 A/B 重写 → 优化问题透明披露)。
  • 用户只讲了创意意图 → 按 Part 2(2.4 任务分类 + 2.5 八大要素 + 2.7 模式库)写 1-2 个不同风格版本供选择(主战场不要超过 3 个)。
  • ≤30 秒:单条直出(简单走路径 A;多分镜叙事走路径 B,2.5 可用时间戳)。
  • >30 秒:按 §3.2 或 §3.3 切段,每段独立提示词(影视化叙事用路径 B 三段论)。

Step 4 — 跑 CLI

按 Part 1 的 seedance-cli generate 跑。默认阻塞 + 下载,不要手拼 curl,不要自己写轮询。

Step 5 — 验证 + 汇报

  • video_path 存在?
  • envelope 里的 duration / resolution / ratio / framespersecond 报给用户
  • 想"看"内容用 ffmpeg 抽帧 + Read(§1.8)

Step 6 — 微调

用户选定后可要求:

  • 调某个时间段的画面
  • 换风格/色调/镜头语言
  • 增减台词/音效描述
  • 调时长或分段

注意事项汇总

  • 所有提示词(视频提示词 + 图片生成提示词)默认中文编写(2.5 台词可按需选 11 语种之一,语种保持统一)
  • 工程指令优先:把形容词堆砌重写成"谁 + 动作 + 场景 + 镜头 + 顺序/时间轴",逐项核对 2.5 八大要素
  • 先判有锁定还是无锁定(2.1 两分法):首帧/首尾帧/编辑/延长任务省略 --ratio,编辑任务省略 --duration;显式 --task-type edit/extend 让错误同步暴露
  • @引用使用官方命名:@图片1、@视频1、@音频1(不是 @img1 之类);素材多时映射清单化
  • Asset ID 屏蔽 / 断句防歧义:严禁裸写 [asset-xxx];@图片N 紧接动词/方位词时改用 <主体N>@图片N 或补名词隔断
  • 编辑 / 延长别写"参考@视频N":直接用 严格编辑 @视频N / 向后延长 @视频N;反之参考任务别混入增删改/延长触发词
  • 多素材时检查每个 @ 对象有没有标清楚,别把图、视频、角色搞混
  • 一镜一运镜:单镜头只指定 1 种运镜方式,禁止推拉摇移叠加
  • 特殊字符规范:BGM ()、音效 <>、台词 {}、字幕 【】(见 2.8);负向控制可用(不要字幕 / 无bgm)
  • 兜底约束包:最终输出挂画质包 + 稳定包 + 水印/Logo 兜底;多人场景必挂双胞胎兜底;动漫/非写实必挂风格锚定
  • 只在关键歧义时打断用户:方位/帧位、任务误判、运镜冲突、主体矛盾这 4 类停下确认;其余缺失自动补全并透明披露
  • 图片风格必须与视频主题契合(防漂移):对照表见 references/vocab-and-scenes.md
  • 描述具体且有画面感,避免抽象模糊;镜头语言和动作描述要有时间顺序;2.5 动作用概括性描述、记忆点才写细节
  • 16 秒以上长视频强烈推荐分镜法(2.5 时间戳/镜头顺序均可,2.0 只认镜头顺序,见 2.11)
  • 音效描述单独成行,与画面分开;控制提示词长度,重点突出;情绪氛围不要忽略
  • 不要绕开 seedance-cli,所有调用走 CLI(envelope/错误路径才统一)
  • 不要假装看到了视频——Claude 看不见视频,要么 ffmpeg 抽帧要么报元数据