From d11aed87ba82a8c6f765663881ee7990cad2e127 Mon Sep 17 00:00:00 2001 From: doctorpangloss <@hiddenswitch.com> Date: Mon, 13 May 2024 15:03:34 -0700 Subject: [PATCH] OpenAPI ImageRequestParameter node uses a Chrome user-agent to facilitate external URLs better --- comfy/model_downloader.py | 3 +++ comfy_extras/nodes/nodes_open_api.py | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/comfy/model_downloader.py b/comfy/model_downloader.py index 49d19924c..bd57e709f 100644 --- a/comfy/model_downloader.py +++ b/comfy/model_downloader.py @@ -271,6 +271,9 @@ KNOWN_CONTROLNETS = [ HuggingFile("lllyasviel/sd_control_collection", "thibaud_xl_openpose.safetensors"), HuggingFile("lllyasviel/sd_control_collection", "thibaud_xl_openpose_256lora.safetensors"), HuggingFile("jschoormans/controlnet-densepose-sdxl", "diffusion_pytorch_model.safetensors", save_with_filename="controlnet-densepose-sdxl.safetensors", convert_to_16_bit=True, size=2502139104), + HuggingFile("stabilityai/stable-cascade", "controlnet/canny.safetensors", save_with_filename="stable_cascade_canny.safetensors"), + HuggingFile("stabilityai/stable-cascade", "controlnet/inpainting.safetensors", save_with_filename="stable_cascade_inpainting.safetensors"), + HuggingFile("stabilityai/stable-cascade", "controlnet/super_resolution.safetensors", save_with_filename="stable_cascade_super_resolution.safetensors"), ] KNOWN_DIFF_CONTROLNETS = [ diff --git a/comfy_extras/nodes/nodes_open_api.py b/comfy_extras/nodes/nodes_open_api.py index 572b4b09c..bf4f8e6c6 100644 --- a/comfy_extras/nodes/nodes_open_api.py +++ b/comfy_extras/nodes/nodes_open_api.py @@ -647,7 +647,17 @@ class ImageRequestParameter(CustomNode): def execute(self, uri: str = "", *args, **kwargs) -> ValidatedNodeResult: output_images = [] - with fsspec.open(uri, mode="rb") as f: + f: OpenFile + kwargs_for_fsspec = {} + if uri.startswith('http'): + kwargs_for_fsspec.update({ + "headers": { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.64 Safari/537.36' + } + }) + # todo: additional security is needed here to prevent users from accessing local paths + # however this generally needs to be done with user accounts on all OSes + with fsspec.open(uri, mode="rb", **kwargs_for_fsspec) as f: # from LoadImage img = Image.open(f) for i in ImageSequence.Iterator(img):