feat: explain product suite multi-image generation

This commit is contained in:
chengma
2026-07-17 17:10:13 +08:00
parent f64dfffe40
commit def05c9ae8
6 changed files with 87 additions and 6 deletions
+38 -2
View File
@@ -2209,9 +2209,24 @@ class ProductSuiteTab(QWidget):
grid.addWidget(combo, 1, column)
grid.setColumnStretch(column, 1)
layout.addLayout(grid)
per_image_row = QHBoxLayout()
per_image_row.setContentsMargins(0, 0, 0, 0)
per_image_row.setSpacing(8)
self.per_image_checkbox = QCheckBox("每张上传图分别作为主图生成")
self.per_image_checkbox.setObjectName("suitePerImageCheckbox")
layout.addWidget(self.per_image_checkbox)
per_image_row.addWidget(self.per_image_checkbox)
self.per_image_helper_label = QLabel(
"多款式或多SKU图请勾选;同一商品多角度图不勾选,其余图会作为参考图一同提交。"
)
self.per_image_helper_label.setObjectName("suitePerImageHelperLabel")
self.per_image_helper_label.setWordWrap(True)
self.per_image_helper_label.setSizePolicy(
QSizePolicy.Expanding,
QSizePolicy.Preferred,
)
self.per_image_helper_label.setStyleSheet("color: #57606a; font-size: 12px;")
per_image_row.addWidget(self.per_image_helper_label, 1)
layout.addLayout(per_image_row)
return frame
def _value_combo(self, object_name, label, values):
@@ -4852,6 +4867,15 @@ class ProductSuiteTab(QWidget):
if counts.get(name, 0) > 0
]
per_image_primary = bool(state.settings.get("per_image_primary"))
reference_count = 0
if not per_image_primary:
reference_count = max(
[len(spec.get("reference_asset_ids") or []) for spec in specs] or [0]
)
ignored_reference_count = max(
0,
len(local_assets) - 1 - reference_count,
)
lines = [
"店铺:%s" % self._account_context_label(state),
"商品ID:%s" % (state.item_id or "未绑定商品"),
@@ -4861,10 +4885,22 @@ class ProductSuiteTab(QWidget):
(
"说明:白底图只使用第一张原图;场景图、卖点图和自定义分类会按每张原图分别生成。"
if per_image_primary
else "说明:所有分类都只使用第一张可用原图生成。"
else (
"说明:所有分类都使用第1张可用原图作为主图,另有%d张参考图会随每次请求一同提交。"
% reference_count
if reference_count
else "说明:所有分类都只使用第一张可用原图生成。"
)
),
"",
]
if not per_image_primary and ignored_reference_count:
lines.extend(
[
"参考图仅取前7张,其余%d张不参与本轮生成。" % ignored_reference_count,
"",
]
)
lines.extend(category_lines)
lines.extend(
[