From 65cde2da944c10d87b5e6f0b7dd0d6514f3aedd6 Mon Sep 17 00:00:00 2001 From: ddCat <2695092045@qq.com> Date: Sat, 8 Aug 2026 18:35:21 +0800 Subject: [PATCH] =?UTF-8?q?docs(platform):=20=E9=A1=B9=E7=9B=AE=E6=88=90?= =?UTF-8?q?=E5=91=98=20-=20=E6=96=B0=E5=A2=9E=E5=9B=A2=E9=98=9F=E6=88=90?= =?UTF-8?q?=E5=91=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 ++++++-------- assets/user-delve.jpg | Bin 0 -> 20204 bytes 2 files changed, 6 insertions(+), 8 deletions(-) create mode 100644 assets/user-delve.jpg diff --git a/README.md b/README.md index 13ccc3425..3a6c5c246 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,12 @@ | ArtDance | 商业 | ArtDance | 本项目 Seedance 模型的天使投资人。 | [artbox.top](https://artbox.top) | | 快乐机艺术小组 | 团队 | 快乐机艺术小组 | 快乐机艺术小组,一支跨学科的艺术创作团队,持续探索数字+艺术的全新表达形式。 | 暂无 | +## 团队成员 + +| 头像 | 昵称 | 邮箱 | 个性签名 | +| --- | --- | --- | --- | +| delve-s | delve-s | [3013141136@qq.com](mailto:3013141136@qq.com) | 我亦无他,惟手熟尔 | + ## 主要功能 - **自由画布**:多项目、节点与连线、框选布局、撤销重做、小地图、导入导出和公开只读分享。 @@ -269,12 +275,4 @@ docker compose -f docker-compose.local.yml up -d --build 本项目基于 [basketikun/infinite-canvas](https://github.com/basketikun/infinite-canvas) `v0.5.0`(提交 `568f0f1838df8de31fe885a4e130e2f346dd14ab`)进行二次开发。上游项目由 `basketikun` 维护,该基线提交作者为 `HouYunFei`;上游作者和贡献者继续保留其对应代码的权利与署名。 -当前二次开发由 `ddcat` 维护,主要改动包括: - -- 新增 Go/Gin/GORM/PostgreSQL/SQLite 多用户后端、登录会话、管理员后台、异步任务中心和用量分析。 -- 新增私有 OSS、后端资源存储、跨设备画布与素材同步、公开只读分享和资源归属校验。 -- 扩展文本、图片、视频和音频生成,增加影视分镜、短剧流水线、角色参考与 3D 导演台。 -- 重构画布工作区、交互状态和 Aceternity 风格空间 UI,并增强 Canvas Agent 与 Codex App 插件。 -- 收敛上游代理、任务密钥、上传额度、日志脱敏和公网部署安全边界。 - 漏洞请按 [SECURITY.md](SECURITY.md) 提交。项目采用 [AGPL-3.0](LICENSE) 协议。 diff --git a/assets/user-delve.jpg b/assets/user-delve.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d2a00d3cb479eefdc60c61faebd19f6b36f7b21 GIT binary patch literal 20204 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 z73