v110-v112 自定义模式完善 + 模板导出增强 + 多模态兼容优化
- 自定义模式:分析模型输出 delta 唯一改动指令,生图模板 custom_image_prompt.md({delta} 占位符),不再使用负向提示词;generate_design 按 custom_mode 分支,Pinterest 模式保留原创化指令,两模式互不影响
- 多模态分析 response_format 三级回退(json_schema → json_object → none),兼容 DeepSeek
- 模板导出:details 扩展列(细节1/2/3)、target_audience 扩展列(适用人群1)、固定值风格1=休闲/风格2=运动
- 童装特征库更新 + 标题模板外部化 + 图源映射增强
This commit is contained in:
@@ -195,7 +195,7 @@ def _process_spu(
|
||||
db_path, basemap_root, material_root, category, prod_dir, brief, ib,
|
||||
spu, sku_code, pcfg, errors, shared_design=None, title_backend=None, country="",
|
||||
img_code="", model_img=None, design_size="1024x1024", compose_size="1536x2048",
|
||||
on_503=None, model_kind="model",
|
||||
on_503=None, model_kind="model", category_path="",
|
||||
) -> Optional[Dict[str, Any]]:
|
||||
"""处理单个款号:选色 → 底图 → 设计稿 → (mark==1) 模特 → 合成 → 模板导出。
|
||||
shared_design: compose 节点生成的纯印花设计稿路径(图2);为 None 时回退本节点 generate。
|
||||
@@ -434,7 +434,7 @@ def _process_spu(
|
||||
title_img = (result.get("composite_path") or result.get("printed_path")
|
||||
or result.get("design_path"))
|
||||
if title_img:
|
||||
t = title_backend.generate_title(title_img, country=country)
|
||||
t = title_backend.generate_title(title_img, country=country, category_path=category_path)
|
||||
if t.get("en_title") or t.get("cn_title") or t.get("ja_title") or t.get("es_title"):
|
||||
result["en_title"] = t.get("en_title", "")
|
||||
result["cn_title"] = t.get("cn_title", "")
|
||||
@@ -482,6 +482,17 @@ def product_node(state: Dict[str, Any]) -> Dict[str, Any]:
|
||||
spu_tasks = pcfg.get("spu_tasks") or []
|
||||
spu_count = int(pcfg.get("spu_count") or 0)
|
||||
|
||||
# 标题生成用:模版「类目」完整路径(如 服装、鞋靴和珠宝饰品>女童时尚>…>女童T恤),
|
||||
# 注入标题提示词 {category_path} 占位符;模板未配置/读取失败为空串
|
||||
category_path = ""
|
||||
try:
|
||||
_tp = str(pcfg.get("template_path") or "").strip()
|
||||
if _tp:
|
||||
from graph.seed_shot import read_template_category
|
||||
category_path = read_template_category(_tp)
|
||||
except Exception as _e: # noqa: BLE001
|
||||
print(f"[product] 读取模版类目路径失败(标题 category_path 留空): {_e}")
|
||||
|
||||
# 1) 选简报(优先 safe)
|
||||
safe = [b for b in briefs if b.get("risk_level") == "safe"] or briefs
|
||||
if not safe:
|
||||
@@ -634,6 +645,7 @@ def product_node(state: Dict[str, Any]) -> Dict[str, Any]:
|
||||
country, img_code=img_code,
|
||||
model_img=_src.get("img"), # 按任务序号取独立随机图源
|
||||
model_kind=_src.get("kind", "model"),
|
||||
category_path=category_path,
|
||||
design_size=str((config.get("compose") or {}).get("design_size") or "1024x1024"),
|
||||
compose_size=str((config.get("compose") or {}).get("size") or "1536x2048"))
|
||||
if r:
|
||||
|
||||
Reference in New Issue
Block a user