mirror of
https://github.com/basketikun/infinite-canvas.git
synced 2026-07-24 15:24:06 +08:00
146 lines
6.8 KiB
Markdown
146 lines
6.8 KiB
Markdown
<p align="center">
|
|
<img src="web/public/logo.svg" width="96" alt="infinite-canvas logo">
|
|
</p>
|
|
|
|
<h1 align="center">无限画布 (infinite-canvas)</h1>
|
|
|
|
<p align="center">
|
|
<a href="https://linux.do/"><img src="https://img.shields.io/badge/Linux.do-Community-2b6de8?style=flat-square" alt="Linux.do"></a>
|
|
<a href="https://render.com/deploy?repo=https://github.com/basketikun/infinite-canvas"><img src="https://img.shields.io/badge/Render-Deploy-46e3b7?style=flat-square&logo=render&logoColor=111111" alt="Deploy to Render"></a>
|
|
<a href="https://github.com/basketikun/infinite-canvas"><img src="https://img.shields.io/github/stars/basketikun/infinite-canvas?style=flat-square&logo=github" alt="GitHub stars"></a>
|
|
<a href="VERSION"><img src="https://img.shields.io/badge/version-v0.2.0-2563eb?style=flat-square" alt="Version"></a>
|
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-f97316?style=flat-square" alt="License"></a>
|
|
<a href="https://vercel.com/"><img src="https://img.shields.io/badge/Vercel-ready-000000?style=flat-square&logo=vercel" alt="Vercel ready"></a>
|
|
<a href="https://nextjs.org/"><img src="https://img.shields.io/badge/Next.js-16.2-000000?style=flat-square&logo=nextdotjs" alt="Next.js"></a>
|
|
</p>
|
|
|
|
无限画布是一款面向图片创作的开源工作台。它把画布编排、AI 图片生成、参考图编辑、对话助手、提示词库和素材沉淀放在同一个界面里,适合用来探索视觉方案并连续迭代图片结果。
|
|
|
|
> [!CAUTION]
|
|
> 项目目前处于开发阶段,不保证历史数据兼容。各种数据库结构和存储格式都可能直接调整,欢迎关注后续更新,当前更适合个人/本地部署,不建议直接公网多人共用。
|
|
>
|
|
> 如果你需要稳定维护自己的分支,建议自行 fork 后独立开发。二次开发与 PR 请保留原作者信息和前端页面标识。
|
|
|
|
## 核心功能
|
|
|
|
- 无限画布:多画布项目、节点拖拽缩放、连线、小地图、撤销重做、导入导出。
|
|
- AI 创作:浏览器前台直连你配置的 OpenAI 兼容接口,支持文生图、图生图、参考图编辑、文本问答、音频和视频生成;Seedance 2.0 可通过火山方舟 Agent Plan 接入。
|
|
- 画布助手:围绕选中节点和上游节点对话、生图,并把结果插回画布。
|
|
- 本地 Agent:通过本机 Canvas Agent 连接 Codex / Claude Code,让 Agent 通过 MCP 操作当前画布。
|
|
- 提示词库:Next.js route 抓取多个 GitHub 开源项目,并缓存在运行实例内存中。
|
|
|
|
完整功能说明见 [功能介绍](docs/content/docs/overview/features.mdx)。
|
|
|
|
如果你在为担心没有合适的生图API来发愁,可以查看该免费生图项目:[chatgpt2api](https://github.com/basketikun/chatgpt2api)
|
|
|
|
## 技术栈
|
|
|
|
- 前端:Next.js、React、TypeScript、Tailwind CSS、Ant Design、Zustand、TanStack Query。
|
|
- 少量 Next.js Route:第三方提示词内存缓存、WebDAV 可选代理。
|
|
- 部署:Vercel 或 Docker。
|
|
|
|
## 快速开始
|
|
|
|
推荐直接导入仓库到 Vercel,根目录已提供 `vercel.json`,会构建 `web/`。AI API Key、Base URL、画布、素材和生成记录默认保存在浏览器本地。
|
|
|
|
```bash
|
|
git clone git@github.com:basketikun/infinite-canvas.git
|
|
cd infinite-canvas
|
|
cd web
|
|
bun install
|
|
bun run dev
|
|
```
|
|
|
|
Docker 运行:
|
|
|
|
```bash
|
|
docker build -t infinite-canvas .
|
|
docker run --rm -p 3000:3000 infinite-canvas
|
|
```
|
|
|
|
运行后默认端口3000,可访问 `http://localhost:3000`。
|
|
|
|
首次打开后进入右上角配置,填入自己的 OpenAI 兼容 `Base URL` 和 `API Key`。
|
|
|
|
## New API 自动配置
|
|
|
|
如果使用 New API,可在 `系统设置 -> 聊天方式 -> 添加聊天设置` 中填入:
|
|
|
|
```text
|
|
https://canvas.best?apiKey={key}&baseUrl={address}
|
|
```
|
|
|
|
跳转后会自动打开配置弹窗并填入 API Key 和 Base URL。
|
|
如果自己部署了,可以把 `https://canvas.best` 替换成你部署的地址。
|
|
|
|
## 效果展示
|
|
|
|
<table width="100%">
|
|
<tr>
|
|
<td width="50%"><img src="https://i.ibb.co/TDFvGWDT/image.png" alt="image" border="0"></td>
|
|
<td width="50%"><img src="https://i.ibb.co/zVwJq3YS/image.png" alt="image" border="0"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="50%"><img src="https://i.ibb.co/PvY3qhhK/image.png" alt="image" border="0"></td>
|
|
<td width="50%"><img src="https://i.ibb.co/7D04LwN/image.png" alt="image" border="0"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="50%"><img src="https://i.ibb.co/bj30FtS5/5.png" alt="5" border="0"></td>
|
|
<td width="50%"><img src="https://i.ibb.co/hxRvjw51/image.png" alt="image" border="0"></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="50%"><img src="https://i.ibb.co/jkWsF8q1/image.png" alt="image" border="0"></td>
|
|
<td width="50%"><img src="https://i.ibb.co/XrnfXHx7/image.png" alt="image" border="0"></td>
|
|
</tr>
|
|
</table>
|
|
|
|
## 文档
|
|
|
|
- [快速开始](docs/content/docs/overview/quick-start.mdx)
|
|
- [功能介绍](docs/content/docs/overview/features.mdx)
|
|
- [Render 部署](docs/content/docs/overview/render.mdx)
|
|
- [Docker 部署](docs/content/docs/overview/docker.mdx)
|
|
- [画布节点操作手册](docs/content/docs/canvas/canvas-node-manual.mdx)
|
|
- [画布快捷键](docs/content/docs/canvas/canvas-shortcuts.mdx)
|
|
- [贡献者协议](CLA.md)
|
|
- [漏洞提交](SECURITY.md)
|
|
- [待办事项](docs/content/docs/progress/todo.mdx)
|
|
- [本地 Canvas Agent](canvas-agent/README.md)
|
|
|
|
## 赞助支持
|
|
|
|
<div align="center">
|
|
|
|
如果这个项目对你有帮助,欢迎通过爱发电赞助支持,你的每一份鼓励都是持续更新的动力!
|
|
|
|
<br>
|
|
|
|
<a href="https://ifdian.net/a/basketikun">
|
|
<img src="https://img.shields.io/badge/%E7%88%B1%E5%8F%91%E7%94%B5-%E8%B5%9E%E5%8A%A9%E4%BD%9C%E8%80%85-946ce6?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyMS4zNWwtMS40NS0xLjMyQzUuNCAxNS4zNiAyIDEyLjI4IDIgOC41IDIgNS40MiA0LjQyIDMgNy41IDNjMS43NCAwIDMuNDEuODEgNC41IDIuMDlDMTMuMDkgMy44MSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1eiIvPjwvc3ZnPg==&logoColor=white" alt="爱发电赞助" />
|
|
</a>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
</div>
|
|
|
|
## 社区支持
|
|
|
|
学 AI,上 L 站:[LinuxDO](https://linux.do/)
|
|
|
|
点击链接加入群聊【AI开源交流】:https://qm.qq.com/q/DFnKzZ807u
|
|
|
|
## 开源协议
|
|
|
|
本项目使用 GNU Affero General Public License v3.0,见 [LICENSE](LICENSE)。
|
|
|
|
## Star History
|
|
|
|
<a href="https://www.star-history.com/?repos=basketikun%2Finfinite-canvas&type=date&legend=top-left">
|
|
<picture>
|
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=basketikun/infinite-canvas&type=date&theme=dark&legend=top-left" />
|
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=basketikun/infinite-canvas&type=date&legend=top-left" />
|
|
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=basketikun/infinite-canvas&type=date&legend=top-left" />
|
|
</picture>
|
|
</a>
|