Replace the prior release tree with the current plugin, frontend, tests, and documentation. Document retired node IDs and the public Gitea update source.
50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
"""Nano Banana 节点的展示模型、线路与 API 模型名映射。"""
|
|
|
|
NANO_BANANA_MODEL_OPTIONS = [
|
|
"Nano Banana 2",
|
|
"Nano Banana Pro",
|
|
"Nano Banana 2 Lite",
|
|
"Nano Banana",
|
|
]
|
|
|
|
NANO_BANANA_ROUTE_OPTIONS = ["畅速", "直连", "专线"]
|
|
|
|
NANO_BANANA_MODEL_MATRIX = {
|
|
("Nano Banana Pro", "畅速"): "gemini-3-pro-image-c-sp",
|
|
("Nano Banana 2", "畅速"): "gemini-3.1-flash-image-c-sp",
|
|
("Nano Banana 2 Lite", "畅速"): "gemini-3.1-flash-lite-image-c-sp",
|
|
("Nano Banana", "畅速"): "nano-banana",
|
|
("Nano Banana Pro", "直连"): "gemini-3-pro-image-c-sd",
|
|
("Nano Banana 2", "直连"): "gemini-3.1-flash-image-c-sd",
|
|
("Nano Banana 2 Lite", "直连"): "gemini-3.1-flash-lite-image-c-sd",
|
|
("Nano Banana", "直连"): "nano-banana",
|
|
("Nano Banana Pro", "专线"): "gemini-3-pro-image",
|
|
("Nano Banana 2", "专线"): "gemini-3.1-flash-image",
|
|
("Nano Banana 2 Lite", "专线"): "gemini-3.1-flash-lite-image",
|
|
("Nano Banana", "专线"): "gemini-2.5-flash-image",
|
|
}
|
|
|
|
_LEGACY_BILLING_ROUTE_MAP = {
|
|
"特价": "畅速",
|
|
"官方": "专线",
|
|
}
|
|
|
|
|
|
def normalize_nano_banana_route(route: str) -> str:
|
|
"""兼容旧“计费”值,并校验新模型线路。"""
|
|
normalized = _LEGACY_BILLING_ROUTE_MAP.get(route, route)
|
|
if normalized not in NANO_BANANA_ROUTE_OPTIONS:
|
|
raise ValueError(
|
|
f"模型线路 '{route}' 无效,支持的线路:{', '.join(NANO_BANANA_ROUTE_OPTIONS)}"
|
|
)
|
|
return normalized
|
|
|
|
|
|
def resolve_nano_banana_model(model_name: str, route: str) -> str:
|
|
"""由界面模型和模型线路解析实际 API 模型名。"""
|
|
normalized_route = normalize_nano_banana_route(route)
|
|
model = NANO_BANANA_MODEL_MATRIX.get((model_name, normalized_route))
|
|
if model is None:
|
|
raise ValueError(f"模型 '{model_name}' 不支持模型线路 '{normalized_route}'")
|
|
return model
|