事件概述
一位开发者在 掘金社区发布了一篇完整的技术复盘,详细记录了如何构建一套端 到端的 AI 内容生产平台——该平台能够将小说原文转换为短视频(MP4)或漫画( PNG 序列)。整个系统以四次串行的 Claude API 调用为核心,并 在下游对接图像与视频生成服务,全 部逻辑运行于 Next.js 16 Route Handlers 之中, 无需独立的后端服务。
技术栈构成如下:前端采 用 Next.js 16(App Router)、React 19 与 TailwindCSS v4;数据持久化使用 PostgreSQL 配合 Prisma ORM;AI 能力层由 Anthropic Claude 负 责内容分析、编剧与分镜生成;图像生成支持本地部署的 Stable Diffusion 或字节跳动的 Seedream;视频合成则对接 Seedance / Runway / Kling / Flow2API 等多个后端。
为何值得关注
这份实现记录了一类多阶段 LLM 流水线在 prompt 工 程和架构决策层面的具体方案——工程团队正被越来越多地要求构建此 类系统。文中针对性处理的几个典 型故障模式——JSON 修复、SD token 排序、上下文窗口截断、跨集角 色一致性——可以直接迁移到任何顺序式 AI 生成工作流中。
该架构做 出了一个明确的权衡取舍:放弃微服务架构,将所有逻辑集中于 Next.js Route Handlers, 所有长耗时任务通过 SSE 流式推送。这一选择以 牺牲水平扩展能力为代价,换取了更低的运维复杂度。对于正 在评估类似方案的团队而言,这是一个有据可查的生产环境参 考数据点。
角色一致性问题的解决方案尤为值得关注——系
统在系列级别设计了一个 CharacterModel,包
含版本化条目与 isActive 标志位,在所有子项目间共享。这一设计直接应
对了 AI 视觉内容流水线中最常见的失效点之一:生成帧之
间的角色外观漂移。
技术细节
四阶段 Claude 流水线
系统将 Claude 调用拆分为四个独立阶段,并针对不同任务特性选用 不同模型:
- 阶段一——内容分析(
claude-opus-4 -6):提取角色信息,涵盖 8 个必填外貌维度( 脸型、眼型、鼻梁、嘴唇、肤色、体型比例、发型/ 发色、标志性特征),以及场景元数据和情节 节拍。输入文本硬截断至 60,000 字符以防止上下文窗口 溢出,输出结果经jsonrepair库处理,修 复 LLM 生成的 JSON 格式错误(如多余 逗号、括号不匹配等)。 - 阶段二——剧本生成(
claude-opus-4-6):生 成多集剧本,强制采用四幕结构:钩子开场 → 冲突升 级 → 情绪爆发 → 悬念结尾。第一集与最终 集使用独立的 prompt 变体。 - 阶段三——分 镜脚本:视频与漫画采用差异化的 prompt 策略。视频分镜要求每集 12–24 个镜头,每镜头 5 秒( 总时长 60–120 秒),必填字段包括景别、镜头运 动、打光方式和情绪标签。漫画分镜则将格 子尺寸编码为情绪权重(大格 = 情感高 潮,小格 = 快节奏过渡),区分对话气泡与内心 独白气泡,并包含表情类型和音效字段。漫画 prompt 中内置了三个完整示例分格,作 者表示这显著提升了输出格式的稳定性。
- 阶段四——Prompt 翻译(
claude-haiku-4-5):将中文角色/场景描述翻 译为图像生成 prompt——Stable Diffusion 使用英文,Seedream 使用中文 。此阶段明确选用 Haiku 以降低成本和延迟,因为任 务复杂度相对较低。
Stable Diffusion Token 排序
文中记
录了一个针对 SD 的专项修复:性别描述词(1girl,
或 1boy,)被强制置于每条 SD prompt 的最
前端。据作者描述,将性别 token 埋入长
prompt 中间位置会导致生成结果出现性别错
误。这与已知的 SD token 权重机制一致——位置越靠前的
token 影响权重越高。
数据模型
系统采用五层层
级结构:Series → Project/Part → Analysis + Episode + CharacterModel[],其中 Episode 包含 Shot[] 和
MangaPanel[]。scriptContent 字段将完整剧本以 JSON blob
形式存储,而非规范化拆表——这一设计基
于其访问模式决定(始终整体读
取,从不查询单行)。所有异步生成任务使用四状态机:pending /
processing / completed / failed,通过 SSE 推送至前端,无需
轮询。
SSE 架构
所有长耗时操作——内容分析、剧本生成、分镜脚本
、批量图像生成、批量视频生成——均通过 Server-Sent Events 流式传输进度
,底层使用 Next.js ReadableStream 配合 TextEncoder,无需引
入 WebSocket 基础设施。
后续关注点
- Claude 模型命名
:文中引用了
claude-opus-4-6和claude-haiku-4-5—— 在接入前请务必对照 Anthropic 当 前的模型 ID 文档核实,因为 API 各 版本间命名规范已有变动 。 - Seedream / Seedance API 可用性:字节跳动图像与视频生成 API 的 国际访问情况存在不确定性,中国大陆以 外的团队在以此为架构基础前 应提前验证访问权限。
- 上下文窗口处 理:60,000 字符的截断是一个硬编码的临时方案。关注 Claude API 后续更新,若上下文处理能力 扩展或新增原生长文档处理功能,该 限制有望消除。
- Runway vs. Kling vs. Seedance 横 评:该架构支持三个视频后端,但未提供任何质量或成本对比数据。随 着更多团队陆续发布类似流水线,预计未来 30 天内社区将出现针对叙事视频生成场景的模 型横评基准数据。