Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NovelForge

NovelForge

AI 小说 → 视觉小说转换工具 · AI-powered Novel to Visual Novel Converter

导入小说 txt,AI 全自动转换为可玩的视觉小说,导出 PC exe / 手机 APK / 网页版。

Tauri 2 + Vue 3 + WebGAL · 轻量快速 · API 全自定义


特性

说明
📖 AI 全自动管线 ① 提取角色/场景/物品卡 → ② 分章剧本(自动编排 CG / 物品演出 / 登场资料卡 / 视频推荐位)→ ③ 生成立绘/背景/CG/物品图 → ④ TTS 配音 → ⑤ 渲染组装
🎨 无背景立绘 AI 生成 + 色度键自动抠图(透明底,零依赖零费用)
😊 表情差分 每角色 5 种表情立绘(normal 图做参考保持一致),对话按情绪自动切换
画面感增强 名场面自动生成整幅 CG;重要物品特写演出;角色首次登场资料卡
🎬 视频推荐位 AI 标记名场面位置 + 生成视频提示词,人工在即梦/可灵生成后按命名放入即自动启用(零 API 费用)
🎙️ 配音 + 音色可控 TTS 逐句配音,音色库可配置,AI 自动为角色挑选音色,失败自动降级
🎵 BGM 音乐文件按氛围关键词自动匹配播放
🔌 API 全自定义 LLM / 图像 / TTS 三通道各自 base_url + api_key + model(OpenAI 兼容协议),多套配置切换 + 测试按钮
🗂️ 素材优先 导入人物参考图/物品图/背景图,支持手动映射,管线优先用你的素材,缺失才 AI 生成;支持图生图
♻️ 成本可控 全链路磁盘缓存、断点续跑、章节级重跑、中止按钮、token/费用统计
💾 状态持久化 小说/素材/选项/结果随项目自动保存,重开恢复,最近项目历史一键切换
🎯 成本控制 生成前预算上限(超限自动中止)、失败任务清单与定位重试、日志落盘
📦 三端导出 网页版 zip 一键打包(自动排除缓存)/ 导出前检查(Lint)/ 导出设置(标题·Game_key·多语言)/ PC exe / 手机 APK
🔒 安全 LLM 输出注入防护、CSP、依赖审计零已知 CVE

截图

导入小说 API 配置 生成项目
导入 配置 生成
导出 游戏标题 游戏剧情
导出 标题 剧情

快速开始

环境要求

  • Node.js 18+ · pnpm
  • Rust(仅开发/打包需要):https://rustup.rs
  • Windows / macOS / Linux
  • Linux 用户建议安装中文字体(界面中文显示):sudo apt install fonts-noto-cjk

开发运行

pnpm install
pnpm prepare:template   # 下载 WebGAL 引擎模板(仅首次,约 75MB,自动裁剪)
pnpm tauri dev

打包发布

pnpm prepare:template   # 如未执行过
pnpm tauri build

产物在 src-tauri/target/release/bundle/(Windows exe / macOS dmg / Linux AppImage)。

使用流程

  1. 导入小说:选择 txt(自动识别 GBK/UTF-8),章节自动切分;可导入自定义素材
  2. API 配置:填文本 LLM 的 base_url + key + model(DeepSeek 约 ¥1-2/百万 token 最便宜);图像/TTS 可后补
  3. 生成项目:配置开关(图像/表情差分/配音/视频位/BGM/登场资料卡)→ 开始生成 → 进度日志 + 费用统计
  4. 预览:内嵌 WebGAL 引擎实时试玩
  5. 导出:网页版直接部署;exe/APK 按生成的「导出说明.txt」操作

没有 API key 也能体验:自动进入演示模式(内置示例小说),完整跑通全流程。

API 配置示例

服务 类型 Base URL 模型示例
DeepSeek LLM https://api.deepseek.com deepseek-chat
硅基流动 图像 https://api.siliconflow.cn/v1 black-forest-labs/FLUX.1-schnell
硅基流动 TTS https://api.siliconflow.cn/v1 FunAudioLLM/CosyVoice2-0.5B
OpenAI LLM https://api.openai.com/v1 gpt-4o-mini
Kimi LLM https://api.moonshot.cn/v1 moonshot-v1-8k
Ollama(本地) LLM http://localhost:11434/v1 qwen2.5:7b

Web 版(浏览器直接运行,无需打包)

npm run dev          # 或 pnpm dev,浏览器打开 http://localhost:5173

Web 版与桌面版功能一致,浏览器内自动启用等价实现:

