chiyi and Devin
f3b9e570c2
feat(models): 对齐 vivid 新改动——模型删除改软删,重导不丢计数/定价
...
- model_configs 加 deleted_at(gorm 软删),List/Get 自动过滤,
GetAny/Unscoped 用于复活与孤儿清理路径
- 渠道同步/删渠道/管理端删除模型的孤儿清理全部走软删
- 导入时若命中软删行:UpdateAny + deleted_at=NULL 复活,
generation_count 与原定价保留(vivid a42f32c 同语义)
- provider 时代残留仍物理删除(DeleteHard),不留软删垃圾
- OrphanModelIDs 跳过已软删行,避免重复清扫
- btn-primary 禁用态改浅灰填充(vivid d636105)
核对过已等价的:vivid 僵尸任务兜底(我们的 ResumeStaleJob+
PurgeStale+MarkRefunded 同语义)、产物 MIME 魔数嗅探、
retention 按创建时间、渠道同步弹窗(开关+别名)均已覆盖。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 21:48:45 +08:00
chiyi and Devin
76510d34c9
feat(protocol): /v1 协议去除 fixed 时长模式,统一 options/range
...
- /v1/models:单值时长也输出 {"mode":"options","options":[N]},不再发 fixed
- 导入/同步校验只接受 options / range,fixed 分支删除,报错「时长模式仅支持 options / range」
- 渠道模型预览的 fixed 展示分支去掉
- 内部存储不变(durations 数组),历史模型与下单逻辑不受影响
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 21:16:22 +08:00
chiyi and Devin
c78b01d988
feat(ui): 设置页重设计 + 全站表格配色统一为亮色变量
...
- 设置页:移除暗色残留,统一页头/卡片/图标块/按钮样式
- 模型管理:照 vivid 重排——模型名等宽显示,子行展示渠道名+权重,
定价胶囊「档位+普通价+代理价」,配置列统一灰色等宽标签,
操作列加宽修复删除按钮被挤
- 后端 ModelsView 返回每个模型绑定的渠道名列表(channel_models JOIN)
- 全站 scoped 样式里的硬编码白值(rgb(255 255 255/white)批量替换为
主题变量,修复亮色模式下表头/开关/操作按钮不可见(如渠道表头)
- 关于页:联系卡片统一等高布局,链接/非链接卡片对齐一致
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 17:28:47 +08:00
chiyi and Devin
539c251f9f
feat(logs): 日志页搜索合并为单个搜索框
...
后端新增 /logs?kw=:命中提示词/模型/错误,或命中用户
(名称/邮箱/ID) 的记录均保留;前端两个搜索框合并为一个。
首页导航恢复 ✦ 品牌小星标,与其他页一致。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-27 16:43:34 +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
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
e7a4613bac
fix(upstream): vivid 协议的 quality 原样透传分辨率档位
...
vivid 的 quality 就是模型自己的档位字符串——图像 1K/2K/4K、视频
720p/1080p。之前映射成 OpenAI 的 low/medium/high 导致视频上游收到
"1K" 报 4001 "该模型支持 720p"。现在原样透传,空值才默认 1K。
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 16:59:13 +08:00
chiyi and Devin
1be1b00511
feat(upstream): custom 模型按媒体分类配置参考文件上限
...
- ModelConfig 新增 max_reference_videos / max_reference_audios
(配合既有 max_reference_images);admin 读写接口透传
- custom 模型表单去掉「参考模式」下拉,改为参考图/参考视频/
参考音频三个数量输入;合计张数走 totalRefLimit 校验
- vivid 上游 /v1/uploads 按文件魔数自动选 kind(image/video/
audio)与 mime;openai 协议上游遇视频/音频参考自动跳过换号
- videoCaps 让 custom 模型的分类上限在画图台/文档徽标生效
- reference_mode 请求级 override 放行 "media"
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 14:58:34 +08:00
chiyi and Devin
babfc71f13
feat(upstream): 自定义上游支持 Vivid 协议(/v1/generate NDJSON)
...
- custom 上游新增 protocol 选项(openai|vivid);vivid 走
POST /v1/generate NDJSON 流:跳过心跳空行,取末行终态,
断流携 jobId 重连不重复扣费;参考图先 POST /v1/uploads
拿预签名再 PUT 直传;错误码 4011/4002/4293/5001/4001 分类
- 添加上游弹窗加协议二选一;账号 meta 存 protocol 并可回显
- 附 vivid 链路单测(成功流/URL 透传/失败帧/错误码/两步上传)
Generated with [Devin](https://devin.ai )
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 12:18:26 +08:00
chiyi
256eeb3234
fix(images): 私有图片支持 Bearer 鉴权,画布节点改为带鉴权 blob 加载
2026-10-12 13:54:34 +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
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
chiyi
4fb7fc9204
feat: sync all features to image2api
2026-08-15 23:00:30 +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
265ff1dd5d
feat(leonardo): session keepalive 独立成 1 分钟循环,并记录续期/失败计数
...
maintenance 的一次 tick 可能跑几十分钟(光 adobe cookie profile 就 219 个),挂在里面会把 5 分钟的保活拉长成 tick 的实际耗时。
2026-08-10 09:15:07 +08:00
chiyi
a9daad2fda
feat(leonardo): 每5分钟按库内时间戳续一次 session 并写回轮换 cookie
2026-08-09 21:27:41 +08:00
chiyi
6190f814d9
fix(leonardo): 连续 3 次鉴权失败才判死,get-session 补齐浏览器头并保护 session_data
2026-08-09 02:17:01 +08:00
chiyi
6ae88725df
fix(events): 视频 pending 用 30 分钟单独期限,避免出片前被判死退款
2026-08-09 02:16:56 +08:00
chiyi
6d17caaf80
feat(leonardo): 接入视频通道并新增 seedance-2.0/minimax-h3 模型
2026-08-08 21:55:33 +08:00
chiyi
6ba80f5109
tweak(video): 视频渲染预算拉到 30 分钟
2026-08-08 11:16:56 +08:00
chiyi
ebcf3c5779
feat(grok): 视频改走 Grok Console 并新增图片模型
...
- grok 视频/图片统一走 console.x.ai:sso 换 DPoP 短期 token,绕开 grok.com 的 statsig 反爬
- 新增 grok-image:不带参考图走 /v1/images/generations,带图自动走 quality 上游 + /v1/images/edits
- grok 额度改本地写死 图5/视频2,成功各扣一次,两份归零直接判死,无恢复时间
- 视频渲染预算统一 20 分钟(adobe/runway/grok/custom)
- 删除参考图人脸打码(facemask + onnxruntime 依赖 + 前台开关)
2026-08-08 11:15:42 +08:00
chiyi
554dea6252
feat(facemask): 黑丝网眼加粗并给 Seedance 提示词追加忽略网格说明
2026-08-07 14:30:43 +08:00
chiyi
d275a97946
tweak(facemask): 黑丝网眼间距放宽
2026-08-07 13:41:07 +08:00
chiyi
3d6fd4bd4a
feat(facemask): 参考图人脸统一改为黑丝网眼打码
2026-08-07 13:16:52 +08:00
chiyi
2e3a4e9d3f
feat: seedance参考图人脸打码(YuNet+切块旋转/白点阵) + VIP零额度降级 + veo3.1 1080p + CGO Dockerfile
2026-08-07 10:08:24 +08:00
chiyi
f76ecd5769
feat: 二次元前端改版 + 后端账号plan探测/调度修复
2026-08-06 10:11:05 +08:00
chiyi
7f4701d362
feat: veo3.1 拆分 fast/standard, seedance双模型, per_second定价, 子号过滤, 随机种子, UI优化
2026-08-03 20:27:20 +08:00
chiyi
4987717d23
feat: Adobe积分号不锁定额度 + Nano Banana双通道 + 前端显示额度
...
- Adobe不再区分视频/图片额度,移除ImageLimited/VideoLimited限制
- Adobe积分号quota耗尽不锁定(status不改为quota),只记录失败用于轮转
- Nano Banana 2/Pro 保留Runway通道,新增nano-banana-2/nano-banana-pro走Adobe
- Adobe模型重命名: runway-nano-banana-2, runway-nano-banana-pro
- 前端管理后台Adobe账号显示积分余额(之前固定显示—)
- README更新模型列表
2026-08-02 20:09:03 +08:00
chiyi
cd0b7090f2
refactor(adobe): switch to express.adobe.com origin, remove ErrAuthPermanent, simplify ARP session/PID
2026-08-02 00:07:17 +08:00
chiyi
0a1811b254
优化408
2026-08-01 14:44:05 +08:00
chiyi
9a032c6107
更新易支付
2026-07-28 18:31:52 +08:00
chiyi
b0cd4a8b33
参考图适配
2026-07-19 11:34:14 +08:00
chiyi
50060f9180
去掉oss保存
2026-07-19 11:23:48 +08:00
chiyi
60be9201e5
支持远程url吗
2026-07-16 00:50:27 +08:00
chiyi
4a1b91b759
更新订单管理记录更多事情
2026-07-14 12:40:44 +08:00
chiyi
8d792e66e0
加回 nano-banana-2 与 nano-banana-pro 并存
2026-07-10 12:02:14 +08:00
chiyi
2afb4e7857
nano-banana-2 升级为 nano-banana-pro (workflow_gemini_image / gemini-3-pro-image-preview, 支持 2K/4K)
2026-07-10 11:19:51 +08:00
chiyi
a636f79cd8
更新
2026-07-10 10:59:14 +08:00
chiyi
788c97d9d5
ai去特征展示
2026-07-10 00:23:14 +08:00
chiyi
6a3588b35b
ai去特征增加开关
2026-07-10 00:13:09 +08:00
chiyi
6d6bd2a638
增加ai去特征
2026-07-09 23:48:58 +08:00
chiyi
81c040cb0b
优化上游错误重试
2026-07-09 17:45:31 +08:00
chiyi
98b5f5a5c3
chatgot更新换号重试
2026-07-08 13:13:25 +08:00