7dac77e200
- Restructure overview with scannable bullet lists for capabilities
- Move screenshots up (after overview), reduce from 14 to 6
- Extract configuration guide to docs/configuration{,.en,.ja}.md
- Update Vercel deploy button envLink to point to new config docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
189 lines
12 KiB
Markdown
189 lines
12 KiB
Markdown
<div align="center">
|
||
|
||
<img src="docs/banner.svg" alt="InfiPlot" width="100%">
|
||
|
||
<p><b>为你实时生成的互动剧情游戏</b></p>
|
||
|
||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="36"></a>
|
||
|
||
[](https://github.com/zonghaoyuan/infiplot/stargazers)
|
||
[](https://github.com/zonghaoyuan/infiplot/watchers)
|
||
[](https://github.com/zonghaoyuan/infiplot/network)
|
||
[](https://github.com/zonghaoyuan/infiplot/issues)
|
||
|
||
[](https://infiplot.com)
|
||
[](LICENSE)
|
||
[](https://linux.do/t/topic/2296384)
|
||
|
||
[English](README.en.md) · 简体中文 · [日本語](README.ja.md)
|
||
|
||
</div>
|
||
|
||
---
|
||
|
||
## ⚡ 概览
|
||
|
||
InfiPlot是一款AI实时生成内容的互动剧情游戏,这里没有预设好的剧情、角色,所有内容都根据你的需求定制化的生成。
|
||
|
||
用一句话说,我们要做的是一款用AI实时生成内容的《完蛋!我被美女包围了!》
|
||
|
||
无论你是谁,都能在这里满足独属于你的幻想:
|
||
|
||
- 穿越到哈利波特世界学习魔法
|
||
- 成为学校里所有异性青睐和表达爱意的对象
|
||
- 顶刊顶会发不停,科研经费拿到手软
|
||
- 穿越到甄嬛传体验宫廷斗争
|
||
- 重返年轻,为遗憾的事情重新做选择
|
||
- ......
|
||
|
||
核心能力:
|
||
|
||
- **多智能体协作** — 编剧、角色设计师、场景布置师、画家各司其职,保证剧情连贯、角色一致
|
||
- **预测式生成** — 你做出选择时,下一幕通常已经画好,切换瞬间完成
|
||
- **点击探索** — 直接点击画面任意位置,vision 模型会理解你的意图并做出响应
|
||
- **AI 配音** — 每个角色拥有独特声线,支持小米 MiMo(免费)和 StepFun(付费高品质)
|
||
- **风格自由** — 火柴人、赛博朋克、水彩、漫画......任意风格都能生成
|
||
|
||
---
|
||
|
||
## 🌐 在线体验
|
||
|
||
免费在线试玩,无需本地部署:[infiplot.com](https://infiplot.com)
|
||
|
||
---
|
||
|
||
## 📸 游戏截图
|
||
|
||
<table>
|
||
<tr>
|
||
<td><a href="docs/screenshots/1.webp"><img src="docs/screenshots/1.webp" width="420" alt="InfiPlot 游戏截图 1"></a></td>
|
||
<td><a href="docs/screenshots/3.webp"><img src="docs/screenshots/3.webp" width="420" alt="InfiPlot 游戏截图 3"></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td><a href="docs/screenshots/6.webp"><img src="docs/screenshots/6.webp" width="420" alt="InfiPlot 游戏截图 6"></a></td>
|
||
<td><a href="docs/screenshots/8.webp"><img src="docs/screenshots/8.webp" width="420" alt="InfiPlot 游戏截图 8"></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td><a href="docs/screenshots/12.webp"><img src="docs/screenshots/12.webp" width="420" alt="InfiPlot 游戏截图 12"></a></td>
|
||
<td><a href="docs/screenshots/14.webp"><img src="docs/screenshots/14.webp" width="420" alt="InfiPlot 游戏截图 14"></a></td>
|
||
</tr>
|
||
</table>
|
||
|
||
---
|
||
|
||
## 工作原理
|
||
|
||
基于文本、图像和音频模型,我们搭建了一个多智能体框架来实现InfiPlot的目标。我们把agent分为编剧、角色设计师、场景布置师和画家四个职能,让他们之间相互配合,在保证剧情连贯性、角色一致性、场景一致性的基础上,尽可能使得剧情足够富有吸引力。其中编剧同时负责剧情的整体架构规划。
|
||
|
||
我们把每一次游玩的整体体验称为故事(story)。
|
||
|
||
故事以一连串场景(scene)的形式展开。每个场景由一张 AI 绘制的背景图,加上一棵简短的节拍(beat)树组成 —— 也就是旁白、对话和偶尔出现的选项。你逐拍点过一个场景时,画面始终不变;只有当某个选项把你带到真正全新的地方 —— 换了空间、换了视角、跳跃了时间 —— AI 才会绘制下一幕场景。
|
||
|
||
<div align="center">
|
||
<img src="docs/pipeline.zh.svg" alt="InfiPlot 生成流水线流程图" width="680">
|
||
</div>
|
||
|
||
当你正在阅读一幕场景时,引擎会预测式地生成你的选项可能通向的那些场景 —— 对于无法回避的下一步,还会再往前生成一幕。等你真正选定方向时,那一幕的图通常已经画好了,于是切换瞬间完成、毫无停顿。如果你现在仍然感到有些延迟,别担心,我们正在努力优化它。
|
||
|
||
直接点击背景本身(而非按钮)会走一个视觉(vision)模型:它读取你点击的位置,判断你是在探索当前场景(于是插入一个节拍 —— 不生成新图),还是要继续前进(生成一幕新场景)。这是基于我们从flipbook那里学到的宝贵认知,我们相信这个功能会在未来成为InfiPlot的关键功能,让你的游玩体验更上一层楼。
|
||
|
||
未来,画面里将没有烤进任何传统的游戏 UI。AI 会用你选择的任意风格来描绘整个世界 —— 「方格纸上的火柴人」也好,「赛博朋克黑色电影」也罢 —— 而对话框和选项按钮,只是叠在画面之上、并为贴合场景而精心调校过的一层轻量 HTML。也就是说,每次游玩时,UI都会契合当前的故事,而不是一成不变。
|
||
|
||
---
|
||
|
||
## 部署
|
||
|
||
InfiPlot 支持多种部署方式。个人使用推荐 Vercel 一键部署;想部署到自己的服务器或本地运行,可以用 Docker。
|
||
|
||
### OpenDeploy / Vercel / Cloudflare(一键部署)
|
||
|
||
Cloudflare 部署因场景流水线需要更长 CPU 时间,需要 Workers Paid Plan。OpenDeploy 支持让 AI Agent 帮你完成部署。
|
||
|
||
<a href="https://opendeploy.dev/github/zonghaoyuan/infiplot"><img src="https://oss.opendeploy.dev/static/deploy-with-your-agent.svg" alt="Deploy with your agent" height="34"></a>
|
||
<a href="https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%3A%20Xiaomi%20MiMo%20%28free%29%20or%20StepFun%20%28paid%2C%20better%20quality%29.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/docs/configuration.md"><img src="https://vercel.com/button" alt="Deploy with Vercel" height="34"></a>
|
||
<a href="https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot"><img src="https://deploy.workers.cloudflare.com/button" alt="Deploy to Cloudflare" height="34"></a>
|
||
|
||
部署完成后,按照 [配置教程](docs/configuration.md) 设置环境变量即可开始游戏。仓库根目录就是应用本身:Vercel 无需额外设置 root directory;在 Cloudflare 上把构建命令设为 `pnpm build:cf` 即可。
|
||
|
||
### Docker 部署(自托管)
|
||
|
||
适用于 VPS、家庭服务器或本地电脑。支持 x86 和 ARM(含 Apple Silicon Mac)。无需克隆仓库,只需下载两个文件:
|
||
|
||
```bash
|
||
mkdir -p infiplot && cd infiplot
|
||
curl -fsSL https://raw.githubusercontent.com/zonghaoyuan/infiplot/main/docker-compose.yml -o docker-compose.yml
|
||
curl -fsSL https://raw.githubusercontent.com/zonghaoyuan/infiplot/main/.env.example -o .env.example
|
||
[ -f .env.local ] || cp .env.example .env.local
|
||
```
|
||
|
||
编辑 `.env.local` 填入你的 API Key(详见 [配置教程](docs/configuration.md)),然后启动:
|
||
|
||
```bash
|
||
docker compose up -d
|
||
```
|
||
|
||
访问 `http://localhost:3000` 即可开始游戏。
|
||
|
||
> 也可以不用 Compose,直接运行镜像:
|
||
> ```bash
|
||
> docker run -d -p 3000:3000 --env-file .env.local ghcr.io/zonghaoyuan/infiplot:latest
|
||
> ```
|
||
|
||
---
|
||
|
||
## Roadmap
|
||
|
||
**已实现**
|
||
|
||
- [x] 延迟优化至约 10 秒
|
||
- [x] 视觉识图交互
|
||
- [x] 一键部署与自定义模型配置
|
||
- [x] 前端直配 API Key 与模型
|
||
- [x] 移动端 Web 适配
|
||
- [x] 剧情分享(`.infiplot` 格式)
|
||
- [x] OpenDeploy 快速部署
|
||
- [x] 剧情存档与续玩(本地 + 云端同步)
|
||
|
||
**未实现**
|
||
|
||
- [ ] 移动端 App 与创作平台
|
||
- [ ] 兼容 ComfyUI 自定义生图
|
||
- [ ] 延迟压缩至 5 秒以内
|
||
- [ ] 自定义角色卡与世界观
|
||
- [ ] Prompt 缓存命中率优化
|
||
|
||
---
|
||
|
||
## 团队与愿景
|
||
|
||
我们是一群来自清华大学、兰州大学等高校的年轻人。
|
||
|
||
一方面,我们本来就是galgame、乙女游戏、FMV、AI角色扮演游戏这类游戏的深度用户,在享受游戏体验的同时,也会想象如果能选择不被预设的剧情选项,或者和对话的AI角色深度互动而不只是通过聊天软件聊天,该是多么愉快刺激的体验。
|
||
|
||
另一方面,我们恰好又对大模型技术有些了解,能用AI快速实现想法,对技术路线和基于已有技术的产品能力边界有一些浅薄的思考。
|
||
|
||
契机发生在 2026 年 4 月 22 日,[@zan2434](https://x.com/zan2434) 等人发布了 [flipbook](https://flipbook.page/),我们对这种全新的交互形态感到震惊和欣喜。
|
||
于是在 5 月的某一天,我们一拍即合,决定做一款这样的产品,既帮助大家满足那些曾经遗憾过的幻想,又能够探索多模态模型所带来的新的交互形态。
|
||
|
||
目前我们的项目还很早期,有许多功能尚不完善,欢迎提交 [issues](https://github.com/zonghaoyuan/infiplot/issues) 反馈问题,或者加入我们的开发团队一起探索新的可能性,满足你的好奇心。
|
||
|
||
联系方式:hi@infiplot.com
|
||
|
||
欢迎扫码加入 **InfiPlot 公测交流群**(QQ 群号 `575404333`),一起反馈体验、参与共建:
|
||
|
||
<img src="public/qq-group.webp" alt="InfiPlot 公测交流群 QQ 二维码" width="200" />
|
||
|
||
---
|
||
|
||
## Star 趋势
|
||
|
||
[](https://star-history.com/#zonghaoyuan/infiplot&Date)
|
||
|
||
---
|
||
|
||
## 协议与贡献
|
||
|
||
本项目基于 [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.html) 协议开源。
|
||
|
||
欢迎贡献!外部贡献者在 PR 合并前,需要签署一次我们的《贡献者许可协议》(CLA)——详见 [CONTRIBUTING.md](CONTRIBUTING.md) 与 [CLA.md](CLA.md)([中文参考译文](CLA.zh.md))。
|