Skip to main content

novel-to-video

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

설치로 이동

소스 정보

저장소
bolecodex/changdu-skills
최근 소스 활동
2026년 4월 23일 02:03
감지된 SKILL.md 언어
중국어
스타
6
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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,撰写视频提示词时遵循以下规则:
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기