用全开源本地AI服务做一个完整的WebGAL Galgame Demo:服务清单、模型与配置要求
发布:2026-10-23 | 实测窗口:2026-10-16 ~ 10-19
结论先行:剧本、立绘/背景/CG、开场视频、主题曲、中日双语配音,全部由本地开源工具生成,零云端 API 依赖;引擎用 WebGAL,最终产出双结局完整 demo + 免安装 Windows 分发包。
硬件基线:Windows + 单张 NVIDIA RTX 4080(16GB 显存)。
📺 视频版(约 16分钟)
部分平台(如公众号)禁 iframe、播放器不显示时,点链接直达:
《用全开源工具链做一个 WebGAL Galgame Demo》· BV1LbnR6eEY1
一、这个 Demo 做出了什么
《黄昏天台》——短篇恋爱视觉小说:
- 标题页 → AI 开场视频 → 序章黑屏独白 → 对话推进 → 选项分支 → 两个结局(含 CG 鉴赏解锁)
- 18 句中文配音 + 18 句日语配音,游戏内"设置 → 语言"切换,字幕保持中文,游戏中途切换下一句即时生效
- 开场过场视频(本地视频模型生成,自带音轨)
- 主题曲 / 标题 BGM(本地音乐生成模型,202 秒完整版)
- 存档/读档、回想、自动播放、流程图、CG/BGM 鉴赏——全部引擎自带,零代码
试玩 / 下载
- 🎮 网盘链接(免安装 Windows 版,解压双击即玩):黄昏天台-galgameDemoWindows免安装版.zip,提取码:
px4p - 本地运行:静态服务器指向工程目录,浏览器访问
http://localhost:8123/(必须走 HTTP,file://双击index.html必黑屏) - 分发三路线:免安装 Windows exe(Electron 模板打包)/ Terre 导出 / 网页托管(GitHub Pages、Vercel、itch.io)
二、工具链总览(GitHub · 许可 · star · 模型 · 显存 · 端口)
| 环节 | 工具 | GitHub | 许可 | star | 用到的模型 | 显存要求 | 端口 |
|---|---|---|---|---|---|---|---|
| 游戏引擎 | WebGAL(Terre 编辑器) | OpenWebGAL/WebGAL | MPL-2.0 | 4.0k | 无(纯文本脚本引擎) | 无要求 | 编辑器 3001 |
| 生图(立绘/背景/CG) | ComfyUI(秋叶整合包) | Comfy-Org/ComfyUI(另有 comfyanonymous/ComfyUI 同步镜像) | GPL-3.0 | 142k | Anything V5(SD1.5 动漫风) | 6~8GB 起 | 8188 |
| 生视频(开场动画) | MiniMax H3 本地量化整合包(基于 ComfyUI 的定制 fork) | 上游 comfyanonymous/ComfyUI(整合包本身无公开 git,网盘/社区分发) | GPL-3.0(随上游) | — | MiniMax H3 开源权重量化版(约 84GB,见 §四)+ Qwen3-VL 32B 编码器 | Q4 约 10.6GB 起,16GB 卡需 block swap | 8188 起(自动递增) |
| 音乐(主题曲/BGM) | ACE-Step 1.5 | ace-step/ACE-Step-1.5 | MIT | 13.9k | ACE-Step 1.5(官方便携包内置) | 中等,需 DiT→CPU offload | REST 8001 / UI 7860(互斥) |
| 配音(TTS) | GPT-SoVITS | RVC-Boss/GPT-SoVITS | MIT | 63.5k | v5turbo 推理(权重 v1~v5turbo 齐全) | 中等(CUDA) | API 9881 / UI 9874 |
| 自动化验证 | Playwright(无头浏览器) | microsoft/playwright | Apache-2.0 | — | 无 | 无要求 | — |
star 数与许可证于 2026-10-23 经 GitHub API 核实,已并入表内("—"为不适用)。
附注:同一套剧本还有一个平行实现(Godot godotengine/godot,MIT + Dialogic 2 dialogic-godot/dialogic),但系统层要自己搭,最终主力是 WebGAL。
协作总原则:一律走 HTTP API,UI 只用于人工调试。
| 工具 | 提交 | 取结果 |
|---|---|---|
| ComfyUI(两包通用) | POST /prompt(工作流 JSON) |
GET /history/{prompt_id} → GET /view 下载 |
| ACE-Step 1.5 | POST /release_task(multipart,中文必须显式 UTF-8) |
POST /query_result 轮询 → GET /v1/audio?path= |
| GPT-SoVITS | POST /tts(文本 + 参考音频 + 对应参考台词) |
直接返回音频流 |
| WebGAL | 文件级:直接写 game/scene/*.txt |
静态服务器 + Playwright 验证 |
三、逐个服务:它干什么、怎么起、实测要点
3.1 WebGAL —— 游戏引擎(组装环节)
- 仓库:https://github.com/OpenWebGAL/WebGAL (MPL-2.0,可商用无授权费)|官网/文档:https://www.openwebgal.com/zh-cn/ 、https://docs.openwebgal.com/
- 无 HTTP API:剧本是纯文本
game/scene/*.txt(入口固定start.txt),改完刷新浏览器即见效;配音挂-vocal=xxx.wav,背景乐挂bgm= - 配置要求:引擎本体无 GPU 要求,任何能跑静态服务器的机器都行;游玩必须走 HTTP
- Terre 编辑器(官方,
WebGAL_Terre.exe):只扫描%USERPROFILE%\.webgal_terre\games\目录,没有"打开已有工程"按钮——现成工程要复制进去才出现;导出入口在编辑器右上角(网页 / Win/mac/Linux 可执行文件) - 实测要点:
choose跳本文件内 label 必须写裸 label 名(分支:label_a),写成label:label_a会静默不跳转-when条件不能写算术表达式,变量与变量之间只能用>(>=静默失效);算术先用setVar算好- 文档里枚举了
if命令,4.6.6 里不存在(会被当成对白原样显示) - 旁白必须写
:文本;,否则继承上一个说话人;changeScene不清空背景/立绘/BGM,跨章节要手动清场 - 控制台 4 个无害 404:
lib/live2d*.js、api/webgalsync、game/flowchart.json
3.2 ComfyUI(秋叶整合包)—— 生图
- 上游仓库:https://github.com/Comfy-Org/ComfyUI (GPL-3.0,142k★)——整合包/启动器本身无公开 git,由社区作者以网盘+社区方式分发(获取渠道见作者 B 站)
- 模型:Anything V5(
anything-v5-PrtRE.safetensors,SD1.5 动漫风,约 2GB 级)。角色一致性用同 seed 固定(进阶可换 LoRA / IP-Adapter) - API:
POST http://127.0.0.1:8188/prompt提交工作流 JSON →/history取结果 - 配置要求:SD1.5 对显存很宽容,6~8GB 即可流畅(实测 16GB 机器无压力);显存越大可开的分辨率/批越大
- 实测要点:
- 透明立绘别依赖 RMBG 抠图节点(要联网拉模型)——用四角泛洪抠图 + 封闭孔洞回填(紧容差 ~26 防止从白衣服漏进脸)
- 模型对"绿幕背景""无人"这类指令经常装聋,出图必须逐张肉眼验收
SaveImage文件名写.jpg存出来仍是 PNG 数据,落盘后按真实格式处理
3.3 MiniMax H3 本地量化整合包 —— 生视频(最重的环节)
-
本质:基于 ComfyUI 源码的定制整合包(git origin 即 comfyanonymous/ComfyUI),内置 MiniMax H3 开源权重的量化模型,视频在本地 GPU 生成,不需要任何厂商云密钥
-
内置模型清单(models/ 实测):
类别 文件 大小 扩散模型(文/流→视频+音频) minimax_h3_fl2va_pruned_INT4BQ.safetensors14.81 GB 扩散模型(同上,int8) minimax_h3_fl2va_pruned_int8_convrot.safetensors19.53 GB 扩散模型(参考图→视频+音频,int8) minimax_h3_ref2va_pruned_int8_convrot.safetensors19.53 GB 扩散模型(图生视频 GGUF) minimax-h3-ref2va-Q4_0.gguf10.6 GB 文本编码器 qwen3vl_32b_minimax_h3_int4_convrot.safetensors(Qwen3-VL 32B)13.93 GB 视频 VAE minimax_h3_video_vae_fp16.safetensors4.85 GB 音频 VAE minimax_h3_audio_vae_fp32.safetensors(视频自带音轨的秘密)0.56 GB 合计约 84GB——磁盘要预留够。
-
配置要求(关键):模型为 16GB 消费级显卡优化——多档量化(INT4/int8/GGUF)+ block swap 分块换入换出 + 文本编码器加速节点。建议起步配置:GGUF Q4_0(10.6GB)+ 480×832 小分辨率试跑,再按效果升 int8/INT4
-
启动:启动脚本自动检测空闲端口(默认 8188,被占则 +1);API 与 ComfyUI 完全同构(
POST /prompt→ history → view)
3.4 ACE-Step 1.5 —— 音乐(主题曲/BGM)
- 仓库:https://github.com/ace-step/ACE-Step-1.5 (MIT,13.9k★,官方口径支持 Mac / AMD / Intel / CUDA)|官方 Windows 便携包直链见仓库 README
- API 模式:工作目录进便携包,设
$env:ACESTEP_OFFLOAD_DIT_TO_CPU='true'后跑start_api_server.bat→http://127.0.0.1:8001 - 配置要求:
ACESTEP_OFFLOAD_DIT_TO_CPU=true必设(否则长歌 VAE 解码掉到 CPU 龟速);API 与 Gradio UI(7860)互斥——16GB 显存只够放一份模型,跑它前关掉其他占显存的服务 - 成果:《黄昏天台》中文主题曲,202 秒完整版(bpm 73 / 降B小调),一次成曲
- 坑:中文文本走 multipart 必须 .NET HttpClient + 显式 UTF-8(PowerShell
-Form会乱码、curl@file丢内容)
3.5 GPT-SoVITS —— 配音(TTS)
-
仓库:https://github.com/RVC-Boss/GPT-SoVITS (MIT,63.5k★)
-
部署形态:源码构建 + 内置 runtime(免装环境),权重 v1~v5turbo 齐全,v5turbo 音色最好
-
启动(API 模式):
cd <GPT-SoVITS目录> runtime\python.exe -I api_v2.py -a 127.0.0.1 -p 9881 -c <推理配置.yaml> -
调用:
POST http://127.0.0.1:9881/tts,参数含目标文本、语种、参考音频(3~10 秒)+ 对应的参考台词文本;返回音频流直接落盘 -
硬要求:
prompt_text必须与参考音频的实际台词一致(v5 系必填),对不上会整句丢失/变静音 -
实测:约 1 秒/句;固定 seed 可复现。18 句中文 + 18 句日语全绿(RMS -18~-25 dBFS 无静音)
-
剧本挂载:每句台词行尾
-vocal=文件名.wav;,文件放game/vocal/;双语切换用双行 +-when=($userData.optionData.language)==2实现(WebGAL 官方配置项,0=简中 … 2=日本語)
3.6 Playwright —— 自动化验证
- 仓库:https://github.com/microsoft/playwright (Apache-2.0)
- 无头浏览器从标题跑通两条结局路线,验证:素材请求全
200+<audio>.currentTime真实推进(不是"请求了"就算数) - WebGAL 的选项按钮是真 DOM,但
onClick在内层 div 上,派发事件要点到内层,且pointerdown/mousedown/pointerup/mouseup/click五个都要发
四、配置要求汇总
4.1 硬件
| 环节 | 显存需求 | 16GB 单卡(实测机)可行? |
|---|---|---|
| 生图(SD1.5 / Anything V5) | 6~8GB 起,余量越大分辨率越高 | ✅ 无压力 |
| 生视频(MiniMax H3 量化版) | 量化后 10.6GB(Q4)起;int8 约 19.5GB 需 block swap 换出 | ✅ 可行,建议 Q4 + 480×832 起步 |
| 音乐(ACE-Step 1.5) | 中等(配合 DiT→CPU offload) | ✅ 可行,需独占 |
| 配音(GPT-SoVITS v5turbo) | 中等(CUDA 推理) | ✅ 可行 |
| 引擎(WebGAL 运行/游玩) | 0(纯浏览器) | ✅ 任何机器 |
两条硬约束(血泪总结):
- 本地大模型服务互斥占显存——生图/生视频/音乐/配音一律串行调度:一个环节跑完再起下一个;生视频(84GB 模型)是最重任务,跑它之前关掉其他占显存服务
- 两个 ComfyUI 系工具默认都是 8188(生图包 + 生视频包)——同跑必须错端口,生视频包自带"自动递增找空闲端口"
其他:
- 磁盘:模型总量约 100GB+(H3 约 84GB + SD 模型 + TTS 权重),建议单独大盘
- 系统:Windows 10/11(全程实测环境);NVIDIA 显卡 + CUDA(GPT-SoVITS / H3 整合包按 CUDA 配置)
- 软件:任意静态服务器(
python -m http.server或一个 node 脚本)、浏览器、Git(可选)
4.2 软件栈与端口速查
| 服务 | 端口 | 备注 |
|---|---|---|
| ComfyUI 生图 | 8188 | 绘世启动器可改端口 |
| MiniMax H3 生视频 | 8188+ | 启动脚本自动递增避让 |
| ACE-Step REST | 8001 | Gradio UI 7860 与之互斥 |
| GPT-SoVITS API | 9881 | WebUI 9874 仅调试 |
| Terre 编辑器 | 3001 | 仅开发期 |
| demo 静态服务器 | 8123/8125 | 任意端口,跑通即可 |
4.3 启动命令速查(路径已泛化,从上到下按流水线顺序)
# ① 生图 ComfyUI:用整合包启动器打开,默认 http://127.0.0.1:8188
# ② 生视频 MiniMax H3:双击 启动程序.bat(自动找空闲端口)
# ③ 音乐 ACE-Step(工作目录 = 便携包目录)
$env:ACESTEP_OFFLOAD_DIT_TO_CPU='true'
.\start_api_server.bat # → http://127.0.0.1:8001
# ④ 配音 GPT-SoVITS(工作目录 = 源码目录)
runtime\python.exe -I api_v2.py -a 127.0.0.1 -p 9881 -c <推理配置.yaml>
# ⑤ demo 静态服务器(WebGAL 必须走 HTTP,file:// 打不开)
python -m http.server 8123 --directory <webgal-demo目录>
# 或 node serve.mjs 8125 <webgal-demo目录>
五、完整流水线(数据流)
剧本(人物设定 + 分镜表:文件名/用途/提示词要点)
│
├─→ ComfyUI(8188) 出图 ──────→ 立绘/背景/CG → figure/ background/
├─→ MiniMax H3(8188+) 出视频 → 开场动画 → video/opening.mp4
├─→ ACE-Step(8001) 出音乐 ───→ 主题曲/BGM → bgm/
├─→ GPT-SoVITS(9881) 出配音 ─→ 台词 wav → vocal/(-vocal= 挂参数)
│
└─→ WebGAL 组装(scene txt + 素材目录)
→ Playwright 无头跑通双结局验证 → 导出(网页 / exe / 免安装包)
复现七步:① 立项写剧本分镜 → ② 复制 WebGAL 工程骨架(补 template.json + Stage/ + UI/ 让它同时是 Terre 工程)→ ③ 写 game/scene/*.txt(边写边刷新预览)→ ④ API 批量出素材、命名与剧本一一对应 → ⑤ 配 config.txt(游戏名、唯一 Game_key、标题图/音乐、功能开关)→ ⑥ 开流程图就补 flowchart.json → ⑦ 打磨 + 打包分发。
六、实测数据(这个 Demo 的成绩单)
| 项 | 结果 |
|---|---|
| 配音 | 18 句中文 + 18 句日语,36/36 成功,约 1s/句,固定 seed 可复现 |
| 双语切换 | 设置→语言选日本語,下一句立即切日语配音,字幕保持中文;默认简中 |
| 主题曲 | 202 秒完整版一次生成 |
| 开场视频 | 本地生成 mp4,playVideo 全屏播放、双击可跳过 |
| 验证 | 无头浏览器跑通结局 A/B 两条路线,36 个 vocal 请求全 200 且 currentTime 实际推进 |
| 分发 | 免安装 Windows 包(约 260MB,压缩约 178MB),解压双击 exe 即玩 |
七、许可与合规注意(发布/商用前必读)
| 项目 | 许可 | 注意 |
|---|---|---|
| WebGAL | MPL-2.0 | 文件级 copyleft:修改引擎源码文件需开源该文件,游戏本体/素材不受传染,可商用 |
| ComfyUI | GPL-3.0 | 分发含其代码的衍生时有传染性;仅本机调用 API 无问题 |
| ACE-Step 1.5 / GPT-SoVITS / Godot / Dialogic | MIT | 商用友好 |
| Playwright | Apache-2.0 | 商用友好 |
| 模型权重 | 各随其所属许可 | Anything V5 等社区模型商用前自查其许可;MiniMax H3 开源权重按其 license |
| AI 生成素材 | — | 各平台/地区对 AI 生成内容的版权认定不一,商用自查 |
星标数与许可证于 2026-10-23 经 GitHub API 核实;本文不含任何账号、密钥、网盘提取码与图片生成提示词(本地私有内容已按脱敏原则剔除)。
参考链接
- WebGAL 仓库:https://github.com/OpenWebGAL/WebGAL | 文档:https://docs.openwebgal.com/ | 发布部署:https://docs.openwebgal.com/publish/
- ComfyUI:https://github.com/Comfy-Org/ComfyUI | 文档:https://docs.comfy.org/
- ACE-Step 1.5:https://github.com/ace-step/ACE-Step-1.5
- GPT-SoVITS:https://github.com/RVC-Boss/GPT-SoVITS
- Playwright:https://github.com/microsoft/playwright
- Godot:https://github.com/godotengine/godot | Dialogic:https://github.com/dialogic-godot/dialogic