mirror of
https://github.com/basketikun/infinite-canvas.git
synced 2026-07-24 15:24:06 +08:00
feat(canvas-node-manual): enhance input box to support resource references with thumbnail display
This commit is contained in:
@@ -32,10 +32,12 @@
|
|||||||
## 核心功能
|
## 核心功能
|
||||||
|
|
||||||
- 无限画布:多画布项目、节点拖拽缩放、连线、小地图、撤销重做、导入导出。
|
- 无限画布:多画布项目、节点拖拽缩放、连线、小地图、撤销重做、导入导出。
|
||||||
- AI 创作:浏览器前台直连你配置的 OpenAI 兼容接口,支持文生图、图生图、参考图编辑、文本问答、音频和视频生成;Seedance 2.0 可通过火山方舟 Agent Plan 接入。
|
- AI 创作:浏览器前台直连你配置的 OpenAI 兼容接口,支持文生图、图生图、参考图编辑、文本问答、音频和视频生成。
|
||||||
- 画布助手:围绕选中节点和上游节点对话、生图,并把结果插回画布。
|
- 画布助手:围绕选中节点和上游节点对话、生图,并把结果插回画布。
|
||||||
- 本地 Agent:通过本机 Canvas Agent 连接 Codex / Claude Code,让 Agent 通过 MCP 操作当前画布;
|
- 本地 Agent:通过本机 Canvas Agent 连接 Codex / Claude Code,让 Agent 通过 MCP 操作当前画布;
|
||||||
- Codex App 插件:提供 Codex app 插件,安装后会自动注册 MCP 并尝试拉起本地 Agent。
|
- Codex App 插件:提供 Codex app 插件,安装后会自动注册 MCP 并尝试拉起本地 Agent。
|
||||||
|
- 插件系统:支持通过 URL 动态安装 / 启用 / 更新 / 卸载远程节点插件,并提供 TypeScript SDK 自行开发画布节点插件。
|
||||||
|
- 自定义接口调用:可自定义生图 / 视频接口的调用方式,灵活适配各类中转站与自建服务。
|
||||||
- 提示词库:浏览器前端直连多个 GitHub 开源项目,并缓存到 IndexedDB。
|
- 提示词库:浏览器前端直连多个 GitHub 开源项目,并缓存到 IndexedDB。
|
||||||
|
|
||||||
完整功能说明见 [功能介绍](docs/content/docs/overview/features.mdx)。
|
完整功能说明见 [功能介绍](docs/content/docs/overview/features.mdx)。
|
||||||
@@ -68,16 +70,7 @@ docker compose up -d
|
|||||||
|
|
||||||
首次打开后进入右上角配置,填入自己的 OpenAI 兼容 `Base URL` 和 `API Key`。
|
首次打开后进入右上角配置,填入自己的 OpenAI 兼容 `Base URL` 和 `API Key`。
|
||||||
|
|
||||||
## New API 自动配置
|
如果默认的OpenAI接口调用方式与您的API不同,可自定义生图/视频脚本调用。
|
||||||
|
|
||||||
如果使用 New API,可在 `系统设置 -> 聊天方式 -> 添加聊天设置` 中填入:
|
|
||||||
|
|
||||||
```text
|
|
||||||
https://canvas.best?apiKey={key}&baseUrl={address}
|
|
||||||
```
|
|
||||||
|
|
||||||
跳转后会自动打开配置弹窗并填入 API Key 和 Base URL。
|
|
||||||
如果自己部署了,可以把 `https://canvas.best` 替换成你部署的地址。
|
|
||||||
|
|
||||||
## 效果展示
|
## 效果展示
|
||||||
|
|
||||||
@@ -108,20 +101,9 @@ https://canvas.best?apiKey={key}&baseUrl={address}
|
|||||||
|
|
||||||
## 赞助支持
|
## 赞助支持
|
||||||
|
|
||||||
<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>
|
|
||||||
|
|
||||||
## 社区支持
|
## 社区支持
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ description: 当前画布节点的主要用途与操作流程
|
|||||||
- 当文本节点为空时,输入框用于填写想生成的文本内容;点击发送后,结果会回填到当前文本节点。
|
- 当文本节点为空时,输入框用于填写想生成的文本内容;点击发送后,结果会回填到当前文本节点。
|
||||||
- 当文本节点已有内容时,输入框用于填写想把本段文本修改成什么;点击发送后,会在右侧生成新的文本节点,并自动连接原节点和新节点。
|
- 当文本节点已有内容时,输入框用于填写想把本段文本修改成什么;点击发送后,会在右侧生成新的文本节点,并自动连接原节点和新节点。
|
||||||
- 输入内容可以手写,也可以从提示词库选择。
|
- 输入内容可以手写,也可以从提示词库选择。
|
||||||
|
- 输入框支持 `@` 引用已连接的图片、文本、视频、音频资源;`@` 引用图片时会在输入框内直接显示真实缩略图,发送时按当前连接自动编号交给模型。因此不需要再记忆「图片1 / 文本1」编号,画布节点右上角也不再显示资源角标。
|
||||||
- 对话框里的模型下拉来自全局配置里已拉取的模型列表;选择结果只作用于当前节点,不会修改其它节点或全局默认模型。
|
- 对话框里的模型下拉来自全局配置里已拉取的模型列表;选择结果只作用于当前节点,不会修改其它节点或全局默认模型。
|
||||||
- 如果下拉中没有模型,需要先打开配置弹窗拉取模型列表,并设置默认生图模型和默认文本模型。火山方舟 Agent Plan 若提示不支持 `/models`,请手动填写模型名。
|
- 如果下拉中没有模型,需要先打开配置弹窗拉取模型列表,并设置默认生图模型和默认文本模型。火山方舟 Agent Plan 若提示不支持 `/models`,请手动填写模型名。
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
"defaultOpen": true,
|
"defaultOpen": true,
|
||||||
"pages": [
|
"pages": [
|
||||||
"local-development",
|
"local-development",
|
||||||
"canvas-data-structure"
|
"canvas-data-structure",
|
||||||
|
"local-codex-canvas"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,9 +85,12 @@ Base URL 如果已经以 `/v1`、`/api/v3` 或 `/api/plan/v3` 结尾,系统不
|
|||||||
- 生成数量。
|
- 生成数量。
|
||||||
- 视频模型。
|
- 视频模型。
|
||||||
- 视频比例、清晰度、时长、生成声音和水印。
|
- 视频比例、清晰度、时长、生成声音和水印。
|
||||||
|
- 自定义生图 / 视频接口的调用方式,灵活适配不同中转站与自建服务。
|
||||||
|
|
||||||
普通图片/文本节点可以直接输入提示词生成结果。生成配置节点可以读取上游节点内容,并按节点自己的配置批量生成多个图片或文本结果。生成配置节点支持预览当前提示词和参考图输入,并调整输入顺序。
|
普通图片/文本节点可以直接输入提示词生成结果。生成配置节点可以读取上游节点内容,并按节点自己的配置批量生成多个图片或文本结果。生成配置节点支持预览当前提示词和参考图输入,并调整输入顺序。
|
||||||
|
|
||||||
|
节点下方对话框和组装提示词输入框都支持 `@` 引用已连接的图片、文本、视频、音频等资源;`@` 引用图片时,输入框内会直接显示该图片的真实缩略图,而不再是「图片1」这类文字编号,发送时会按当前连接自动编号交给模型理解。由于引用改在对话框内直接 `@`,画布节点右上角不再显示「图片1 / 文本1」资源角标。
|
||||||
|
|
||||||
视频生成可从文本节点读取 prompt,从图片节点读取参考图,从视频节点读取参考视频,从音频节点读取参考音频。Seedance 2.0 支持最多 9 张参考图、3 个参考视频、3 个参考音频;分辨率支持 `480p`、`720p`、`1080p`(fast 模型不支持 `1080p`),比例支持 `16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`、`adaptive`,时长支持 4-15 秒或智能时长。生成成功后会把视频插入画布为视频节点并使用原生播放器预览。参考视频和参考音频优先使用公网可访问 URL;本地素材会以前端可读取的数据传给兼容接口,是否支持取决于具体上游。
|
视频生成可从文本节点读取 prompt,从图片节点读取参考图,从视频节点读取参考视频,从音频节点读取参考音频。Seedance 2.0 支持最多 9 张参考图、3 个参考视频、3 个参考音频;分辨率支持 `480p`、`720p`、`1080p`(fast 模型不支持 `1080p`),比例支持 `16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`、`adaptive`,时长支持 4-15 秒或智能时长。生成成功后会把视频插入画布为视频节点并使用原生播放器预览。参考视频和参考音频优先使用公网可访问 URL;本地素材会以前端可读取的数据传给兼容接口,是否支持取决于具体上游。
|
||||||
|
|
||||||
## 画布助手
|
## 画布助手
|
||||||
@@ -106,6 +109,18 @@ Base URL 如果已经以 `/v1`、`/api/v3` 或 `/api/plan/v3` 结尾,系统不
|
|||||||
- 把助手生成的图片插入画布。
|
- 把助手生成的图片插入画布。
|
||||||
- 折叠和展开助手面板。
|
- 折叠和展开助手面板。
|
||||||
|
|
||||||
|
## 节点插件系统
|
||||||
|
|
||||||
|
画布支持通过节点插件扩展新的节点类型,内置节点之外的能力都可以以插件形式加载:
|
||||||
|
|
||||||
|
- 支持通过 URL 动态安装、启用、更新和卸载远程节点插件。
|
||||||
|
- 提供官方插件注册表,节点插件面板可从项目仓库读取官方插件列表并一键安装。
|
||||||
|
- 提供 TypeScript 插件开发 SDK,可自行开发画布节点插件,并使用 AI 生成、面板控制等扩展能力。
|
||||||
|
- 内置 Markdown、SVG、HTML、3D 全景、便利贴等示例插件。
|
||||||
|
- 插件面板会显示插件版本,并对可升级的插件给出提醒。
|
||||||
|
|
||||||
|
Codex App 插件的安装与使用见 [Codex App 插件](/docs/overview/codex-app-plugin)。
|
||||||
|
|
||||||
## 提示词库
|
## 提示词库
|
||||||
|
|
||||||
前台提示词库支持:
|
前台提示词库支持:
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
"render",
|
"render",
|
||||||
"docker",
|
"docker",
|
||||||
"third-party-prompt-repositories",
|
"third-party-prompt-repositories",
|
||||||
"[在线体验](https://canvas.best/)",
|
"[在线体验](https://canvas.best/)"
|
||||||
"local-codex-canvas"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ description: 当前版本已实现但仍需人工验证的变更项
|
|||||||
|
|
||||||
- 画布节点插件系统:内置节点(图片/文本/视频/音频/配置/组)改为统一注册表管理,创建菜单由注册表动态生成;需验证六种内置节点的创建、渲染、缩放、连线、小地图颜色、作为生成输入等行为与之前一致。内置节点仅这六种,其余均为插件。
|
- 画布节点插件系统:内置节点(图片/文本/视频/音频/配置/组)改为统一注册表管理,创建菜单由注册表动态生成;需验证六种内置节点的创建、渲染、缩放、连线、小地图颜色、作为生成输入等行为与之前一致。内置节点仅这六种,其余均为插件。
|
||||||
- 画布节点插件系统:左上菜单新增「节点插件」,可通过 URL 安装远程插件、启用/禁用、更新、卸载;安装时有安全警告说明插件代码在页面内执行、可访问本地数据。可用 `/plugins/sticky-note.js` 安装便利贴节点验证:换色、编辑、「衍生文本节点」(演示 applyOps 增节点+连线)。
|
- 画布节点插件系统:左上菜单新增「节点插件」,可通过 URL 安装远程插件、启用/禁用、更新、卸载;安装时有安全警告说明插件代码在页面内执行、可访问本地数据。可用 `/plugins/sticky-note.js` 安装便利贴节点验证:换色、编辑、「衍生文本节点」(演示 applyOps 增节点+连线)。
|
||||||
- 画布节点插件系统:示例插件 Markdown(编辑/渲染)、HTML(沙箱 iframe 渲染,支持 {{input}} 注入上游文本)、SVG(渲染/编辑,可取上游文本 SVG 源码)、3D 全景(three.js CDN 动态加载,可从上游图片节点取全景图并拖拽查看);均为远程插件,需分别安装 `/plugins/markdown.js`、`/plugins/html.js`、`/plugins/svg.js`、`/plugins/panorama.js` 后验证创建、渲染、编辑及与上游节点的交互。
|
- 画布节点插件系统:示例插件 Markdown(编辑/渲染)、HTML(沙箱 iframe 渲染,支持 `{{input}}` 注入上游文本)、SVG(渲染/编辑,可取上游文本 SVG 源码)、3D 全景(three.js CDN 动态加载,可从上游图片节点取全景图并拖拽查看);均为远程插件,需分别安装 `/plugins/markdown.js`、`/plugins/html.js`、`/plugins/svg.js`、`/plugins/panorama.js` 后验证创建、渲染、编辑及与上游节点的交互。
|
||||||
- 画布节点插件系统:卸载或禁用插件后,画布上遗留的该类型节点显示「缺少插件」占位且数据保留,重新安装/启用后恢复渲染;需验证刷新后已启用插件自动加载。
|
- 画布节点插件系统:卸载或禁用插件后,画布上遗留的该类型节点显示「缺少插件」占位且数据保留,重新安装/启用后恢复渲染;需验证刷新后已启用插件自动加载。
|
||||||
- 画布节点插件系统:每个插件为 `plugins/canvas/<name>/` 独立目录(各自 package.json + esbuild + src + README,互不耦合),`npm run build` 产物落到 `dist/<name>.js` 并同步到 `web/public/plugins/`;需验证各插件可独立构建与安装。
|
- 画布节点插件系统:每个插件为 `plugins/canvas/<name>/` 独立目录(各自 package.json + esbuild + src + README,互不耦合),`npm run build` 产物落到 `dist/<name>.js` 并同步到 `web/public/plugins/`;需验证各插件可独立构建与安装。
|
||||||
- 画布节点插件本地开发:每个插件支持 `npm run dev`(watch 自动构建并同步到 `web/public/plugins/`),配合 `web/.env.local` 的 `VITE_DEV_PLUGINS`(逗号分隔 URL)每次刷新重新拉取、无需反复安装;需验证改源码刷新页面即生效。
|
- 画布节点插件本地开发:每个插件支持 `npm run dev`(watch 自动构建并同步到 `web/public/plugins/`),配合 `web/.env.local` 的 `VITE_DEV_PLUGINS`(逗号分隔 URL)每次刷新重新拉取、无需反复安装;需验证改源码刷新页面即生效。
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
"defaultOpen": true,
|
"defaultOpen": true,
|
||||||
"pages": [
|
"pages": [
|
||||||
"security",
|
"security",
|
||||||
"donate",
|
|
||||||
"sponsor"
|
"sponsor"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,33 @@
|
|||||||
---
|
---
|
||||||
title: 广告赞助
|
title: 赞助支持
|
||||||
description: 广告赞助、项目露出和社区推广说明
|
description: 赞助支持、广告合作、项目露出和社区推广说明
|
||||||
---
|
---
|
||||||
|
|
||||||
# 广告赞助
|
# 赞助支持
|
||||||
|
|
||||||
|
如果本项目对你有帮助,欢迎通过 Star、广告赞助合作、提供 AI 订阅账号等方式支持项目继续维护。
|
||||||
|
|
||||||
|
项目开发大量依赖 Codex、Claude 等 AI 编程工具辅助写代码、排查问题和整理文档,这些工具需要持续付费。相关支持会优先用于购买 AI 开发工具、模型服务和项目维护相关资源,帮助项目继续迭代。
|
||||||
|
|
||||||
|
## 支持方式
|
||||||
|
|
||||||
|
支持方式包括但不限于:
|
||||||
|
|
||||||
|
- 给 GitHub 仓库点 Star,帮助项目被更多人看到。
|
||||||
|
- 通过广告赞助合作支持项目维护成本。
|
||||||
|
- Codex、Claude 等 AI 编程工具订阅账号支持,帮助维护者持续使用 AI 辅助开发。
|
||||||
|
|
||||||
|
## 广告赞助
|
||||||
|
|
||||||
如果你希望在项目文档、README 或相关页面获得赞助露出,可以直接通过邮箱联系项目维护者沟通位置、周期和展示形式。
|
如果你希望在项目文档、README 或相关页面获得赞助露出,可以直接通过邮箱联系项目维护者沟通位置、周期和展示形式。
|
||||||
|
|
||||||
## 适合的赞助内容
|
### 适合的赞助内容
|
||||||
|
|
||||||
- AI 工具、模型服务、API 服务或开发者工具。
|
- AI 工具、模型服务、API 服务或开发者工具。
|
||||||
- 与图片、视频、文本生成工作流相关的产品。
|
- 与图片、视频、文本生成工作流相关的产品。
|
||||||
- 适合开源项目用户和 AI 创作者使用的服务。
|
- 适合开源项目用户和 AI 创作者使用的服务。
|
||||||
|
|
||||||
## 建议提供的信息
|
### 建议提供的信息
|
||||||
|
|
||||||
- 品牌或产品名称。
|
- 品牌或产品名称。
|
||||||
- 希望展示的位置和周期。
|
- 希望展示的位置和周期。
|
||||||
|
|||||||
+2
-3
@@ -27,8 +27,7 @@
|
|||||||
## 支持与安全
|
## 支持与安全
|
||||||
|
|
||||||
- [漏洞提交](/docs/support/security)
|
- [漏洞提交](/docs/support/security)
|
||||||
- [打赏支持](/docs/support/donate)
|
- [赞助支持](/docs/support/sponsor)
|
||||||
- [广告赞助](/docs/support/sponsor)
|
|
||||||
|
|
||||||
## 项目进度
|
## 项目进度
|
||||||
|
|
||||||
@@ -43,4 +42,4 @@
|
|||||||
|
|
||||||
## 原理说明
|
## 原理说明
|
||||||
|
|
||||||
- [本地 Codex 连接画布原理](/docs/overview/local-codex-canvas)
|
- [本地 Codex 连接画布原理](/docs/development/local-codex-canvas)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ const tabs = [
|
|||||||
{ title: '开发文档', href: '/docs/development/local-development', prefix: '/docs/development' },
|
{ title: '开发文档', href: '/docs/development/local-development', prefix: '/docs/development' },
|
||||||
{ title: '项目进度', href: '/docs/progress/changelog', prefix: '/docs/progress' },
|
{ title: '项目进度', href: '/docs/progress/changelog', prefix: '/docs/progress' },
|
||||||
{ title: '商务合作', href: '/docs/business/business', prefix: '/docs/business' },
|
{ title: '商务合作', href: '/docs/business/business', prefix: '/docs/business' },
|
||||||
{ title: '赞助支持', href: '/docs/support/donate', prefix: '/docs/support' },
|
{ title: '赞助支持', href: '/docs/support/sponsor', prefix: '/docs/support' },
|
||||||
];
|
];
|
||||||
|
|
||||||
export function DocsTopTabs() {
|
export function DocsTopTabs() {
|
||||||
|
|||||||
Reference in New Issue
Block a user