Three Texture URL
Grab a texture straight from the internet
- texture
Sometimes the texture you want is already on the internet - a CC0 wood from a texture library, a material from a CDN - and downloading it, dropping it into ComfyUI, and loading it feels like three steps too many. WASThreeTextureURL skips all of them: you give it a URL and it fetches the image directly into the scene as a THREE_TEXTURE. No download folder, no file loader, no API key. It's the lazy-but-legit sibling of Three Texture From Image.
How it works
The url input takes a web address - https://example.com/wood.jpg - or a data:image/png;base64,... string. The pack's texture-from-image node reads a ComfyUI IMAGE off the graph; this one reads the picture off the web, which is a genuinely different data path and the reason it exists. If you have a texture already in the graph, use Three Texture From Image; if it lives at a URL, this is the one.
One thing to internalize about the mechanism: the fetch happens in your browser, not on your server. The whole Three family renders browser-side, and this node is consistent with that - the image is fetched by the frontend. So the URL has to be reachable from your browser, and a local file path won't work the way it does on a server. A data: URI is the trick for getting a local picture in without hosting it: it's the URL form of "here is the whole image, inline."
The inputs that matter
The controls mirror Three Texture From Image, plus one extra:
- color_space - the same rule:
srgbfor a color map like albedo,linear-srgbfor data maps like normal, roughness, metalness or alpha. Get this wrong on a normal map and the shading breaks in ways that are hard to blame on anything else. - wrap_s / wrap_t -
clampstretches the edge pixel,repeattiles. For a tiling texture library download, set both to repeat. - repeat_x / repeat_y - how many times it tiles across and down.
- offset_x / offset_y / rotation - placement;
rotationis the extra this node has over its image sibling, turning the texture on the surface in degrees (45.0 tilts it). - flip_y - leave at true unless the texture looks upside down.
- anisotropy - sharpness at grazing angles; 16 keeps a floor crisp into the distance.
Where it fits
Same landing zone as any texture: straight into the map (or normal_map, roughness_map…) socket of a Three Standard Material or Three Physical Material, on a Three Plane Geometry or any mesh with UVs. Wire two instances for albedo plus normal - one srgb, one linear-srgb - and a single downloaded material set textures a whole object.
Install
WASThreeTextureURL ships with WAS Node Suite v3. Install via ComfyUI Manager (search WAS Node Suite v3) or:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git
Restart after. Requires ComfyUI 0.14.0+ and Python 3.10+. Missing from Add Node? The Three family is gated by features.threejs in <ComfyUI user dir>/was-node-suite/config.yaml - on by default in current releases - so check that key and restart.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | Where to fetch from, as `https://example.com/wood.jpg` or a `data:image/png;base64,` string. | |
| color_space | COMBO | srgb | 'srgb' for a colour map such as albedo; 'linear-srgb' for normal, roughness, metalness or alpha. |
| wrap_s | COMBO | clamp | What happens past the horizontal edge. 'clamp' stretches the edge pixel, 'repeat' tiles. |
| wrap_t | COMBO | clamp | What happens past the vertical edge. 'clamp' stretches the edge pixel, 'repeat' tiles. |
| repeat_x | FLOAT | 1.00-1024–1024 | How many times it tiles across. 1.0 fits once, 4.0 tiles four times. |
| repeat_y | FLOAT | 1.00-1024–1024 | How many times it tiles down. 1.0 fits once, 4.0 tiles four times. |
| offset_x | FLOAT | 0.00-1024–1024 | Slide across, in tiles. 0.5 moves it half a tile sideways. |
| offset_y | FLOAT | 0.00-1024–1024 | Slide down, in tiles. 0.5 moves it half a tile vertically. |
| rotation | FLOAT | 0.0-360–360 | Turn the texture on the surface, in degrees. 0.0 leaves it square, 45.0 tilts it. |
| flip_y | BOOLEAN | true | `true` matches how image files are stored against how UVs are read; `false` turns it upside down. |
| anisotropy | INT | 11–64 | Sharpness at a grazing angle. 1 is off, 16 keeps a floor crisp into the distance. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| texture | THREE_TEXTURE | The texture, for any map socket on a Three material node. |