简介:这份资源是面向网文作者、动漫编剧与AI创作爱好者的Claude Code Skill工具包,用于将长篇网络小说自动化改编为标准漫剧剧本,解决人工改编周期长、风格易走样的问题。压缩包共21个文件,约47KB,以14个md文档为核心,涵盖技能说明、设计规范、人物设定、大纲与质检报告等模块,另含txt示例文本、json项目配置、sh安装脚本及license等辅助文件,结构清晰便于直接调用。目前已有102人学习下载。其核心价值在于内置五阶段全自动工作流:从立项问答确立需求,到世界观与人物规划、三层记忆维护保障连贯性,再到逐章创作与自检定向返修,形成完整闭环。读者可据此快速搭建可复用的改编流程,获得角色卡、分章大纲、质检报告等中间产物模板,并借助脚本一键部署,显著降低从小说到剧本的转换门槛。
1. 网文改编漫剧剧本:为什么五阶段工作流比一把梭更靠谱
手里有几十本完结网文,想批量改成漫剧剧本,最直接的做法是丢给大模型一句「帮我改编成剧本」。我试过,前三千字还行,到第五章人物关系就开始漂移,主角名字能换三个写法,反派动机前后对不上。问题不在模型能力,在于单次调用没有状态管理,上下文一超长就开始丢信息。Claude Code Skill 这套五阶段全自动工作流的思路,是把「改编」拆成五个有明确输入输出的阶段,每个阶段单独调模型、单独校验、单独落盘,用文件系统当记忆,而不是靠一次对话硬扛。它解决的是批量改编时的稳定性和可复现性问题,适合手里有网文 IP、需要快速产出剧本初稿的编剧团队或独立开发者。热搜里 claude code、skill、工作流这几个词能反复出现,本质是大家都在找「怎么让 AI 按固定流程干活」的答案,而不是再要一个聊天框。
2. 五阶段工作流拆解:从小说原文到标准漫剧剧本
2.1 为什么是五个阶段而不是三个
漫剧剧本和小说最大的区别在于:小说靠叙述推进,剧本靠场景和对白推进。中间要完成三次转换——叙事结构转场景结构、心理描写转可表演动作、文学语言转口语对白。如果只分「读小说」和「写剧本」两步,模型要在一次输出里同时完成三次转换,出错概率极高。拆成五个阶段,每个阶段只解决一类转换,模型注意力集中,输出质量明显稳定。
我一般把五个阶段定义为:原文解析、人物与世界观提取、分集大纲生成、场景级剧本生成、格式校验与修正。前两个阶段是「读懂」,中间两个是「转换」,最后一个是「兜底」。每个阶段的输出都是结构化文件,下一阶段只读上一阶段的文件,不依赖对话历史。这样即使中间某个阶段失败,重跑那一个阶段就行,不用从头再来。
2.2 阶段一和阶段二:把小说拆成结构化数据
阶段一的目标是把整本小说切成带元信息的章节块。不要直接把全文塞给模型,先做分章和去噪。常见做法是用正则匹配「第X章」这类标题做切分,然后对每章做一次摘要提取,保留人物、地点、关键事件三个字段。
import re import json def split_novel(text): # 匹配常见章节标题格式,兼容「第1章」「第一章」「Chapter 1」 pattern = r'(第[0-9一二三四五六七八九十百]+章[^\n]*|Chapter\s+\d+[^\n]*)' parts = re.split(pattern, text) chapters = [] # re.split 会把分隔符也放进结果,需要成对处理 for i in range(1, len(parts), 2): title = parts[i].strip() body = parts[i+1].strip() if i+1 < len(parts) else '' if len(body) > 200: # 过滤掉空章或目录残留 chapters.append({'title': title, 'content': body}) return chapters def extract_chapter_meta(chapter, llm_call): prompt = f"""从以下章节中提取信息,输出 JSON: {{"characters": ["出场人物"], "locations": ["地点"], "events": ["关键事件,每条不超过30字"]}} 章节标题:{chapter['title']} 章节内容:{chapter['content'][:3000]}""" return json.loads(llm_call(prompt))这段代码的关键参数是body长度阈值 200,低于这个值的基本是目录页或分隔页,直接丢弃。content[:3000]是截断保护,单章超过三千字的部分对元信息提取贡献很小,但会显著增加 token 消耗。阶段二把阶段一所有章节的元信息汇总,做全局人物去重和关系推断。这里有个坑:同一人物在不同章节可能有不同称呼,比如「林尘」和「林师兄」,需要在阶段二用一次全局调用做别名合并,输出一份人物表,后续所有阶段都引用这份表里的标准名。
2.3 阶段三和阶段四:大纲与场景剧本的生成逻辑
阶段三生成分集大纲,核心约束是「每集必须有钩子」。漫剧单集时长通常在两到三分钟,对应剧本大概 800 到 1200 字。大纲阶段要确定每集覆盖哪些章节、结尾停在哪个情节点。我一般会在大纲 prompt 里加一条硬规则:每集最后一句必须是悬念句或冲突句,不能是描述句。
阶段四把大纲展开成场景剧本。标准漫剧剧本格式是:场景标题行(地点、时间、内/外景)、动作描述、角色名加对白。这个阶段最容易翻车的地方是模型会不自觉写小说式心理描写,比如「他心里一阵苦涩」。解决办法是在 prompt 里明确禁止心理动词,要求所有情绪必须通过动作或对白体现。下面是一个场景生成的 prompt 骨架:
scene_prompt = """根据以下大纲生成漫剧剧本场景,严格遵守格式: 【场景】地点 - 时间 - 内/外景 动作描述(只写镜头能拍到的内容,禁止心理描写) 角色名:对白内容 大纲:{outline} 人物表:{character_table} 要求: 1. 每集拆成 3-5 个场景 2. 对白口语化,单句不超过 25 字 3. 禁止出现「他想」「她感到」这类心理描写 4. 每个场景结尾留一个动作钩子"""参数上,人物表必须传入阶段二的标准名映射,否则模型会自由发挥。对白长度限制 25 字是经验值,超过这个长度在漫剧配音时会出现断句困难。场景数量 3 到 5 个是根据单集 2 到 3 分钟反推的,每个场景大约 40 秒。
2.4 阶段五:格式校验与自动修正
阶段五做两件事:格式合规检查和内容一致性检查。格式检查用正则就能完成,比如对白行是否匹配^[\u4e00-\u9fa5A-Za-z0-9]+:,场景标题行是否以「【场景】」开头。一致性检查需要再调一次模型,把生成的剧本和人物表对比,找出名字不一致、性格突变、时间线矛盾的地方。
def validate_script(script_text, character_table): errors = [] lines = script_text.split('\n') for i, line in enumerate(lines): # 检查对白格式 if ':' in line and not line.startswith('【'): name = line.split(':')[0].strip() if name not in character_table and len(name) < 10: errors.append(f'第{i+1}行:角色「{name}」不在人物表中') # 检查心理描写残留 for banned in ['他想', '她感到', '心中', '暗自']: if banned in line: errors.append(f'第{i+1}行:出现心理描写「{banned}」') return errors这个校验函数返回的错误列表会作为修正阶段的输入,让模型只改错误行,不动其他内容。这样比整篇重写更可控,也省 token。实际跑下来,第一轮生成通常有 5% 到 10% 的行需要修正,主要集中在角色名写错和心理描写残留两类。
3. 在 Claude Code 里把 Skill 跑起来:安装、配置与最小验证
3.1 Claude Code 安装与 Skill 目录结构
Claude Code 的安装方式取决于操作系统。macOS 和 Linux 下常见做法是用 npm 全局安装,Windows 下建议在 WSL 里操作,避免路径分隔符带来的玄学问题。安装完成后,Skill 的存放位置一般在项目根目录的.claude/skills/下,每个 Skill 一个文件夹,里面至少有一个SKILL.md描述文件和若干脚本文件。
# 安装 Claude Code(Node.js 18+ 环境) npm install -g @anthropic-ai/claude-code # 验证安装 claude --version # 在项目根目录创建 Skill 目录 mkdir -p .claude/skills/novel-to-script/scripts目录结构建议按阶段分脚本:stage1_split.py、stage2_extract.py、stage3_outline.py、stage4_scene.py、stage5_validate.py。SKILL.md里写清楚每个阶段的输入输出文件路径和调用顺序,Claude Code 会读这个文件来决定怎么执行。注意不要把 API key 写进 Skill 文件里,用环境变量传入。
3.2 五阶段串联的调度脚本
调度脚本是整个工作流的入口,它按顺序调用五个阶段,每个阶段完成后检查输出文件是否存在且非空,失败就停在那一步并打印日志。这样出问题时能快速定位是哪个阶段挂了。
import os import subprocess import sys STAGES = [ ('stage1_split.py', 'data/chapters.json'), ('stage2_extract.py', 'data/characters.json'), ('stage3_outline.py', 'data/outline.json'), ('stage4_scene.py', 'data/script_draft.md'), ('stage5_validate.py', 'data/script_final.md'), ] def run_pipeline(novel_path): for script, output in STAGES: print(f'[运行] {script}') result = subprocess.run( ['python', f'scripts/{script}', novel_path], capture_output=True, text=True ) if result.returncode != 0: print(f'[失败] {script} 返回码 {result.returncode}') print(result.stderr) sys.exit(1) if not os.path.exists(output) or os.path.getsize(output) == 0: print(f'[失败] {script} 未产出有效文件 {output}') sys.exit(1) print(f'[完成] {output}') if __name__ == '__main__': run_pipeline(sys.argv[1])这个脚本的STAGES列表就是工作流的骨架,改阶段顺序或增删阶段只动这个列表。capture_output=True把子进程的输出捕获下来,失败时打印 stderr,方便排查。实际使用时建议加一个--resume参数,从指定阶段开始跑,避免每次调试都从头来。
3.3 用一本短篇做最小验证
不要一上来就拿百万字长篇跑全流程。先找一本三到五万字的短篇,跑完五个阶段,检查每个阶段的输出文件。重点看三件事:阶段二的人物表是否覆盖了所有主要角色、阶段三的大纲每集结尾是否有钩子、阶段四的剧本里有没有心理描写残留。这三项过了,再换长篇。长篇跑的时候注意阶段一的章节切分,有些网文用「第1节」「卷一」这类非标准标题,需要额外加正则分支。
4. 避坑与排查:五阶段工作流跑不通时先看这几条
4.1 阶段二人物表漏角色
现象:生成的剧本里出现人物表里没有的名字,或者两个角色被合并成一个人。原因通常是阶段一的章节摘要截断太狠,某个角色只在被截掉的部分出场。解决方法是把content[:3000]放宽到 5000,或者在阶段二加一轮「补充扫描」,专门扫阶段一被截断的尾部内容。
4.2 阶段四对白像小说不像剧本
现象:对白里出现「他冷冷地说」这类叙述性前缀,或者对白长度普遍超过 40 字。原因是 prompt 里的禁止项不够具体,模型会打擦边球。解决办法是在 prompt 里加正反例,给两句合格对白和两句不合格对白,模型对示例的敏感度远高于规则描述。
4.3 阶段五校验误报太多
现象:校验脚本把正常的旁白行也标成角色名错误。原因是正则把「旁白:」也当成了角色对白。解决办法是在人物表里显式加入「旁白」这个特殊角色,或者在正则里排除已知的非角色前缀。校验规则宁松勿严,误报太多会让人直接忽略校验结果。
4.4 长篇小说跑一半 token 超限
现象:阶段三或阶段四调用模型时返回上下文超长错误。原因是把整本小说的人物表加全部章节摘要塞进了一个 prompt。解决办法是阶段三按卷或按每 20 章分批生成大纲,阶段四只传入当前集对应的大纲和人物表,不要传全局数据。
4.5 输出文件编码混乱
现象:生成的剧本在 Windows 记事本里打开是乱码。原因是 Python 脚本默认用系统编码写文件,Windows 中文环境是 GBK。解决办法是在所有open()调用里显式指定encoding='utf-8',并且在SKILL.md里注明输出编码。
5. 进阶技巧:让五阶段工作流适配不同网文题材
跑通基础流程后,真正拉开差距的是题材适配。玄幻和都市的对白风格完全不同,用同一套 prompt 出来的剧本会有一股「翻译腔」。我的做法是在阶段四之前加一个「风格注入」步骤,从原文里抽 10 句典型对白作为风格样本,塞进场景生成的 prompt 里。这一步不增加阶段数,只是在阶段四的 prompt 里多传一个style_samples参数。
另一个技巧是给阶段三的大纲加「情绪曲线」约束。漫剧观众对节奏比长剧敏感,每三集必须有一个小高潮。可以在大纲 prompt 里要求模型标注每集的情绪值(1 到 5),然后检查是否出现连续三集低于 3 的情况,有就让它重排。这个检查用代码做,不消耗模型调用。
验证工作流是否真正可用,我一般看两个指标:一是阶段五的修正率,低于 3% 说明前面几个阶段质量稳定;二是人工抽读一集剧本,如果不需要大改就能直接进分镜,说明格式和节奏都到位了。这两个指标比任何自动化评分都实在。
我自己的习惯是每改一次 prompt 就用同一本短篇跑一遍回归,对比修正率变化。有次为了省 token 把阶段二的摘要截断从 3000 降到 1500,修正率直接从 4% 跳到 11%,人物名错得离谱。从那以后我再也不在提取阶段省 token 了,该花的上下文就得花。希望帮到你。
本文还有配套的精品资源,点击获取