ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

用Claude Code Skill五阶段工作流把网文改编成漫剧剧本

用Claude Code Skill五阶段工作流把网文改编成漫剧剧本 简介面向 Claude Code 的「网文改编漫剧剧本」技能包专为网络小说作者、动漫编剧及 AI 应用开发者打造借助五阶段全自动工作流将长篇网文一键转化为标准漫剧剧本。资源共含 21 个文件、压缩包仅 47KB以 Markdown 文档为主14 个 md辅以 TXT 示例文本、Shell 安装脚本、JSON 项目配置及 License 说明Markdown 文件覆盖设计规格、角色设定、故事大纲、剧情分析与 QC 报告完整呈现从立项问答、世界观构建、三层记忆维护到逐章创作与自检返修的流程。已有 100 人学习或下载过该资源。通过这份技能包读者可获得结构清晰的技能目录、可直接运行的安装脚本、示例小说与改编输出示例以及质量校验报告能快速复现 AI 改编流程为后续动漫制作提供专业、规范的剧本基础对个人创作者和内容团队均有实用参考价值。1. 网文改编漫剧剧本的 Claude Code Skill五阶段到底在解决什么网文改编漫剧剧本这件事以前是靠编剧一章一章读稿、拆对白、排分镜一个三分钟的单集剧本少说折腾半天。这个名为“网文改编漫剧剧本 Claude Code Skill”的项目把整条链路做成了五阶段全自动工作流核心是让 Claude Code 按固定工序把网络小说原文转成可直接进分镜制作的标准漫剧剧本。它不是又一个“帮我写剧本”的提示词而是一套带阶段产物、可回滚、可校验的自动化管线。做漫剧分集编剧、在动画工作流里做剧本前端的团队或者手里有一批网文版权想做内容增值的平台运营都能直接拿去用。真正难的不是让模型写对白而是让它不写小说、写剧本——五阶段的设计目的就是把“镜头语言”这个最玄学的部分拆成可执行的工序。2. 五阶段工作流的内部逻辑把小说语言转成镜头语言的关键拆解2.1 为什么是五阶段而不是一个提示词走到底单次对话直接生成剧本最典型的结果是前面三幕像样后面开始塌——角色视角漂移、旁白混进对白、动作描写变成小说式抒情。原因是漫剧剧本的信息密度远高于文本摘要一次生成需要同时处理人设、情节、节奏、镜头、配音整整五层约束模型很容易顾此失彼。五阶段的核心价值在于把“一次生成”拆成“五次带检查点的生成”。每个阶段只干一件事上一阶段的产出作为下一阶段的输入中间任何一步不对都能单独重跑。这种设计思路其实和常见的 AI 工作流平台一脉相承很多人会先想到用 dify 工作流或 n8n 工作流去串节点但问题在于那些平台更适合处理结构化数据流转而漫剧剧本改编最花力气的是语义理解和格式约束直接在 Claude Code 里用 Skill 封装反而更轻不需要额外部署服务也不依赖网络请求的串联策略。2.2 阶段一企划锁定与原文结构解析第一阶段做的事情是“读进去”。把网文原文片段、主角设定、世界观关键词喂进去输出一份《项目企划锁》——包含角色表、场景表、金句池、世界观约束。这一阶段不急着写任何镜头先把后续四个阶段都要复用的“参考系”钉死。我一般会在阶段一强制输出一个 JSON 结构的角色表示例{ project: 凡人修仙传之XX篇, version: 1.0, characters: [ { name: 林远, aliases: [林师弟, 远哥, 那个外门弟子], role: 男主, voice: 冷静克制偶尔自嘲, appearance: 青衫左眉有疤, constraint: 修为不得越过筑基期 }, { name: 苏婉, aliases: [苏师妹, 小师姐], role: 女主, voice: 语速快喜欢反问, appearance: 红衣佩短剑, constraint: 家族背景暂不揭晓 } ], scenes: [青云宗外门广场, 后山禁地, 坊市地下拍卖行], key_lines: [修行路上最怕的不是敌人是穷。] }这段输出的逻辑是aliases 字段用来解决网文里“一人多名”的问题比如“林远”在原文里有时被叫“林师弟”如果不提前归一后续阶段很容易写乱。voice 字段约束对白风格这是漫剧对白和小说对白最大的分水岭——小说对白可以书面化漫剧对白必须能念出来。constraint 字段是给后续阶段上的锁防止模型写嗨了让角色做出越界动作。2.3 阶段二分幕分场与钩子设计第二阶段把小说章节切成一集漫剧的分幕结构。漫剧和短剧一样吃节奏单集三到五分钟必须有钩子、推进、小高潮、下集悬念四个节点。这个阶段我会用表格来定义一集的结构骨架幕次时间占比内容目标钩子要求第1幕20%承接上集尾抛出新冲突前10秒必须出现新信息第2幕40%角色交锋逐步推进每场戏结束时局面比开场更差第3幕30%小高潮或反转情绪峰值放在第3幕第4幕10%下集悬念抛出未解问题不能收干净分幕的时候最常翻车的点是“忠实还原”和“节奏压缩”打架。网文一章几千字漫剧一集只能装下其中一到两个核心事件。我要求的处理方式是阶段二只允许保留影响主线走向的关键冲突支线人物全部砍掉或合并。所谓“标准漫剧剧本”标准二字就体现在这里——有固定的幕次结构而不是把小说章节原样翻译成分镜。2.4 阶段三到五对白清洗、画面化输出、一致性校验阶段三是对白清洗。小说对白往往带有大量叙述性前缀比如“他冷笑一声说道”漫剧对白不需要这些配音只需要台词本身。清洗规则是保留语气词、拆分长句为短句、补全省略的主语、删除书面连接词。同时把需要角色情绪的部分写成括号内的表演提示示例{ dialogue: [ { character: 林远, line: 我欠你的今天一次还清。, delivery: 压低声音一字一字说 }, { character: 苏婉, line: 还清你拿什么还, delivery: 尾音上挑带着嘲讽 } ] }阶段四是画面化输出这是整条工作流里最考验细节的一步。每个镜头必须包含景别、角度、画面内容、角色动作、表情五个字段缺一个都不行。阶段五是一致性校验跨集检查称呼是否统一、时间线是否冲突、战力是否越级。五阶段走完后输出的剧本要和下面这个 schema 对齐{ episode: 12, total_scenes: 8, estimated_seconds: 240, scenes: [ { scene_id: S0101, location: 青云宗外门广场晨, shots: [ { shot_id: S0101_C01, shot_size: 全景, camera_angle: 俯拍, content: 广场上千名弟子列队林远站在最末排, action: 林远抬头望向山门方向, expression: 平静中带着期待, dialogue: [], voiceover: 修行十二年他终于等到了宗门大比。 } ] } ] }这个 schema 的意义在于为后续制作环节留好接口。漫剧的实际制作通常会把分镜画面交给 comfyui 工作流去生成静帧再把对白交给配音合成所以剧本里每个镜头必须自带画面描述和配音文本不能让人再去二次加工。3. 把工作流装进 SkillSKILL.md、角色与输出格式的落地写法3.1 Skill 的最小目录结构拿到“网文改编漫剧剧本 Claude Code Skill”的 zip 包后解压出来的东西本质上是一个标准 Claude Code Skill 目录。常见做法是放进~/.claude/skills/目录下Claude Code 就会在对应上下文里识别并加载这个技能。解包后你会看到类似这样的结构manju-script-skill/ ├── SKILL.md ├── config.yaml ├── scripts/ │ ├── preprocess_novel.py │ └── validate_script.py └── reference/ ├── shot_size_glossary.md └── dialogue_style_guide.mdSKILL.md 是技能入口也就是 Claude Code 读取的核心指令文件config.yaml 存放可调参数scripts 目录里的两个脚本分别负责输入预处理和产出的校验reference 目录是模型在生成时可以参考的镜头术语表和对话风格指南。注意不要小看 reference 目录的作用。漫剧剧本里“景别”这个词小说作者出身的模型很容易写成“特写”两个字就完事但有了 shot_size_glossary.md它就会知道漫剧常用的是远景、全景、中景、近景、特写五档每个镜头必须明确归到其中一档。3.2 SKILL.md 的分段指令写法SKILL.md 的写法决定了这个技能是“像一个人”还是“像一个工具”。我的经验是把指令分成四段写角色定义、工作流定义、输出格式约束、禁止项。--- name: manju-script-workflow description: 将网文章节改编为标准漫剧剧本的五阶段工作流适用于漫剧分集剧本创作。 --- # 角色 你是一位有五年漫剧编剧经验的总编剧擅长把小说语言转成镜头语言。 # 工作流严格按顺序执行 1. 阶段一解析输入原文输出角色表、场景表、金句池。 2. 阶段二按单集3-5分钟拆解分幕每集必须包含4幕。 3. 阶段三清洗对白拆分长句补全主语删除叙述性前缀。 4. 阶段四根据分幕输出分镜头剧本每镜必须包含景别、角度、画面内容、动作、表情。 5. 阶段五执行一致性校验检查称呼、时间线、战力约束输出完整JSON。 # 输出格式 严格按 config.yaml 中定义的 schema 输出禁止输出 Markdown 表格之外的格式。 # 禁止项 - 禁止保留原文中的文学性修饰词如他眸光一暗。 - 禁止在台词中混入动作描写。 - 禁止跨过阶段直接生成最终剧本。这里的关键是“禁止跨过阶段”。如果模型一次直接给出最终剧本就是偷工减料最后出来的多半是小说缩略版。阶段化指令的意义在于强制模型先做拆解把每个阶段的中间产物暴露出来这样才能在出错时分段回滚而不是重来一遍。3.3 可调参数与配置文件配置文件是把这个 Skill 从“特定项目专用”变成“可复用资产”的关键。config.yaml 里的参数直接决定剧本风格和物理规格episode_seconds: 240 # 单集时长单位秒 max_scenes_per_episode: 10 # 单集最大场景数 min_scenes_per_episode: 6 # 单集最小场景数 dialogue_ratio: 0.65 # 对白占全片比例0.65表示65% voiceover_ratio: 0.15 # 旁白占比上限 default_shot_size: 中景 # 默认景别 allowed_shot_sizes: [远景, 全景, 中景, 近景, 特写] character_sheet_path: reference/characters.jsondialogue_ratio 参数是漫剧剧本里最需要反复调的一项。做甜宠题材时对白可以拉到 70% 以上因为观众主要靠对话感受人物关系做玄幻题材时旁白和打斗画面占的比重更大对白比例要降到 55% 左右否则每场打戏都在边打边聊天很出戏。这些参数写进配置文件不同项目复制目录后只改参数即可不用改 SKILL.md 本身。4. 跑通全自动改编流程输入准备、执行命令与核心参数4.1 输入预处理把网文正文变成工作流能吃的格式阶段一之前最容易被忽略的一步是输入清洗。网文原文通常带章节标题、作者的话、读者评论混排等噪声这些都会干扰模型对正文结构的判断。常见的做法是先用一个简单的 Python 脚本把正文切干净只保留纯文本内容和章节标记#!/usr/bin/env python3 import re import json def preprocess_novel(raw_path: str, output_path: str, start_chapter: int 1, end_chapter: int 5): with open(raw_path, r, encodingutf-8) as f: raw_text f.read() # 按章节目录切分兼容常见网文章节标题格式 chapter_pattern re.compile(r第[0-9一二三四五六七八九十百千]章[^\n]*) matches list(chapter_pattern.finditer(raw_text)) chapters [] for i in range(start_chapter - 1, min(end_chapter, len(matches))): chapter_start matches[i].start() chapter_end matches[i 1].start() if i 1 len(matches) else len(raw_text) chapter_title matches[i].group().strip() body raw_text[chapter_start:chapter_end] # 去掉作者的话、括号注释等不需要的内容 body re.sub(r.*?|\(.*?\), , body) body re.sub(r\n{3,}, \n\n, body).strip() chapters.append({ chapter_index: i 1, title: chapter_title, content: body }) with open(output_path, w, encodingutf-8) as f: json.dump({chapters: chapters}, f, ensure_asciiFalse, indent2) print(f预处理完成共提取 {len(chapters)} 章输出到 {output_path}) if __name__ __main__: preprocess_novel(assets/novel.txt, data/input.json, start_chapter1, end_chapter3)这个脚本做的事情是按章节标题切分原文、删除括号内的注释和多余空行、输出结构化 JSON。start_chapter 和 end_chapter 参数控制一次改编的章节范围——漫剧项目通常是按“一集对应一到三章”的密度规划所以预处理阶段先切好范围能避免模型在超长输入里丢失前文约束。注意这里没有做任何语义改写只是物理切割真正的语义处理全部由 Skill 在五阶段里完成。4.2 执行工作流与阶段产物检查输入文件准备好后在 Claude Code 会话里调用这个 Skill 的方式很直接在项目目录下输入使用 manju-script-workflow 技能将 data/input.json 改编为漫剧剧本输出到 output/ep001/Claude Code 会按照 SKILL.md 里定义的流程开始执行。执行过程中需要盯的不是最终剧本而是每个阶段的中间产物。我一般会先检查阶段一的角色表是否和前文设定一致再检查阶段二的分幕是否超过单集时长上限。阶段产物的检查可以直接看文件cat output/ep001/stage1_characters.json cat output/ep001/stage2_scenes.json cat output/ep001/final_script.json一旦发现角色表里出现了原文没有的人物或者分幕时出现了第五幕就要回到对应阶段重新生成。这套“中间产物可见”的设计是五阶段工作流比单次提示词强的地方模型在黑匣子里跑完了全程和跑两步看一眼对人工介入的成本差异是数量级的。4.3 核心参数怎么设时长、场景数、对白密度参数的设置不是拍脑袋而是和漫剧制作的下游环节强相关。我整理了一份常用参数参考参数甜宠/日常向玄幻/打斗向悬疑/剧情向episode_seconds240300240max_scenes_per_episode6108dialogue_ratio0.70.550.6voiceover_ratio0.10.20.15默认景别近景全景中景特别说明一下 episode_seconds 和实际字数之间的关系。漫剧的配音语速大约是每分钟 180 到 220 字所以三分钟一集的对白量大致在 540 到 660 字旁白再占 100 字左右。如果模型输出的对白总量超过 900 字基本可以确定会超时。场景数的设定和制作成本直接挂钩。一个场景意味着至少一套背景、一组人物立绘、可能还有场景内的光影效果。预算有限的团队把 max_scenes_per_episode 压在 6 以内每集只保留核心冲突场景预算充足的动画工作室可以把数值放到 10追求画面丰富度。这些参数既然进了 config.yaml就说明换项目时不需要动技能逻辑只改配置就行。5. 避坑五阶段全自动漫剧剧本工作流最容易翻车的 4 个位置5.1 现象同一角色在第三集突然换了称呼跑一个多集项目时第二集出场叫“林远”的角色到第三集变成了“林大宗主”再往后变成“那个男人”。原因阶段一输出的 aliases 字段没被后续阶段引用模型在长上下文里丢失了对角色本名的约束。解决阶段一的角色表必须写入 SKILL.md 的固定引用路径。每次进入阶段二之前先重读reference/characters.json并加入一条“当前集所有角色必须使用本名已登记别名禁止自创称呼”的硬约束。我在实践里发现这一步能消除九成以上的称呼混乱问题。5.2 现象每个镜头都是“特写”画面没有层次生成的剧本里十个镜头有八个是“人物脸部特写”全景和中景几乎没有。原因模型对漫剧的镜头语言没有概念默认匹配了小说里“表情细节描写”的惯性。文学作品可以用几十个字描写一个人物的微表情但漫剧画面需要信息量大的景别来交代空间关系和动作路径。解决在阶段四的输入中注入镜头术语表并强制要求每场戏至少有一个全景或中景作为“空间锚”。check 脚本里会给每个场景的景别分布做统计如果一场戏里近景和特写占比超过 70%就自动打回重写。这条规则比任何口头强调都好用因为它把玄学的“镜头感”变成了可量化的指标。5.3 现象对白念出来像朗读课文看着文本觉得没问题但让配音演员照着试读句子长到一口气念不完书面连接词密集分布。原因阶段三的对白清洗没有真正执行模型输出的台词本质上仍是从小说原文里摘出来的。书面语和口语的差异从来不是词汇层面的是节奏和呼吸层面的。解决在阶段三之后加一个“朗读测试”步骤让 Claude Code 把每句台词按标点切分检查单句是否超过 15 个字超过的强制拆分。同时输出台词时在括号内标注气息要求比如“停顿”“换气”。这种处理方式听起来不高级但确实能把 AI 剧本里的翻译腔压下去一大截。5.4 现象第 1 集到第 10 集的时间线自相矛盾第一集里主角还是练气三层第五集打斗时突然用出了筑基期才有的御剑术。原因是阶段一的世界观约束只在单次会话里生效多集项目开启新会话后前文的设定已经不在上下文窗口里了。解决每集开跑前强制加载上一集产出的stage5_consistency_report.json里面记录了本集结束时所有角色的能力状态、道具归属、地理方位。新会话从这份“状态快照”开始而不是从原文重新理解。如果项目切换到新会话时没有加载快照宁可重新跑一遍阶段一也不要直接续写。6. 最后一道工序写个校验脚本把自动产出变成可交片五阶段跑完不等于成品能用。用自动化的方式再卡一道墙把所有硬性错误挡在交片之前才是这个工作流的完整闭环。我在实际项目里会写一个简单的校验脚本检查格式完整性、镜头分布、对白比例和角色一致性。下面是一个可抄的版本#!/usr/bin/env python3 import json import sys def validate_script(path: str): with open(path, r, encodingutf-8) as f: data json.load(f) errors [] total_dialogue_chars 0 total_shots 0 size_count {全景: 0, 中景: 0, 近景: 0, 特写: 0} for scene in data.get(scenes, []): for shot in scene.get(shots, []): total_shots 1 shot_size shot.get(shot_size, ) if 全景 in shot_size or 远景 in shot_size: size_count[全景] 1 elif 中景 in shot_size: size_count[中景] 1 elif 近景 in shot_size: size_count[近景] 1 elif 特写 in shot_size: size_count[特写] 1 else: errors.append(f{shot.get(shot_id)} 缺少合法景别: {shot_size}) # 检查镜头内容是否为空 if not shot.get(content, ).strip(): errors.append(f{shot.get(shot_id)} 画面内容为空) for d in shot.get(dialogue, []): total_dialogue_chars len(d.get(line, )) # 对白占比检查以总字符数估算 total_all_chars len(json.dumps(data, ensure_asciiFalse)) dialogue_ratio total_dialogue_chars / total_all_chars if total_all_chars 0 else 0 if dialogue_ratio 0.3 or dialogue_ratio 0.8: errors.append(f对白占比异常: {dialogue_ratio:.2f}) # 检查每场戏是否有多景别 for scene in data.get(scenes, []): scene_shots scene.get(shots, []) if scene_shots and size_count[全景] 0: errors.append(f场景 {scene.get(scene_id)} 缺少全景或远景镜头) if errors: print(校验未通过以下问题需要修复:) for err in errors: print(f - {err}) sys.exit(1) else: print(f校验通过: {total_shots} 个镜头对白占比 {dialogue_ratio:.2f}) sys.exit(0) if __name__ __main__: validate_script(output/ep001/final_script.json)这段脚本的校验逻辑很朴素景别是否存在于白名单、镜头内容是否为空、对白占比是否在合理区间、每场戏是否有多景别。它会拦截掉一批模型自己发现不了的格式问题。我以前批改 AI 剧本全靠肉眼后来把这套脚本接进工作流低级错误基本都能在交片前拦下来。一个自动改编工作流能不能长期用靠的不是模型聪明而是你有没有一套让产出保持稳定下限的校验机制。这条希望对你正在搭的 ai 漫剧工作流也有帮助。本文还有配套的精品资源点击获取
返回列表