chiyi and Devin
4d31219368
feat(ui): 全站统一首页墨黑中性风格,固定亮色并移除光暗切换
...
- 全站紫/青/粉写死色值与 CSS 变量改为墨黑中性色板
- 移除 aurora 光斑/星点装饰,登录弹窗改纯白卡片
- theme.js 固定亮色并清除历史 dark 选择,删除前台/后台/画布切换按钮
- 模型页空状态文案对齐「保存渠道即自动同步」
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 16:17:55 +08:00
chiyi and Devin
8b85d5623a
feat(showcase): 去掉 Bento 灵感类型,只保留 hero / work
...
后端校验、分组、后台列表,以及后台页面与首页取图都只认
hero 和 work;启动时清掉遗留的 bento 记录。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 15:57:12 +08:00
chiyi and Devin
2fa0324a66
feat(home): 去紫色,改中性暖白底 + 墨黑主色
...
整页底色 #fafaf8,按钮/CTA/导航激活态改墨黑,
标题渐变改黑灰,占位图换低饱和纸感色板,
去掉彩色光晕与漂移光斑。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 15:50:23 +08:00
chiyi and Devin
5ddce37ee6
feat(home): 整体美化 — 全页统一淡紫底、hero 柔光浮动、修能力矩阵留白
...
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 15:44:00 +08:00
chiyi and Devin
c5cc2e9086
feat(home): 底色紫调再调淡一档
...
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 15:35:06 +08:00
chiyi and Devin
a1f61d548d
feat(home): 页面底色改紫色渐变铺满
...
整页背景由近白 #fafafb 换为薰衣草紫渐变
(#ede7fd → #d8defc),与卡片和渐变描边更统一。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 15:33:57 +08:00
chiyi and Devin
89a9d76b3e
feat(home): 内容版心 1200 → 1400 铺满感
...
hero/能力/作品墙/CTA/页脚统一放宽到 1400px:
1440 视宽下内容贴边更饱满,1920 下仍居中留白均衡。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 15:31:49 +08:00
chiyi and Devin
8fd49db8c2
feat(home): 首页展示位空数据时渲染内置渐变图兜底
...
/showcase 返回空时 hero 拼贴与作品墙不再留白——
用 public/showcase 下 11 张内置 SVG 渐变图填充;
接口有数据时仍优先使用后台配置的展示图。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 15:08:07 +08:00
chiyi and Devin
466507b388
feat(home): 逐像素移植 vivid 旧版首页 + 悬浮胶囊导航
...
整页按 vivid commit 8b16666 的 HomeView 复刻:
- Hero 左文右图:模型在线徽章、「让想象/即刻成画」渐变标题、
渐变描边魔法输入框、提示词胶囊、三项统计
- 右侧四格作品拼贴(带错位旋转/悬停浮层/shimmer 占位)
- 01·能力矩阵(bento 网格)、02·灵感作品墙(编号卡+引导卡)
- 紫色 CTA 横幅 + 分栏页脚(社交图标接 site.contact)
- 顶栏改 vivid 胶囊:999px 毛玻璃、滚动展开通栏、
游客态单个渐变「登录/注册」按钮
- 页面局部覆盖 vivid 原版色板(--bg #fafafb、accent #6d4df2),
隐藏 aurora 背景
- Icon 组件补 size prop 与缺失图标,修复 SVG 无尺寸撑爆布局
数据接本站 /managed-models(sellable) 与 /showcase(hero→拼贴,work→作品墙)
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 14:58:17 +08:00
chiyi and Devin
4632b1ab04
feat(channel): 对齐 vivid 最新渠道/模型管理设计
...
渠道管理(对齐 9db9971/9f6eeca/b607a8d/268a8f7/7f8a87e):
- 列表新增「运行中」(Redis 并发槽位实时计数,与调度同源)和「失败数」
(event_logs 按渠道聚合)两列
- 行内「同步上游模型」恢复弹窗:默认全开、右侧开关、彩点+单行别名,
底部「同步模型」批量导入;编辑表单去掉获取模型列表按钮(保存已自动
全量同步);去掉勾选即解绑语义与 unbind-model 端点
- 导入加固:别名与上游同名报错、同批别名复用拒绝、本地类型冲突拒绝、
单次上限 50
模型管理(对齐 5545195):
- 模型表单/CreateModel 补齐 max_reference_videos/audios 与
max_ref_video/audio_seconds 透传
产物(对齐 2253e58):
- 下载结果仅信任 image/*/video/* 响应头,text/plain 等乱报一律按魔数
嗅探定 MIME
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-19 19:14:25 +08:00
chiyi and Devin
72d4eec203
feat(channel): 同步 vivid 最新渠道设计 — 手动全量同步端点/并发0=不限/同名别名报错
...
对齐 vivid 6039423/5802749/a1f808f/cfb6d49/aba8474/b01636f:
- 新增 POST /channels/sync-models:已保存渠道手动全量同步,上游不可达/
空清单直接报错(保存路径仍降级为告警);渠道行按钮不再弹勾选框,
表单内对已保存渠道同样直同步,新渠道保持预览+勾选即绑定
- 渠道并发 0 = 不限制(原 0=默认5),上限放开到 int32,槽位 Lua 本就
max=0 放行
- 别名与上游模型同名提交即报错「留空即同名」,前后端双校验
- 渠道列表去掉上游地址与模型两列(同 vivid),状态徽章悬浮显示失败原因
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-19 01:43:30 +08:00
chiyi and Devin
5226e11cfc
docs: 清理 OpenAI 时代残留,文档改述 vivid 协议 + 渠道架构
...
- README/README.en 重写:同构网关 + vivid 四端点 + 渠道同步/调度,
明确不支持 OpenAI 协议上游;移除账号池/七大平台/OpenAI 兼容描述
- backend/frontend README、.env.example 更新(补 RUSTFS/COOKIE_SECURE/
CHANNEL_SECRET)
- docker-compose 增加 CHANNEL_SECRET(渠道 key AES-GCM 密钥)
- 清掉代码注释/文档示例里的 OpenAI/gpt-image-2 残留
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-19 01:43:24 +08:00
chiyi and Devin
b76e6ab717
feat(model): 同步 vivid 最新变更 — 去模型开关,配价即上架
...
对齐 vivid a338edb / 7fb5c57 / 4f454b6:
- model_configs.enabled 列删除:上架唯一门槛 = 绑定了启用渠道 + 全部档位
有价(视频另需时长有价)。/v1/models、/api/models、video-presets、
managed-models 全部改按 sellable 透出
- 保存渠道即全量同步上游模型(消失解绑/孤儿删除/失败告警不删库)
- v1 job 持久化 upstream jobId,重启后维护循环按 jobId 续等不丢单
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-16 22:01:00 +08:00
chiyi and Devin
abd7b5c23b
feat(channels): 拉模型改为勾选即绑定,启动清扫遗留模型
...
- fetch-models 返回 bound 标记,渠道页勾选=立即导入绑定,
取消=解绑(无其他渠道接入时本地模型行一并删除)
- 新增 POST /channels/unbind-model
- 启动时 PurgeOrphanModels 清掉 provider 时代的无绑定模型行
- 模型管理页移除「渠道导入模型」按钮
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-16 21:35:30 +08:00
chiyi and Devin
b4efe6b192
feat!: 账号池改渠道网关,对外协议换成 vivid /v1
...
- 新增 channels/channel_models:上游 URL + AES-GCM 加密 key +
并发/权重/本地统计,模型经渠道 /v1/models 导入绑定
- internal/upstream:vivid 协议客户端(NDJSON 流 + jobId 断流重连 +
uploads 预签名 + models + balance + 错误分类)
- service/v1 重写:权重分组调度、Redis 并发槽 conc:c:、故障转移,
站内/测试/对外统一走渠道执行器
- 对外端点换成 vivid 四件套:POST /v1/generate(NDJSON+jobId 重连)、
POST /v1/uploads(SigV4 预签名 PUT)、GET /v1/models、GET /v1/balance,
错误包 {"error":{"code","message"}}
- API key 新发改 vk_+48hex;删除全部内置 provider 与 token 池
- 管理端:渠道 CRUD/拉模型/导入/余额端点,前端账号页换渠道页,
概览/文档/测试弹窗适配
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-16 21:14:18 +08:00
chiyi and Devin
1fee3e5461
feat(canvas): 生成输入框支持视频/音频参考文件
...
- 参考上限改为模型三类字段合计(图+视+音),不再被 min(8)
截断;custom 模型的 9图+3视频+0音频 显示为 0/12
- 文件选择器按模型能力放开 accept;按类分别计数和限数
(超图片/视频/音频各自上限时给出对应提示)
- 非图片参考在缩略位显示 🎬 /🔊 ;单文件上限放宽到 20MB
与后端一致
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 15:22:42 +08:00
chiyi and Devin
0732dfddef
fix(playground): 图片参考上限回落用模型字段而非总数
...
maxImages 在没有 preset 时回落到 maxRefs(图+视+音合计),custom
模型显示成了总数。改成 preset → model.max_reference_images → maxRefs。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 15:16:43 +08:00
chiyi and Devin
ab8ddc8354
fix(playground): custom 上游的 seedance* 模型不再吃 seedance 默认上限
...
isSeedanceModel 的正则把 custom provider 的自定义命名也算成了 leonardo
seedance,导致音频上限兜底成 3、总张数被重复相加。provider=custom
也排除出 seedance 判定(videoCaps 同步)。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 15:14:58 +08:00
chiyi and Devin
e69455fbfc
fix(playground): 参考文件徽标读取 custom 模型的分类上限
...
- max_reference_videos/audios 回落链改成 preset → 模型字段 → null;
null 兜底只对 seedance 系默认 3/3,custom 模型未声明=0
- custom 模型的总参考上限 = 图+视+音相加(它的
max_reference_images 只是图片类),不再错算成单类
- 徽标只显示上限 >0 的类别
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 15:12:10 +08:00
chiyi
39dcfc96c8
style(canvas): 工具栏按钮去青色改紫色主题,统一高度和悬浮细节
2026-10-12 15:02:46 +08:00
chiyi
efe2153446
feat(canvas): 提示词改悬浮底部黑色渐变遮罩,生成中占位美化
2026-10-12 14:57:30 +08:00
chiyi
6fa8352455
fix(canvas): 修复弹窗关闭判定的模板语法
2026-10-12 14:51:32 +08:00
chiyi
7ff87aa5d9
fix(canvas): 上传中禁止关闭图片库弹窗
2026-10-12 14:50:43 +08:00
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
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
cc9929c716
fix(canvas): 缩放百分比恢复只读显示,去掉下拉
2026-10-12 14:26:32 +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
ec5dd9adf7
fix(canvas): 节点间连线去重并放大弯折点
2026-10-12 13:59:11 +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
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
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