diff --git a/LoadImageFromHttpURL.py b/LoadImageFromHttpURL.py index c3269e6..f327c0f 100644 --- a/LoadImageFromHttpURL.py +++ b/LoadImageFromHttpURL.py @@ -21,9 +21,10 @@ class LoadImageFromHttpURL: def load_image(self, image_url: str): try: - response = requests.get(image_url) + response = requests.get(image_url, stream=True) response.raise_for_status() - image = Image.open(io.BytesIO(response.content)).convert("RGB") + + image = Image.open(response.raw).convert("RGB") image_np = np.array(image).astype(np.float32) / 255.0 image_tensor = torch.from_numpy(image_np).unsqueeze(0) @@ -31,4 +32,6 @@ class LoadImageFromHttpURL: return (image_tensor,) except Exception as e: print(f"Failed to load image from URL: {e}") - return (torch.zeros(1, 512, 512, 3),) # fallback black image + # Return a black image if loading fails + return (torch.zeros(1, 512, 512, 3),) + diff --git a/README.md b/README.md index 69c4aac..85348a4 100644 --- a/README.md +++ b/README.md @@ -1 +1,110 @@ -# ComfyUI_LoadImageFromHttpURL \ No newline at end of file +# ComfyUI_LoadImageFromHttpURL +### ๐Ÿงฉ Load Image from HTTP URL โ€“ Custom Node for ComfyUI +By @jerrywap +[![GitHub stars](https://img.shields.io/github/stars/jerrywap/ComfyUI_LoadImageFromHttpURL?style=social)](https://github.com/jerrywap/ComfyUI_LoadImageFromHttpURL/stargazers) + + +![ComfyUI Node](screenshot.png) + +--- + +## ๐Ÿ” Description + +**Load Image from HTTP URL** is a lightweight but powerful custom node for ComfyUI that allows you to **fetch images directly from a remote URL** and use them in your workflows without manual uploads or preprocessing. + +Instead of uploading an image file manually, you can pass a publicly accessible image URL โ€” and the node will handle downloading, decoding, and converting it into an image tensor compatible with ComfyUI. + +This is especially useful when you're: +- โš™๏ธ Building **ComfyUI as an API service** +- ๐Ÿ“ก Receiving image URLs from client apps, webhooks, or JSON payloads +- ๐ŸŒ Working with **dynamic content** from external APIs or cloud storage + +By skipping the file transfer step, you reduce friction, improve performance, and make your workflows more automation-friendly. + + +--- + +## โœจ Features + +- ๐Ÿ“ก Downloads an image from an HTTP/HTTPS URL +- ๐Ÿ“ท Converts it to a proper image tensor (`IMAGE`) for ComfyUI +- ๐Ÿงผ Includes graceful fallback (returns a blank black image on error) +- โœ… Supports JPEG, PNG, WebP, etc. (any format supported by Pillow) + +--- + +## ๐Ÿงฉ Node Info + +- **Name:** `Load Image from HTTP URL` +- **Class:** `LoadImageFromHttpURL` +- **Category:** `jerrywap/loaders` +- **Input:** + - `image_url` (STRING): Image address (e.g. https://placehold.co/400) +- **Output:** + - `IMAGE`: ComfyUI image tensor + +--- + + +## ๐Ÿ”ง Installation + +1. Clone this repo into your `ComfyUI/custom_nodes` directory: + +``` +cd /workspace/ComfyUI/custom_nodes +git clone https://github.com/yourusername/ComfyUI_LoadImageFromHttpURL.git +cd ComfyUI_LoadImageFromHttpURL +``` + +2. Install dependencies: + +This node requires the following Python packages: + +- `requests` +- `Pillow` +- `numpy` +- `torch` + +If you're not sure whether you have them installed, you can simply run: + +``` +bash install.sh +``` + +Or, alternatively: + +``` +pip install -r requirements.txt +``` + +> โœ… **Note:** If you already have these packages installed (e.g., through your ComfyUI or Python environment), you **do not need to run** the installation steps. + +3. Restart ComfyUI or click the **Reload Custom Nodes** button in the UI (if available). + +--- + +## ๐Ÿ“ค Example Usage + +Use this node to pull images from: +- Web apps or APIs +- Unsplash/image hosting services +- Placeholder tools + +Example input: +``` +https://placehold.co/400 +``` + +--- + +## ๐Ÿง‘โ€๐Ÿ’ป Contributing + +Contributions welcome! Submit a PR or open an issue if youโ€™d like to improve this. + +--- + +## ๐Ÿ“„ License + +MIT License โ€” free to use, modify, and distribute. + +[![GitHub stars](https://img.shields.io/github/stars/jerrywap/ComfyUI_LoadImageFromHttpURL?style=social)](https://github.com/jerrywap/ComfyUI_LoadImageFromHttpURL/stargazers) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f4fa8f7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +requests +Pillow +numpy +torch +opencv-python \ No newline at end of file diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000..6c6cb1d Binary files /dev/null and b/screenshot.png differ