novel-to-video
文学作品到影视视频的自然语言工作流;生成链路统一使用 changdu CLI。支持漫剧和真人剧两种模式。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
文学作品到影视视频的自然语言工作流;生成链路统一使用 changdu CLI。支持漫剧和真人剧两种模式。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
多段视频拼接的后期工艺指南——audio-fadein(消除 Seedance 启动底噪)、crossfade(视频/音频淡变)、loudnorm(音量归一化)。当用户拼完多个 clip 但效果不连贯(音量跳、画面跳、底噪嗡嗡声)时调用,对应 changdu clip-concat 命令。
动漫武打短剧(≤30s)专项 prompt 写作与生成工作流。当需要做日漫/国漫风格的短打戏、追逐戏、对决戏,且要求段间动作与镜头无缝衔接时调用。配套使用 changdu sequential-generate(continuity-mode auto)+ clip-concat(--audio-fadein 消除底噪,crossfade + loudnorm 可选)。
生成服务于叙事与角色内核的角色设计图,16:9横版三视图模式。反模板反套路,让角色有记忆点和辨识度。
Intelligent long text novel reader with smart content filtering and detailed asset extraction. Invoke when user wants to read or analyze long novels. Automatically skips irrelevant content and extracts detailed character/item/scene information.
将文字分镜逐条强化为 Seedance 2.0 视频提示词。已完成文字分镜且需要落地为可执行视频提示词时调用。
文字分镜:从剧本到画面的翻译层,将抽象文学作品转化为具象视听描述。当用户需要将小说或剧本转换为文字分镜时调用。
| name | novel-to-video |
| description | 文学作品到影视视频的自然语言工作流;生成链路统一使用 changdu CLI。支持漫剧和真人剧两种模式。 |
将小说/故事/剧本转换为完整视频,严格按技能链路执行,不跳步。
novel-reader:读取与提取角色/场景/道具text-storyboard:生成文字分镜generate-film-video-prompt:补强视频提示词storyboard-to-seedance-prompt:分镜转视频提示词(含防穿帮约束规则)character-design:角色设计提示词jimeng-skill:统一生成入口(内部统一走 changdu CLI)asset-management:素材资产管理(真人剧必需)video-review:连贯性审查与修复(步骤 7.5)开始前先与用户确认制作模式:
| 模式 | 画风 | 视频生成方式 | 适用场景 |
|---|---|---|---|
| 漫剧模式 | 赛璐璐/动漫/非写实 | --image 传入参考图 | 动漫风格短剧 |
| 真人剧模式 | 写实/3D写实 | --asset 传入入库素材 | 真人风格短剧 |
16:9)和制作模式。asset-management 技能将素材入库。changdu 执行。novel-reader 提取角色、场景、道具。text-storyboard 输出 单集制作/EPXXX/文字分镜.txt。changdu text2image ... --output 角色/角色名_face.jpgchangdu text2image ... --output 角色/角色名_fullbody.jpg为每个有台词的角色生成一段 5 秒的音色参考视频,用于后续所有 clip 的音色锚定:
changdu multimodal2video \
--image 角色/<角色名>_face.jpg --image 角色/<角色名>_fullbody.jpg \
--prompt "将图片1中的[2-3个核心特征]定义为[角色名]。图片2为[角色名]全身参考。[风格声明]。[角色名]缓缓转身,从正面到侧面再到背面,展示全身形象。她开口说道{[代表性台词]},[音色特征描述]。保持无字幕,避免画面生成字幕,不要水印,不要logo。" \
--ratio 16:9 --duration 5 --wait \
--output 角色/<角色名>_voice_ref.mp4
要点:
--duration 5 足够包含转身 + 说话assets.json 的 voice_ref_url 字段changdu upload-tos --file 角色/<角色名>_voice_ref.mp4
如果 novel-reader 提取到角色在剧中有妆造变化(换装、变妆、受伤等),需要为每种不同的妆造分别生成完整的参考资产:
# 为角色的某个特定妆造生成面部特写
changdu text2image \
--prompt "[角色基础外貌描述],[该妆造的具体变化描述],面部特写,纯白背景" \
--resolution_type 2k \
--output 角色/<角色名>_<妆造名>_face.jpg
# 生成该妆造的全身像
changdu text2image \
--prompt "[角色基础外貌描述],[该妆造的具体变化描述],全身站姿,纯白背景" \
--resolution_type 2k \
--output 角色/<角色名>_<妆造名>_fullbody.jpg
# 生成该妆造的音色参考视频
changdu multimodal2video \
--image 角色/<角色名>_<妆造名>_face.jpg --image 角色/<角色名>_<妆造名>_fullbody.jpg \
--prompt "将图片1中的[核心特征]定义为[角色名]。图片2为全身参考。[风格声明]。[角色名]缓缓转身展示全身形象,开口说道{[代表性台词]}。保持无字幕,不要水印,不要logo。" \
--ratio 16:9 --duration 5 --wait \
--output 角色/<角色名>_<妆造名>_voice_ref.mp4
要点:
assets.json 中用 looks 数组管理,标注每种妆造适用的集数/场号--image在 assets.json 中记录:
{
"characters": {
"<角色名>": {
"default_look": {
"face_file": "角色/<角色名>_face.jpg",
"fullbody_file": "角色/<角色名>_fullbody.jpg",
"voice_ref_video": "角色/<角色名>_voice_ref.mp4",
"voice_ref_url": "<TOS_URL>"
},
"looks": [
{
"name": "<妆造名称>",
"episodes": ["EP005-EP008"],
"description": "<外观变化描述>",
"face_file": "角色/<角色名>_<妆造名>_face.jpg",
"fullbody_file": "角色/<角色名>_<妆造名>_fullbody.jpg",
"voice_ref_video": "角色/<角色名>_<妆造名>_voice_ref.mp4",
"voice_ref_url": "<TOS_URL>"
}
]
}
}
}
*.prompt.txtchangdu text2image ... --output 场景/xxx.jpg为每个主要场景生成一段 5 秒的360度缓慢旋转视频,展示完整空间布局。此视频在后续 clip 生成时作为 --ref-video 传入,帮助模型理解空间关系和人物站位:
changdu multimodal2video \
--image 场景/<场景名>.jpg \
--prompt "[风格声明]。镜头在[场景名]内做360度缓慢环绕旋转,依次展示[关键物品A]位置、[关键物品B]、[关键物品C]、[入口/出口位置]。镜头运动平稳流畅,展示完整的空间布局和物品摆放位置。保持无字幕,不要水印,不要logo。" \
--ratio 16:9 --duration 5 --wait \
--output 场景/<场景名>_360.mp4
要点:
--duration 5 足够展示一个完整的环绕旋转--ref-video 传入changdu upload-tos --file 场景/<场景名>_360.mp4
在 assets.json 中记录场景视频:
{
"scenes": {
"<场景名>": {
"image": "场景/<场景名>.jpg",
"video_360": "场景/<场景名>_360.mp4",
"video_360_url": "<TOS_URL>"
}
}
}
changdu text2image ... --output 道具/xxx.jpgchangdu text2image \
--prompt "纯白背景,产品展示图。[道具外观描述:形状、颜色、材质、尺寸、独特标记]。正面和侧面两个角度展示,无文字无水印。" \
--resolution_type 2k \
--output 道具/<道具名>.jpg
要点:
道具名@图片N 绑定assets.json 的 props 字段{
"props": {
"<道具名>": {
"image": "道具/<道具名>.jpg",
"description": "[道具外观描述]"
}
}
}
确认以下资产都已生成,否则禁止进入视频阶段:
将角色和场景图片入库到 Assets:
# 创建素材组
changdu asset-group-create --name "项目名-角色组"
# 入库每个角色(面部特写和妆造分开上传)
changdu asset-create --file ./角色/女主_面部.jpg --group-id <组ID> --type Image --name "女主-面部"
changdu asset-create --file ./角色/女主_三视图.jpg --group-id <组ID> --type Image --name "女主-妆造"
# 入库场景
changdu asset-create --file ./场景/会议室.jpg --group-id <组ID> --type Image --name "会议室"
记录每个素材的 Asset ID,后续视频生成时使用。
调用 storyboard-to-seedance-prompt 产出 视频_ClipXXX.prompt.txt。
在生成视频之前,先用 prompt-optimize 对所有 prompt 文件进行预检和自动优化:
# 1) 检查模式:扫描结构/画质/运镜/动作问题
changdu prompt-optimize --dir ./单集制作/EP001/ --check
# 2) 自动优化:追加画质约束、面部稳定、范围边界(输出到新目录确认无误后覆盖)
changdu prompt-optimize --dir ./单集制作/EP001/ --output-dir ./单集制作/EP001/optimized/ --style '电影写实'
# 3) 确认无误后用优化版替换原文件
cp ./单集制作/EP001/optimized/*.prompt.txt ./单集制作/EP001/
prompt-optimize 基于 Seedance 2.0 提示词指南,自动检查并修复:
--(Seedance不解析该符号之后的内容)关键原则:视频必须按 Clip 顺序逐个生成,前一个 clip 的尾帧自动作为下一个 clip 的首帧,保证角色和场景的连贯性。
sequential-generate 一键命令漫剧模式(传图片文件 + 音色参考 + 场景视频):
changdu sequential-generate \
--prompt-dir ./单集制作/EP001/ \
--image 角色/女主_face.jpg --image 角色/女主_fullbody.jpg --image 场景/会议室.jpg \
--ref-video <会议室_360_TOS_URL> \
--ref-audio <女主_voice_ref_TOS_URL> \
--ratio 16:9 --duration 15 \
--prompt-header "将图片1中的[特征]定义为女主。图片2为女主全身参考。图片3为场景参考。参考视频1中的场景空间布局,保持人物站位一致。" \
--output-dir ./单集制作/EP001/
真人剧模式(传图片 + 场景视频 + 音色参考):
changdu sequential-generate \
--prompt-dir ./单集制作/EP001/ \
--image 角色/女主_face.jpg --image 角色/女主_fullbody.jpg --image 场景/场景.jpg --image 道具/U盘.jpg \
--ref-video <场景_360_TOS_URL> \
--ref-audio <女主_voice_ref_TOS_URL> \
--ratio 16:9 --duration 15 \
--prompt-header "将图片1中的[特征]定义为女主。图片2为女主全身参考。图片3为场景参考。图片4为U盘道具参考。参考视频1中的场景空间布局,保持人物站位一致。" \
--output-dir ./单集制作/EP001/
音色锚定说明:
--ref-audio传入步骤 3.5 生成的角色音色参考视频的 TOS URL,Seedance 会从中提取音色特征。同时在 prompt 中用采用音频1的[音色特征描述]的音色引用该音频(如"采用音频1的低沉坚韧青年女声的音色"),双重锚定确保音色一致性(参考 Seedance FAQ A-3)。多角色场景可传入多个--ref-audio,在 prompt 中用音频1、音频2分别指代。
场景视频说明:
--ref-video传入步骤 4.5 生成的场景360度旋转视频的 TOS URL。在 prompt 中声明「参考视频N中的场景空间布局,保持人物站位一致」,帮助模型理解空间关系。注意:如果同时使用--ref-video做前段尾段衔接(sequential-generate的continuity-mode ref_video),场景视频和衔接视频会共用--ref-video槽位(最多 3 段),需在 prompt 中分别说明每个视频的语义角色。
该命令自动完成:
视频_ClipXXX.prompt.txt 文件(按编号排序)return_last_framefirst_frame_url--ref-audio 会自动附加到每个 clip 的 reference_audio,保持全集音色一致# 第1个 clip
changdu multimodal2video \
--image 角色/女主.jpg --image 场景/会议室.jpg \
--prompt "图1是女主,图2是场景。$(cat 视频_Clip001.prompt.txt)" \
--ratio 16:9 --duration 15 --wait --output 视频_Clip001.mp4 \
--return-last-frame
# 输出中包含「尾帧URL: https://...」
# 第2个 clip:用上一 clip 的尾帧URL
changdu multimodal2video \
--image 角色/女主.jpg --image 场景/会议室.jpg \
--prompt "图1是女主,图2是场景。$(cat 视频_Clip002.prompt.txt)" \
--ratio 16:9 --duration 15 --wait --output 视频_Clip002.mp4 \
--return-last-frame --first-frame-url <上一clip输出的尾帧URL>
使用 clip-concat 拼接全部 clip,推荐 --audio-fadein 0.3 消除 Seedance 启动底噪同时保留原声(台词、音效):
changdu clip-concat \
--input-dir ./单集制作/EP001/ \
--output ./单集制作/EP001/完整版.mp4 \
--audio-fadein 0.3
注意:不要使用
--strip-audio,否则会丢失 Seedance 生成的角色台词和音效。仅在后期需要全量配音配乐时才使用--strip-audio。
调用 video-review 技能对视频进行审查。穿帮修复 = 修改 prompt + Seedance 重新生成,不使用 FFmpeg 调色/转场。
analysis/ 目录changdu clip-regen 用 Seedance 重新生成changdu clip-trim --trim-tail Xs 裁剪changdu clip-concat# 穿帮修复:修改 prompt 后重新生成第4个 clip
changdu clip-regen \
--clip 4 --prompt-dir ./单集制作/EP001/ \
--asset <角色ID> --asset <场景ID> \
--prompt-header '图片1是男主面部,图片2是场景。' \
--ratio 16:9 --duration 15
# 叙事泄漏:裁剪 clip 尾部
changdu clip-trim \
--input 视频_Clip003.mp4 \
--output 视频_Clip003.mp4 \
--trim-tail 2.0
# 重新拼接
changdu clip-concat \
--input-dir ./单集制作/EP001/ \
--output ./单集制作/EP001/最终版.mp4 \
--audio-fadein 0.3
基于官方提示词指南和 FAQ,撰写视频提示词时遵循以下规则:
每张参考图只承担一种职责,禁止混用:
| 图片职责 | 用途 | 示例 |
|---|---|---|
| 面部特写 | 锁定角色五官ID | 角色_face.jpg,放图片1(最高优先级) |
| 全身妆造 | 锁定服装/体态 | 角色_fullbody.jpg,放图片2 |
| 场景空间 | 锁定环境/空间布局 | 场景.jpg |
| 道具参考 | 锁定道具外观 | 道具/<道具名>.jpg |
| 站位草稿 | 表达人物空间关系 | 站位草稿.jpg(可选) |
禁止将人物图、场景图、站位草稿、道具图混在同一张图片中。空间关系优先通过参考图/参考视频表达,减少复杂文字描述。
将图片1中的[2-3个核心特征]定义为[角色名]。图片2为[角色名]全身参考。图片3为[场景名]场景参考。图片4为[道具名]道具参考(如有)。参考视频1中的场景空间布局,保持人物站位一致(如有场景视频)。
[风格声明,如:电影写实风格 / 日本动漫cel-shaded风格]
[场景描述]。[镜头类型]角色名@图片N[动作],采用音频N的[音色特征]的音色说{台词原文}。紧接着[下一动作]。随后[下一动作]。最后[结束动作]定格。
本段仅展示上述动作,不展示后续剧情。视频全程不要在同一画面中复制相同人物,不要多人同脸。保持无字幕,避免画面生成字幕,不要水印,不要logo,不要BGM。
台词全链路保留:剧本中的角色对白必须经过
text-storyboard(原文保留)→storyboard-to-seedance-prompt(转写为{}格式)完整传递到最终 prompt 中。禁止在任何环节将台词概括为"低语道歉""质问"等动作描述。
角色名@图片N 格式标注(如 女主@图片1),绝不能只写角色名。道具出现时同理(如 信物@图片4)。这是 Seedance 2.0 核心规则{} 包裹台词内容。台词必须从剧本原文完整保留,经过 text-storyboard → storyboard-to-seedance-prompt 全链路不得丢失。示例:剧本 女主低声说:"对不起" → 文字分镜保留原文 → Seedance prompt 写为 女主@图片1低声说{对不起}采用音频N的[音色特征描述]的音色,如 采用音频1的温柔低沉女声的音色说{对不起}。必须包含具体音色特征描述词(低厚温润/清冽有力/沙哑低沉等),不要只写"采用音频N的音色"——加上特征描述能显著提升音色参考准确性(参考 FAQ A-3)(),音效用 <>,字幕用 【】,禁止使用 ----ref-video 传入| 问题 | 防范措施 |
|---|---|
| ID漂移(换脸) | 面部特写单独裁剪作为参考图,放图片1最前面;禁止使用三视图/多视图 |
| 双胞胎 | 不用三视图;每次提及角色时用 @图片N 标注;多角色场景加"不要多人同脸" |
| 参考图混用 | 每张图只承担一种职责(面部/全身/场景/道具),禁止混在一张图中 |
| 风格漂移 | 在提示词开头明确风格,如「2D日漫风格」;参考图先转目标风格再生视频 |
| 生成字幕 | 加「保持无字幕,避免画面生成字幕」;输入图片/视频去除已有文字 |
| 生成水印/logo | 加「不要水印,不要logo」 |
| 音色不准 | 加音色特征描述词(如"低厚温润中年男声");台词风格与参考音频风格一致 |
| 站位漂移 | 用场景360度视频做 --ref-video,prompt 中声明保持站位一致 |
| 道具不一致 | 生成道具参考图,在 prompt 中绑定 道具名@图片N |
项目名/
├── 角色/
│ ├── <角色名>_face.jpg # 面部特写(占画面80%)
│ ├── <角色名>_fullbody.jpg # 全身参考(含服装道具)
│ ├── <角色名>_voice_ref.mp4 # 音色参考视频(5秒,转身+说台词)
│ ├── <角色名>_<妆造名>_face.jpg # 妆造变化:该造型面部特写(如有)
│ ├── <角色名>_<妆造名>_fullbody.jpg # 妆造变化:该造型全身(如有)
│ └── <角色名>_<妆造名>_voice_ref.mp4 # 妆造变化:该造型音色参考(如有)
├── 场景/
│ ├── <场景名>.jpg # 场景参考图
│ └── <场景名>_360.mp4 # 场景360度旋转视频
├── 道具/
│ └── <道具名>.jpg # 道具参考图(纯白背景)
├── assets.json # 记录角色/场景/道具/妆造的完整资产映射
└── 单集制作/
└── EP001/
├── 文字分镜.txt
├── 视频_Clip001.prompt.txt
├── 视频_Clip001.mp4
└── ...
assets.json 中已入库的素材 ID,跳过已入库素材。