RTX Remix Texture Type To USD Attribute
Let the toolkit do the USD guesswork
- context
- context
- usd_attribute
The most USD-flavored node in this pack, and the one that earns its complexity. The question it answers: "I've got the diffuse texture attribute on an asset - what's the matching attribute for roughness (or normal, height, metallic) on that same asset?" In the RTX Remix Toolkit, textures live on material inputs in a USD stage, and the exact attribute names vary. This node asks the running toolkit to resolve the sibling attribute for you instead of hardcoding a naming convention into your workflow. Naming conventions rot; a live lookup doesn't.
Where this fits
The pack is NVIDIA GameWorks' bridge between ComfyUI and the RTX Remix Toolkit, the tool for remastering old DirectX 8/9 games with path tracing. This node is part of the REST API texture set (RTX Remix > REST API > textures), the advanced mode where ComfyUI drives the toolkit. You'll use it in the middle of a texture pipeline: pull an existing attribute out of RTX Remix Get Textures, resolve its sibling for another map type here, then feed the result to RTX Remix Set Texture (which wants a usd_attribute + texture_path pair per texture).
What it actually does
When enabled, it makes a GET request to http://{address}:{port}/stagecraft/textures/{usd_attribute}/material/inputs with your texture_type as a query parameter. The toolkit replies with prim_paths; the node returns the first one. If the toolkit finds nothing, you get a loud ValueError - "Can't get texture type using the USD attribute X and texture type Y" - not a silent empty result. Disable enable_this_node and it returns an empty string, skipping the network entirely.
The workflow intuition: say Get Textures hands you the albedo attribute path on an asset. You want to set a roughness map on the same material, but you don't know the exact attribute name the toolkit uses for roughness there. Feed the albedo path as usd_attribute and ROUGHNESS as texture_type, and this node asks the toolkit, on that very asset, what the roughness input is. That's the difference between this and just typing a name - it's resolved against the real stage, so it stays correct even when the underlying asset changes.
Inputs and outputs
usd_attribute(STRING) - the attribute/path you already know, typically fromGet Textures.texture_type(STRING) - the map type you want the sibling attribute for (ROUGHNESS,NORMAL_OGL,HEIGHT, ...). The toolkit only matches what the material actually exposes.context(RTXRemixContext) - required; address/port fromRTX Remix Start ContextorRest API Details.enable_this_node(BOOLEAN, default true) - off means context + empty string, no call.contextandusd_attribute(STRING) - the resolved attribute, ready forSet Texture.
Installing the pack
ComfyUI Manager: search "RTX Remix" (or comfyui-rtx_remix), Install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/NVIDIAGameWorks/ComfyUI-RTX-Remix
cd ComfyUI-RTX-Remix
./install.sh # install.bat on Windows
Restart. Requires ComfyUI v0.3.48+ (V3 node schema). Dependencies: huggingface-hub, numpy, OpenEXR, pillow, pinned pydantic, requests, torch.
Where people get burned
This is not a node you reach for in the integration mode, and it's not a node that works with the toolkit closed - it makes a real HTTP call, so the toolkit must be running with a project in the correct state. The ValueError almost always means one of two things: the usd_attribute you fed in doesn't actually exist on the stage (grab it from Get Textures, don't hand-type it), or the material simply has no input of that texture_type (some assets just don't define a height map). And remember the REST execution rule: the context wire has to thread from Start Context through this node to an End Context, or nothing here ever runs. The README also flags the toolkit integration as work in progress - for a workflow this USD-heavy, expect to babysit it on first run.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| usd_attribute | STRING | — | |
| texture_type | STRING | — | |
| context | RTXRemixContext | — | |
| enable_this_node | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| context | RTXRemixContext | — |
| usd_attribute | STRING | — |