 zycandClaude Opus 4.8
|
4c8b2d1902
|
feat: 出图报错捕获真因 + 翻成前端友好提示(故事板)
老板/研发要求:有报错时把真因抓出来,做成前端友好提示。
- 捕获真实错误体(openai_compatible._raise_with_body):取代 raise_for_status()。
yunqi 的真因(moderation_blocked / safety_violations=[sexual])只在 body 里,
原来只剩状态行「400 Bad Request for url」→ 真因长期不可见。现在完整抓出。
- friendly_generation_error():把原始报错翻成中文友好提示(内容审核/超时/限流/
凭证/参考图被拒…),前端直接展示;原始报错留 task.error_message 供研发排查。
- 故事板失败:友好提示存 shot.error_message;并撤回「重试 400」——审核拦截重试
也是白拦,改成快速失败+提示,引导用户改措辞(如避免「胸罩/内衣/抚摸/贴身」)。
- 前端:失败帧缩略图加红色「⚠失败」角标(hover 看原因),主视图显示完整友好提示;
不再灰着没反应。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-26 17:03:02 +08:00 |
|
 zycandClaude Opus 4.8
|
d26500bdbd
|
fix(pipeline): 基础资产页两个轮询空闲不停 → 空闲即停、开工即起
现象:停在基础资产页(尤其点「重新提取角色/场景」后)pending-assets 与
poll-reviews 一直轮询、刷屏。
根因:
- poll-reviews 的停止条件写成「只有先见过 processing 才停」,没有审核中资产时
永远停不下来(8s 空转)。
- pending-assets 在该页无停止条件(4s 一直发)。
- pending-assets 把每渲染换新引用的 onRefreshProject 放进依赖 → 每渲染重订阅
并立刻补发请求,越刷越密。
修复:
- pending-assets:一轮发现无在途出图 + genBusy 为空即停;genBusy 变化(开始/结束
生成)时重订阅恢复。onRefreshProject 改走 ref,移出依赖。
- poll-reviews:一轮后端无 processing 即停;genBusy / reviewWake(手动送审)/
pendingGenKey(出片完成→自动送审)任一变化时重订阅,把盾盯到终态再停。
- 终态(active/failed)在最后一轮非空响应即下发,停在空响应安全不丢更新。
空闲坐在基础资产页 = 零轮询;仅有真实生成/审核在途时才轮询且完事即停。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-26 13:16:48 +08:00 |
|
 zycandClaude Opus 4.8
|
669d9a683b
|
polish: 商品/场景三视图「替换」选图层——通用化 + 场景修复 + 过滤分页
- 商品三视图「替换」数据源修复:旧实现只读 productRecord.images(封面1张)
→ 改为 fetch 后端 ?product= 三路并集,只列商品图(product_image)。
- 页脚样式对齐人物/场景卡:hstack 左 ghost「替换」+ 右 primary「AI 生成」。
- 场景卡「替换」修复:旧实现误用人物专用演员库(列出角色数据)→ 场景改走
通用选图层,按 category=scene 取;人物仍走演员库。覆盖 seed/已生成/详情 3 入口。
- 场景过滤:故事板帧也被存成 category=scene(metadata 全空,只能按名字),
过滤掉 storyboard/分镜,只留真场景图。
- 商品/场景选图均加分页,20 个一页(上一页 / X·共N / 下一页)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-25 14:08:58 +08:00 |
|
 zycandClaude Opus 4.8
|
dea9dbb3ed
|
fix: 修复资产/视频/三视图三处 bug + 脚本模型切 YunQi gemini
1. 视频「全部生成」串行短路:任一段提交失败就 break 致后面段不提交
(4 个框只跑 2 个)→ 改 Promise.allSettled 并发,单段失败不拖累其余,
部分失败也刷新并如实报告。(App.tsx)
2. 基础资产/三视图 AI 出图偶发失败「生成不出来」:中转站瞬时抖动
(网络/5xx/429/空返回)一次失败即退费 → 加退避重试 3 次,永久错误
(4xx 内容违规)仍立即退费。(services.py run_base_asset_task/run_triview_task)
3. 商品三视图无法用已有素材:商品卡加「使用已有素材」,选商品已有图 /
上传本地图直接 attach 成三视图(不走平台 AI 生成、不计费)。(pipeline.tsx)
4. 脚本助手:tokenssr 欠费致 GPT-5.5/Gemini 全挂 → 文本模型切 YunQi。
实测 YunQi gpt-5.5 频道扛不住重型结构化任务(skill 全提示词仅 1/5 成功、
常吐空无 JSON),gemini-3.1-pro 5/5 稳定 → 默认改 gemini,停用 gpt-5.5。
按「一 provider 一 key」拆 yunqi_gpt / yunqi_gemini 两 provider。
(.env / settings / 迁移 0017+0018)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-25 12:00:03 +08:00 |
|
 zycandClaude Opus 4.8
|
8222a46202
|
fix(pipeline): 视频为末步时收口项目完成态 + 列表 5→4 步同步
V1 雪藏「拼接导出」第 5 阶段后,完成态(COMPLETED)只在 export.py 拼接成片时
才置,导致视频全部出片的项目永远卡在 videoing,列表末格一直闪烁。
- 后端:新增 settle_video_completion(幂等)+ VIDEO_IS_FINAL_STAGE 开关。
全部片段出片→项目 completed、video 阶段标成功;某段被重跑→退回 videoing。
挂 retrieve(自愈历史卡住项目)/poll-video-segment/submit-video-segment/
adopt-video-version 四入口;收口直接查库,不吃 prefetch 旧缓存致误判。
V2 恢复导出把 VIDEO_IS_FINAL_STAGE 置 False,完成判定交回 export.py。
- 前端:项目列表/网格进度从 5 步同步成 4 步(PROJ_STAGE_TOTAL=4),
export 阶段并入第 4;已完成项目末格走 done(绿)不再用闪烁的 cur。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 17:32:12 +08:00 |
|
 zycandClaude Opus 4.8
