{"id":46922388,"url":"https://github.com/anymouschina/tapcanvas","last_synced_at":"2026-03-11T03:02:02.832Z","repository":{"id":324313555,"uuid":"1094047925","full_name":"anymouschina/TapCanvas","owner":"anymouschina","description":"TapCanvas — 可视化 AI 创作画布：用第三方 AI API（Sora/可灵/即梦等）生成多媒体素材，前台 React-Flow + Remotion 编辑/预览。已适配 gemini ，glm ，sora ，qwen 系列","archived":false,"fork":false,"pushed_at":"2026-01-31T05:28:51.000Z","size":25062,"stargazers_count":135,"open_issues_count":1,"forks_count":29,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-31T19:39:05.297Z","etag":null,"topics":["aigc","canvas","free","open","sora2"],"latest_commit_sha":null,"homepage":"https://tapcanvas.beqlee.icu","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anymouschina.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-11-11T07:21:47.000Z","updated_at":"2026-01-31T05:27:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/anymouschina/TapCanvas","commit_stats":null,"previous_names":["anymouschina/tapcanvas"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/anymouschina/TapCanvas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anymouschina%2FTapCanvas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anymouschina%2FTapCanvas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anymouschina%2FTapCanvas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anymouschina%2FTapCanvas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anymouschina","download_url":"https://codeload.github.com/anymouschina/TapCanvas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anymouschina%2FTapCanvas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30368545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aigc","canvas","free","open","sora2"],"created_at":"2026-03-11T03:02:01.343Z","updated_at":"2026-03-11T03:02:02.827Z","avatar_url":"https://github.com/anymouschina.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"TapCanvas Logo\" width=\"1000\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eTapCanvas\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-Apache--2.0-blue.svg?style=flat-square\" alt=\"license\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/anymouschina/TapCanvas\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/anymouschina/TapCanvas.svg?style=flat-square\" alt=\"GitHub stars\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e一款零 GPU、面向 Sora 2 的可视化 AI 创作画布，支持文本→图像→视频的完整创作工作流。\u003c/p\u003e\n\n**Language:** 中文 | [English](README_EN.md)\n\n## 概述\n\nTapCanvas 项目主要针对 Sora 2 做了专门的画布能力优化，支持直接 Remix 链式调用，实现多账号共享，让用户能够完美留下自己的创作痕迹。\n\n- [📘 使用指引（飞书文档）](https://jpcpk71wr7.feishu.cn/wiki/WPDAw408jiQlOxki5seccaLdn9b)\n- [完整文档索引](docs/README.md)\n- [中文详细文档（从根 README 拆分）](docs/README.zh-CN.md)\n- [快速启动（Docker）](docs/docker.md)\n- [本地开发](docs/development.md)\n- [AI/后端契约与扩展](docs/INTELLIGENT_AI_IMPLEMENTATION.md)\n- [Prompt 参考](docs/AI_VIDEO_REALISM_GUIDE.md)\n\n## 最新能力\n\n- 简约风格：UI 基于 Mantine 与 React Flow 重新梳理，顶部信息条、右侧面板与 Storyboard/资产面板能够在同一画布内无刷新切换，聚焦模式和组管理让复杂节点也能在统一视觉体系下保持清晰。\n- **LangGraph 沉浸式创作（小T）**：项目级连续对话与“意图驱动”的画布操作——你只要描述想做什么，它会自动拆解步骤、创建/连接节点并执行，适合从一句话一路长出世界观、角色与分镜。\n- **Nano Banana 三档模型**：默认图像节点已经接入 Nano Banana / Fast / Pro 模型，并默认使用 Nano Banana Pro，可通过同一个表单拖拽提示词、参考图或整段剧情，直接生成分镜垫图、角色定妆照与高质量文生图/图生图结果。\n- **Sora 2 + Veo 3.1 双引擎**：视频节点即插即用 Sora 2 与 Veo3.1 Fast/Pro，支持 Remix、参考第一帧/最后一帧、复用 Storyboard 片段，让多镜头视频在画布内一气呵成。\n- **图生图链路**：图像节点支持上传参考图、抽帧、资产拖拽，任何生成的图片都可以作为下一次调用的输入，实现文本→图像→图像（图生图）→视频的完整闭环。\n- **视频抽帧拖拽生成参考图**：支持从视频抽帧预览里直接拖拽画面到画布，用于图生图/参考图快速起稿。\n\n![视频抽帧拖拽生成参考图](assets/video-to-image.jpg)\n- **GRSAI 中转站适配**：内置 grsai 代理配置面板，可以一次性填入 Host 与 API Key，同步展示积分与可用模型状态，将 Nano Banana、Sora 2、Veo 3 等请求稳定转发到海外节点或国内直连。\n- **Comfly 代理接口**：新增 comfly 代理配置，可按需将 Veo/Sora2（/v2/videos/generations）、Nano Banana（Gemini /v1beta/models/...:generateContent）与 Hailuo（MiniMax /minimax/v1/...）走代理接口调用。\n\n## Gemini/Imagen/Veo 兜底入口（sora2api / OpenAI 兼容）\n\n本项目支持将 Gemini / Imagen / Veo（含 Banana）统一走 OpenAI 兼容入口：\n\n- 统一入口：`POST http://localhost:8000/v1/chat/completions`（通过 `model` 选择 `gemini-*` / `imagen-*` / `veo_*`）\n- 可用模型：`GET http://localhost:8000/v1/models`（会返回全部 `sora-*` + `gemini/imagen/veo` 的 `id`）\n- 先配置 Gemini Token（与 Sora token 池隔离）：`http://localhost:8000/manage-gemini`（填写 `st`，后台会自动 `ST -\u003e AT` 并创建/绑定 `project_id`；代理配置与 Sora 管理页共用）\n- TapCanvas 兜底：当你未配置其它平台（例如 Gemini 直连 / Veo 直连）时，可仅配置 `Sora2API`（Host + API Key），即可在画布里调用这些模型\n\n示例（查看模型列表）：\n\n```bash\ncurl -H \"Authorization: Bearer han1234\" http://localhost:8000/v1/models\n```\n\n示例（文生图 / Gemini / Imagen）：\n\n```bash\ncurl -N http://localhost:8000/v1/chat/completions \\\n  -H \"Authorization: Bearer han1234\" -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"gemini-2.5-flash-image-landscape\",\"stream\":true,\"messages\":[{\"role\":\"user\",\"content\":\"一只赛博朋克猫，电影光效\"}]}'\n```\n\n示例（参考图生图 / Imagen）：\n\n```bash\ncurl -N http://localhost:8000/v1/chat/completions \\\n  -H \"Authorization: Bearer han1234\" -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"imagen-4.0-generate-preview-portrait\",\"stream\":true,\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"把这张图改成水彩风格\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,\u003cBASE64\u003e\"}}]}]}'\n```\n\n示例（生视频 / Veo / i2v 首尾帧）：\n\n```bash\ncurl -N http://localhost:8000/v1/chat/completions \\\n  -H \"Authorization: Bearer han1234\" -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"veo_3_1_i2v_s_fast_fl_landscape\",\"stream\":true,\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"从静止到奔跑，镜头跟随\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,\u003cSTART\u003e\"}},{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,\u003cEND\u003e\"}}]}]}'\n```\n\n返回为 SSE 流式文本：最终会输出 `![Generated Image](...)` 或 `\u003cvideo src='...'\u003e\u003c/video\u003e`；若开启缓存，会变成本地 `http://\u003chost\u003e/tmp/\u003cfile\u003e` 链接。\n\n## 协议\n\nApache License 2.0（详见 `LICENSE`）。\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=anymouschina/TapCanvas\u0026type=Date)](https://star-history.com/#anymouschina/TapCanvas\u0026Date)\n\n## 联系方式\n\n欢迎加入用户交流群交流反馈与共创：\n\n![交流群](assets/group.jpg)\n\n如需合作/问题沟通，可联系作者：\n\n![联系作者](assets/author.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanymouschina%2Ftapcanvas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanymouschina%2Ftapcanvas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanymouschina%2Ftapcanvas/lists"}