Files
infinite-canvas/docs/features.md
T
HouYunFei 2ab499bc54 refactor(server): 调整 Docker 运行架构为 Next.js 代理 Go API
- 修改 Dockerfile 中的运行命令,将 Next.js 设为对外服务,Go 服务在内部监听
- 更新端口配置,后端监听端口从 3000 改为 80
- 移除 Go 服务中的反向代理逻辑,统一由 Next.js 处理页面请求
- 修改 Next.js 配置,在生产环境中也启用 API 代理功能
- 更新文档描述,明确 Next.js 作为页面入口,API 请求代理到 Go 服务
- 调整开发环境端口配置,web 开发端口从 3001 改为 3000
- 更新版本号至 v0.0.4 并修改 CHANGELOG
2026-05-20 13:54:15 +08:00

5.4 KiB

功能介绍

本文档记录当前项目已经实现的主要功能。

画布项目

  • 支持创建多个画布项目。
  • 支持项目重命名、删除、批量选择和批量删除。
  • 支持单个画布项目导出为 JSON,也支持从 JSON 导入画布。
  • 画布项目保存在浏览器本地,登录账号后暂不会自动同步到服务器。

无限画布

  • 支持拖动画布、滚轮缩放、缩放滑杆和重置视图。
  • 支持小地图定位,可开关小地图。
  • 支持点阵、网格线、空白三种背景。
  • 支持浅色和深色主题。
  • 支持框选、多选、全选、取消选择、删除选中。
  • 支持复制粘贴节点和节点之间的连线。
  • 支持撤销和重做节点、连线、视口、背景和助手会话变化。
  • 支持节点连线,并高亮当前节点相关的上下游节点和连线。
  • 支持快捷键帮助,覆盖缩放、框选、全选、复制粘贴、撤销重做、删除、退出选择和拖入图片。

节点

目前画布中有三类节点:

  • 图片节点:展示上传图片、生成图片或素材库图片。
  • 文本节点:保存提示词、说明文案、AI 文字回答等文本内容。
  • 生成配置节点:汇总上游文本和图片,统一配置模型、比例、数量后批量生成图片或文本。

节点支持:

  • 拖拽移动。
  • 四角缩放。
  • 图片节点等比缩放或自由比例切换。
  • 查看节点基础信息和 JSON。
  • 删除、复制、粘贴。
  • 通过左右连接点建立上下游关系。

图片工作流

  • 支持上传图片到新节点。
  • 支持拖拽图片文件到画布。
  • 支持替换已有图片节点内容。
  • 支持下载图片节点。
  • 支持把图片节点保存到“我的素材”。
  • 支持图片裁剪,并把裁剪结果生成为新的图片节点。
  • 支持本地多角度变换,并把结果生成为新的图片节点。
  • 支持生成失败后重试。
  • 批量生成多张图片时会先展示为图片组节点,支持叠卡预览、展开查看全部结果并设置主图。

AI 生成

项目通过前端直接请求 OpenAI 兼容接口:

  • /v1/images/generations:文生图。
  • /v1/images/edits:图生图/参考图编辑。
  • /v1/chat/completions:文本问答和带图问答。
  • /v1/models:读取模型列表。

可配置项:

  • Base URL。
  • API Key。
  • 默认模型。
  • 图片质量。
  • 图片比例。
  • 生成数量。

普通图片/文本节点可以直接输入提示词生成结果。生成配置节点可以读取上游节点内容,并按节点自己的配置批量生成多个图片或文本结果。生成配置节点支持预览当前提示词和参考图输入,并调整输入顺序。

画布助手

画布右侧助手面板支持:

  • 文本问答。
  • 生图。
  • 读取当前选中节点作为引用。
  • 自动把选中节点的上游节点也纳入引用。
  • 粘贴图片到助手输入框并插入画布。
  • 历史会话。
  • 删除单条或多条会话。
  • 重试回答。
  • 把助手生成的文本插入画布。
  • 把助手生成的图片插入画布。
  • 折叠和展开助手面板。

提示词库

前台提示词库支持:

  • 按标题搜索。
  • 按标签筛选。
  • 按来源筛选。
  • 查看提示词详情。
  • 查看封面和结果图。
  • 复制提示词。
  • 把提示词加入“我的素材”。

后台提示词管理支持:

  • 查询提示词。
  • 新增、编辑、删除提示词。
  • 按分组和标签筛选。
  • 查看远程提示词源。
  • 同步内置远程提示词源。

当前内置远程源包括多个 GPT Image / GPT-4o / Nano Banana Pro 相关提示词仓库。

素材

“我的素材”是浏览器本地素材库,支持:

  • 新增文本素材和图片素材。
  • 编辑素材标题、封面、标签、来源、备注和内容。
  • 删除素材。
  • 按关键词搜索。
  • 按类型筛选。
  • 分页浏览。
  • 复制文本素材。
  • 下载图片素材。
  • 从提示词库、画布节点和服务器素材库加入素材。
  • 在画布中插入素材。

“素材库”是服务器素材库,支持:

  • 按标题搜索。
  • 按类型筛选。
  • 按标签筛选。
  • 查看素材详情。
  • 复制文本或图片链接。
  • 加入“我的素材”。
  • 在画布中插入素材。

后台素材库管理支持:

  • 查询素材。
  • 新增、编辑、删除素材。
  • 按类型和标签筛选。

账号和后台

  • 注册功能暂时关闭。
  • 仅允许管理员账号登录。
  • 支持 JWT 会话。
  • /api/auth/me 可读取当前用户,未登录时返回访客用户。
  • 首次启动时可根据环境变量创建默认管理员。
  • 管理员后台目前包含提示词管理和素材库管理。
  • 后端已有用户管理接口,但前端暂未实现用户管理页面。

后端能力

  • Gin 提供 API 服务。
  • Docker 运行时由 Next.js 提供页面入口,/api/* 请求代理到内部 Go 服务。
  • GORM 管理数据库连接和自动迁移。
  • 支持 SQLite、MySQL、PostgreSQL。
  • 数据库保存用户、提示词分组、提示词和服务器素材。
  • 业务接口统一返回 { code, data, msg }

当前限制

  • 画布项目和“我的素材”目前只保存在浏览器本地,不会随账号同步。
  • AI API Key 目前保存在浏览器本地,并由浏览器直接请求配置的 OpenAI 兼容接口。
  • 服务器素材库目前主要保存 URL 或文本,暂未提供文件上传接口。
  • 画布更适合桌面端使用,移动端触控体验还未系统完善。