refactor: 重命名 gpt_image 节点并优化分辨率显示与模型映射

- nodes/o1key_gpt_image.py → nodes/gpt_image.py
- 分辨率下拉扩充至 8 项并添加中文说明,generate() 内解析显示值再传 API
- 补充 gpt-image-2-特价 → gpt-image-2-special 映射
- edits 接口日志移除未实际发送的 quality/background 字段

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
This commit is contained in:
o1key
2026-04-22 10:37:03 +08:00
co-authored by Claude Sonnet 4.5
parent a4edf56503
commit afa732b93a
3 changed files with 18 additions and 6 deletions
+2 -2
View File
@@ -35,6 +35,7 @@ _ENDPOINT_EDITS = "/v1/images/edits/"
_MODEL_NAME_MAP = { _MODEL_NAME_MAP = {
"gpt-image-1-特价": "gpt-image-1-special", "gpt-image-1-特价": "gpt-image-1-special",
"gpt-image-1.5-特价": "gpt-image-1.5-special", "gpt-image-1.5-特价": "gpt-image-1.5-special",
"gpt-image-2-特价": "gpt-image-2-special",
} }
# ── 超时 ────────────────────────────────────────────────────────────────────── # ── 超时 ──────────────────────────────────────────────────────────────────────
@@ -333,8 +334,7 @@ class GptImageClient:
mode = "图像编辑(无蒙版)" mode = "图像编辑(无蒙版)"
url = f"{self.base_url}{_ENDPOINT_EDITS}" url = f"{self.base_url}{_ENDPOINT_EDITS}"
print(f"[o1key GPT Image] {mode} | 模型={model} | 参考图={num_images}张 | quality={quality} | " print(f"[o1key GPT Image] {mode} | 模型={model} | 参考图={num_images}张 | size={size} | n={n}")
f"background={background} | size={size} | n={n}")
connector = aiohttp.TCPConnector(ssl=False, force_close=True) connector = aiohttp.TCPConnector(ssl=False, force_close=True)
timeout = aiohttp.ClientTimeout(total=_REQUEST_TIMEOUT) timeout = aiohttp.ClientTimeout(total=_REQUEST_TIMEOUT)
+1 -1
View File
@@ -19,6 +19,6 @@ from .multi_res_preview import MultiResPreview
from .batch_images_o1key import BatchImagesO1key from .batch_images_o1key import BatchImagesO1key
from .seedance_video import Seedance, SeedanceMultiModal from .seedance_video import Seedance, SeedanceMultiModal
from .doubao_image import DoubaoImage from .doubao_image import DoubaoImage
from .o1key_gpt_image import O1keyGPTImage from .gpt_image import O1keyGPTImage
__all__ = ['NanoBananaPro', 'BatchNanoBananaPro', 'GoogleGemini', 'LoadFile', 'ImageStitchPro', 'SaveCleanImage', 'BatchCleanMetadata', 'VideoPreview', 'KlingVideo', 'KlingFirstLastFrame', 'KlingMotionControlTest', 'AspectRatioPreset', 'GoogleVeo', 'FluxImageEdit', 'UniversalLLMChat', 'MultiResPreview', 'BatchImagesO1key', 'Seedance', 'SeedanceMultiModal', 'StreamPreview', 'DoubaoImage', 'O1keyGPTImage'] __all__ = ['NanoBananaPro', 'BatchNanoBananaPro', 'GoogleGemini', 'LoadFile', 'ImageStitchPro', 'SaveCleanImage', 'BatchCleanMetadata', 'VideoPreview', 'KlingVideo', 'KlingFirstLastFrame', 'KlingMotionControlTest', 'AspectRatioPreset', 'GoogleVeo', 'FluxImageEdit', 'UniversalLLMChat', 'MultiResPreview', 'BatchImagesO1key', 'Seedance', 'SeedanceMultiModal', 'StreamPreview', 'DoubaoImage', 'O1keyGPTImage']
@@ -48,8 +48,17 @@ class O1keyGPTImage:
], { ], {
"default": "gpt-image-1.5", "default": "gpt-image-1.5",
}), }),
"分辨率": (["auto", "1024x1024", "1024x1536", "1536x1024"], { "分辨率": ([
"default": "auto", "auto(默认)",
"1024x1024(正方形)",
"1536x1024(景观)",
"1024x1536(肖像)",
"2048x20482K 平方)",
"2048x11522K 横屏)",
"3840x21604K 横屏)",
"2160x38404K 竖屏)",
], {
"default": "auto(默认)",
"tooltip": "Image size (auto = API decides)", "tooltip": "Image size (auto = API decides)",
}), }),
"生图数量": ("INT", { "生图数量": ("INT", {
@@ -111,6 +120,9 @@ class O1keyGPTImage:
if 遮罩 is not None and 图片 is None: if 遮罩 is not None and 图片 is None:
raise ValueError("提供了遮罩但未提供图片,请同时提供图片和遮罩") raise ValueError("提供了遮罩但未提供图片,请同时提供图片和遮罩")
# ── 2. 解析分辨率显示值 → API 参数值 ──────────────────────────────────
size = 分辨率.split("")[0].strip()
# ── 2. 创建客户端 ───────────────────────────────────────────────────── # ── 2. 创建客户端 ─────────────────────────────────────────────────────
try: try:
client = GptImageClient() client = GptImageClient()
@@ -127,7 +139,7 @@ class O1keyGPTImage:
model=模型, model=模型,
quality="low", quality="low",
background="auto", background="auto",
size=分辨率, size=size,
n=生图数量, n=生图数量,
seed=seed, seed=seed,
image_tensor=图片, image_tensor=图片,