feat(ai-studio): clarify hosted model tiers

This commit is contained in:
chengma
2026-07-11 14:49:39 +08:00
parent 2c6ed87201
commit 03916dea55
10 changed files with 342 additions and 42 deletions
+3 -27
View File
@@ -7,6 +7,7 @@ import os
from ... import ai as ai_module
from ... import chrome
from ... import cmhub_models
from ..widgets import *
from ..workers import AIModelTestWorker as _RealAIModelTestWorker
from ..workers import CMHubSettingsWorker as _RealCMHubSettingsWorker
@@ -1250,7 +1251,8 @@ class SettingsTab(QWidget):
alias = str(model.get("alias") or "").strip()
if not alias or alias in added:
continue
combo.addItem(self._cmhub_alias_label(model), alias)
combo.addItem(cmhub_models.alias_label(model), alias)
combo.setItemData(combo.count() - 1, cmhub_models.alias_tooltip(model), Qt.ToolTipRole)
added.add(alias)
if selected and selected not in added:
combo.addItem(f"{selected}(已保存)", selected)
@@ -1272,32 +1274,6 @@ class SettingsTab(QWidget):
items.append(model)
return items
def _cmhub_alias_label(self, model):
alias = str(model.get("alias") or "").strip()
price_text = self._cmhub_price_text(model.get("prices"))
parts = [alias]
if price_text:
parts.append(price_text)
if model.get("requires_image"):
parts.append("需参考图")
return " · ".join(parts)
def _cmhub_price_text(self, prices):
if not isinstance(prices, list):
return ""
parts = []
for item in prices[:3]:
if not isinstance(item, dict):
continue
cost = item.get("points_cost")
if cost is None:
cost = item.get("cost")
if cost is None:
continue
resolution = item.get("resolution") or item.get("name") or ""
parts.append(f"{resolution}:{cost}点" if resolution else f"{cost}点")
return "/".join(parts)
def _cmhub_alias_count(self, operation):
combo = self.cmhub_title_alias_combo if operation == "title" else self.cmhub_image_alias_combo
return sum(1 for index in range(combo.count()) if combo.itemData(index))