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:
@@ -58,6 +58,21 @@ class AssetFileSerializer(serializers.ModelSerializer):
|
||||
|
||||
class AssetSerializer(serializers.ModelSerializer):
|
||||
files = AssetFileSerializer(many=True, read_only=True)
|
||||
# 资产归属商品(只读):商品详情页据此只展示「该商品」的 AI 素材,而非全团队
|
||||
product = serializers.SerializerMethodField()
|
||||
|
||||
def get_product(self, obj):
|
||||
"""解析资产所属商品:
|
||||
1) 独立生图(图片创作/模特图/平台套图):生图时已写入 metadata.product_id;
|
||||
2) 项目内生成(基础资产/分镜图等):回溯 origin_task → project → product。
|
||||
两条路都拿不到则归属 None(如纯手动上传到素材库、与任何商品无关的图)。"""
|
||||
pid = (obj.metadata or {}).get("product_id")
|
||||
if pid:
|
||||
return str(pid)
|
||||
task = obj.origin_task
|
||||
if task and task.project_id and task.project.product_id:
|
||||
return str(task.project.product_id)
|
||||
return None
|
||||
|
||||
class Meta:
|
||||
model = Asset
|
||||
@@ -71,6 +86,7 @@ class AssetSerializer(serializers.ModelSerializer):
|
||||
"metadata",
|
||||
"is_deleted",
|
||||
"origin_task",
|
||||
"product",
|
||||
"files",
|
||||
"review_status",
|
||||
"review_error",
|
||||
|
||||
Reference in New Issue
Block a user