Skip to main content

novel-to-video

文学作品到影视视频的自然语言工作流;生成链路统一使用 changdu CLI。支持漫剧和真人剧两种模式。

Zur Installation springen

Quellinformationen

Repository
bolecodex/changdu-skills
Letzte Quellaktivität
23. April 2026 um 02:03
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
6
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
novel-to-video
description
文学作品到影视视频的自然语言工作流;生成链路统一使用 changdu CLI。支持漫剧和真人剧两种模式。
# 文学作品到影视视频工作流(changdu 版) ## 核心任务 将小说/故事/剧本转换为完整视频,严格按技能链路执行,不跳步。 ## 必须学习的技能 - `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` 执行。 ## 工作流(严格顺序) ### 步骤 1-4:通用(两种模式相同) 1. **读取文本**:使用 `novel-reader` 提取角色、场景、道具。 2. **文字分镜**:使用 `text-storyboard` 输出 `单集制作/EPXXX/文字分镜.txt`。 3. **生成角色图**(Seedance 2.0 最佳实践): - 每个角色生成**面部特写**(大头照)+ **全身像**两张独立图片 - **禁止使用三视图/多视图**作为人物参考(FAQ V-1/V-7:会导致ID漂移和双胞胎) - 面部特写应占画面80%以上,避免过多背景干扰 - 执行 `changdu text2image ... --output 角色/角色名_face.jpg` - 执行 `changdu text2image ... --output 角色/角色名_fullbody.jpg` #### 步骤 3.5:生成角色音色参考视频 为每个有台词的角色生成一段 5 秒的音色参考视频,用于后续所有 clip 的音色锚定: ```bash changdu multimodal2video \ --image 角色/<角色名>_face.jpg --image 角色/<角色名>_fullbody.jpg \ --prompt "将图片1中的[2-3个核心特征]定义为[角色名]。图片2为[角色名]全身参考。[风格声明]。[角色名]缓缓转身,从正面到侧面再到背面,展示全身形象。她开口说道{[代表性台词]},[音色特征描述]。保持无字幕,避免画面生成字幕,不要水印,不要logo。" \ --ratio 16:9 --duration 5 --wait \ --output 角色/<角色名>_voice_ref.mp4 ``` **要点**: - 台词选取该角色在剧中的代表性台词(1-2 句即可) - `--duration 5` 足够包含转身 + 说话 - 视频用于提取音色特征,同时也可作为角色形象参考 - 生成后上传到 TOS 获取 URL,记录到 `assets.json` 的 `voice_ref_url` 字段 ```bash changdu upload-tos --file 角色/<角色名>_voice_ref.mp4 ``` #### 步骤 3.6:生成妆造变化的参考资产 如果 `novel-reader` 提取到角色在剧中有妆造变化(换装、变妆、受伤等),需要为每种不同的妆造分别生成完整的参考资产: ```bash # 为角色的某个特定妆造生成面部特写 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 ``` **要点**: - 每种妆造都需要独立的 face + fullbody + voice_ref 三件套 - 在 `assets.json` 中用 `looks` 数组管理,标注每种妆造适用的集数/场号 - 生成 clip 时,根据当前集数选择正确的妆造参考图传入 `--image` - 在 prompt 的主体定义行中标注当前使用的妆造,如「图片1为[角色名]([妆造名]造型)面部参考」 在 `assets.json` 中记录: ```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>" } ] } } } ``` 4. **生成场景图**: - 先产出对应 `*.prompt.txt` - 再执行 `changdu text2image ... --output 场景/xxx.jpg` #### 步骤 4.5:生成场景360度参考视频 为每个主要场景生成一段 5 秒的360度缓慢旋转视频,展示完整空间布局。此视频在后续 clip 生成时作为 `--ref-video` 传入,帮助模型理解空间关系和人物站位: ```bash changdu multimodal2video \ --image 场景/<场景名>.jpg \ --prompt "[风格声明]。镜头在[场景名]内做360度缓慢环绕旋转,依次展示[关键物品A]位置、[关键物品B]、[关键物品C]、[入口/出口位置]。镜头运动平稳流畅,展示完整的空间布局和物品摆放位置。保持无字幕,不要水印,不要logo。" \ --ratio 16:9 --duration 5 --wait \ --output 场景/<场景名>_360.mp4 ``` **要点**: - 以场景参考图为输入,生成环绕展示全空间的视频 - prompt 中明确描述空间中的关键物品和它们的相对位置 - `--duration 5` 足够展示一个完整的环绕旋转 - 生成后上传到 TOS 获取 URL,在 clip 生成时通过 `--ref-video` 传入 - 在 clip 的 prompt 中加入「参考视频N中的场景空间布局,保持人物站位一致」 ```bash changdu upload-tos --file 场景/<场景名>_360.mp4 ``` 在 `assets.json` 中记录场景视频: ```json { "scenes": { "<场景名>": { "image": "场景/<场景名>.jpg", "video_360": "场景/<场景名>_360.mp4", "video_360_url": "<TOS_URL>" } } } ``` 5. **生成道具参考图**: - 从 novel-reader 提取的道具信息中,为每个重要道具生成参考图 - 道具图要求:纯白背景、清晰展示道具外观(形状、颜色、材质、尺寸)、多角度(正面+侧面) - 执行 `changdu text2image ... --output 道具/xxx.jpg` ```bash changdu text2image \ --prompt "纯白背景,产品展示图。[道具外观描述:形状、颜色、材质、尺寸、独特标记]。正面和侧面两个角度展示,无文字无水印。" \ --resolution_type 2k \ --output 道具/<道具名>.jpg ``` **要点**: - 道具图必须是纯白背景、清晰的产品展示风格 - prompt 中写清道具的形状、颜色、材质、尺寸、独特标记等视觉细节 - 在后续 clip 的 prompt 中,用 `道具名@图片N` 绑定 - 记录到 `assets.json` 的 `props` 字段 ```json { "props": { "<道具名>": { "image": "道具/<道具名>.jpg", "description": "[道具外观描述]" } } } ``` ### 步骤 5:校验资产 确认以下资产都已生成,否则禁止进入视频阶段: - 每个角色的面部特写 + 全身像 + 音色参考视频 - 有妆造变化的角色:每个妆造的面部特写 + 全身像 + 音色参考视频 - 每个主要场景的参考图 + 360度旋转视频 - 每个重要道具的参考图 ### 步骤 5.5:【仅真人剧】素材入库 将角色和场景图片入库到 Assets: ```bash # 创建素材组 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,后续视频生成时使用。 ### 步骤 6:生成每个 clip(顺序生成,尾帧衔接) 调用 `storyboard-to-seedance-prompt` 产出 `视频_ClipXXX.prompt.txt`。 #### 步骤 6.5:提示词优化(生成前质量把关) 在生成视频之前,先用 `prompt-optimize` 对所有 prompt 文件进行预检和自动优化: ```bash # 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 提示词指南,自动检查并修复: - 缺失的主体定义(应使用「将图片N中的X定义为主体」格式) - 精确时间戳标记(Seedance 2.0对精确时间支持不稳定,应用自然语言过渡) - 三视图/多视图引用(不建议使用,应改用面部特写+全身照) - 抽象情绪词(应替换为具体身体信号) - 运镜堆叠(15秒内不超过3种运镜) - 高强度动作词(Seedance 偏好缓慢连续动作) - 缺失的范围边界声明(防止叙事泄漏) - 弱字幕/水印约束(应使用「保持无字幕,避免画面生成字幕,不要水印,不要logo」) - 缺失的动作过渡词(紧接着/随后/顺势) - 冗余的自定义meta标签(过多会干扰模型理解) - 特殊字符 `--`(Seedance不解析该符号之后的内容) **关键原则**:视频必须按 Clip 顺序逐个生成,前一个 clip 的尾帧自动作为下一个 clip 的首帧,保证角色和场景的连贯性。 #### 推荐方式:`sequential-generate` 一键命令 **漫剧模式**(传图片文件 + 音色参考 + 场景视频): ```bash 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/ ``` **真人剧模式**(传图片 + 场景视频 + 音色参考): ```bash 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 中分别说明每个视频的语义角色。 该命令自动完成: 1. 扫描目录内 `视频_ClipXXX.prompt.txt` 文件(按编号排序) 2. 按顺序逐个生成,每个 clip 启用 `return_last_frame` 3. 将前一 clip 的尾帧 URL 作为下一 clip 的 `first_frame_url` 4. 可选从前一视频中抽取关键帧作为额外参考(默认开启) 5. `--ref-audio` 会自动附加到每个 clip 的 `reference_audio`,保持全集音色一致 #### 手动方式(按需单个生成) ```bash # 第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> ``` ### 步骤 7:拼接成片 使用 `clip-concat` 拼接全部 clip,推荐 `--audio-fadein 0.3` 消除 Seedance 启动底噪同时保留原声(台词、音效): ```bash changdu clip-concat \ --input-dir ./单集制作/EP001/ \ --output ./单集制作/EP001/完整版.mp4 \ --audio-fadein 0.3 ``` > **注意**:不要使用 `--strip-audio`,否则会丢失 Seedance 生成的角色台词和音效。仅在后期需要全量配音配乐时才使用 `--strip-audio`。 ### 步骤 7.5:连贯性审查与修复 调用 `video-review` 技能对视频进行审查。**穿帮修复 = 修改 prompt + Seedance 重新生成**,不使用 FFmpeg 调色/转场。 1. **提取关键帧**:对每个 clip 提取首帧/中帧/尾帧到 `analysis/` 目录 2. **识别穿帮**:逐帧对比相邻 clip 衔接处,检查角色外貌、道具、场景一致性 3. **修复**(只有两种方式): - **REGEN**:修改 prompt 强化约束块 → `changdu clip-regen` 用 Seedance 重新生成 - **TRIM**:叙事泄漏 → `changdu clip-trim --trim-tail Xs` 裁剪 4. **重新拼接** → `changdu clip-concat` ```bash # 穿帮修复:修改 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 ``` ## Seedance 2.0 提示词最佳实践 基于官方提示词指南和 FAQ,撰写视频提示词时遵循以下规则:
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen