生图模型可选(火山/gpt-image)+ 模特上身图提示词强化 + 多会话等改动

本轮(生图模型选择 + 火山接入):
- 工作室新增「生图模型」选择器(模特上身图/平台套图头部 chip + 图片创作底部 Pill),
  默认火山 Seedream,可切 gpt-image-2;选择写入 localStorage,下次进页面读回
- 后端 resolve_image_model 解析所选模型;enqueue_standalone_images 接 image_model
- worker 按模型能力分流:有 image_edit(gpt-image)走多图编辑;无(火山)走
  image_generation(image=参考图);新增 _ratio_to_volcano_size 让火山按比例出图
  → 内衣等敏感品类用火山可绕开 gpt-image 的 sexual 内容审核

模特上身图提示词:
- 穿戴/非穿戴分流、按 index 变化动作场景镜头、负面词尾接、多图参考序号自适应
- _product_reference_urls:商品参考真实上传图优先、排除 AI 生成图、可多张

其他(并入此前各会话未提交改动):
- 图片创作多会话(ImageConversation + migration 0019)、任务中心按类型过滤
- accounts/projects/assets/team/auth 等零散调整、相关测试
- 测试脚本(tryon_*.py)、测试清单(core/bug/*.xlsx)
This commit is contained in:
zyc
2026-06-27 14:00:28 +08:00
parent 0a519ca892
commit ce7eaefe1d
21 changed files with 1279 additions and 158 deletions
+49
View File
@@ -971,6 +971,41 @@
font-family: var(--font-mono); font-size: 12px;
letter-spacing: .02em; display: inline-block; margin-top: 4px;
}
/* 对话操作失败的内联提示(不再静默吞错) */
.image-workbench .ic-conv-error {
margin: 6px 12px 0;
padding: 8px 10px;
font-size: 12px; line-height: 1.5;
color: var(--heat);
background: var(--heat-12);
border-radius: var(--r-sm);
}
/* 会话项就地重命名输入框 */
.image-workbench .ic-conv-rename {
flex: 1; min-width: 0;
font-size: 13px; font-family: inherit;
color: var(--accent-black);
background: var(--accent-white);
border: 1px solid var(--heat-20);
border-radius: var(--r-sm);
padding: 2px 6px; outline: none;
}
/* 会话项 hover 露出的「重命名 / 删除」 */
.image-workbench .ic-conv-acts {
flex-shrink: 0;
display: none; align-items: center; gap: 2px;
}
.image-workbench .ic-conv-item:hover .ic-conv-acts { display: inline-flex; }
.image-workbench .ic-conv-acts button {
display: grid; place-items: center;
width: 22px; height: 22px;
border: none; background: none; cursor: pointer;
border-radius: var(--r-sm);
color: var(--black-alpha-48);
transition: background var(--t-base), color var(--t-base);
}
.image-workbench .ic-conv-acts button:hover { background: var(--background-base); color: var(--heat); }
.image-workbench .ic-conv-acts svg { width: 12px; height: 12px; }
/* 右 · 对话流主体 */
.image-workbench .ic-main {
@@ -1064,6 +1099,20 @@
border-radius: var(--r-sm);
}
.image-workbench .ic-msg-prompt .pt-tags .sep { color: var(--black-alpha-24); }
/* 批次头:本批用过的参考图缩略 */
.image-workbench .ic-msg-prompt .pt-refs {
margin-top: 8px;
display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
}
.image-workbench .ic-msg-prompt .pt-ref {
width: 28px; height: 28px;
border-radius: var(--r-sm); overflow: hidden;
border: 1px solid var(--border-faint); flex-shrink: 0;
}
.image-workbench .ic-msg-prompt .pt-ref img { width: 100%; height: 100%; object-fit: cover; display: block; }
.image-workbench .ic-msg-prompt .pt-ref-label {
font-family: var(--font-mono); font-size: 12px; color: var(--black-alpha-48); letter-spacing: .02em;
}
/* 底部 · chat 输入栏 */
.image-workbench .ic-input-wrap {