Commit Graph
100 Commits
Author SHA1 Message Date
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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
chiyiandDevin 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
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
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
chiyi a9daad2fda feat(leonardo): 每5分钟按库内时间戳续一次 session 并写回轮换 cookie 2026-08-09 21:27:41 +08:00
chiyi cfb7bcebc9 fix(frontend): 视频模型参考图/媒体上限按 preset 展示,文档页加定价列
模型管理与文档页改为读 /video-presets 的 max_images/max_videos/max_audios,去掉写死的图片/视频/音频上限与重复的参考资产总数;文档表新增定价列,model/类型/定价 三列不换行。
2026-08-09 21:02:18 +08:00
chiyi 84a2eac64f style(playground): 结果区最多展示 12 个 2026-08-09 14:49:33 +08:00
chiyi beadc29b45 style(playground): 结果区大屏改为一行 4 张 2026-08-09 13:40:08 +08:00
chiyi 4c5b932e81 fix(adobe): 媒体分类接口抓不到参考图的 400 归为临时错误,自动换号重试 2026-08-09 13:40:08 +08:00
chiyi eee8698f46 fix(leonardo): get-session 改直连并先做 cross-origin-cookie 预热,429 才退回代理 2026-08-09 13:40:07 +08:00
chiyi 8f3cb25c25 fix(leonardo): get-session 走代理并重试 10 次,绕过 Vercel 人机校验的偶发放行 2026-08-09 03:06:24 +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 4a184112ee fix(ui): 积分价格保留两位小数,不再四舍五入成整数 2026-08-08 22:29:21 +08:00
chiyi 4c0706fa91 feat(models): minimax-h3 改按秒计价,按秒计价改为目录驱动 2026-08-08 22:20:40 +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 e90aeecea3 fix(adobe): nano-banana modelVersion 修正 + 移除 runway 死代码 2026-08-02 23:35:50 +08:00
chiyi 5b81de5269 feat: 导入账号界面添加Adobe号购买联系方式 QQ432539 2026-08-02 20:57:13 +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 359d95b8c1 chore: ignore backend/cmd/test*/ directories 2026-08-02 00:08:11 +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 e2540dc2a3 优化408 2026-08-01 12:58:13 +08:00
chiyi 110edc9b81 更新adobe 优化408 2026-08-01 01:49:05 +08:00
chiyi a1514b5f82 更新408 2026-07-31 23:47:17 +08:00
chiyi 613ab04802 修复chatgpt 2026-07-29 21:39:22 +08:00
chiyi c30155b001 adobe openai更新 2026-07-29 21:15:37 +08:00
chiyi 9a032c6107 更新易支付 2026-07-28 18:31:52 +08:00
chiyi 95535f02f8 更新邮箱tag颜色 2026-07-20 23:07:21 +08:00
chiyi b0cd4a8b33 参考图适配 2026-07-19 11:34:14 +08:00
chiyi 50060f9180 去掉oss保存 2026-07-19 11:23:48 +08:00
chiyi c3f82168b6 grok更新 2026-07-18 15:24:16 +08:00
chiyi b6e8445d95 修复grok 2026-07-17 21:45:31 +08:00
chiyi 86559eb7fc grok fix: statsig signer chunk locate regex include ~ (0~4v1h2zpw7n0.js); fixes locateSignerChunk not found -> conversations/new 403 anti-bot 2026-07-16 09:37:27 +08:00
chiyi 60be9201e5 支持远程url吗 2026-07-16 00:50:27 +08:00
chiyi 7a781fecfc 更新runway 2026-07-14 22:44:18 +08:00
chiyi 4a1b91b759 更新订单管理记录更多事情 2026-07-14 12:40:44 +08:00
chiyi 86658e98a1 更新grok 2026-07-13 21:08:30 +08:00
chiyi 0822628bfc 更新grok算法 2026-07-13 10:14:52 +08:00
chiyi 62595de79f 更新省流 2026-07-13 00:06:29 +08:00
chiyi 40cc67d354 更新grok协议 2026-07-12 22:59:52 +08:00
chiyiandClaude Opus 4.8 cd3f98bd61 grok修复: x-statsig-id 改用 goja 跑原版签名器, 自愈跨 reship
手抄的字节算法每次 grok 换 web build 就失效(403 anti-bot), 天天死。
改为内嵌 goja 执行 grok 自己的签名器 chunk + 合成 DOM/WAAPI 垫片, 由 grok
自己的代码做所有随 build 轮换的字节索引/曲线选择, 我们只提供稳定的浏览器原语。