|
658aaa222f
|
feat(storyboard): 故事板改分镜制(单场独立重跑/历史)+ 视频过审闸 + 审核前端如实化
三块改动在 services/views/pipeline/App/api 等文件按行交织、且过审闸后端依赖故事板新
模型,无法拆成各自独立可编译的提交,故合并为一次:
· 故事板分镜制:新增 StoryboardShot/StoryboardShotVersion(对标 VideoSegment/Version)
+ 数据迁移(采用版每帧转一 shot+已采用版本)。每镜一个 shot,各自历史版本,可单场
重跑、逐场切换/采用,新增「开始生成故事板/单场重跑/采用某版」端点。重跑非阻塞(后台
静默轮询出图,不锁其它场按钮);历史「查看」与「采用」分离(切版本不丢在制重跑)。
视频取分镜图/删分镜清理/过审闸全部改读 storyboard_shots。
· 视频生成前过审闸:点生成校验含真人脸的人物立绘/故事板分镜是否过审,未过审弹窗列出
哪一镜/哪个,可一键送审,挡住不生成(collect_video_review_blockers + precheck 端点)。
· 审核前端如实化:不再 `|| "processing"` 伪造审核中;送审失败经 onNotify 如实提示;
审核轮询扩到视频阶段,送审后能看着盾变绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 17:11:55 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
fd596776e2
|
feat(image): 支持真 16:9(1536x864)+ 人物/商品三视图/场景默认 16:9
- gpt-image-2 实测支持 16:9(宽高需被 16 整除):真 16:9 = 1536x864(长边封顶 1536);
原来「16:9」误给成 1536x1024(实为 3:2)。修正 _RATIO_TO_SIZE 与 _ratio_to_image_size
- admin「提示词」页比例按钮新增「宽 16:9」
- 迁移 0015/0016:scene + product_triview + person_triview 默认比例设为 16:9;
分镜图(storyboard_frame)/立绘/视频保持竖屏不动
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-24 00:56:33 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
dee269aeda
|
fix(script): 脚本按向导选的成片时长生成,不再写死 60 秒
pipeline 调脚本 agent 时 total_duration 写死成 60,忽略了向导里选的时长(选 30s 也按 60s 出)。
改为从 project.metadata.wizard.duration("0-30"→30)解析后传入;缺省回落 60。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-24 00:56:33 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
79fc95f1b7
|
fix(video): 视频卡用首帧当封面(#t=0.1),不再显示空白占位
<video preload="metadata"> 不解码画面、又没 poster(后端抽帧没产出 poster 文件)→ 卡片空白。
给缩略图视频地址加 #t=0.1,浏览器跳到 0.1s 渲染该帧当封面;取的是当前采用版 mp4(=最新版)。
改:视频卡缩略图 + 详情弹窗历史版本缩略图。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 18:23:57 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
c2c2dfdc77
|
feat(review): 故事板分镜图挂火山人像审核盾 + 红盾可重新送审
- 后端 StoryboardFrameSerializer 暴露 review_status + 驳回原因(之前没给,前端画不出盾)
- 前端故事板趴:每张分镜图(缩略图角上只留盾 / 大图左上完整徽章)挂 ReviewBadge,
与人物/场景卡同款(审核中橙光 / 已过审绿 / 未过审红);故事板趴每 8s 轮询刷新审核态
- ReviewBadge:红盾(未过审)也可点「重新送审」——「审核超时」是误判(分镜图在 processing
卡太久被本地超时兜底标失败,非火山真违规),重提即可再审;灰盾/红盾两处(分镜图+人物卡)行为一致
- compact 模式:嵌在 overflow:hidden 容器里的盾(分镜图)改用原生 title 提示,避免 CSS 气泡被裁看不见
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 17:23:18 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
38f4d95951
|
feat(video): 视频卡交互反馈 + 「全部重跑」真重跑已完成的段
- 单卡「重跑」/ 详情弹窗「重跑本场」/「全部重跑」点下立刻进「提交中」态:按钮转圈、视频块叠
spinner 遮罩,撑到该段真进 running(busy 接管),堵掉空窗连点 → 防双倍扣费、不再点完没反应
- 「全部重跑」改为把已完成(succeeded)的段也重跑(原来过滤掉 succeeded → 全成功项目点了等于
没点、还弹假的「已提交」);只跳过在途(running/queued)避免重复提交
- 视频卡加「共 N 版 ›」小标识(N>1 才显示),点开详情弹窗看历史版本/切换/采用
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 16:57:37 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
f9c52a171c
|
feat(product): 商品图删除接通 + 至少保留一张
- 详情页编辑态的删除叉子原是纯 CSS ::after 装饰、没绑事件,且列表用的是 asset id 而非删除接口要的
ProductImage id —— 接通:编辑态点图真调删除接口、用 ProductImage id,非编辑态仍点击放大
- 商品至少保留一张图(与「创建必须带图」一致):后端删到最后一张返回 400;前端只剩一张时那张不显示
叉子 + 提示「商品至少保留一张图;要移除请删除整个商品」;封面无对应 ProductImage(如三视图采用为封面)
则只展示、不可删
- 加 2 个后端测试(多张可删 200 / 删最后一张 400)
真实接口验:两张删一张 200、再删最后一张 400 并保留一张;后端测试通过,tsc/build 通过。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 16:29:05 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
dbd1382fb1
|
feat(storyboard): 整张生成时每张分镜转圈(不全屏遮挡)+ 未生成占位回 2:3 竖屏
- 每张分镜占位(缩略图 + 大图)叠半透明遮罩 + spinner,样式同基础资产趴;不再全屏遮挡
- 中间大图空占位由 16:9 横框改 2:3 竖屏,与成品(1024×1536)同形;fh-flat 下加兜底高度居中
- 生成结束(成功/失败)spinner 自动停
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 13:16:16 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
9c2a3bc365
|
feat(prompts): admin「提示词」页 —— 视频线 6 条生图/视频提示词正文+比例可在后台改,不再写死
诉求:生图/视频提示词全写死在代码里,产品方看不到也改不了(之前那版只做成「质量后缀」不是正文)。
现新增可编辑「提示词模板」体系,覆盖视频项目生产线 6 条:人物立绘 / 人物三视图 / 商品三视图 /
场景图 / 分镜图 / 视频。
后端:
- 新模型 PromptTemplate(key 固定 6 条 + template 正文 + ratio 比例 + enabled);迁移 0012/0013
种入默认正文(= 各 builder 现写死文本,零回归)。
- render_prompt(key, default, **字段):读 DB 模板,留空/停用回落默认;安全替换 {占位符}(中文名),
未知占位符原样保留(改错不致命)。prompt_ratio_size:比例→gpt-image 尺寸。
- 6 个 builder/调用点改走模板;5 条图比例可改(gpt-image 仅 1:1/竖/横),视频固定 Seedance 9:16。
场景图新增可编辑「场景风格」包装(默认仅 {场景描述},零回归)。人物/分镜/视频原质量后缀并入模板。
- adminpanel CRUD:GET /prompt-templates、PATCH /<id>(改正文/比例/启用,key 不可改、不增删,带审计)。
前端:admin 新增「提示词」侧栏页(/admin/prompts):6 卡,每卡=占位符提示+正文文本框+比例按钮+
启用开关+保存。复用 .btn/.card-hard 共享类,仅 token 配色,单橙锚点。
验证:Django 套件 102 全绿(含新模型/API/生成侧立即生效 + 人物提示词改读模板);tsc+vite build 绿;
无头(独立 sqlite 栈)真开 /admin/prompts:6 卡齐、文本框/比例/占位符齐、0 控制台错误。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 03:19:07 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
be4bc1c8f4
|
feat(pipeline): 未生成的人物/场景卡可点进详情(先立绘后三视图)+ 卡内提示词框固定5行
- seed(未生成·来自脚本)卡:缩略图/名字可点 → 进资产详情弹窗(保留卡上内联「AI 生成」快捷,
两条路都能生成,A 方案)。详情弹窗支持「还没生成组」的空壳实体(用脚本名+提示词兜底),
生成立绘后刷新按同名 key 自动切回真实体。
- 顺序限制(本就在详情里,现对 seed 也生效):没立绘时「AI 生成三视图」禁用 + 提示
「请先生成左侧立绘」;立绘按钮首次显示「生成立绘」(非「重跑」),替换走 seed 路由。
- 卡内提示词框(.prompt-box,外层人物/场景卡)固定 5 行高、超长框内滚动,不再被长提示词撑高。
自检:复用现成详情弹窗与 .btn/.prompt-box 共享类,无裸色值/无重写共享类;单橙锚点不变。
验证:tsc + vite build 绿;无头(独立 sqlite 栈)真点 seed 卡 → 详情打开、三视图禁用+提示、
立绘按钮「生成立绘」、提示词框 115px 固定且超长可滚动、0 控制台错误(截图存档)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 02:07:46 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
e5b3833ba5
|
fix(pipeline): 基础资产页去掉重复「重新提取」按钮 + 留存的升二级(守单橙锚点)
- 删顶栏右上浮动「重新提取」(pipeline-reextract,JSX + CSS)—— 它与左侧「重新提取角色/场景」
提取后同时出现、点的是同一动作(runExtract only),重复。
- 留左侧那个(上下文更贴、文案更清),并按 design.md §3 从三级 ghost 升二级(btn btn-sm,
白底+inside-border)—— 比 ghost 显眼一档,又不抢橙(单橙锚点仍归 生成三视图/确认资产)。
自检:用共享 .btn 类、无裸色值/无新阴影/未重写共享类;tsc 绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 01:43:38 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
c8cb6d3d51
|
fix(extract): 实体提取改异步(worker+轮询),根治 502 + 刷新丢 loading + 重复扣费
问题:进资产页点"提取人物/场景"——同步死等豆包思考模型(数十秒)→ 撞网关超时
502;"提取中"loading 是纯前端内存态,刷新即丢;且无幂等,刷新后重点会重复扣费。
改动(对齐全站异步三件套:出图/三视图/故事板同款):
- 后端 submit_extract_entities:Web 只建 RESERVED 任务 + 预留额度秒回(不再 502);
已有在途提取则复用,绝不二次预扣(防刷新后重点 / 并发重复扣费)。
- 后端 run_extract_entities_task(Celery worker):流式调豆包 + 解析 + 落库 + 扣费;
失败退费并把可读错误记进 task.error_message。
- 新增 AITask.Type.entity_extraction(迁移 0011)+ extract-status 端点(轮询进度/成败)。
- 前端 runExtract 改提交+轮询;进资产页自动认领在途提取,刷新后 loading 自己回来。
验收:完整 Django 套件 149/149 全绿(含新增 4 测:异步落库+计费一次 / content空
回退 reasoning / 在途防重复扣费 / 状态端点成败透出);tsc + vite build 全绿;
makemigrations --check 无遗漏。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-22 23:15:11 +08:00 |
|
seaislee1209
|
612ab6864d
|
feat(pipeline): 基础资产页 A三视图手动 + B进故事板拦截 + C采用/未采用 + D删除
- A 三视图改手动:删"打开角色详情自动出三视图"逻辑、角色生成只出立绘(不再链式自动三视图);
详情弹窗保留「AI 生成三视图」按钮作手动入口(提示文案去掉"自动")
- B 进下一步拦截:「确认资产,进入故事板」按钮挂 guardGen —— 被引用角色/场景缺"已采用"参考图就弹窗拦
- C 采用/未采用:角色/场景卡加 toggle 徽章(已采用绿/未采用灰);默认按"实体名是否在脚本里"派生,
用户可点击覆盖并持久化(metadata.adopt);后端 set-base-asset-adopt 端点;下游 _storyboard_reference_images
只取已采用组(商品组永远保留、顺带排除未采用/三视图组的兜底误抓)
- D 删除:角色/场景卡 hover 显删除按钮(二次确认),商品主卡不给删;后端 delete-base-asset(连带三视图组)
- 顺手:提取闸门按钮去掉"不自动花钱"文案
验收:projects/assets/ai 全套(基线既有 7 失败零新增,新增 set-adopt/delete 3 测过);tsc+build 绿;
无头核对(采用 toggle/hover 删除/待审核盾齐活、0 console error)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 19:23:02 +08:00 |
|
seaislee1209
|
fda0385d2f
|
feat(pipeline): 基础资产页提取闸门简化为单按钮 + 卡式 loading + 顶栏重新提取
- 进资产页遮罩上从「3 个按钮(只提取/提取+生成/全套)」简化为单个醒目 CTA「提取角色 / 场景」
(走 only 模式:只提取不出图,生成仍由用户后续手动点);提取时用脚本同款卡式 loading
(spinner + 标题 + 跳点 + 扫光进度条;sgv-* 样式解作用域以复用)
- 内容区右上角(团队头像正下方)加「重新提取」按钮 —— 仅基础资产页且已提取过时露出,点击重提
验收:tsc+build 绿;无头核对(空项目显单按钮闸门「提取角色/场景」、已提取项目显「重新提取」、0 console error)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 14:12:39 +08:00 |
|
seaislee1209
|
1d40e89418
|
feat(product-detail): 素材区重做为结构化 — 角色逐个 / 商品图平铺 / 图片成品平铺 / 场景分镜视频按项目打包
按"东西的性质"分,不再一锅炖:
- 后端 /api/products/{id}/materials/:角色=立绘+配对三视图(triview_of)逐个、带「被几个项目引用」
(BaseAssetGroup 去重计数);商品图平铺;图片成品(上身图/套图/创作)平铺;场景/分镜/视频素材按视频项目打包
- 前端商品详情素材区重做:角色卡(左上标签+左下「N 个项目引用」/「// 暂未引用」,点开看形象图+三视图)、
商品图平铺、图片成品平铺带类型标签、项目包卡(点开看该项目场景+分镜+视频素材);通用明细弹窗
- 单测 ProductMaterialsTests(角色配对+引用数=1 / 商品图 / 图片成品 / 项目包2素材)
验收:products+assets 22 测绿;tsc+build 绿;无头核对(角色卡「1 个项目引用」+商品图平铺、0 console error)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 13:34:39 +08:00 |
|
seaislee1209
|
708b9ea572
|
feat(review): 全站统一「审核盾」徽章 + 灰盾点击手动提交兜底
火山人像审核状态此前三处文案各异(已审核/通过/审核✓…)。统一成一个共享 ReviewBadge:
全色填充盾(无对勾叉)+ 文案 + hover 气泡说明,4 态:
🟢已过审(active) / 🔴未过审(failed) / 🟠审核中(processing,橙盾光扫动画) / ⚪待审核(空)
灰盾(未送审)可点 → 提交审核(兜底,不加固定按钮):后端新增 POST /api/assets/{id}/submit-review/
(团队级,仅送审三类),前端点击乐观置 processing。气泡组件顺带成为全站首个统一 tooltip。
- 后端 submit-review 端点 + 单测(送审类 200 / 非送审类 400)
- 共享 components/review-badge.{tsx,css}(盾用 SVG 蒙版填色 + 橙态 rv-sweep 光扫)
- 资产库详情弹窗 / 商品详情素材组弹窗 / 视频流程基础资产 三处全换成它(各自接 onSubmit)
验收:assets 16 测绿;tsc+build 绿;无头核对四态(灰可点+气泡/绿已过审/橙审核中不可点)、0 console error
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 22:46:51 +08:00 |
|
seaislee1209
|
9108b7679d
|
feat(product-detail): AI素材成组(A)— 按类型归组,点组卡弹窗看整组
商品详情「AI 生成素材」从一堆散卡(单拎着)改为按类型成组:角色(形象图+三视图)/ 商品图 /
模特上身图 / 平台套图 / 自由创作 / 场景 / 分镜图 / 视频素材 各一组卡(带数量角标),
点组卡 → 弹窗看这组所有素材(缩图可放大;送审类才显审核态)。去掉「加载更多」(组少不分页)。
验收:tsc+build 绿;无头核对(2 组卡 角色/商品图、点开弹窗显组内素材 + 审核态、0 console error)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 22:20:42 +08:00 |
|
seaislee1209
|
3fda75ce65
|
fix(product-detail): 修素材类型标签映射 + 审核态只显送审类
- PD_ASSET_TYPE_LABEL 改对并补全:person→角色(原误为「模特上身图」)、scene→场景(原误为
「平台套图」)、补 model_portrait/model_tryon/platform_kit/free_create/storyboard/video_clip
(老数据里分镜=scene、形象图=person 因此前张冠李戴)
- 审核态(火山人像审核)只渲染在送审三类(person/tri_view/storyboard)上;其余素材根本不送审,
此前一律标「待审核」是误导,现不显
验收:tsc+build 绿;无头核对(角色显「角色」+待审核、商品图无审核态、0 console error)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 22:13:36 +08:00 |
|
seaislee1209
|
4571991deb
|
feat(library): 资产库重做为「成品库」— 图片成品三类 + 视频成品按项目素材包
定义:资产 = 平台产出的成品。原料(商品/模特)归各自的库、半成品(角色/三视图/场景/分镜)归项目,
资产库只装成品 —— tab 从 9 个收成 5 个。
- 后端 /api/assets/video-packs/:视频成品按项目素材包(与「导出全部」同源,取 VideoSegment.adopted_version
真实视频资产,给 TOS 直链 url 供 <video> 播放/取首帧);summary 改只数成品(tryon/kits/creations/others)
- 资产库 _tab_q 加 others(我的上传+未归类兜底);角色/场景/商品图/素材 tab 移除(各回各家)
- 前端 library:tab→模特上身图/平台套图/自由创作/视频成品/其他;视频成品=项目包卡(<video>首帧封面)
→ 点开弹窗看该项目所有片段(可播);图片成品/其他复用原网格
- 单测 VideoPacksTests:按项目分组 + 软删片段排除
验收:后端单测绿(基线 4 失败零新增);tsc+build 绿;无头 0 报错(5 tab + 视频包弹窗 3 段)
注:图片成品「按生成批次成组」待图片趴有真实数据时接线(当前 demo 已清空)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 20:54:42 +08:00 |
|
seaislee1209
|
a39d2b8603
|
feat(video): 视频页「导出全部」— 把项目所有视频片段打包成 zip 下载
- 后端 ProjectViewSet 加 export-clips action:逐段从 TOS 拉取已采用视频片段、内存 zip 打包返回下载
(单段失败跳过不毁整包;空项目 400);文件名走 RFC5987 UTF-8 编码兼容中文
- 前端视频阶段 queue-bar 在「上传视频」旁加「导出全部」按钮(下载图标 + 导出中/失败态),
api.exportProjectClips 取 blob → 触发浏览器下载;仅有已完成片段时可点
- 单测 ExportClipsTests:打包全部片段 + 空项目 400
验收:后端单测绿(基线 4 失败零新增);tsc+build 绿;真打包 补水面膜 项目得 950KB zip;无头 0 报错
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 20:38:31 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
9e791a4db9
|
fix(projects+assets): 项目封面引用真实商品图 + 资产库排除软删资产
- 项目卡封面:废弃「项目名关键词→静态 mock 假图」映射(与真实数据脱节,导致全是假面膜图),
改用后端 cover_preview_url(取商品 cover_asset 主图);无商品图 → 干净占位
- 资产库 queryset/summary/facets 补 is_deleted=False:软删资产不再出现在资产库与 tab 计数
(此前 is_deleted 字段在资产库未生效,软删无效)
- 单测 AssetSoftDeleteTests:列表 + 计数均排除软删
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 19:44:45 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
c6e9c7e77b
|
feat(video): 期3 视频趴 — 人物→角色 + 引用模特库/自动入库 + 分镜合规归类 + 资产库素材
后端:
- B 路:视频流程新生成角色立绘+三视图成套 → 自动入模特库(run_triview_task,幂等 additive)
- 合规闭合:三视图 person→tri_view、分镜图 scene→storyboard,两者均加 on_commit 送审(此前只有角色立绘送审,三视图/分镜图漏审 = 合规缺口)
- 资产库 _tab_q:成片 finals→素材 materials(所有视频排除最终成片;最终成片隐藏不列)
- 单测 TriviewAutoEnrollTests:自动入库 + 幂等 + 三视图落审核范围
前端:
- 视频项目资产趴「人物」→「角色」(KIND_LABEL,区块名/新增/空态/详情弹窗一处全改;向导人设 persona 不动)
- A 路:演员库收编模特库 —— 顶部「模特库」tab 取自模特库实体(含官方跨团队模特),选一个即用其形象图作角色参考
- 资产库 library:人物→角色、成片 tab→素材、分类标签补全(模特上身图/平台套图/自由创作/视频素材/最终成片)
- vite.config:端口与后端代理目标可用 VITE_PORT/VITE_API_TARGET 覆盖(默认不变),避免多实例撞车
验收:后端单测全绿(基线既有 7 失败零新增);tsc+build 全绿;无头 0 console error
(资产库角色/素材改名、最终成片隐藏;pipeline 资产趴显角色;演员库模特库 tab 含 5 模特)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 19:27:23 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
c8f3f91d38
|
feat(images): 期2 图片趴三类 — 模特上身图/平台套图/自由创作 归类+成组+接模特库
后端:
- 独立生图三类归类:model+product→model_tryon(模特上身图,引用模特库,不送审) / cover→platform_kit(平台套图) / image→free_create(自由创作);生成演员(model 无 product)仍→person(视频角色,留期3)
- 成组:每次提交一个 batch_id 串起整批,落 asset.metadata;另记 mode + model_entity_id(上身图溯源模特库)
- generate-image 端点透传 model_entity_id;资产库 _tab_q+summary 加 tryon/kits/creations 三类桶
- 单测 StandaloneCategoryTests 直跑 worker 验四态归类全绿(绕开异步 .delay)
前端:
- 资产库 library.tsx 加三类 tab(模特上身图/平台套图/自由创作)+ 计数 + 筛选维度
- ai-tools 模特选择器数据源 person→模特库(listModels 映射,选中传形象图当参考 = 引用模特库),ActorLibrary 同源
- api.ts submitGenerateImage 加 model_entity_id
验收:tsc+build 全绿;无头 0 console error(资产库三类 tab 各归类正确、模特选择器 5 张取自模特库)
基线既有 3 失败(StandaloneImageReferenceTests 异步漂移)零新增
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-21 16:36:29 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
44e90233ff
|
feat(models): 期1 模特库地基 — Model 顶级实体 + 模特库页 + 审核范围扩展
后端:
- 新增 Model(模特)团队级实体:形象图+三视图+声线(声线尾期),官方模板标签,软删
- Asset.Category 枚举一次加全(model_portrait/tri_view/voice/model_tryon/platform_kit/free_create/storyboard),逐期接线
- 送审范围 person → REVIEW_CATEGORIES{person,tri_view,storyboard}(review.py + adminpanel 队列),图片趴不送审;当前行为不变(forward-compat)
- /api/models/ ModelLibraryViewSet:本团队∪官方模板、官方/我的 tab、真人上传、软删(官方不可删)、跨团队资产引用防越权
- backfill_models 命令把历史成套模特(kind=model + 项目流命名配对)归集成 Model,dry-run 默认
前端:
- 左菜单新增「模特库」顶级入口(person 图标)+ 路由 /models
- 模特库页:全部/官方模板/我的模特 tab + 真人上传 + 模特卡(形象图+三视图缩略+官方标签),仅用 design token
测试:assets 10/10 绿;tsc+build 全绿;无头走查 0 console error(全部5/官方3/我的2,官方标签达标)
基线既有 7 失败(ai/projects provider mock 漂移)零新增
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-20 22:53:46 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
998b0bfb93
|
fix(product-detail): 素材卡「归档」按钮 → 只读审核状态
- 状态不再是用户可点循环(通过/不通过/归档),改为只读展示团队审核结果
- 状态值 archive→pending:active(绿盾)=通过 / failed(红标)=不通过 / 其它=待审核
- 移除 statusOverrides 本地覆盖 + cycleAssetStatus + 采用三视图的状态联动
- 筛选项「归档」→「待审核」;CSS .pill.archive→.pill.pending 去 cursor:pointer
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-20 19:21:31 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
3469799da5
|
feat(trash): 商品删除→垃圾桶(软删可恢复)+ 左侧垃圾桶入口
后端(无需迁移,复用 Product.status active/archived):
- destroy 改软删(status→archived);正常列表/详情只看 active
- 新增 /products/trash(列已删)、/products/{id}/restore(恢复)、/{id}/purge(彻底删)
- tests.py:软删/列表隐藏/回收站/恢复/彻底删/拒绝彻底删 active —— 5 测试全过
前端:
- api:productsTrash / restoreProduct / purgeProduct
- 左侧导航加「垃圾桶」(新增 trash 图标);route-config 接 /trash 路由
- 新页 routes/trash.tsx + trash-page.css(仅 token):已删商品列表 + 恢复 + 彻底删(二次确认)
- 删除确认文案「不可撤销」→「移至垃圾桶可恢复」;toast「商品已删除」→「已移至垃圾桶」
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-20 19:16:28 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
2e880714b1
|
fix(base-assets): 资产详情还原 — 容器比例/提示词框固定/hover反白/缺三视图标签
- F1 缺三视图标签:橙底白字 r-sm → 白底琥珀描边胶囊(对齐设计稿)
- F3 立绘容器 3/4 → 9/16(资产详情左 + 库 adx-lead-img)
- F4 库三视图格 adx-tri-cell 3/4 → 16/9(流水线详情本就 16/9)
- F6 资产详情提示词栏 .ad-detail-prompt 固定高度 88px + resize:none
- F2 人物提示词框 .asset-prompt-edit 固定 74px(≈三行)+ resize:none,studio rows 4→3
- F7 三视图上方 icon 按钮 hover:橙底+白 icon(原仅字色变橙)
- F5 资产详情「重跑立绘/替换」按钮行右对齐
- F8(商品块 vs 人物块统一)结构性差异,待用户指认,本轮挂起
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-20 19:00:18 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
8550d532ac
|
fix(storyboard): 还原故事板 — 时间区间/缩略图/白底/字号对齐HTML
- E1 每场卡字号对齐 HTML:.nm 12→11.5、.sub 12→10.5、.asset-tag 12→11.5
- E2 故事板主图留白底色 --background-lighter(灰)→ --surface(白),
contain 完整显示竖长拼图时不再透出「灰底大框」
- E3 每场 sub 由「#1」改为时间区间「0~15s」(累加脚本镜时长,无脚本回退序号)
- E4 绑定资产前的占位圆点 → 已引用资产缩略图(groupMainUrl,无图回退圆点)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-20 18:51:42 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
d7f7ed2bae
|
feat(pipeline): V1 雪藏拼接导出(代码保留,V2 恢复)
- 阶段步进器 STAGE_STEPS 去掉「拼接导出」第 5 项 → 菜单只剩 1-4
- 视频阶段「确认视频,进入拼接」入口按钮 {false &&} 隐藏(代码留存)
- 已完成项目落到第 4 阶段(视频)而非被藏的第 5,避免空白
- Stage 5 拼接导出渲染块原样保留,V2 恢复改 false→true + 还原菜单项即可
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-20 18:39:49 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
b946a64409
|
fix(ui): 批量栏黑底还原 + 图片生成页排版对齐HTML + 视频卡去多余上传
- .bulk-bar 全局裸类被 admin-page.css 白底版盖掉 → 收窄到 .admin-app;
商品库/项目/资产库批量浮条恢复黑底
- 批量浮条显隐改绑「有无选中」(.show)而非编辑模式 → 退选即消失
- asset-factory 三卡:开始生成按钮挪回 factory-text 内(对齐HTML),
按钮紧跟描述、卡片高度回正;tag/desc/价格字号对齐HTML(10.5/13.5/10.5)
- 全站内容区上内边距 48px→24px(对齐设计稿 #page-content),标题不再整体偏低
- 视频卡移除多余「上传」按钮(AI生成不需单卡上传,全局上传入口保留);
video-card-head 顶端对齐改垂直居中
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-20 18:34:33 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
cdfcffcecd
|
feat(admin): Phase 9 收尾治理 — 全局项目监控 + 数据完整性体检
后端:adminpanel projects(全局项目流水线监控+状态筛)+ integrity(数据体检:无账户团队/无图商品/过期邀请码/
无文件资产/失败项目/卡 reserved 计数 + totals);AdminProjectSerializer;IsPlatformAdmin。
前端:adminApi adminProjects/integrity;Admin 治理页(体检卡片超0高亮 + 项目监控表状态筛)。
测试:adminpanel 53 单测过(项目列/筛/体检报告);无头 e2e _admin-p9.mjs 4 断言过 + 0 console error(全只读);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 22:51:49 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
4ce7e957d2
|
feat(admin): Phase 8 模型供应商管理 — provider/model CRUD + 启停 + 定价 + 设默认
后端:ModelConfig.is_default + migration;get_default_model 优先 is_default 否则回落最早 active(零回归);
adminpanel providers CRUD(api_key write-only 不回传)+ models CRUD(?provider/capability 筛)+ set-default(同 capability 清旧);
IsPlatformAdmin + 审计。
前端:adminApi providers/models/setDefault;Admin 模型供应商页(供应商表+模型表+启停+定价+设默认+供应商/模型弹窗)。
测试:adminpanel 51 单测过(api_key 隐藏+入库/CRUD/set-default 改 get_default_model);
apps.ai 仍仅 3 个进场前既有失败(零回归);无头 e2e _admin-p8.mjs 5 断言过 + 0 console error
(用一次性禁用 provider+model capability=export,无副作用,跑完删);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 22:45:14 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
39b4467258
|
feat(admin): Phase 7 计费审计+4层额度策略 — 流水浏览/手动调额/额度策略CRUD+拦截
后端:adminpanel ledgers(全局流水+筛)+ adjust(手动调额,落 ADJUSTMENT)+ quota-policies CRUD;
额度拦截 _enforce_quota_policy(单任务/月度/项目)接入 reserve_credit,仅团队有 active 策略才生效(无策略零回归);
adjust_credit helper。修真 bug:log_admin_action 加 savepoint + JSON 安全化(UUID/Decimal),
修复传 serializer.data 致审计报错污染外层事务 → TransactionManagementError。
前端:adminApi 计费/额度系列;计费审计页(流水表+手动调额弹窗)+ 额度策略页(CRUD 弹窗,团队下拉+三类上限+启用)。
测试:adminpanel 44 + billing + accounts = 70 单测过(调额±/超额拒/额度拦截 per_task+monthly/无策略零回归);
无头 e2e _admin-p7.mjs 6 断言过 + 0 console error(一次性团队,不动 demo 余额);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 22:33:52 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
ca1e50d32c
|
feat(admin): Phase 6 AI任务监控+成本异常 — 全局任务列/筛/详情抽屉/失败重投
后端:adminpanel tasks(全局 AITask + status/type/team/anomaly 筛分页)+ detail(payload)+ retry(失败重投,
仅图像类 best-effort 否则 400);is_cost_anomaly(实际>预估×1.5)+ F() 异常筛;IsPlatformAdmin + 审计。
前端:adminApi tasks 系列;Admin 任务监控页(状态 tab + 仅成本异常 chip + 表格成本预估→实际+异常标 + 详情抽屉 payload + 失败重投)。
修真 bug:抽屉缺 .show 类停屏外,补上正常滑入。
测试:adminpanel 36 单测过(筛/异常/详情/重投 mock celery + 非失败/不支持/权限拒);
无头 e2e _admin-p6.mjs 6 断言过 + 0 console error(不点真重投);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 22:19:24 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
5aab8a568f
|
feat(admin): Phase 5 火山人像审核队列 — 跨团队 person 资产审核(列/筛/批量送审/轮询)
后端:adminpanel asset-reviews(列跨团队 person + 状态筛分页)+ submit(批量送审/重试)+ poll(轮询 processing),
复用 assets/review.py,IsPlatformAdmin + 审计;AdminReviewAssetSerializer;修 N+1(prefetch 缓存取首图,列表 5s→1s)。
前端:adminApi 审核系列;Admin 资产审核页(状态筛 + 多选表格 + 绿/红/灰状态盾 + 重试 + 吸底 bulk-bar 批量送审 + 刷新状态)。
测试:adminpanel 28 单测过(mock 火山:队列只列 person/状态筛/批量送审计数/poll 只轮 processing);
无头 e2e _admin-p5.mjs 5 断言过 + 0 console error(只读 poll,不点真送审);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 22:07:11 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
01d4f235ed
|
feat(admin): Phase 4 质量词 Admin(平台单层) — QualityWord + 生成侧读配置(无配置回落) + 质量词页
后端:apps/ai QualityWord(stage/slot/text/sort/enabled)+ migration;services.py quality_words/quality_suffix,
4 个 builder 接入(person/model_tryon/storyboard/video)无配置回落原写死值零回归;adminpanel CRUD + 审计。
前端:adminApi quality 系列;Admin 质量词页(按 stage 分组卡 + 编辑模式开关 + 行内增改删 chip)。
测试:adminpanel 23 + accounts 22 = 45 单测过(CRUD/权限/生成读配置+回落/停用词不取);
无头 e2e _admin-p4.mjs 4 断言过 + 0 console error + live 库零残留;tsc+build 绿。
注:apps.ai 3 个 image_edit 路由测试失败为进场前既有(已 stash 比对 HEAD 同样失败),非本 Phase 引入。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 21:52:41 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
6560633959
|
feat(admin): Phase 3 平台团队+用户管理 — 列/启停/详情/强制改密 + 团队停用拦登录
后端:adminpanel 增 teams(列/详情/启停)+ users(列/启停/强制改密),AdminTeam/User 序列化器;
login 校验团队 status,停用团队成员拒登;停用用户清 token、禁停平台超管;全程 IsPlatformAdmin + 审计。
前端:adminApi teams/users 系列;Admin 团队页(筛选+搜索+详情弹窗+启停)、用户页(启停+改密弹窗,超管行禁操作)。
测试:adminpanel 19 + accounts 22 = 41 单测过;无头 e2e _admin-p3.mjs 7 断言过 + 0 console error
(UI 停用团队→成员登录 400→启用→200;UI 改密→新密码登录 200);tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 21:39:15 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
45a4ceae51
|
feat(admin): Phase 2 邀请码发放管理 — apps/adminpanel 跨团队端点 + Admin 邀请码页
后端:新建 apps/adminpanel(跨团队后台容器,/api/admin/);GET/POST invitations(列跨团队码+筛选分页 /
平台发 create_team 开团队码,写审计)+ revoke(写审计),全程 IsPlatformAdmin。
前端:adminApi 分层;Admin 邀请码页(类型筛选段控 + 表格 + 发码弹窗 + 复制邀请链接 + 撤销)接入 AdminApp toast;
Invitation 类型补 kind/team_name;admin-page.css 补段控/表格/弹窗(仅 token)。
测试:adminpanel 9 + accounts 22 = 31 单测过;无头 e2e _admin-p2.mjs 6 断言过 + 0 console error
+ 端到端凭 UI 发的码注册开团队 201;tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 21:29:55 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
3f8547564c
|
feat(admin): Phase 1 注册邀请码逻辑 — 码必填 + kind 分流 + validate-invite + 注册页码优先重做
后端:Invitation.kind(join_team/create_team)+ team 可空 + migration;RegisterSerializer 邀请码必填,
create_team 开新团队当 owner+发试用额度、join_team 幂等入伙不重复发额度,删「空码开团队」;
validate-invite 免登录验码端点;团管发码恒 join_team;InvitationSerializer 增 kind/team_name。
前端:注册页码优先(验过才展开;create_team 填团队名 / join_team 只读团队名,不暴露团队列表)、
邀请链接 ?invite= 自动验码、api.validateInvite、验码行/状态提示样式(仅 token)。
测试:accounts 22/22 单测过(RegisterInviteCodeTests + ValidateInviteTests);
无头 e2e _admin-p1.mjs 全断言过 + 0 console error;tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 21:07:03 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
443023a1a9
|
feat(admin): Phase 0 平台超管基础 — is_platform_admin + IsPlatformAdmin + create_platform_admin(admin/admin123) + AdminAuditLog + Admin 后台外壳与路由 gating
后端:User.is_platform_admin + migration;权限类 IsPlatformAdmin;管理命令建 admin/admin123(幂等);
AdminAuditLog 模型 + log_admin_action() helper;me/login 对无团队超管优雅返回 team=null;UserSerializer 暴露标志。
前端:routes/admin 后台外壳(分组侧栏 + 概览 + 占位)、/admin 路由解析与 gating(超管直落、非超管纠回)、
侧栏平台入口、admin-page.css(仅 token)、IconKitSvg 补图标。
测试:accounts 11/11 单测过;无头 e2e _admin-p0.mjs 全断言过 + 0 console error;tsc+build 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 20:49:34 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
ec573151d2
|
fix(auth): 登录页修按钮丢失 + 黑块等高 + 品牌文案重梳(去流程罗列)
用户反馈登录页:① 登录按钮不见了 ② 左黑块比右栏矮一截 ③ 左侧铺一堆生成流程/
失败不扣费,杂、不像品牌门面。
- 按钮丢失:.auth-submit-zone(按钮+SSO+切换)原是 .auth-form 的兄弟节点,登录态被当成
flex 第三列挤出、被 overflow 裁掉 → 移进 .auth-form 表单内,按钮恢复。
- 黑块矮:.auth-brand 基础规则带 height:100%,而登录/注册 wrap 是 height:auto,百分比高
解析不出 → 黑块退回内容高、退出 stretch。删掉 height:100%,靠 align-self:stretch 拉等高。
- 文案:删 VALUE_POINTS 四条功能罗列 + 流程箭头 p,登录/注册统一干净品牌短句
(「让每件商品都有自己的带货短剧」/「开通团队,拍出第一条带货短剧」),守 design.md 克制调性。
实测:黑块=表单=600px 等高;登录按钮+SSO 显示正常。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 19:14:26 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
69163a8f7f
|
fix(pipeline): 提取闸门按「是否走过正式提取步」显隐,而非 script_entities 存在性
脚本生成期有时也会吐 entities(就是那个不稳的旧来源),若按 script_entities 存在性判断,
闸门会被误隐藏、用户看不到三按钮。改为提取步落库时打 metadata.entities_extracted 标记,
前端据此显隐:没走过正式提取 → 盖蒙版露三按钮;走过 → 露卡片。「重新提取」按钮在有实体或
有资产时显示(老项目也能重提)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 18:04:45 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
de29449a76
|
feat(pipeline): 兜底弹窗拦截 — 生成故事板/视频前查参考图齐不齐,缺了拦住
原兜底是静默退化文生图/文生视频 → 出来的跟用户建的角色/商品无关,白花钱、易纠纷。
因参考图是自动关联(没给手选),改为生成前拦截:
- missingRefsFor:对待生成镜的 entity_refs,查每个角色/场景是否有「按名字采用」的基础资产
(商品永远有主图、不算缺);没提取过实体则不拦(交给提取闸门)。
- guardGen 包住 4 个生成触发点:故事板整张 / 全部视频 / 单段视频 ×2;单段只查对应镜。
- 缺了弹窗:列出缺的角色/场景 + 「去补齐参考图」(跳资产趴)/「仍要生成」(随他便,带警告)。
- 弹窗 CSS 守 design token(深色遮罩 + --r-md + --heat/--accent-black)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 17:57:52 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
c6d1d2f6fe
|
feat(pipeline): 资产页实体提取闸门 — 蒙版+3按钮替掉自动生成(不掏口袋)
进资产趴原会自动 genPersonWithTri/genBaseAsset 出图、直接扣用户费,"被掏口袋"感。
改为用户点了才提取/生成:
- 删掉进资产趴的自动生成 effect(及 autoGenRef)。
- STAGE 2 盖半透明蒙版 + 三按钮:① 只提取关键词(不出图) / ② 提取+生成角色和场景
(立绘+场景图) / ③ 提取+全套(立绘+三视图+场景图);running 态转 loading,完成自动揭开。
- runExtract 调 /extract-entities 提实体落库,②③ 再按返回实体循环 genBaseAsset/genPersonWithTri。
- 提取后露「重新提取角色/场景」按钮(改了脚本可重提)。
- 闸门据 metadata.script_entities 是否落库自动显隐;已有资产的老项目不打扰。
- api.extractEntities + 类型 script_entities;蒙版 CSS 守 design token(--heat/--r-md/--accent-crimson)。
角色卡仍只露可改的 visual_prompt(质量模板后端 build_person_frontal_prompt 包,用户看不到)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 17:50:31 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
1c5606abcb
|
feat(core): Wave 4 P2 — 账户页 mono 字号分级 + 商品卡缺三视图徽标
- account-page.css:25 处纯 mono 装饰字号对照 V1 account.html 收回 9-11.5px 分级
(原统一 12px);分页器等无 V1 锚点的保持现状不瞎改
- products.tsx:商品卡补「缺三视图」徽标(复用现成 .tri-missing-badge,真实字段判定
!cover_asset && 无图,判不准则不显示不造假);stat 生成选择 modal 超 P2 范围跳过
验证: tsc 0 · build 0 · 14 路由回归 boot 0 报错 · 登录 702ms 无邮箱
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 13:13:02 +08:00 |
|