About AI Novel
AI Novel is an MCP server in the Other category: aI 小说推文自动化 - 小说一键转短视频(有声书+AI配图),适用于抖音/小红书.
Install
git clone https://github.com/tyxben/AI_novelThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about AI Novel
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
🎬 AI 创意工坊
AI 驱动的一站式内容创作平台 — 短视频自动制作 + AI 长篇小说创作,支持 CLI / Next.js Web UI / MCP 三种使用方式。
功能亮点
短视频制作
- 三种生成模式 — 经典流水线 / Agent 智能质控 / AI 导演(灵感一键出片)
- AI 导演模式
NEW— 输入一句灵感,AI 自动生成脚本 → 分镜 → 画面 → 配音 → 成片 - 多 LLM 后端 — Gemini(免费)/ DeepSeek / OpenAI / Ollama(本地离线),自动检测可用 Key
- 多图片生成后端 — SiliconFlow(免费)/ 阿里云万相 / Together.ai / 本地 Stable Diffusion
- AI 视频片段生成 — 可灵 Kling / 即梦 Seedance / MiniMax 海螺 / OpenAI Sora
- Agent 智能模式 — LangGraph 5 Agent 编排(导演/内容分析/美术总监/配音导演/剪辑师),自动质量评估与重试
- 省钱模式 — 规则替代 LLM,跳过质量检查,成本降低约 40%
AI 长篇小说(核心模块,2026-04 Phase 0-5 完工)
架构重构 2026 完成:Agent 数量从 15 -> 5、propose/accept/regenerate 三段式工具层、7 维质量评估 + A/B 双向 de-bias。 规划文档见
specs/architecture-rework-2026/(README / AUDIT / DESIGN / PHASE4 / PHASE5)。
5 Agent 新架构(替代旧 9 Agent)
- ProjectArchitect — 项目骨架 propose/accept/regenerate(synopsis / main_outline / characters / world / arcs / volume_breakdown)
- VolumeDirector — 单卷细纲 + 卷结算
- ChapterPlanner — 单章 brief(实时消费 LedgerStore)
- Writer — 正文生成(2000-3000 字,one-shot + ReAct 双模式)
- Reviewer — 单入口联合审稿(quality + consistency + style 三维度,不打分只标问题,作者拍板)
Phase 4 三段式工具层 — propose / accept / regenerate 三操作覆盖 9 类实体,三层共享 NovelToolFacade 业务入口:
- MCP:
novel_propose_*/novel_accept_proposal/novel_regenerate_section(AI 助手直接调用) - CLI:
novel propose <sub>/novel accept/novel regenerate - agent_chat:工具注册同步暴露
- Web UI 保留传统
pipeline.create_novel入口(主动设计决策,不强套审批语义)
Phase 5 质量评估模块 — 7 维度仪表盘,每章约 3 次 LLM judge call:
- 伏笔兑现率(唯一硬门禁 >= 60%,纯规则) / AI 味指数(纯规则)
- 叙事流畅 / 角色一致 / 情节推进 / 对话自然 / 章节勾连(LLM-as-judge + 规则混合)
- A/B 双向强制 de-bias(gpt-4o-mini position bias 实测 76.5%)
- pytest 基线:4564 passed / 21 skipped
叙事控制(v1.3 沿用)
- MilestoneTracker + VolumeSettlement — 卷级里程碑 + 卷末收束 + 逾期里程碑跨卷继承
- StyleBible — 项目专属风格锚定(量化指标 + 范例段落 + 反模式)
- 陈旧大纲检测 — 自动识别引用过时章节号的大纲,触发重新规划
- 章节衔接硬约束 — 首场景强制注入衔接规则,禁止跳时间/空间/事件
- 死亡角色检测 — 自动识别已死亡角色,禁止作为活人出现
- 内容过滤器 — 自动过滤系统 UI 泄漏(【检测到】/ 忠诚度+8)
叙事状态引擎
- LedgerStore — 统一账本(伏笔 / 叙事债务 / 角色状态),ChapterPlanner 实时消费
- ContinuityService — 每章写前聚合上下文(角色状态 / 叙事债务 / 活跃弧线 / 上章钩子 / 禁止断裂项)
- 向量语义一致性 — Chroma 检索,自动检测角色复活 / 失踪 / 事件矛盾;BM25 作为 fallback
- Agent Chat 会话记忆 — 自动恢复对话历史 + 工作记忆注入
- ReAct 推理 + Prompt Registry — Writer 工具链推理 + DB 管理提示词版本
- LLM 分阶段配置 — 大纲用 GPT-4、写作用 DeepSeek,按阶段选最优模型
- 读者反馈 —
pipeline.apply_feedback一键分析 + 逐章重写 - 风格预设 — 玄幻爽文 / 都市 / 武侠 / 仙侠 / 文学 / 轻小说 6 大类
平台能力
- Web UI — Next.js + FastAPI 创作平台(短视频 / AI 小说 / 设置),异步任务队列
- CLI 命令行 — Click 驱动的完整 CLI,适合批量处理和脚本集成
- MCP Server — FastMCP 协议,可被 Claude Code 等 AI 助手直接调用
- 免费 TTS 配音 — 微软 edge-tts 高质量语音合成 + SRT 字幕自动生成
- H.265 编码 — 相比 H.264 体积减少约一半,画质不变
- Ken Burns 特效 — 图片自动缩放平移,告别静态幻灯片感
- 断点续传 — 中断后从上次进度继续,不浪费已完成的工作
- 桌面应用打包 — 支持 PyInstaller 打包为独立可执行文件
三种视频制作模式
| 对比项 | 经典模式 | Agent 模式 | 导演模式 |
|---|---|---|---|
| 输入 | 小说文本文件 | 小说文本文件 | 一句灵感/主题 |
| 流程 | 固定 5 阶段流水线 | 5 Agent 智能编排 | AI 自动编剧 + 制片 |
| 质量控制 | 无 | GPT-4V/Gemini 评分 + 自动重试 | AI 自动决策 |
| 适用场景 | 快速量产 | 精品内容 | 零素材创作 |
| CLI | python main.py run novel.txt |
--mode agent |
python main.py create-video "灵感" |
两种画面模式
本项目支持两种画面生成模式,按需选择:
| 对比项 | 静态图 + Ken Burns | AI 视频片段 |
|---|---|---|
| 画面效果 | 图片缩放/平移动画 | AI 生成的真实动态视频 |
| 费用 | 免费(仅需图片生成) | 付费(视频 API 按次计费) |
| 生成速度 | 快(秒级合成) | 较慢(每段需等待 1-3 分钟) |
| 适用场景 | 日常量产、低成本起步 | 精品内容、高质量要求 |
| 配置方式 | 默认模式,无需额外配置 | 在 config.yaml 中启用 videogen 段 |
| 画面一致性 | 高(基于同一张图片) | 中等(AI 生成有随机性) |
两种模式可在配置文件中一键切换。未配置 videogen 时默认使用免费的静态图模式。
AI 导演模式
v0.9.0 新增,从一句灵感出发,AI 自动完成编剧 + 制片全流程:
# CLI
python main.py create-video "一个程序员在深夜发现自己写的AI开始有了自我意识"
# Web UI — 打开 http://localhost:3000 切换到「导演模式」Tab 输入灵感即可
流程: 灵感 → IdeaPlanner(概念) → ScriptPlanner(分段脚本) → AssetStrategy(素材策略) → 图片/视频生成 → TTS → 合成
Agent 智能模式
基于 LangGraph 的多 Agent 编排系统,在经典流水线基础上增加智能决策层:
5 个专职 Agent
| Agent | 职责 | 关键能力 |
|---|---|---|
| Director 导演 | 任务分析与成本估算 | 纯逻辑,无 LLM 调用 |
| ContentAnalyzer 内容分析 | 题材分类、角色提取、风格推荐 | 武侠→水墨、都市→写实、玄幻→动漫 |
| ArtDirector 美术总监 | 图片生成 + 质量闭环 | GPT-4V/Gemini Vision 评分,不达标自动重试 |
| VoiceDirector 配音导演 | 情感分析 + TTS 调参 | 紧张→语速+10%,悲伤→语速-15% |
| Editor 剪辑师 | FFmpeg 视频合成 | 收集所有资产,输出最终视频 |
使用方式
# CLI
python main.py run input/novel.txt --mode agent
python main.py run input/novel.txt --mode agent --budget-mode
python main.py run input/novel.txt --mode agent --quality-threshold 7.0
# Web UI
# 在 Web UI 中选择"Agent模式(智能质控)"即可
省钱模式 vs 标准模式
| 对比项 | 标准模式 | 省钱模式 |
|---|---|---|
| 题材分类 | LLM 智能分析 | 正则关键词匹配 |
| 角色提取 | LLM 提取 | 正则模式匹配 |
| 图片质量检查 | GPT-4V/Gemini Vision | 跳过 |
| 情感分析 | LLM 分析 | 正则规则 |
| 成本(10段) | ~¥1.0 | ~¥0.6 |
AI 长篇小说创作
这是项目投入最多的核心模块。目标是让 AI 全自动写出结构完整、主线不散、风格统一的 10-100 万字长篇小说。
已实测:50 万字 / 200 章 / 6 卷的玄幻长篇,当前产出 14 万字 / 32 章持续推进中。
解决的核心难题
AI 写长篇小说面临的最大挑战不是"写不出来",而是写到中后期会主线散漫、角色失忆、风格漂移、伏笔丢失。本模块通过多层控制系统解决这些问题:
| 问题 | 解决方案 | 模块 |
|---|---|---|
| 主线散漫,写到后面忘了核心冲突 | 卷级里程碑 + 逾期强制推进 | MilestoneTracker + 强制约束注入 |
| 角色前后矛盾(死人复活、性格突变) | 向量语义一致性检查 + 角色状态快照 | Reviewer (consistency) + LedgerStore |
| 风格忽高忽低,越写越像 AI | 量化风格对标 + 项目专属风格圣经 | Reviewer (style) + StyleBible |
| 伏笔埋了不收,承诺了不兑现 | 叙事债务追踪 + 伏笔兑现率硬门禁 | LedgerStore + Phase 5 foreshadow_payoff |
| 大纲越写越旧,引用过时章节 | 陈旧大纲检测 + VolumeDirector 重新规划 | _is_stale_outline |
| 卷末收不住,线索悬空 | 卷末收束模式 + 里程碑继承 | VolumeDirector.settle_volume |
| 章与章之间断裂跳跃 | 连续性摘要 + 首场景衔接硬约束 | ContinuityService |
5 个专职 Agent(2026-04 重构完工)
| Agent | 职责 | 关键能力 |
|---|---|---|
| ProjectArchitect 项目架构师 | 骨架 propose/accept/regenerate | synopsis / main_outline / characters / world / arcs / volume_breakdown 全部支持三段式;覆盖原 NovelDirector + WorldBuilder + CharacterDesigner |
| VolumeDirector 分卷导演 | 单卷细纲 + 卷结算 | 单卷 N 章细纲 propose/accept;卷末 VolumeSettlement 收束 + 逾期里程碑跨卷继承 |
| ChapterPlanner 章节规划 | 单章 brief 实时生成 | 实时消费 LedgerStore(伏笔 / 叙事债务 / 角色状态),生成本章主冲突、兑现、伏笔 |
| Writer 写手 | 正文生成 | 2000-3000 字/章,one-shot / ReAct 双模式,反 AI 味指令,continuity_brief 注入 |
| Reviewer 单入口审稿 | quality + consistency + style 联合审稿 | 三维度一次报告,不打分只标问题 — 作者拍板是否 refine(替代原 ConsistencyChecker + StyleKeeper + QualityReviewer) |
旧架构的 NovelDirector / WorldBuilder / CharacterDesigner / PlotPlanner / ConsistencyChecker / StyleKeeper / QualityReviewer / FeedbackAnalyzer 全部合并或下放。 FeedbackAnalyzer 逻辑下放到
pipeline.apply_feedback直接 LLM 调用;NovelDirector 仅保留plan_next_chapter/generate_volume_outline/generate_volume_milestones三个卷级工具方法。
创作流程
输入(题材/主题/字数)
↓
┌─────────── 立项阶段(ProjectArchitect)──────────────┐
│ propose synopsis → 作者审阅 → accept │
│ propose main_outline → 作者审阅 → accept │
│ propose characters → 作者审阅 → accept │
│ propose world → 作者审阅 → accept │
│ propose arcs → 作者审阅 → accept │
│ propose volume_breakdown → 作者审阅 → accept │
│ StyleBibleGenerator → 风格圣经 │
└──────────────────────────────────────────────────────┘
↓
┌─────────── 逐章生成循环 ─────────────────────────────┐
│ │
│ ┌─ 写前准备 ───────────────────────────────────┐ │
│ │ 陈旧大纲检测 → VolumeDirector 重新规划(如需) │ │
│ │ ContinuityService → 连续性摘要 │ │
│ │ MilestoneTracker → 卷进度预算 │ │
│ │ LedgerStore → 伏笔 / 叙事债务 / 角色状态 │ │
│ │ 里程碑强制约束(如逾期) → 注入 │ │
│ └──────────────────────────────────────────────┘ │
│ ↓ │
│ ChapterPlanner → propose_chapter_brief │
│ ↓ │
│ Writer → 正文生成(2000-3000字,one-shot / ReAct) │
│ ↓ │
│ Reviewer → quality + consistency + style 联合报告 │
│ ↓ 作者拍板(不强制重写) │
│ ┌─ 写后回写 ───────────────────────────────────┐ │
│ │ 角色状态快照 → LedgerStore │ │
│ │ 章节摘要 → Chroma 向量库 │ │
│ │ 里程碑完成检查 → 标记完成/逾期 │ │
│ │ 叙事债务提取 → LedgerStore │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ [卷末] VolumeDirector.settle_volume → 收束 + 继承 │
│ [新卷] VolumeDirector.propose_volume_outline │
└──────────────────────────────────────────────────────┘
↓
完整小说(10-100万字)
叙事控制系统(v1.3 沿用)
卷进度预算 — 确保每卷的核心事件按时完成:
进入新卷 → LLM 自动生成 3-5 个里程碑
↓
每章生成后 → 关键词/LLM 验证里程碑是否完成
↓
进度健康度: on_track / behind_schedule / critical
↓ critical
强制约束注入 ChapterPlanner + Writer → 必须推进逾期里程碑
↓
卷末收束 → 未完成的 critical 里程碑自动继承到下一卷
风格圣经 (StyleBible) — 防止风格漂移:
| 组成 | 说明 |
|---|---|
| quantitative_targets | 句长/对话比/感官密度/感叹号比的 [min, max] 区间 |
| voice_description | 50 字的目标语音描述 |
| exemplar_paragraphs | 2-5 段理想范文 |
| anti_patterns | 禁用的 AI 味表达列表 |
| volume_overrides | 可选的分卷风格微调 |
新项目由 LLM 生成,旧项目从已有章节纯文本分析自动迁移。Reviewer 把 StyleBible 作为风格维度的对比锚点。
叙事状态管理
每章生成前,ContinuityService 自动聚合以下来源生成写前约束:
| 数据源 | 注入内容 |
|---|---|
| 上章钩子 | 必须承接的悬念、约定、行动 |
| 叙事债务 (LedgerStore) | 未了结线索 + 紧急度 |
| 角色状态 (LedgerStore) | 各角色当前位置、状态、目标 |
| 故事弧线 (StoryUnit) | 当前弧线阶段和剩余章数 |
| 卷进度预算 (MilestoneTracker) | 里程碑完成度 + 健康状态 |
| 风格圣经 (StyleBible) | 量化风格目标 + 分卷覆盖 |
| 章节任务书 (chapter_brief) | 本章主冲突、兑现、伏笔 |
每章生成后,自动提取角色快照、索引章节摘要到向量库、检查里程碑完成度,形成闭环。
省 Token 策略
长篇小说 LLM 调用量大,系统在多处优化成本:
| 策略 | 节省方式 |
|---|---|
| 向量一致性检查(每章) | Chroma 语义检索 + 规则矛盾检测,零 LLM;BM25 作为 fallback |
| Reviewer 单入口 | quality + consistency + style 合并为一次审稿调用 |
| 章节摘要压缩 | ChapterDigest 规则压缩 ~500 字后再送 LLM |
| 里程碑验证 | 优先关键词匹配(免费),仅 fallback 到 LLM |
| 超长篇分卷大纲 | 只生成当前卷详细大纲,后续卷按需扩展 |
| refine_loop 单轮 | 作者审阅后决定是否 refine,不再无限重写 |
使用方式
Web UI(推荐):
cd frontend && npm run dev # Next.js 前端 (port 3000)
python -m src.api.app # FastAPI 后端 (port 8000)
# 打开 http://localhost:3000 → 切换到「AI 小说」Tab
# 1. 填写主题/灵感 → 点击「创建项目」
# 2. 选择已创建的项目 → 点击「继续写作」
# 3. 在右侧查看大纲/角色/世界观/章节内容
# 4. 可应用读者反馈、导出 TXT、一键发布到七猫
CLI 方式(传统一键模式):
# 创建小说项目 + 生成前10章
python main.py novel write --genre 玄幻 --theme "穿越者统一修仙界" --target-words 100000
# 继续生成(断点续传)
python main.py novel resume workspace/novels/novel_xxx
# 查看项目状态
python main.py novel status workspace/novels/novel_xxx
# 导出为 TXT
python main.py novel export workspace/novels/novel_xxx
CLI 方式(Phase 4 三段式,propose / accept / regenerate):
# 1. 立项 propose(产出草案不落盘)
python main.py novel propose project-setup "穿越者统一修仙界"
# 2. 骨架逐段 propose + accept
python main.py novel propose synopsis workspace/novels/novel_xxx
python main.py novel propose main-outline workspace/novels/novel_xxx
python main.py novel propose characters workspace/novels/novel_xxx
python main.py novel propose world-setting workspace/novels/novel_xxx
python main.py novel propose story-arcs workspace/novels/novel_xxx
python main.py novel propose volume-breakdown workspace/novels/novel_xxx
# 3. 不满意时 regenerate(带 hints)
python main.py novel regenerate workspace/novels/novel_xxx \
--section synopsis --hints "主角换成女性,弱化修仙比重"
# 4. 单卷细纲 / 章节 brief
python main.py novel propose volume-outline workspace/novels/novel_xxx --volume 1
python main.py novel propose chapter-brief workspace/novels/novel_xxx --chapter 5
# 5. 跳过审阅直接落盘(自动化场景)
python main.py novel propose synopsis workspace/novels/novel_xxx --auto-accept
Python API:
from src.novel.pipeline import NovelPipeline
pipe = NovelPipeline(workspace='workspace')
# 1. 创建项目(生成大纲 + 世界观 + 角色 + 风格圣经)
result = pipe.create_novel(
genre='玄幻',
theme='穿越者统一修仙界,地盘越大能力越强',
target_words=500000, # 50万字长篇
)
# 2. 生成章节(支持分批,自动断点续传)
pipe.generate_chapters(
f"workspace/novels/{result['novel_id']}",
start_chapter=1,
end_chapter=30, # 先写30章
budget_mode=True, # 省钱模式:跳过中间章节的 LLM 打分
)
# 3. 应用读者反馈(可选)
pipe.apply_feedback(
project_path=f"workspace/novels/{result['novel_id']}",
feedback_text="第5章主角性格突然变了,不符合前面的设定",
chapter_number=5,
dry_run=True, # 先分析不修改
)
# 4. 查看进度
pipe.get_status(f"workspace/novels/{result['novel_id']}")
MCP Server(AI 助手调用):
# 启动 MCP Server
python mcp_server.py
# Claude Code / AI IDE 可直接调用:
# ---- Phase 4 三段式 ----
# novel_propose_project_setup / novel_propose_synopsis / novel_propose_main_outline
# novel_propose_characters / novel_propose_world_setting / novel_propose_story_arcs
# novel_propose_volume_breakdown / novel_propose_volume_outline / novel_propose_chapter_brief
# novel_accept_proposal / novel_regenerate_section
# ---- 传统工具(保留) ----
# novel_create(deprecated,建议用三段式组合替代)
# novel_generate_chapters / novel_get_status / novel_list_projects
# novel_read_chapter / novel_apply_feedback / novel_export
# ---- smart-editor ----
# novel_edit_setting / novel_analyze_change_impact / novel_get_change_history
风格预设
支持多种小说风格预设,每种预设包含 system prompt、量化约束和 few-shot 示例:
| 风格 | 预设名 | 适用题材 |
|---|---|---|
| 玄幻爽文 | webnovel.xuanhuan |
玄幻、修仙 |
| 都市爽文 | webnovel.shuangwen |
都市、系统流 |
| 古典武侠 | wuxia.classical |
武侠 |
| 现代仙侠 | wuxia.modern |
仙侠 |
| 现实主义 | literary.realism |
群像、悬疑、科幻 |
| 校园轻小说 | light_novel.campus |
轻小说 |
Phase 5 质量评估
7 维度仪表盘,替代旧的"LLM 打个总分"模式。每章约 3 次 judge LLM call(D1 / D5 单独 + D2 + D6 + D7 合并),全量 5 体裁 x 3 章单次成本 ~$0.03。
| # | 维度 | 方法 | 尺度 | CI 门禁 |
|---|---|---|---|---|
| D1 | 叙事流畅度 | LLM-as-judge | 1-5 | 软观测 |
| D2 | 角色一致性 | 规则 + LLM | 1-5 + conflict_count | 软观测 |
| D3 | 伏笔兑现率 | 纯规则(LedgerStore) | 百分比 | 硬门禁 >= 60% |
| D4 | AI 味指数 | 纯规则(StyleProfile + 正则) | 0-100 | 软观测 |
| D5 | 情节推进度 | LLM-as-judge | 1-5 | 软观测 |
| D6 | 对话自然度 | 规则 + LLM | 1-5 | 软观测 |
| D7 | 章节勾连 | 规则 + LLM | 1-5 | 软观测 |
关键脚本:
# 7 维度全量回归(5 体裁 x 3 章,Gemini free tier 覆盖)
python scripts/quality_regression.py --chapters 3
# 指定体裁 / judge 模型
python scripts/quality_regression.py --genres xuanhuan,suspense --judge-model deepseek
# Phase N vs N+1 成对比较(必须双向跑)
python scripts/quality_ab_phase3_vs_phase4.py
# 双向一致性 de-bias — gpt-4o-mini position bias 实测 76.5%,单向结果不可信
python scripts/quality_ab_debias.py
A/B 双向强制: 2026-04-21 Phase 3 vs Phase 4 首次 A/B 对比实测 gpt-4o-mini 有强 position bias(正向 run 60% P3 / 反向 run 93% P4)。所有 Phase N vs N+1 对比必须跑双向 + 只报告双向一致的决策。
基线报告路径:workspace/quality_baselines/phaseN/ + workspace/quality_reports/。
项目文件结构
workspace/novels/novel_xxx/
├── novel.json # 项目元数据(大纲/角色/世界观/里程碑/风格圣经)
├── checkpoint.json # 运行时状态(断点续传)
├── chapters/
│ ├── chapter_001.txt # 章节正文
│ ├── chapter_001.json # 章节元数据(摘要/质量分/角色)
│ └── ...
├── memory/ # NovelMemory(SQLite + Chroma 向量库)
└── exports/ # 导出文件(TXT/EPUB)
快速开始
环境要求
- Python 3.10+
- FFmpeg — 视频合成必需
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (scoop)
scoop install ffmpeg
安装
git clone https://github.com/tyxben/AI_novel.git
cd AI_novel
# 推荐:Web UI + 云端生图 + Gemini LLM(免费组合)
pip install -e '.[web,cloud-image,gemini]'
pip install -e . # 基础依赖(CLI + TTS)
pip install -e '.[gpu]' # + 本地 Stable Diffusion(需 GPU)
pip install -e '.[llm]' # + OpenAI / DeepSeek
pip install -e '.[gemini]' # + Google Gemini
pip install -e '.[ollama]' # + Ollama 本地 LLM
pip install -e '.[cloud-image]' # + 云端生图(SiliconFlow / 阿里云)
pip install -e '.[cloud-video]' # + AI 视频生成(可灵 / 即梦 / MiniMax)
pip install -e '.[agent]' # + LangGraph Agent 智能模式
pip install -e '.[agent-gemini]' # + Agent + Gemini LLM
pip install -e '.[web]' # + FastAPI Web 后端
pip install -e '.[all]' # 全部安装
启动 Web UI
# 终端 1:启动 FastAPI 后端
python -m src.api.app # http://localhost:8000
# 终端 2:启动 Next.js 前端
cd frontend && npm install && npm run dev # http://localhost:3000
打开浏览器访问 http://localhost:3000 即可使用。
CLI 方式
# 全流程:小说 → 短视频
python main.py run input/novel.txt
# 断点续传
python main.py run input/novel.txt --resume
# 自定义配置
python main.py run input/novel.txt --config my_config.yaml
# 仅文本分段(预览效果)
python main.py segment input/novel.txt
# 查看处理进度
python main.py status workspace/novel/
# Agent 智能模式
python main.py run input/novel.txt --mode agent
# Agent + 省钱模式
python main.py run input/novel.txt --mode agent --budget-mode
# 查看决策日志
python main.py status workspace/novel/ --decisions
配置说明
全局配置文件为 config.yaml,可通过 --config 参数指定自定义配置文件。
LLM 配置
llm:
provider: auto # auto | openai | deepseek | gemini | ollama
# model: gemini-2.0-flash-lite # 各后端有各自默认模型
auto 模式按以下优先级自动检测:GEMINI_API_KEY → DEEPSEEK_API_KEY → OPENAI_API_KEY → Ollama 本地服务。
图片生成配置
imagegen:
backend: siliconflow # siliconflow | dashscope | together | diffusers
model: black-forest-labs/FLUX.1-schnell
width: 1024
height: 1792 # 竖屏 9:16
| 后端 | 费用 | 速度 | 模型 | 需要 |
|---|---|---|---|---|
| siliconflow | 免费 | ~4s/张 | FLUX.1-schnell | SILICONFLOW_API_KEY |
| dashscope | 新用户 100 张免费 | ~5s/张 | 万相 wan2.6-t2i | DASHSCOPE_API_KEY |
| together | 需绑卡 | ~3s/张 | FLUX.1-schnell | TOGETHER_API_KEY |
| diffusers | 免费(本地) | ~30s/张 | Counterfeit-V2.5 等 | GPU + torch |
视频生成配置(可选)
不配置此项则使用默认的静态图 + Ken Burns 模式。启用 AI 视频片段需取消注释并填写:
videogen:
backend: kling # kling | seedance | minimax | sora
duration: 5 # 视频时长(秒)
aspect_ratio: "9:16" # 竖屏
mode: std # std | pro(仅 kling)
use_image_as_first_frame: true # 用生成的图片作为视频首帧
poll_interval: 10 # 轮询间隔(秒)
poll_timeout: 300 # 轮询超时(秒)
详细的视频生成 API 对比见 docs/videogen-research.md
环境变量(API Key)
根据使用的服务设置对应环境变量:
# ---- LLM(至少设一个,用于智能分段和 Prompt 生成)----
export GEMINI_API_KEY=xxx # Google Gemini(免费)
export DEEPSEEK_API_KEY=xxx # DeepSeek
export OPENAI_API_KEY=xxx # OpenAI GPT
# ---- 图片生成(至少设一个)----
export SILICONFLOW_API_KEY=xxx # 硅基流动(免费)
export DASHSCOPE_API_KEY=xxx # 阿里云百炼万相
export TOGETHER_API_KEY=xxx # Together.ai
# ---- AI 视频生成(可选)----
export KLING_API_KEY=xxx # 可灵 Kling
export SEEDANCE_API_KEY=xxx # 即梦 Seedance(火山方舟)
export MINIMAX_API_KEY=xxx # MiniMax 海螺
export OPENAI_API_KEY=xxx # OpenAI Sora(与 LLM 共用)
也支持在项目根目录创建 .env 文件配置环境变量。
项目架构
目录结构
AI_novel/
├── main.py # CLI 入口(Click)
├── frontend/ # Next.js Web UI(port 3000)
├── src/api/app.py # FastAPI 后端(port 8000)
├── mcp_server.py # MCP Server(FastMCP,供 AI 助手调用)
├── config.yaml # 全局配置
├── pyproject.toml # 项目元数据 & 依赖
├── src/
│ ├── pipeline.py # 经典流水线调度器
│ ├── agent_pipeline.py # Agent 模式流水线
│ ├── director_pipeline.py # AI 导演模式流水线
│ ├── config_manager.py # YAML 配置加载/验证
│ ├── checkpoint.py # 断点续传(JSON)
│ ├── logger.py # Rich 日志
│ ├── agents/ # 视频 Agent 智能编排(LangGraph)
│ │ ├── graph.py # 状态图构建 + 断点续传
│ │ ├── director.py # 导演 Agent
│ │ ├── content_analyzer.py # 内容分析 Agent
│ │ ├── art_director.py # 美术总监 Agent
│ │ ├── voice_director.py # 配音导演 Agent
│ │ └── editor.py # 剪辑师 Agent
│ ├── tools/ # Tool 层(封装执行模块)
│ ├── scriptplan/ # AI 导演脚本规划
│ │ ├── idea_planner.py # 灵感 → 概念
│ │ ├── script_planner.py # 概念 → 分段脚本
│ │ ├── asset_strategy.py # 素材策略决策
│ │ └── models.py # Pydantic 数据模型
│ ├── task_queue/ # 后台任务队列
│ │ ├── server.py # FastAPI 任务服务
│ │ ├── client.py # 客户端接口
│ │ ├── workers.py # 任务 Worker
│ │ └── db.py # SQLite 持久化
│ ├── llm/ # LLM 统一抽象层
│ │ ├── llm_client.py # ABC + 工厂 + 自动检测
│ │ ├── openai_backend.py # OpenAI / DeepSeek
│ │ ├── gemini_backend.py # Google Gemini
│ │ └── ollama_backend.py # Ollama 本地
│ ├── segmenter/ # 文本分段(simple 规则 / LLM 智能)
│ ├── promptgen/ # 小说文本 → 图片/视频 Prompt
│ ├── imagegen/ # 图片生成
│ │ ├── image_generator.py # ABC + 工厂
│ │ ├── siliconflow_backend.py # 硅基流动 FLUX
│ │ ├── dashscope_backend.py # 阿里云万相
│ │ ├── together_backend.py # Together.ai
│ │ └── diffusers_backend.py # 本地 Stable Diffusion
│ ├── videogen/ # AI 视频片段生成
│ │ ├── video_generator.py # ABC + 工厂
│ │ ├── base_backend.py # 公共轮询逻辑
│ │ ├── kling_backend.py # 可灵
│ │ ├── seedance_backend.py # 即梦
│ │ ├── minimax_backend.py # MiniMax 海螺
│ │ └── sora_backend.py # OpenAI Sora
│ ├── tts/ # edge-tts 配音 + SRT 字幕
│ ├── video/ # FFmpeg 视频合成 + Ken Burns 特效
│ ├── utils/ # 工具函数(FFmpeg 检测等)
│ └── novel/ # AI 长篇小说创作模块
│ ├── pipeline.py # 小说创作流水线
│ ├── config.py # 小说模块配置
│ ├── agents/ # 5 个 Agent(ProjectArchitect / VolumeDirector / ChapterPlanner / Writer / Reviewer)
│ ├── services/tool_facade.py # Phase 4 三段式唯一业务入口 (NovelToolFacade)
│ ├── quality/ # Phase 5 7 维质量评估(dimensions / judge / ab_compare / report)
│ ├── models/ # Pydantic 数据模型
│ ├── storage/ # 存储层(SQLite + NetworkX + Chroma)
│ ├── tools/ # BM25 检索(fallback) / 章节摘要 / 质量检查
│ ├── services/ # ContinuityService / AgentChat / LedgerStore / tool_facade / refine_loop
│ └── templates/ # 风格预设 / 节奏模板 / AI味黑名单
├── scripts/ # 实用脚本(批量生成、七猫发布等)
├── input/ # 输入小说文本
├── presets/ # 风格预设(YAML)
├── workspace/ # 工作目录(自动生成)
└── output/ # 输出视频(自动生成)
流水线阶段
┌─────────────────────────────────────────────────────────────────┐
│ Pipeline 流水线 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Stage 1: 文本分段 │
│ 小说文本 → 按节奏切分为多个段落 │
│ ↓ │
│ Stage 2: Prompt 生成 │
│ 每段文本 → LLM 生成图片/视频描述 Prompt │
│ ↓ │
│ Stage 3: 图片生成 │
│ Prompt → AI 生成竖屏插画(1024x1792) │
│ ↓ │
│ Stage 3.5: AI 视频生成 [可选] │
│ 图片 + Prompt → AI 生成动态视频片段 │
│ ↓ │
│ Stage 4: TTS 配音 │
│ 段落文本 → edge-tts 语音 + SRT 字幕 │
│ ↓ │
│ Stage 5: 视频合成 │
│ 图片/视频 + 音频 + 字幕 → FFmpeg 合成最终 MP4 │
│ │
└─────────────────────────────────────────────────────────────────┘
每个阶段完成后自动保存检查点,支持断点续传。
技术栈
| 类别 | 技术 |
|---|---|
| 语言 | Python 3.10+ |
| CLI | Click |
| Web UI | Next.js (frontend) + FastAPI (backend) |
| MCP | FastMCP(streamable-http + stdio) |
| 任务队列 | FastAPI + SQLite |
| TTS | edge-tts(微软免费语音合成) |
| LLM | OpenAI / DeepSeek / Google Gemini / Ollama |
| 图片生成 | SiliconFlow / 阿里云万相 / Together.ai / Diffusers (本地 SD) |
| 视频生成 | 可灵 Kling / 即梦 Seedance / MiniMax 海螺 / OpenAI Sora |
| 智能编排 | LangGraph — 视频 5 Agent + 小说 5 Agent(2026-04 重构)+ NovelToolFacade 三段式工具层 |
| 视频合成 | FFmpeg(H.265 编码、Ken Burns 特效、字幕烧录) |
| 日志 | Rich |
| 配置 | PyYAML |
| 打包 | PyInstaller |
零成本方案
不花一分钱跑通完整流水线:
- LLM — Gemini 免费(1000 次/天),或使用
segmenter.method: simple跳过 LLM - 图片 — SiliconFlow 免费注册即可使用
- TTS — edge-tts 完全免费
- 视频合成 — FFmpeg 开源免费
- 视频模式 — 默认静态图 + Ken Burns,无需付费视频 API
开发指南
添加新的视频生成后端
项目采用 抽象基类 + 工厂函数 的插件化架构,添加新后端只需三步:
- 在
src/videogen/下创建xxx_backend.py,继承BaseVideoBackend:
from src.videogen.base_backend import BaseVideoBackend
from src.videogen.video_generator import VideoResult
class XxxBackend(BaseVideoBackend):
def _submit_task(self, prompt: str, image_path=None) -> str:
"""提交生成任务,返回 task_id"""
...
def _poll_task(self, task_id: str) -> dict:
"""查询任务状态"""
...
def _download_video(self, result: dict, output_path) -> Path:
"""下载视频到本地"""
...
- 在
src/videogen/video_generator.py的工厂函数中注册新后端:
elif backend == "xxx":
from src.videogen.xxx_backend import XxxBackend
return XxxBackend(config)
- 在
config.yaml中添加对应配置项。
添加新的图片生成后端
同理,在 src/imagegen/ 下创建后端文件,继承 ImageGenerator 基类,实现 generate(prompt) -> PIL.Image 方法,然后在工厂函数中注册。
依赖安装选项
| 选项 | 说明 | 典型场景 |
|---|---|---|
pip install -e . |
基础依赖(CLI + TTS) | 最小安装 |
.[web] |
+ FastAPI Web 后端 | Web API 服务 |
.[gemini] |
+ Google Gemini | 免费 LLM |
.[llm] |
+ OpenAI SDK | OpenAI / DeepSeek |
.[ollama] |
+ Ollama 客户端 | 本地 LLM |
.[cloud-image] |
+ httpx | 云端生图 |
.[cloud-video] |
+ httpx | AI 视频生成 |
.[agent] |
+ LangGraph | Agent 智能模式 |
.[agent-gemini] |
+ LangChain Gemini | Agent + Gemini LLM |
.[gpu] |
+ torch + diffusers | 本地 Stable Diffusion |
.[build] |
+ PyInstaller | 桌面应用打包 |
.[all] |
全部安装 | 开发环境 |
更新计划
已完成:
- 架构重构 2026 Phase 0-5(2026-04 完工) — 15 Agent -> 5 Agent / propose·accept·regenerate 三段式工具层 / 7 维质量评估 + A/B 双向 de-bias
- Phase 4 三段式工具层 —
NovelToolFacade三层共享,MCP + CLI + agent_chat 统一入口 - Phase 5 质量评估 — 7 维仪表盘(伏笔兑现率硬门禁 + 6 项软观测)+ 跨体裁回归脚本
- 叙事弧线控制 v1.3 — 里程碑自动生成 + 强制控制 + 陈旧大纲检测 + 风格圣经
- 叙事状态驱动架构 — ContinuityService + LedgerStore 统一账本 + 向量一致性 + Agent Chat 会话记忆
- ReAct Agent 框架 — Writer ReAct 推理模式 + Prompt Registry 提示词版本管理
- 动态视频拼接 — AI 视频片段(可灵/即梦/MiniMax/Sora)替代静态贴图
- AI 导演模式 — 灵感一键出片,AI 自动编剧 + 制片
- Web UI 全面升级 — Next.js + FastAPI 创作平台(短视频 + AI 小说 + 设置)
- MCP Server — FastMCP 协议,供 Claude Code 等 AI 助手调用
- 存储重构 — canonical state 架构 + rename_chapter 防覆盖
计划中:
- 伏笔图谱 — NetworkX 伏笔关系图,自动追踪埋设/回收/遗忘
- 多角色语音 — 不同角色使用不同音色
- Web UI 三段式适配 — 目前 Web UI 走传统
pipeline.create_novel,三段式仅 MCP + CLI + agent_chat 可用 - 更多 LLM/图片后端 — 持续接入新的 AI 服务
License
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.