用途:输入一篇小说或短故事,输出每个角色的画像、形象提示词、音色提示词,以及角色设定图的版面指令。本工具不出图,只产提示词,出图由下游自行选择模型和画幅。
主要能力:从原文分块扫描角色表,按名字与别名归并、复核同人合并,选出前N位(默认30)生成角色卡,合成cast.json,再校验并渲染为Markdown与report.html。人类可读字段跟随--lang(默认中文),出图与TTS提示词固定英文。
使用方式:脚本位于{baseDir}/scripts/novel-characters.mjs,零依赖,node直接运行。核心命令包括: node {baseDir}/scripts/novel-characters.mjs chunk <book.txt> <workdir> node {baseDir}/scripts/novel-characters.mjs merge <workdir> node {baseDir}/scripts/novel-characters.mjs assemble <workdir> --source <书名> --lang <lang> --out <输出目录>/<书名>-cast.json node {baseDir}/scripts/novel-characters.mjs validate <cast.json> <book.txt> node {baseDir}/scripts/novel-characters.mjs render <cast.json> --md > <书名>-cast.md node {baseDir}/scripts/novel-characters.mjs render <cast.json> --html > report.html 自测可运行node {baseDir}/scripts/selftest.mjs。
适用场景:小说改编前期拆解角色、生成下游绘图与配音所需的提示词素材。若已有novel-outline的outline.json,可通过seed沿用角色名单与分档。
限制:单次上限24块(净覆盖约93万字符),超出会报truncated;校验不可跳过;本工具不产生图片文件,images目录需下游填充后重跑render嵌入;不支持实时编辑交互界面。支持语言不受内置表限制,非zh/en/ja需现场翻译ui字段。