Load Image (as Mask) From URL
Fetch a hosted image and use it as a mask directly
- masks
This is LoadImageFromUrl and ImageExtractChannel fused into one step, for the case where a mask is literally all you need. Instead of fetching an image and then extracting a channel from it as a separate node, this one fetches from a URL (or base64) and hands you a MASK directly - one channel of that image, picked at load time. It's the node for API-driven or headless workflows where a mask lives somewhere hosted rather than on your local disk: a hand-painted alpha PNG, a mask generated by another service, a cutout someone else already produced.
How it works
It reads the image field line by line, fetches each URL (or decodes each base64 blob) the same way LoadImageFromUrl does, then pulls out a single channel - the one you specify - and returns it as a mask instead of a full IMAGE. Multiple lines produce multiple masks.
The inputs and outputs that matter
Required:
image- a multiline string of URLs or base64 data, one per line, same convention asLoadImageFromUrl.channel- which channel to read as the mask:alpha,red,green, orblue.alphais the standard pick if the source image already carries real transparency; the color channels are for the case where the mask data is encoded into a specific color channel of an otherwise-opaque image instead.
Optional:
output_mode- list vs. batch, same idea asLoadImageFromUrl's equivalent field: use list mode if the fetched masks have different resolutions, since batching requires matching dimensions.
Output: masks, a MASK list - wire straight into inpainting, compositing, or anything else that takes a mask.
How to install it
Ships with the Art Venture pack. ComfyUI Manager: search comfyui-art-venture, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/sipherxyz/comfyui-art-venture
then pip install -r comfyui-art-venture/requirements.txt and restart. No model download.
Common issues & troubleshooting
Mask comes back blank or solid white. You picked alpha on a source image that has no real transparency - most JPEGs and plenty of PNGs are opaque throughout. If your hosted image doesn't actually carry alpha, pick whichever color channel the mask data was actually encoded into, or fix the source to export real transparency.
URL fetch fails. Same causes as LoadImageFromUrl: the link isn't a direct image file (a webpage that displays an image isn't the image itself), the host blocks non-browser requests, or outbound network is restricted in your environment.
Batch of masks errors on different sizes. Switch output_mode to list - batching multiple masks into one tensor requires them to share dimensions, same constraint as the image-loading version.
Should've used LoadImageFromUrl + ImageExtractChannel instead. Only if you also need the image itself, not just its mask - that two-node combination gives you both an IMAGE and a MASK from the same fetch. If a mask is genuinely all you need, this single node saves a step.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | STRING | — | |
| channel | COMBO | 4 options: alpha, red, green, blue | |
| output_modeopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| masks | MASK | — |