- statsig_engine.go: goja 引擎池 + 构建无关地自动定位当前签名器 chunk
- statsig_shim.js(//go:embed): document/getComputedStyle(WAAPI 采样)/
  crypto.subtle/TextEncoder/base64 垫片 + Turbopack bootstrap
- client.go: statsigID 优先走引擎, 任何失败回退旧静态算法; ensureChallenge
  捕获 seed+curves 并按 reship(chunk 列表变化)重建引擎池
- 旧静态 computeStatsigTail 降级为兜底; 其离线回归测试改 Skip(ground truth
  无法离线重生), 新增 40 并发签名测试

已验证: 动态定位当前 build → conversations/new 返回 200 + conversationId。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 05:41:38 +01:00
chiyi 4c060729b9 grok修复 2026-07-10 15:33:01 +08:00
chiyi 3a2c9710c3 更新runway 2api风控 2026-07-10 13:25:42 +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 6350df7c03 更新md 2026-07-10 08:30:28 +08:00
chiyi ec3b17c55a 颜色统一 2026-07-10 00:30:44 +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 21cca6513b 更新下载超时延长 2026-07-09 19:38:30 +08:00
chiyi bfd8c2acd5 Merge branch 'fix/grok-statsig-header-refresh' 2026-07-09 19:25:30 +08:00
chiyi 65ca95a736 Merge branch 'devin/1783580774-grok-statsig-selfheal' 2026-07-09 19:25:03 +08:00
chiyi 0612e83081 Merge branch 'devin/1783582849-image-cookie-rolling' 2026-07-09 19:24:37 +08:00
chiyi 81c040cb0b 优化上游错误重试 2026-07-09 17:45:31 +08:00
chiyi 33b5fc3b0e fix(runway): retry the /v1/tasks submit on transient errors
A dropped proxy connection (EOF) or 5xx on the task-create failed the whole generation. submitTask now retries transient (ErrTemporaryUpstream) submits up to 3x with backoff, honoring ctx. Applies to both Nano Banana image and Gen-4 video. Validated: 10/10 4K images (19-24MB PNG each) generated across 10 accounts.
2026-07-09 17:06:43 +08:00
chiyi cc6a2b1c54 fix(runway): raise the tls-client timeout so large artifact downloads don't cancel
Runway (Nano Banana 2) used a 30s whole-request timeout that includes reading the response body, so downloading a rendered image/video artifact off a slow CDN aborted with 'request canceled (Client.Timeout or context cancellation while reading body)'. Raised to 300s; genCtx still bounds the overall generation.
2026-07-09 16:55:02 +08:00
chiyi fba6772584 fix(imagine,krea,leonardo): poll for the full genCtx budget instead of a short hardcoded cap
imagine/krea capped polling at 4min and leonardo at 5min while the caller's genCtx budget is 8min, so slow-but-valid generations were killed early with 'generation timed out'. Now the poll deadline tracks ctx.Deadline() minus 60s download headroom (fallback to the old fixed cap if ctx has no deadline). chatgpt already ties its budget to the deadline (pollBudget) and runway/grok honor ctx, so no change needed there.
2026-07-09 16:52:16 +08:00
chiyi 5198b08bdf fix(adobe): poll until the genCtx deadline instead of a shorter hardcoded cap
pollImage/pollVideo capped themselves at 3min/10min while the caller's genCtx budget is 8min (image) / 12min (video), so slow-but-valid generations were killed early with 'adobe generation timed out'. Now the loop honors ctx.Err() and uses the full budget.
2026-07-09 16:49:21 +08:00
chiyi 622bc9ba9a feat(providers): account calls (auth/refresh/credits) egress on the local IP
Now only the generate/video submit uses proxy.url; cookie-exchange/login, token refresh, credit-balance and project/session bootstrap all go direct. Also splits adobe GenerateVideo (submit=proxy, poll/download=local). Verified live: adobe gpt 1K cookie-exchange via local IP, submit 23.244.30.102 (proxy) vs local 76.209.9.65, 2.0MB PNG. Build+vet pass.
2026-07-09 16:36:04 +08:00
chiyi 2987053b10 feat(grok): account calls (credits/subscription/session) egress on the local IP
Only the conversations/new generate submit still uses proxy.url; FetchCreditsBalance, FetchSubscription and FetchSession now go direct.
2026-07-09 16:32:21 +08:00
chiyi 57e3ee4cef feat(grok): route only the conversations/new submit through the proxy
Reference-frame upload, the mp4 download and OpenAsset (/content) streaming now egress on the local IP; only the generate submit uses proxy.url. Verified live: submit egress 98.97.26.37 (proxy) vs upload/download 76.209.9.65 (local), 3.47MB video generated OK.
2026-07-09 16:26:18 +08:00
chiyi 6c2a942a88 feat(providers): route only the generate submit through the proxy
Extends the adobe split to leonardo, krea, imagine, runway (image+video) and chatgpt: reference-image upload, polling and result download egress on the local IP; only the generate/task-create submit uses proxy.url. chatgpt keeps its anti-bot-guarded submit+upload phase on the proxy and moves only the existing second (poll/resolve/download) session to local. custom is already direct. Build+vet pass; adobe verified live, the other providers are code-complete but not yet live-tested (no dev accounts).
2026-07-09 16:21:31 +08:00
chiyi db3219416e feat(adobe): route only the image-generate submit through the proxy
Reference-image upload, job polling and result download now run on the local IP; only the generate submit egresses via proxy.url. Verified live: submit egress 74.244.159.228 (proxy) vs upload/poll/download 76.209.9.65 (local), 1K adobe gpt image generated OK.
2026-07-09 16:08:33 +08:00
chiyi a414385802 fix(auth): roll session cookie Max-Age on each authed request
The server session slides its TTL on use but the browser cookie's Max-Age was frozen at login, so it lapsed mid-session and broke cookie-only auth (private image <img>/download loads returned 401) while the SPA still looked logged in via its Bearer token. Re-issue the cookie with a fresh Max-Age whenever an authenticated request carried it.
2026-07-09 15:40:54 +08:00
chiyi 48cfbff592 fix(grok): self-heal x-statsig-id from live homepage seed+curves
Derive the 49-byte header seed and the salt F per-session from the grok homepage (browser-free tls-client GET), instead of hardcoding constants that go stale on every grok web rebuild (403 anti-bot). F is reproduced natively in Go (curve keyframe sampling: cubic-bezier easing, color lerp, rotation matrix, JS-exact number->hex). Static constants remain as env-overridable fallback. Adds offline regression test against server-verified ground-truth triples.
2026-07-09 15:07:12 +08:00