让 AI 替你写出完整的动态漫剧本:从一句话概念到成片可拍的剧本、人物图、分镜与视频提示词。
AImanju(AI 漫剧)是一个面向中文动态漫(短视频/竖屏漫剧)创作场景的工业级 AI 剧本生产系统。它把"概念 → 大纲 → 角色卡 → 分集梗概 → 完整剧本 → 状态追踪 → 改写润色 → 一致性校验"整条创作流水线接到大模型上,由多个 AI Agent 协同完成。
它不是简单的 ChatGPT 套壳——AImanju 内置了 18 个独立的业务服务模块,包括角色生命周期管理、世界状态机、伏笔追踪、节奏控制器、约束求解器、注意力调度、Reflexion 提示词工厂等,专门解决长剧情 AI 写作中的"角色失忆"、"伏笔遗忘"、"世界观崩坏"、"节奏失控"等真实痛点。
| 场景 | AImanju 怎么帮你 |
|---|---|
| 🎬 短视频创作者 | 一句话生成 60+ 集完整剧本,可直接交给配音/分镜团队 |
| 🏢 漫剧工作室 | 批量孵化多个项目,团队协作,多账户分级权限 |
| ✍️ 个人编剧 | AI 协作写作,跨集联动修复,单集精修润色 |
| 🎨 漫画创作者 | 同时输出 AI 绘图提示词(角色立绘+表情包+战斗态) |
| 🎥 视频创作者 | 输出 Runway / Pika / 可灵 等多平台视频生成提示词 |
| 🧪 AI 工具开发者 | 18 个业务模块、29 个数据模型,研究大模型工程化最佳实践 |
| 模块 | 功能 |
|---|---|
| 大纲生成 | 输入一句创意 → 自动产出世界观、人物卡(5-8 个)、剧情大纲(200-400 字)、分集梗概(每集 15-30 字) |
| 角色卡生成 | 自动生成详细角色设定:性别/年龄/身份/外貌/性格/标志性配饰/战斗状态 |
| 逐集剧本生成 | 流式生成完整剧本,包含场景标记、画面描述、对白、内心独白、画外音、系统提示 |
| 分集梗概扩展 | 自动补充每集的钩子、爽点、悬念 |
| 15 种输出格式 | 标准动态漫格式、戏剧剧本格式、有声小说脚本格式等多种预设可选 |
| 多模型自由切换 | Claude / GPT / Gemini / 智谱 GLM / DeepSeek / 豆包 Ark / 阿里百炼,运行时可热切换 |
| 模块 | 功能 |
|---|---|
| 角色生命周期管理 | 角色 ID、出场记录、关系网络全生命周期追踪 |
| 角色弧光追踪 | 自动追踪角色成长曲线(CharacterArcTracker) |
| 形态修改器系统 | 装备/能力/伤势分永久 / 阶段 / 临时三级持久化,支持优先级与互斥替换 |
| 状态分析器 | 每集生成后 AI 自动提取角色状态变化(装备/能力/伤势/精神/战力) |
| 角色魅力分析 | 自动分析角色吸引力维度(CharacterCharmAnalyzer) |
| 声纹与口头禅 | 维护每个角色的语言风格画像(CharacterVoiceProfiler) |
| 关系图谱 | 角色关系动态构建与可视化(RelationshipTracker) |
| 模块 | 功能 |
|---|---|
| 世界状态机 | 全局世界状态版本化管理,支持回滚与时间旅行 |
| 伏笔管理 | 自动埋伏笔、追踪触发,防止"伏笔遗忘"(ForeshadowingManager) |
| 剧情线校验 | 多剧情线一致性校验(PlotThreadValidator) |
| 跨集联动修复 | 自动检测跨集矛盾点并 AI 修复(FixSession) |
| 约束求解 | 用户自定义硬约束(如"主角不能提前透露身份"),AI 生成时严格遵守(UnifiedConstraintManager) |
| 注意力调度 | AttentionRecommender 决定 AI 当前应该聚焦哪些角色/伏笔/世界规则 |
| 模块 | 功能 |
|---|---|
| 节奏控制器 | 钩子 / 打脸 / 升级 / 逆袭 等爽点节奏自动设计(RhythmControl) |
| 场景节奏规划器 | 单集场景级别的节奏分布(SceneRhythmPlanner) |
| Reflexion 提示词工厂 | 基于 Reflexion 论文的反思式提示词构造,AI 自我审视 |
| 叙事方法论 | 内置经典叙事学规则(三幕结构、英雄之旅等) |
| 上下文预算分配 | 12K 字符智能切片:角色 35% / 前情 20% / 梗概 15% / 状态 15% / 格式 15% |
| 一致性校验 | ScriptValidator 全方位检测剧本格式、角色一致、剧情合理 |
| 模块 | 功能 |
|---|---|
| 流式生成(SSE) | 逐字推送,心跳保活,断线自动暂停,支持恢复 |
| 断点续生 | 任务级进度持久化,可暂停 / 恢复 / 失败重试 / 跳过失败集 |
| 批量任务执行器 | 多项目 + 多集同时生成的产线级调度(BatchTaskExecutor) |
| 多 API Key 轮换 | 单模型多 Key 配置,速率限制时自动轮换 |
| 改写引擎 | 单集改写、多集协同改写(BatchCoherentRewriteService) |
| 改写历史 | 每次改写都有版本记录,可对比、回滚 |
| 属性测试覆盖 | 6 大模块使用 fast-check 进行属性测试 |
| 角色 | 能力 |
|---|---|
| 创作者 (Creator) | 创建项目、生成剧本、管理配额、试用模式 |
| 代理 (Agent) | 邀请创作者、分配额度、查看销售数据 |
| 买家 (Buyer) | 浏览发布的剧本、按集购买、收藏 |
| 管理员 (Admin) | 全系统管理、审核发布、配额发放、积分管理 |
| JWT + bcrypt | 三套独立 JWT 密钥(buyer / creator / agent),密码 bcrypt 哈希 |
| 配额管理 | 项目数量配额、单项目集数配额、试用集数限制、积分充值 |
| 发布与购买 | 创作者可发布项目,买家按集购买,积分系统结算 |
参考 system_design.md 与 agents_final.md,AImanju 设计上支持完整的多 Agent 流水线,可扩展输出:
- 角色立绘 / 表情包 / 战斗态 AI 绘图提示词
- 分镜表(景别、角度、光线、时长)
- 视频生成提示词(Runway Gen-3 / Pika Labs / 可灵 / Stable Video Diffusion / Luma 多平台格式)
传统 AI 写作中,角色"换装"、"受伤"、"觉醒"这些状态变化经常导致前后矛盾。AImanju 设计了三级持久化的形态修改器:
permanent (永久) → 升级、断肢、血脉觉醒、改名
staged (阶段) → 受伤未愈、易容潜入、被诅咒
temporary (临时) → 中毒一日、限时 buff、一次性变身
每个修改器有 category(appearance/injury/identity/upgrade)和 priority(决定哪个修改器最终生效)。同类型修改器自动互斥替换,临时修改器自动过期。
基于 Princeton Reflexion 论文实现的反思式提示词构造器(ReflexionPromptFactory)。生成单集前,AI 先反思上一集的不足,再带着改进意图开始当前集创作,显著降低长剧情的质量衰减。
不是把所有信息一股脑塞进 prompt,而是根据当前集的需要动态分配 12K 字符预算:
角色设定 35% ← 主角永远满预算,配角按出场重要性分配
前情提要 20% ← 最近 3 集详写 + 之前压缩为关键事件
本集梗概 15%
角色状态变化 15%
格式与规范 15%
每个角色有独立的最大长度上限(main: 800 / supporting: 500 / recurring: 300 / guest: 150 / extra: 50)。
通过 AttentionRecommender,AI 在生成本集前会被告知"当前应该重点关注:A 角色的复仇线、B 伏笔即将触发、世界规则 C 不能违反",避免 AI 注意力分散导致主线偏离。
发现第 12 集的剧情与第 8 集的设定矛盾?启动一个 FixSession,AI 会跨集分析受影响的集数,给出协同修复方案,生成多集协调一致的修复版本。
把项目级硬约束(如"主角不能在第 30 集前透露穿越者身份")统一管理,每次生成前自动注入到提示词,违反时立即报错。
统一封装 Anthropic / OpenAI 兼容协议,支持运行时切换:
aiClient.switchModel('glm-night'); // 智谱 GLM 夜间通道
aiClient.switchModel('claude-sonnet'); // Claude 主力
aiClient.switchModel('gpt-5'); // GPT 系列支持 Claude API Key 轮换,速率限制时自动切换备用 Key。
| 层级 | 技术选型 |
|---|---|
| 前端框架 | Vue 3 + TypeScript + Vite |
| 前端状态管理 | Pinia (17 个 stores) |
| 前端路由 | Vue Router |
| 前端 UI | 自研设计系统 + CSS 变量主题 |
| 图表与流程图 | Mermaid + Marked |
| 后端框架 | Node.js + Express 5 |
| 后端语言 | TypeScript |
| 数据库 | MongoDB(Mongoose ODM) |
| AI SDK | Anthropic SDK + 自研 OpenAI 兼容客户端 |
| 鉴权 | JWT + bcrypt + 多角色 JWT_SECRET |
| 流式协议 | Server-Sent Events (SSE) |
| 参数校验 | Zod |
| 文件上传 | Multer |
| 测试 | Vitest + fast-check(属性测试) |
| 进程管理 | PM2(生产推荐) |
AImanju/
├── backend/ # 后端服务(24 controllers + 18 service modules)
│ ├── src/
│ │ ├── app.ts # Express 入口
│ │ ├── controllers/ # 24 个控制器
│ │ │ ├── projectController.ts
│ │ │ ├── characterController.ts
│ │ │ ├── characterEnhancementController.ts
│ │ │ ├── episodeController.ts
│ │ │ ├── aiController.ts # 大纲/剧本生成
│ │ │ ├── validationController.ts # 一致性校验
│ │ │ ├── rewriteController.ts # 单集改写
│ │ │ ├── batchRewriteController.ts # 多集协同改写
│ │ │ ├── foreshadowingController.ts # 伏笔管理
│ │ │ ├── stateController.ts # 角色状态
│ │ │ ├── tagController.ts # 标签
│ │ │ ├── worldStateController.ts # 世界状态
│ │ │ ├── batchTaskController.ts # 批量任务
│ │ │ ├── taskManagerController.ts # 任务管理
│ │ │ ├── fixController.ts # 跨集修复
│ │ │ ├── publishController.ts # 发布配置
│ │ │ ├── docsController.ts # 文档接口
│ │ │ ├── authController.ts # 买家认证
│ │ │ ├── adminController.ts # 管理员
│ │ │ ├── buyerController.ts # 买家
│ │ │ ├── creatorAuthController.ts # 创作者认证
│ │ │ ├── creatorAdminController.ts # 创作者后台
│ │ │ ├── agentAuthController.ts # 代理认证
│ │ │ └── agentDashboardController.ts # 代理后台
│ │ ├── services/ # 18 个核心业务模块
│ │ │ ├── ai/ # 多模型客户端
│ │ │ ├── outline/ # 大纲生成
│ │ │ ├── script/ # 剧本生成 + Reflexion + 叙事学
│ │ │ ├── episode/ # 单集计划增强
│ │ │ ├── character/ # 角色生命周期/弧光/魅力/声纹/关系
│ │ │ ├── world/ # 世界状态机
│ │ │ ├── state/ # 状态分析(增强版+基础版)
│ │ │ ├── foreshadowing/ # 伏笔与剧情线校验
│ │ │ ├── rhythm/ # 节奏控制 + 场景规划
│ │ │ ├── attention/ # 注意力调度
│ │ │ ├── constraint/ # 约束求解
│ │ │ ├── context/ # 上下文管理 + 预算分配
│ │ │ ├── format/ # 输出格式服务(15 种预设)
│ │ │ ├── prompt/ # 提示词模板(大纲+剧本+改写)
│ │ │ ├── rewrite/ # 单集/批量改写
│ │ │ ├── validation/ # 剧本校验器
│ │ │ ├── batch/ # 批量任务执行器
│ │ │ └── sse/ # SSE 推送处理
│ │ ├── models/ # 29 个 Mongoose 模型
│ │ │ ├── Project.ts # 项目
│ │ │ ├── Character.ts / CharacterState.ts / CharacterEnhancement.ts / CharacterRelationship.ts
│ │ │ ├── Outline.ts # 大纲
│ │ │ ├── Episode.ts / EpisodeSummary.ts / EpisodePurchase.ts
│ │ │ ├── WorldState.ts # 世界状态
│ │ │ ├── Foreshadowing.ts # 伏笔
│ │ │ ├── BatchTask.ts # 批量任务
│ │ │ ├── RewriteHistory.ts / RewriteRequest.ts / BatchRewriteHistory.ts
│ │ │ ├── ValidationReport.ts # 校验报告
│ │ │ ├── FixSession.ts # 修复会话
│ │ │ ├── GenerationLog.ts # 生成日志
│ │ │ ├── Creator.ts / Agent.ts / BuyerUser.ts / AgentAllocation.ts
│ │ │ ├── Tag.ts / CreatorTag.ts
│ │ │ ├── Favorite.ts / PointsTransaction.ts
│ │ │ ├── ProjectPublish.ts / PublishRequest.ts
│ │ │ └── index.ts
│ │ ├── repositories/ # 数据仓库层
│ │ ├── middleware/ # JWT 鉴权(buyer/creator/agent 三套)
│ │ ├── constants/
│ │ │ └── formatPresets.ts # 15 种输出格式预设
│ │ ├── types/ # 类型定义
│ │ └── utils/ # 工具函数(错误日志、JSON 安全解析等)
│ ├── tests/ # Vitest + fast-check 属性测试
│ ├── .env.example
│ └── package.json
├── frontend/ # Vue 3 前端
│ ├── src/
│ │ ├── views/ # 18 个页面
│ │ │ ├── ProjectsPage.vue # 项目列表
│ │ │ ├── ProjectDetail.vue # 项目详情
│ │ │ ├── ProjectSettings.vue # 项目设置
│ │ │ ├── OutlinePage.vue # 大纲生成
│ │ │ ├── CharactersPage.vue # 角色管理
│ │ │ ├── ScriptPage.vue # 剧本生成
│ │ │ ├── ValidationPage.vue # 一致性校验
│ │ │ ├── PreviewPage.vue # 预览导出
│ │ │ ├── TasksPage.vue # 任务中心
│ │ │ ├── EngineeringPage.vue # 工程文档
│ │ │ ├── LoginPage.vue
│ │ │ ├── CreatorAdminPage.vue # 创作者后台
│ │ │ ├── AgentLayout.vue # 代理后台主布局
│ │ │ ├── AgentDashboardPage.vue # 代理仪表盘
│ │ │ ├── AgentCreatorsPage.vue # 代理-创作者管理
│ │ │ ├── AgentAllocationsPage.vue # 代理-额度分配
│ │ │ ├── AgentInvitePage.vue # 代理邀请
│ │ │ └── AgentProfilePage.vue # 代理-个人资料
│ │ ├── components/ # 9 类组件
│ │ │ ├── character/ (角色卡编辑、关系图、魅力编辑、声纹编辑等)
│ │ │ ├── script/ (批量改写、剧本预览、Diff 对比、回滚、生成进度)
│ │ │ ├── foreshadowing/(伏笔管理界面)
│ │ │ ├── worldstate/ (世界状态查看器)
│ │ │ ├── task/ (任务列表、进度面板)
│ │ │ ├── fix/ (修复会话界面)
│ │ │ ├── project/ (项目卡、设置)
│ │ │ ├── settings/
│ │ │ └── common/ (Drawer、悬浮组件等)
│ │ ├── stores/ # 17 个 Pinia stores
│ │ │ ├── projectStore / characterStore / episodeStore
│ │ │ ├── generationStore / batchGenerationStore
│ │ │ ├── rewriteStore / batchRewriteStore
│ │ │ ├── validationStore / fixStore
│ │ │ ├── foreshadowingStore / worldStateStore
│ │ │ ├── rhythmStore / attentionStore
│ │ │ ├── tagStore / taskManagerStore
│ │ │ ├── authStore / agentStore
│ │ ├── router/
│ │ ├── services/ # API 封装
│ │ ├── composables/
│ │ ├── design-system/ # 自研设计系统
│ │ ├── styles/ # CSS 模块化
│ │ └── types/
│ ├── .env.example
│ └── package.json
├── shared/ # 前后端共享类型
│ └── types/index.ts
├── showcase/ # 剧本宝盒(独立 Vue 应用 - 公开剧本展示)
├── landing-page/ # 营销落地页(纯静态 HTML 6 个)
│ ├── index.html
│ ├── features.html
│ ├── workflow.html
│ ├── technology.html
│ ├── cases.html
│ └── changelog.html
├── upgrade-auth/ # 可选:前端弱认证升级包
├── ecosystem.config.js # PM2 配置
├── deploy.js / deploy.sh # 部署脚本
├── LICENSE # GPL-3.0
└── README.md
- Node.js ≥ 18.x(推荐 20.x LTS)
- MongoDB ≥ 7.x(本地或远程均可)
- npm / pnpm / yarn(任选其一)
- 一把可用的大模型 API Key(Claude / GPT / 智谱 GLM / DeepSeek 任选其一即可)
git clone https://github.com/jsjm1986/AImanju.git
cd AImanju# 本地 Docker 一键启动
docker run -d --name aimanju-mongo -p 27017:27017 mongo:7
# 或使用本地已安装的 MongoDB
mongod --dbpath /your/data/pathcd backend
cp .env.example .env编辑 backend/.env,至少填写:
# 必填
MONGODB_URI=mongodb://localhost:27017/comic-script
JWT_SECRET=请生成强随机密钥
# 至少一组 AI 配置
DEFAULT_AI_PROVIDER=claude
CLAUDE_API_KEY=sk-...
CLAUDE_API_BASE_URL=https://api.anthropic.com
CLAUDE_MODEL=claude-sonnet-4-5-20250929💡 生成强 JWT 密钥:
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"
npm install
npm run dev # 开发模式(热重载)
# 或
npm run build && npm start # 生产模式后端默认监听 http://localhost:8333,启动后控制台会显示:
✅ MongoDB 连接成功
🚀 服务器运行在 http://0.0.0.0:8333
⏱️ 服务器全局超时已设置为 60 分钟
cd ../frontend
cp .env.example .env
# 默认 .env 已指向 localhost:8333,无需修改
npm install
npm run dev前端默认监听 http://localhost:5173,浏览器打开即可。
cd ../showcase
cp .env.example .env
npm install
npm run dev完整变量见 backend/.env.example,关键变量:
# ============= 服务器 =============
PORT=8333
HOST=0.0.0.0
NODE_ENV=development
# ============= 数据库 =============
MONGODB_URI=mongodb://localhost:27017/comic-script
# ============= JWT 鉴权 =============
JWT_SECRET= # 必填,强随机字符串
JWT_CREATOR_SECRET= # 可选,创作者独立密钥
JWT_AGENT_SECRET= # 可选,代理独立密钥
# ============= CORS =============
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:8884
# ============= 默认模型 =============
DEFAULT_AI_PROVIDER=claude # claude / openai / glm / dashscope
# ============= Anthropic Claude =============
CLAUDE_API_KEY=sk-ant-...
CLAUDE_API_KEY_2= # 可选,多 Key 轮换
CLAUDE_API_KEY_3=
CLAUDE_API_BASE_URL=https://api.anthropic.com
CLAUDE_MODEL=claude-sonnet-4-5-20250929
CLAUDE_THINKING_ENABLED=false # 是否启用扩展思考
CLAUDE_THINKING_BUDGET=10000
# ============= OpenAI 兼容 =============
OPENAI_API_KEY=sk-...
OPENAI_API_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o
# ============= 智谱 GLM =============
GLM_API_KEY=
GLM_API_BASE_URL=https://open.bigmodel.cn/api/paas/v4
GLM_MODEL=glm-4.5
# ============= 智谱夜间通道(可选) =============
GLM_NIGHT_API_KEY=
GLM_NIGHT_API_BASE_URL=
GLM_NIGHT_MODEL=
# ============= 火山方舟 (豆包) =============
ARK_API_KEY=
ARK_API_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
ARK_MODEL=doubao-pro
# ============= DeepSeek =============
DEEPSEEK_API_KEY=
DEEPSEEK_API_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
# ============= 阿里云百炼 =============
DASHSCOPE_API_KEY=
DASHSCOPE_API_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# ============= 自定义 OpenAI 网关(可选) =============
# 用于通过统一网关代理 GPT / Gemini 等模型
CUSTOM_GATEWAY_API_KEY=
CUSTOM_GATEWAY_BASE_URL=
# ============= 速率限制 =============
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX=100
AI_RATE_LIMIT_WINDOW_MS=3600000
AI_RATE_LIMIT_MAX=20
# ============= 管理员账户初始化(可选) =============
ADMIN_USERNAME=admin
ADMIN_PASSWORD=please-change
ADMIN_EMAIL=admin@example.comVITE_API_BASE=http://localhost:8333/api
# 生产环境示例
# VITE_API_BASE=https://your-domain.com/api1. 注册创作者账号 → 选择套餐(试用/付费)
↓
2. 创建项目(标题、题材、类型、目标集数)
↓
3. 大纲生成(Outline)
├─ 输入故事概念(一句话即可,AI 会扩展世界观)
├─ AI 生成人物卡(5-8 个角色)
├─ AI 生成剧情大纲(200-400 字)
└─ AI 生成分集梗概(每集 15-30 字)
↓
4. 角色管理(Characters)
├─ 检查/编辑 AI 生成的角色卡
├─ 调整角色定位、外貌、性格
├─ 配置角色间关系(关系图谱)
└─ 角色增强:声纹画像、魅力维度、口头禅
↓
5. 剧本生成(Script)
├─ 选定起止集数(推荐每批 5-10 集)
├─ 选择 AI 模型 + 输出格式预设
├─ 流式生成(SSE 实时推送)
├─ AI 自动状态分析(装备/能力/伤势/形态变化)
├─ AI 自动伏笔追踪
└─ AI 自动世界状态更新
↓
6. 一致性校验(Validation)
├─ 格式校验(场景标记、对白、画面描述)
├─ 角色一致性(性格、外貌、能力)
├─ 剧情连贯性(前后呼应、伏笔触发)
└─ 世界规则(不能违反的硬约束)
↓
7. 改写润色(Rewrite)
├─ 单集改写:针对某集精修
├─ 多集协同改写:跨集联动调整
└─ 跨集修复:发现矛盾时启动 FixSession
↓
8. 预览与导出(Preview)
├─ 完整剧本浏览
├─ 分集筛选导出
└─ TXT 一键下载
↓
9. (可选)发布到市场
├─ 配置发布信息(封面、标签、定价)
├─ 提交审核
└─ 上架买家市场,按集售卖
【基本信息】
题材:男频漫剧
类型:穿越 + 国战 + 召唤
目标集数:60 集
【故事概念】
现代青年穿越到以英灵对决决定国运的世界,发现华夏历史被抹除,
各国英灵碾压夏国。主角凭借对华夏历史的了解,召唤盘古、关羽、
赵云等华夏英灵,横扫列强,重铸华夏荣光。
人物卡:
1. 叶玄(男主角)
性别:男
年龄:20岁左右
身份:夏国英灵学院学生→国运擂台选手(穿越者)
外貌:五官俊朗,修长挺拔,黑色短发略微凌乱...
性格:自信、果断、热血、机智
剧本(标准动态漫格式):
【第一集】
梗概:国运擂台上,叶玄以破斧引动盘古虚影,震慑全场。
人物:叶玄,龙忠勇,吉川太一
1-1:国运擂台-夜 内
【BGM:紧张史诗感】
△巨大的竞技场,无数聚光灯交汇,观众席上人山人海。
画外音(机械冰冷):国运之战,最终对决即将开始!
△叶玄缓步走上擂台,手中握着一把破旧的斧子。
观众甲(嘲讽):夏国完了,派个拿柴刀的上来!
叶玄(冷笑):井底之蛙,也配妄议圣器?!
△斧子迸发万丈金光,盘古虚影横空出世!
| 模块 | 路径前缀 | 主要端点 |
|---|---|---|
| 项目管理 | /api/projects |
CRUD、保存大纲、批量保存剧本、TXT 导出 |
| 角色管理 | /api/characters |
CRUD、批量导入、状态更新、上下文构建 |
| 角色增强 | /api/character-enhancement |
声纹画像、魅力分析、关系图谱 |
| 剧本管理 | /api/episodes |
单集 CRUD、批量保存、按范围查询 |
| AI 生成 | /api/ai |
大纲生成、逐集生成(流式/非流式)、状态分析、断点恢复 |
| 校验 | /api/validation |
一致性校验、矛盾检测 |
| 改写 | /api/rewrite |
单集改写、改写历史、回滚 |
| 批量改写 | /api/batch-rewrite |
多集协同改写 |
| 伏笔 | /api/foreshadowing |
伏笔 CRUD、触发追踪 |
| 状态 | /api/state |
角色状态、世界状态查询 |
| 标签 | /api/tags |
项目/章节标签管理 |
| 世界状态 | /api/world-state |
世界状态查询、版本回滚 |
| 批量任务 | /api/world-state |
批量任务创建、查询、控制 |
| 任务 | /api/tasks |
任务管理(需创作者鉴权) |
| 修复 | /api/fix |
跨集修复会话 |
| 发布 | /api/publish |
项目发布配置 |
| 文档 | /api/docs |
工程文档查询 |
| 健康检查 | /health |
服务存活探测 |
| 角色 | 路径前缀 | 说明 |
|---|---|---|
| 买家 | /api/auth, /api/buyer |
注册/登录、个人中心、购买 |
| 创作者 | /api/creator, /api/creator/admin |
注册/登录、工作台、配额 |
| 代理 | /api/agent, /api/agent/dashboard |
注册/登录、邀请创作者、分配额度 |
| 管理员 | /api/admin |
全系统管理(用户审核、配额发放、积分管理) |
# 1. 配置生产环境的 backend/.env 与 frontend/.env
# 2. 修改 ecosystem.config.js(端口)
# 3. 一键部署
chmod +x deploy.sh
DEPLOY_DIR=/your/deploy/path FRONTEND_PORT=8884 BACKEND_PORT=8333 ./deploy.sh
# 或手动
cd backend && npm install && npm run build && cd ..
cd frontend && npm install && npm run build && cd ..
pm2 start ecosystem.config.js
pm2 save
pm2 startup # 配置开机自启前端 build 后由 Nginx 直接服务静态文件,后端通过 location /api 反代到 8333 端口:
server {
listen 80;
server_name your-domain.com;
# 前端静态文件
root /your/path/AImanju/frontend/dist;
index index.html;
location / { try_files $uri $uri/ /index.html; }
# 后端 API 反向代理
location /api/ {
proxy_pass http://127.0.0.1:8333/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# SSE 流式支持(重要)
proxy_http_version 1.1;
proxy_set_header Connection '';
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
}
}欢迎社区贡献 Dockerfile / docker-compose.yml,详见 Issues。
cd backend
npm test # 运行所有测试
npm run test:watch # 监听模式
npm run test:property # 仅运行属性测试
# 已有的属性测试覆盖:
# - cross-episode-fix.property.test.ts 跨集修复属性测试
# - fix.property.test.ts 修复会话属性测试
# - generation-context.property.test.ts 上下文生成属性测试
# - output-format.test.ts 输出格式测试
# - rewrite-history.property.test.ts 改写历史属性测试
# - validation.property.test.ts 校验器属性测试Q: 启动后端时报错 "JWT_SECRET environment variable is required"
请在 backend/.env 中配置 JWT_SECRET,必须是强随机字符串(推荐 64 字节十六进制):
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"Q: AI 生成超时怎么办?
后端默认 30 分钟超时(流式生成),全局 60 分钟超时。如果模型本身慢,可以:
- 切换到更快的模型(如 GLM-4.5、deepseek-chat)
- 启用多 Key 轮换(
CLAUDE_API_KEY_2、CLAUDE_API_KEY_3) - 减小
max_tokens,分段生成
Q: 如何选择合适的 AI 模型?
- 质量优先:Claude Sonnet 4.5 / GPT-5
- 速度优先:Gemini Flash / GLM-4.5 / deepseek-chat
- 成本优先:DeepSeek / 智谱 GLM 夜间通道
- 国内合规:智谱 GLM / 阿里百炼 / 火山方舟(豆包)
Q: 部署后 SSE 流式生成断流?
90% 是 Nginx 缓冲导致。请在 location /api/ 中加:
proxy_http_version 1.1;
proxy_set_header Connection '';
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;Q: 角色状态前后不一致怎么办?
- 检查"一致性校验"页面,AI 会自动指出矛盾点
- 使用"跨集修复"功能(FixSession)
- 调整"约束管理器",添加硬约束规则
- 角色卡的外貌/性格描述要足够具体(避免模糊词如"很帅")
欢迎任何形式的贡献!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交修改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 发起 Pull Request
提交 Issue 时请包含:
- 问题复现步骤
- 期望行为 vs 实际行为
- 系统环境(Node 版本、MongoDB 版本、操作系统)
- 相关日志(注意脱敏 API Key 等敏感信息)
- 🐳 Docker 化:Dockerfile + docker-compose.yml
- 🌍 国际化:i18n 支持(英文/日文)
- 🎨 更多输出格式预设:电影剧本、广播剧、有声小说
- 🔌 新模型适配:Mistral、Cohere、千问等
- 📱 移动端适配:响应式优化
- 🧩 可视化工具:剧情线路图、角色关系图谱增强
- 🤖 更多 Agent 模块:分镜生成 Agent、视频提示词 Agent
本项目采用 GNU GPL-3.0 开源许可证。
简单来说:
- ✅ 你可以自由使用、修改、分发本项目
- ✅ 你可以将其用于商业用途
⚠️ 任何基于本项目的衍生作品也必须以 GPL-3.0 开源⚠️ 必须保留原作者版权声明
完整条款请参阅 LICENSE 文件。
- 本项目调用第三方大模型 API,模型生成内容的版权归属、合规性、敏感词等问题由使用者自行负责
- AI 生成的剧本内容不构成专业法律/版权建议,商业使用前请进行人工审校
- 严禁使用本项目生成违反法律法规、公序良俗的内容
- 涉及真实历史人物、知名 IP 的二次创作请遵循当地版权法规
- 项目开发者不对使用本项目产生的任何后果承担责任
- Anthropic - 提供 Claude 模型与 SDK
- OpenAI - 提供 OpenAI 兼容协议规范
- 智谱 AI / DeepSeek / 阿里云百炼 / 火山方舟 - 国产大模型支持
- Vue.js / Vite 团队
- Express / Mongoose 维护者
- fast-check - 优秀的属性测试库
- 所有提交 Issue 和 PR 的社区贡献者
设计灵感来源:
- 《国运英灵》《洪荒降临》等优秀动态漫剧本格式参考
- Princeton Reflexion 论文 - 反思式提示词构造
- Anthropic Constitutional AI - 约束式生成
如果 AImanju 对你有帮助,欢迎点亮 Star ⭐
GitHub · Issues · Pull Requests
Built with ❤️ for AI-powered creative writing