chiyi
e5f5b82dc6
feat(canvas): 消息改3.5s自动消失toast,api加120s超时,去掉舞台提示条
2026-10-12 14:47:24 +08:00
chiyi
e49fc1fc89
feat(canvas): 节点工具条精简为+参考图/删除,预览与图库改blob加载,参考图自动连线
2026-10-12 14:45:20 +08:00
chiyi
3d8c809393
feat(canvas): 上传并入图片库,首格为上传入口;隐藏保存中提示
2026-10-12 14:39:42 +08:00
chiyi
6b4c90f876
feat(canvas): 新节点自动往右找空位,一行10个才换行
2026-10-12 14:36:08 +08:00
chiyi
fe78a55fe4
fix(canvas): 去掉待保存闪烁,仅显示保存中/保存失败
2026-10-12 14:33:58 +08:00
chiyi
db5c77851d
fix(canvas): 点击空白清除节点/连线选中
2026-10-12 14:32:02 +08:00
chiyi
00109f83a2
fix(canvas): 已保存状态不再展示,仅保留待保存/保存中/失败提示
2026-10-12 14:30:26 +08:00
chiyi
bb715e2288
fix(canvas): 顶栏 z-index 提升,修复画布下拉被舞台遮挡
2026-10-12 14:29:34 +08:00
chiyi
5c5249cb70
fix(canvas): 适应内容缩放对齐到10%档位
2026-10-12 14:28:25 +08:00
chiyi
cc9929c716
fix(canvas): 缩放百分比恢复只读显示,去掉下拉
2026-10-12 14:26:32 +08:00
chiyi
d4adc0b6aa
feat(canvas): 100% 显示时实际渲染 0.6 倍,整体视图缩小一档
2026-10-12 14:24:10 +08:00
chiyi
5dc334062e
feat(canvas): 默认缩放改为 60%,新增 zoomTo 缩放接口
2026-10-12 14:22:29 +08:00
chiyi
655531eaca
feat(canvas): 缩放百分比改为下拉选择,支持直接跳到60%等档位
2026-10-12 14:20:25 +08:00
chiyi
d934dbe419
feat(canvas): 下拉统一换成 SelectMenu 组件并支持向上展开
2026-10-12 14:18:50 +08:00
chiyi
af5bf84582
feat(canvas): 参数全部改下拉,支持生视频模式与视频节点
2026-10-12 14:15:54 +08:00
chiyi
90a34276ef
fix(canvas): 单画质档位时误显示'没有可用模型'警告
2026-10-12 14:13:06 +08:00
chiyi
cbdde40172
feat(canvas): 输入框支持画质/张数选择,多张并发生成
2026-10-12 14:09:42 +08:00
chiyi
2137f9565b
feat(canvas): 生成面板改为底部居中大输入框,参考图改为上传式
2026-10-12 14:06:04 +08:00
chiyi
23bef52290
fix(canvas): 弯折点仅选中线时显示
2026-10-12 14:01:50 +08:00
chiyi
ec5dd9adf7
fix(canvas): 节点间连线去重并放大弯折点
2026-10-12 13:59:11 +08:00
chiyi
256eeb3234
fix(images): 私有图片支持 Bearer 鉴权,画布节点改为带鉴权 blob 加载
2026-10-12 13:54:34 +08:00
chiyi
c559e712b6
fix(canvas): 连接点外置、拖线平滑跟手、图片失败显示状态码
2026-10-12 13:42:26 +08:00
chiyi
c429209e50
feat(canvas): 连线自动绕开节点并支持拖拽弯折
2026-10-12 13:35:40 +08:00
chiyi
5a0cbeb429
fix(canvas): 连线改用主题色并修复图片回退
2026-10-12 13:30:12 +08:00
chiyi
2e5a1e2e72
fix(canvas): 放宽待连线取消方式
2026-10-12 13:22:52 +08:00
chiyi and Devin
9e69dbfc70
feat(canvas): 四向点选连线并统一 10% 缩放步进
...
为所有画布节点显示四向连接点,点击起点与终点连线并保存端点方向;滚轮、按钮与快捷键按 10% 递增。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-12 12:44:26 +08:00
chiyi and Devin
0631849c36
fix(canvas): 修复生成节点状态更新及参考图请求
...
保留选中参考图,按模型传递分辨率,让生成节点响应成功或失败状态并显示原因。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-12 12:24:28 +08:00
chiyi and Devin
6354e629ad
fix(canvas): 避免离开画布时后续页面无法挂载
...
画布根节点使用 Teleport,绕开 out-in 过渡以确保返回工作台正常渲染。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-12 12:05:25 +08:00
chiyi and Devin
067ee50fb7
fix(canvas): 网格点改用 --fg 混合,修复换肤后不可见
...
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-12 11:25:43 +08:00
chiyi and Devin
91e6881623
style(ui): 全站 Memphis 换肤为玻璃拟态+极光渐变
...
设计 token 与中央类名保持不变,重写视觉:磨砂玻璃卡片、
紫→青渐变按钮、柔光阴影、发丝边框;emoji 图标换 SVG;
登录/支付/公告弹窗改为随主题的玻璃卡片。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-12 11:05:11 +08:00
chiyi and Devin
27d58cfb5d
feat(canvas): 画布 Memphis 化并补全编辑功能
...
- 后端新增 POST /admin/api/my-images 上传接口:图片存入用户
owner 目录并生成缩略图,复用 /images 服务与 my-images picker
- 本地图片三种入画布路径:上传按钮 / 拖入舞台(落点即拖放
位置) / Ctrl+V 粘贴
- 节点选中后显示悬浮工具条(预览/复制/置顶/删除)与右下角
缩放手柄;图片等比缩放,便签自由缩放;Ctrl+D 复制选中(含
相互连线);双击空白建笔记;按 1 / ⤢ 按钮适应全部内容
- 整套画布 UI 换 Memphis:纸张底+墨点网格、黑边硬影节点、
黄色贴纸便签、橙色连线/选中态、虚线框选、顶栏/生成面板/
预览灯箱/图片选择器全部换墨边 chunky 样式,随站点明暗主题
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 17:45:41 +08:00
chiyi and Devin
d0506b0d2e
style(logo): 去掉 V 字,改为光圈+播放三角标
...
光圈内放播放三角(呼应图像+视频),快门点改黄色墨边小圆,
整体更几何、更贴合 Memphis 风格。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 17:26:49 +08:00
chiyi and Devin
602664c122
style(ui): 全站清除紫色系,统一 Memphis 蜡笔配色
...
- Logo 渐变从粉紫改为橙/粉/蓝蜡笔色,快门圆点改橙色
- 批量替换 accent:violet→orange、fuchsia→rose、indigo→sky、purple→orange,
十六进制与 rgb 字面量同步换算为 Tailwind 对应色
- 修复类名合并冲突:管理员筛选 pill 改 fp-orange、会员号改 fp-pink(新增),
style.css 中去重 fp-rose/fp-orange 并补 fp-pink 的浅色模式变体
- 选区色、标签输入框、筛选 pill、图表、滑块等所有紫色残留全部归位
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 17:15:17 +08:00
chiyi and Devin
b39173643d
style(ui): 移除吉祥物插画,前台 hero 改为 Memphis 装饰元素
...
- 首页 hero 去掉 Mascot,换成漂浮的蜡笔色墨边方块(float/wiggle/bounce 动画)
- KPI 卡片轮流使用黄/粉/蓝/薄荷平涂色,能力卡图标、模型卡光晕统一 Memphis 调色
- 画廊跑马灯加粗黑上下边;About 页 hero 改为色块拼贴,文案不再以"薇薇"自称
- 空状态统一用旋转的 .empty-badge 黄色星标替代吉祥物
- 邀请页顶部卡片改为 ink-card + 蜡笔色统计块 + 橙色复制按钮
- 删除 Mascot.vue
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 17:09:11 +08:00
chiyi and Devin
313d54a5ec
style(ui): 换用 Memphis/neo-brutalism 视觉风格
...
参考 skills.yangsir.net:粗墨描边 + 硬偏移投影 + 平涂蜡笔色(橙/黄/粉/蓝/薄荷),
替换原二次元粉紫渐变体系。设计令牌集中在 style.css 的 --ink/--shadow-ink/
--m-* 变量,共享组件 .card/.btn-*/.field 与新工具类 (.memphis-dots/.ink-card/
.memphis-press) 使全站统一;暗色模式反转为浅色描边版本。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 16:58:14 +08:00
dokploy-bot
910651ddba
feat(canvas): manual node linking + no-model hint + render-hardening
...
- drag from a node's side port onto another node to create an edge
(dashed live preview, dedupe, self-link rejected); click an edge to
select (highlighted), Delete removes it, Ctrl+Z restores — all in
undo history and autosave
- generate panel shows an explicit hint when the site has no image
models instead of an empty dropdown
- render hardening: viewport-culling size now has a hard floor
(max(stageSize, window, 1600x900)) so a delayed/degenerate
ResizeObserver reading can never cull nodes out of the DOM; stage
listeners attach with retry + rAF self-healing measure; pointer
capture wrapped in try/catch for synthetic pointers
2026-09-20 00:06:08 +08:00
dokploy-bot
38367c36ab
feat(canvas): localStorage document cache for instant open
...
- paint from cv:cache:<id> before the network fetch (works offline too),
then reconcile with the server copy in the background; identical content
skips the re-apply so undo history and in-flight interaction survive
- cache is written on every successful autosave and cleared on delete;
quota errors are swallowed (best-effort by design)
2026-09-19 23:10:10 +08:00
dokploy-bot
e83da82f3d
fix(canvas): E2E-hardened interaction fixes
...
- Teleport canvas to body: layout <main> z-10 stacking context let the
fixed site header (z-40) cover the canvas toolbar
- defer setPointerCapture until the 3px drag threshold: immediate capture
retargets click/dblclick to the stage, which silently broke note editing
- commitNote no longer early-returns on the editing flag (event-ordering
could drop typed text); sync node.text back to the non-controlled
contenteditable on undo/redo restores
- contenteditable only while editing: single click used to focus and allow
raw typing outside edit mode, swallowing Delete-key handling
2026-09-19 22:55:39 +08:00
dokploy-bot
571ee2c801
feat: 无限画布 — infinite canvas with generation integration
...
Backend:
- canvases table + owner-scoped CRUD under /admin/api/canvas
(list/create/get/save/delete, 50 docs/user, 4MiB cap, JSON validation)
Frontend:
- /canvas full-screen workspace: DOM+CSS-transform infinite pan/zoom
(GPU-composited world layer, viewport culling, rAF-batched pointer moves)
- nodes: image (thumb display, natural-size correction), note
(uncontrolled contenteditable), generation placeholder with edges
- generate on canvas: prompt from panel or selected notes, selected image
nodes as references, results auto-placed + bezier edges to sources
- multi-canvas management, debounced autosave + keepalive flush,
snapshot undo/redo (60 steps), marquee/keyboard interactions
2026-09-19 22:38:41 +08:00
dokploy-bot
42208c0753
security: fix rate-limit bypass, payment amount check, stats leak, owner-dir collision, video panic guard
...
- clientIP: stop trusting client-supplied X-Forwarded-For; use gin ClientIP
with trusted proxies limited to private docker networks
- payment: verify notify money matches order amount; remove hardcoded
gateway default, fail loudly when api_base is unset
- stats: public endpoint now serves aggregates only; recent files (owner
names) moved to admin-only /stats/recent
- auth: reject signups whose username/email-local collides with another
user's media directory namespace
- v1: recover panics in background video jobs, refund + mark failed
2026-09-19 22:13:08 +08:00
dokploy-bot
34f808e7e3
fix: attach web to default network too (overlay-only endpoint fails)
2026-09-19 15:26:54 +02:00
dokploy-bot
be23e9fe77
fix: use quay.io/minio/mc (minio/mc unavailable on Docker Hub)
2026-09-19 14:51:05 +02:00
chiyi
4fb7fc9204
feat: sync all features to image2api
2026-08-15 23:00:30 +08:00
chiyi
5403acc4c9
leonardo: get-session 按 cookie 串行,避免并发刷新令牌被判重用
2026-08-10 20:18:32 +08:00
chiyi
15602b8033
leonardo: 把 cross-origin-cookie 401 判为会话被吊销
2026-08-10 19:38:58 +08:00
GlossSeaDress
f94a7ace5f
feat(api): GET /v1/user/balance 查询用户余额
...
users 表新增 credits_used(累计消耗积分):扣费累加、失败退款回减(refundIfNeeded / 维护清扫改走 RefundCredits),充值/CDK/签到发放不计入。接口返回 {object,balance,used,total},Bearer API Key 鉴权,与其他 v1 接口同一 CORS 与错误格式。站内接口文档与 README 补充端点说明。
2026-08-10 14:59:48 +08:00
GlossSeaDress
2c47344ed9
fix(leonardo): cookie 写回改 CAS,并补上额度对账后的轮换写回
...
Leonardo 只认加密的 session_data 缓存,轮换值一旦没存住账号就会被判死。写回原先是无条件 update:长任务(生成、慢额度查询)手里的旧 cookie 完成时会盖掉期间 keepalive 存好的新值。改为 SwapValue(WHERE value = 旧值 才写),旧值无法覆盖新值;reconcileLeonardoCredits 原先完全没写回 FetchCreditsBalance 带回的轮换值,补上。
2026-08-10 12:13:11 +08:00
chiyi
b488142495
fix(leonardo): 参考图走 uploadInitImage 永久桶;音频参考需搭配图/视频参考
2026-08-10 11:14:15 +08:00
chiyi
52f9ec967c
fix(leonardo): get-session 返回 null 时重试 3 次再判 cookie 失效
...
预热成功后的 200 null 之前第一次就 break 并直接 ErrAuth;同样的响应也可能是某个出口 IP 被挑战页静默降级,改成最多 3 次(第 2、3 次走代理换 IP)都拿不到 accessToken 才算死号。
2026-08-10 09:15:07 +08:00
chiyi
265ff1dd5d
feat(leonardo): session keepalive 独立成 1 分钟循环,并记录续期/失败计数
...
maintenance 的一次 tick 可能跑几十分钟(光 adobe cookie profile 就 219 个),挂在里面会把 5 分钟的保活拉长成 tick 的实际耗时。
2026-08-10 09:15:07 +08:00