fix(core): 商品详情页三视图改走 image_edit 参考真实主图 + 该商品 AI 素材归属

- 商品详情页「AI 生成三视图」原走独立生图老链路(纯文生图),只凭商品名脑补,
  出来通用图不像真品。改:前端传 reference_product;后端 run_standalone_image_task
  据此取商品主图走 image_edit(复用 build_product_triview_prompt_refs 锁包装),
  取不到主图优雅回落文生图。图片创作页(自由创作)不带标记,不受影响。
- 商品详情页素材区改为只显示「该商品」AI 素材(asset.product 归属)而非全团队。
- 首登水合带重试,失败不再静默(否则页面卡在全 0,要刷新才好)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zyc
2026-06-17 15:54:04 +08:00
co-authored by Claude Opus 4.8
parent 0d1fce1cc1
commit 9bdd0683f8
9 changed files with 84 additions and 19 deletions
+3 -3
View File
@@ -485,7 +485,7 @@ export function ImageWorkbenchPage({
modelConfigs: ModelConfig[];
onBack: () => void;
navigate?: (page: Page) => void;
onGenerate: (payload: { prompt: string; mode?: "image" | "model" | "cover"; count?: number }) => Promise<{ assets: Asset[] } | null>;
onGenerate: (payload: { prompt: string; mode?: "image" | "model" | "cover"; count?: number; product_id?: string }) => Promise<{ assets: Asset[] } | null>;
onResume?: (mode: "image" | "model" | "cover", ids: string[]) => Promise<{ assets: Asset[] } | null>;
/** 行19:从商品页带入的初始商品 id(可选);未传则回退到第一个商品 */
initialProductId?: string;
@@ -574,7 +574,7 @@ export function ImageWorkbenchPage({
// 追加新批次(行32②:不覆盖,在下面新增一行)
setBatches((prev) => [...prev, newBatch]);
try {
const result = await onGenerate({ prompt: prompt.trim(), mode, count: candidateCount });
const result = await onGenerate({ prompt: prompt.trim(), mode, count: candidateCount, product_id: product?.id });
setBatches((prev) => {
const next = prev.map((b) =>
b.id === batchId
@@ -608,7 +608,7 @@ export function ImageWorkbenchPage({
};
setBatches((prev) => [...prev, newBatch]);
try {
const result = await onGenerate({ prompt: src.prompt, mode, count: src.count });
const result = await onGenerate({ prompt: src.prompt, mode, count: src.count, product_id: product?.id });
setBatches((prev) => {
const next = prev.map((b) =>
b.id === batchId