feat: 新增AI生图(批量版)节点,模型改名,超时优化与友好报错
- 新增 BatchAsyncImageGenerator 节点(全并发+即时落盘,不怕中途失败丢图) - 原版 AsyncImageGenerator 移除批量提示词功能,单节点只处理单提示词 - 模型改名:限时特价→次卡,gemini→nano-banana-官方 - 异步节点过滤 官方计费 渠道,仅保留次卡和官方模型 - 单任务超时提升至900s,批量超时改为动态计算(批次数×900s) - No available channel for model 错误转化为中文友好提示 - 新增 base_async_provider / gemini_async_provider 异步客户端基类 Co-Authored-By: Claude Opus 4.6 <[email protected]>
This commit is contained in:
+45
-10
@@ -44,9 +44,10 @@ from typing import List, Dict, Optional, Tuple
|
||||
|
||||
GEMINI_MODELS = [
|
||||
{
|
||||
"id": "nano-banana-pro-限时特价",
|
||||
"description": "Nano Banana Pro 限时特价,根据分辨率自动选择端点 (1K/2K/4K),高性能图像生成模型",
|
||||
"id": "nano-banana-pro-次卡",
|
||||
"description": "Nano Banana Pro 次卡,根据分辨率自动选择端点 (1K/2K/4K),高性能图像生成模型",
|
||||
"enabled": True,
|
||||
"provider": "gemini_async",
|
||||
"endpoint_type": "dynamic",
|
||||
"endpoint": None, # 动态端点,由代码根据分辨率选择
|
||||
"supported_aspect_ratios": [
|
||||
@@ -58,6 +59,7 @@ GEMINI_MODELS = [
|
||||
"id": "nano-banana-pro-官方计费",
|
||||
"description": "Nano Banana Pro 官方计费,按分辨率路由 (1K/2K/4K),使用官方计费通道",
|
||||
"enabled": True,
|
||||
"provider": "gemini_async",
|
||||
"endpoint_type": "dynamic",
|
||||
"endpoint": None, # 动态端点,由代码根据分辨率选择
|
||||
"supported_aspect_ratios": [
|
||||
@@ -66,9 +68,10 @@ GEMINI_MODELS = [
|
||||
"supported_resolutions": ["1K", "2K", "4K"]
|
||||
},
|
||||
{
|
||||
"id": "nano-banana-2-限时特价",
|
||||
"description": "Nano Banana 2 限时特价,根据分辨率自动选择端点 (512px/1K/2K/4K),图像生成模型",
|
||||
"id": "nano-banana-2-次卡",
|
||||
"description": "Nano Banana 2 次卡,根据分辨率自动选择端点 (512px/1K/2K/4K),图像生成模型",
|
||||
"enabled": True,
|
||||
"provider": "gemini_async",
|
||||
"endpoint_type": "dynamic",
|
||||
"endpoint": None, # 动态端点,由代码根据分辨率选择
|
||||
"supported_aspect_ratios": [
|
||||
@@ -81,6 +84,7 @@ GEMINI_MODELS = [
|
||||
"id": "nano-banana-2-官方计费",
|
||||
"description": "Nano Banana 2 官方计费,按分辨率路由 (512/1K/2K/4K),使用官方计费通道",
|
||||
"enabled": True,
|
||||
"provider": "gemini_async",
|
||||
"endpoint_type": "dynamic",
|
||||
"endpoint": None, # 动态端点,由代码根据分辨率选择
|
||||
"supported_aspect_ratios": [
|
||||
@@ -90,9 +94,10 @@ GEMINI_MODELS = [
|
||||
"supported_resolutions": ["512px", "1K", "2K", "4K"]
|
||||
},
|
||||
{
|
||||
"id": "gemini-3-pro-image-preview",
|
||||
"description": "标准模式,固定端点,适用于常规图像生成",
|
||||
"enabled": False,
|
||||
"id": "nano-banana-pro-官方",
|
||||
"description": "Nano Banana Pro 官方,固定端点,适用于常规图像生成",
|
||||
"enabled": True,
|
||||
"provider": "gemini_async",
|
||||
"endpoint_type": "standard",
|
||||
"endpoint": "/v1beta/models/gemini-3-pro-image-preview:generateContent",
|
||||
"supported_aspect_ratios": [
|
||||
@@ -101,9 +106,10 @@ GEMINI_MODELS = [
|
||||
"supported_resolutions": ["1K", "2K", "4K"]
|
||||
},
|
||||
{
|
||||
"id": "gemini-3.1-flash-image-preview",
|
||||
"description": "Gemini 3.1 Flash 图像生成,固定端点,快速图像生成模型",
|
||||
"enabled": False,
|
||||
"id": "nano-banana-2-官方",
|
||||
"description": "Nano Banana 2 官方,固定端点,快速图像生成模型",
|
||||
"enabled": True,
|
||||
"provider": "gemini_async",
|
||||
"endpoint_type": "standard",
|
||||
"endpoint": "/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
|
||||
"supported_aspect_ratios": [
|
||||
@@ -341,6 +347,35 @@ def get_all_supported_resolutions() -> List[str]:
|
||||
return [res for res in _ORDER if res in seen]
|
||||
|
||||
|
||||
def get_model_provider(model_id: str) -> Optional[str]:
|
||||
"""
|
||||
获取模型的异步 Provider 名称
|
||||
|
||||
Args:
|
||||
model_id: 模型 ID
|
||||
|
||||
Returns:
|
||||
Provider 名称(如 "gemini_async"),如果模型未配置 provider 则返回 None
|
||||
"""
|
||||
config = get_model_config(model_id)
|
||||
if config is None:
|
||||
return None
|
||||
return config.get("provider")
|
||||
|
||||
|
||||
def get_enabled_async_models() -> List[str]:
|
||||
"""
|
||||
获取所有启用的、支持异步模式的模型 ID 列表
|
||||
|
||||
Returns:
|
||||
模型 ID 列表(仅包含配置了 provider 且 enabled 的模型)
|
||||
"""
|
||||
return [
|
||||
model["id"] for model in GEMINI_MODELS
|
||||
if model.get("enabled", False) and model.get("provider")
|
||||
]
|
||||
|
||||
|
||||
def get_endpoint_type(model_id: str) -> Optional[str]:
|
||||
"""
|
||||
获取模型的端点类型
|
||||
|
||||
Reference in New Issue
Block a user