桌面(Tauri) Web 版
本地文件系统 IndexedDB 虚拟文件系统(数据持久化在浏览器)
Rust HTTP 客户端(无 CORS 限制) dev 服务器代理转发(/__novelforge/proxy
内嵌本地预览服务器 前端 zip 打包上传 → dev 服务器解压静态服务(同源 iframe)
Rust rembg 抠图 canvas 四角 flood-fill 抠图(白/黑底自动去背景)
WebGAL 引擎模板随包携带 dev 服务器按需同步 src-tauri/templates/webgal 到 IndexedDB
系统文件选择对话框 浏览器 <input type="file">
导出 zip 到磁盘 导出 zip 自动触发浏览器下载

生产部署:npm run build + npm run preview(preview 服务器同样提供代理/预览中间件,可反代部署); 纯静态托管(无后端)时 API 请求降级为浏览器直连(需厂商支持 CORS)。

通用适配器(图像 / TTS)

各厂商图像与语音接口协议差异很大(OpenAI 兼容 / MiniMax 专有 / 阿里任务式异步), NovelForge 内置配置驱动的通用适配器引擎sync/async 两种模式 + 字段映射模板), 配置页「服务商模板」一键选用即可:

服务商 图像 TTS
OpenAI 兼容(智谱 CogView / 硅基流动 FLUX / OpenAI) ✅ openai-image ✅ openai-tts
MiniMax(image-01 / speech-2.8) ✅ minimax-image ✅ minimax-tts(HEX 自动解码)
阿里百炼(wanx-v1 / CosyVoice) ✅ dashscope-image(任务式轮询) ✅ dashscope-tts

任意新厂商:在「高级 → 自定义适配器模板」粘贴 JSON 模板即可接入,无需改代码。 图像通道支持参考图(图生图)时自动用于角色一致性,不支持则自动降级文生图。

预置模板另含 Google Gemini/v1beta/models/{model}:generateContent,inlineData 自动提取)与 Stability AI(multipart/form-data + 原始二进制响应)。引擎自动识别各厂商错误体 (base_resp / error.message / output.message 等)并转成可读信息。

输出项目结构(标准 WebGAL 项目)

输出目录/
├─ index.html, assets/          # WebGAL 引擎(内置)
├─ 导出说明.txt                 # exe/APK/网页版导出步骤
├─ video_plan.txt               # AI 生成的视频推荐位清单(提示词)
└─ game/
   ├─ config.txt                # 游戏配置
   ├─ scene/start.txt, ch*.txt  # 剧本(可直接文本编辑)
   ├─ background/  figure/  vocal/  bgm/  video/
   └─ .novel2vn/                # 缓存与中间产物(可删除)

开发与测试

# 单元与端到端测试(Node)
npx tsx tests/unit-render.ts      # 渲染注入边界
npx tsx tests/unit-chapters.ts    # 章节切分边界
npx tsx tests/unit-cache.ts       # 缓存/断点续跑一致性
npx tsx tests/unit-tasks.ts       # 图像任务构建
npx tsx tests/unit-material.ts    # 素材优先匹配
npx tsx tests/unit-features.ts    # 登场资料卡/表情/BGM/视频位
npx tsx tests/unit-persist.ts     # 状态持久化
npx tsx tests/unit-retry.ts       # API 重试机制
npx tsx tests/unit-dedupe.ts      # 场景 id 去重
npx tsx tests/e2e-demo.ts         # 管线端到端

# 引擎实机验证(无头浏览器加载 WebGAL 播放生成的游戏)
npx tsx tests/engine-check.ts <项目目录>

# Rust 侧测试(色度键抠图)
cd src-tauri && cargo test

技术架构

┌────────────────────────────────────────────┐
│  NovelForge(Tauri 2 + Vue 3 + TypeScript) │
│  ├─ pages: 导入 / 配置 / 生成 / 预览 / 导出  │
│  ├─ core:  extract → script → images →     │
│  │          voice → render → project        │
│  ├─ api:   OpenAI 兼容适配器(LLM/图像/TTS) │
│  └─ Rust:  文件读写 / HTTP 转发 / 预览服务器 │
│            / 色度键抠图 / 配置存储           │
└───────────────┬────────────────────────────┘
                ▼ 产出标准 WebGAL 项目
┌────────────────────────────────────────────┐
│  WebGAL 引擎(MPL-2.0,不改源码)            │
│  预览(内嵌)/ exe(Terre)/ APK(官方工具)  │
└────────────────────────────────────────────┘

致谢与许可

  • WebGAL —— 视觉小说引擎(MPL-2.0),详见 THIRD_PARTY_NOTICE
  • NovelForge 本体采用 MIT 许可
  • 使用 NovelForge 发布作品时须保留 WebGAL 版权声明;游戏内容版权归创作者所有

Roadmap

  • 表情差分图生图增强(更多表情/服饰差分)
  • AI 音乐生成通道(BGM 全自动)
  • 转场动画演出
  • 游戏内角色图鉴

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages