From 0e4e218ccdd2c60fb2c83ca6e7f55b0e0feda1ac Mon Sep 17 00:00:00 2001 From: xie junchen <1132348563@qq.com> Date: Sat, 24 May 2025 11:52:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=83=E7=89=9B=E4=BA=91?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qiniu_uploader.py | 56 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/qiniu_uploader.py b/qiniu_uploader.py index 0f083e6..d167e2e 100644 --- a/qiniu_uploader.py +++ b/qiniu_uploader.py @@ -1,10 +1,21 @@ -import qiniu import os from qiniu import Auth, put_data import io from PIL import Image import numpy as np import uuid +import json + +QINIU_CONFIG_PATH = os.path.join(os.path.dirname(__file__), "qiniu_config.json") + +def load_qiniu_config(): + if os.path.exists(QINIU_CONFIG_PATH): + with open(QINIU_CONFIG_PATH, "r", encoding="utf-8") as f: + return json.load(f) + return None + +# 初始化全局缓存 +QINIU_CONFIG = load_qiniu_config() class QiniuUploader: def __init__(self, access_key: str, secret_key: str, bucket_name: str, domain: str): @@ -44,12 +55,20 @@ class QiniuImageUploadNode: """ @classmethod def INPUT_TYPES(cls): + # 自动填充默认值,确保 config 始终有值 + config = load_qiniu_config() or { + "access_key": "", + "secret_key": "", + "bucket_name": "", + "domain": "" + } + return { "required": { - "access_key": ("STRING", {"default": ""}), - "secret_key": ("STRING", {"default": ""}), - "bucket_name": ("STRING", {"default": ""}), - "domain": ("STRING", {"default": ""}), + "access_key": ("STRING", {"default": config["access_key"]}), + "secret_key": ("STRING", {"default": config["secret_key"]}), + "bucket_name": ("STRING", {"default": config["bucket_name"]}), + "domain": ("STRING", {"default": config["domain"]}), "images": ("IMAGE", ), "key_prefix": ("STRING", {"default": "comfyui_"}), "format": (["PNG", "JPEG"], {"default": "PNG"}), @@ -63,6 +82,7 @@ class QiniuImageUploadNode: OUTPUT_NODE = True def upload_images(self, access_key, secret_key, bucket_name, domain, images, key_prefix, format): + # 优先用传参,否则用全局缓存 uploader = QiniuUploader(access_key, secret_key, bucket_name, domain) urls = [] arr = images.cpu().numpy() if hasattr(images, 'cpu') else images @@ -78,31 +98,9 @@ class QiniuImageUploadNode: urls.append(str(url)) return (urls,) -class ShowUrlsNode: - """ - 展示图片外链地址节点 - """ - @classmethod - def INPUT_TYPES(cls): - return { - "required": { - "urls": ("LIST_STR", ), - } - } - - RETURN_TYPES = ("LIST_STR",) - RETURN_NAMES = ("urls",) - FUNCTION = "show" - CATEGORY = "展示/调试" - OUTPUT_NODE = True - - def show(self, urls): - # 直接返回输入,便于在 ComfyUI history API 查询 - return (urls,) - NODE_CLASS_MAPPINGS = { - "QiniuImageUploadNode": QiniuImageUploadNode, + "QiniuImageUploadNode": QiniuImageUploadNode } NODE_DISPLAY_NAME_MAPPINGS = { -"QiniuImageUploadNode": "☁️ 七牛云图片上传 (IMAGE)", +"QiniuImageUploadNode": "☁️ 七牛云图片上传 (IMAGE)" }