From afa732b93a51410ce5bc45560d4061c4305a3fe2 Mon Sep 17 00:00:00 2001 From: o1key <951565127@qq.com> Date: Wed, 22 Apr 2026 10:37:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E5=91=BD=E5=90=8D=20gpt?= =?UTF-8?q?=5Fimage=20=E8=8A=82=E7=82=B9=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=88=86=E8=BE=A8=E7=8E=87=E6=98=BE=E7=A4=BA=E4=B8=8E=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- clients/gpt_image_client.py | 4 ++-- nodes/__init__.py | 2 +- nodes/{o1key_gpt_image.py => gpt_image.py} | 18 +++++++++++++++--- 3 files changed, 18 insertions(+), 6 deletions(-) rename nodes/{o1key_gpt_image.py => gpt_image.py} (88%) diff --git a/clients/gpt_image_client.py b/clients/gpt_image_client.py index eaa303e..a9b7b94 100644 --- a/clients/gpt_image_client.py +++ b/clients/gpt_image_client.py @@ -35,6 +35,7 @@ _ENDPOINT_EDITS = "/v1/images/edits/" _MODEL_NAME_MAP = { "gpt-image-1-特价": "gpt-image-1-special", "gpt-image-1.5-特价": "gpt-image-1.5-special", + "gpt-image-2-特价": "gpt-image-2-special", } # ── 超时 ────────────────────────────────────────────────────────────────────── @@ -333,8 +334,7 @@ class GptImageClient: mode = "图像编辑(无蒙版)" url = f"{self.base_url}{_ENDPOINT_EDITS}" - print(f"[o1key GPT Image] {mode} | 模型={model} | 参考图={num_images}张 | quality={quality} | " - f"background={background} | size={size} | n={n}") + print(f"[o1key GPT Image] {mode} | 模型={model} | 参考图={num_images}张 | size={size} | n={n}") connector = aiohttp.TCPConnector(ssl=False, force_close=True) timeout = aiohttp.ClientTimeout(total=_REQUEST_TIMEOUT) diff --git a/nodes/__init__.py b/nodes/__init__.py index 9f3f416..c2d96e8 100644 --- a/nodes/__init__.py +++ b/nodes/__init__.py @@ -19,6 +19,6 @@ from .multi_res_preview import MultiResPreview from .batch_images_o1key import BatchImagesO1key from .seedance_video import Seedance, SeedanceMultiModal 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'] diff --git a/nodes/o1key_gpt_image.py b/nodes/gpt_image.py similarity index 88% rename from nodes/o1key_gpt_image.py rename to nodes/gpt_image.py index a9baee0..f325fc4 100644 --- a/nodes/o1key_gpt_image.py +++ b/nodes/gpt_image.py @@ -48,8 +48,17 @@ class O1keyGPTImage: ], { "default": "gpt-image-1.5", }), - "分辨率": (["auto", "1024x1024", "1024x1536", "1536x1024"], { - "default": "auto", + "分辨率": ([ + "auto(默认)", + "1024x1024(正方形)", + "1536x1024(景观)", + "1024x1536(肖像)", + "2048x2048(2K 平方)", + "2048x1152(2K 横屏)", + "3840x2160(4K 横屏)", + "2160x3840(4K 竖屏)", + ], { + "default": "auto(默认)", "tooltip": "Image size (auto = API decides)", }), "生图数量": ("INT", { @@ -111,6 +120,9 @@ class O1keyGPTImage: if 遮罩 is not None and 图片 is None: raise ValueError("提供了遮罩但未提供图片,请同时提供图片和遮罩") + # ── 2. 解析分辨率显示值 → API 参数值 ────────────────────────────────── + size = 分辨率.split("(")[0].strip() + # ── 2. 创建客户端 ───────────────────────────────────────────────────── try: client = GptImageClient() @@ -127,7 +139,7 @@ class O1keyGPTImage: model=模型, quality="low", background="auto", - size=分辨率, + size=size, n=生图数量, seed=seed, image_tensor=图片,