RTX Remix Set Texture
Assign the texture you just generated to a material slot
- context
- context
Generating a texture is one thing; getting it onto the asset is the other half. RTX Remix Set Texture is the node that completes the loop: it takes a texture file path and points a USD material attribute at it, in the currently open project. It's the write side of the pack's texture story, and it's what makes your AI output matter to the game being remastered.
The mechanism is a PUT /stagecraft/textures call with a [usd_attribute, texture_path] pair. Two strings in, one decision made: this material input now uses this file. That's the whole job, and its placement in the pipeline is the interesting part.
Inputs:
usd_attribute(STRING) - the material slot you're filling, as a USD attribute path. This is the handle, and it's the one that trips people up.texture_path(STRING) - the file to assign. Typically thetexture_pathoutput fromRTX Remix Ingest Texture(a DDS the Toolkit actually ingested) or a path you've saved yourself.force(BOOLEAN, optional) - defaultfalse. Flip it on to overwrite an existing assignment without complaint.context(RTXRemixContext) andenable_this_node(BOOLEAN) - the standard plumbing.
Output: context, passed through. No data output - this node's effect is in the Toolkit, not in ComfyUI.
Where does usd_attribute come from? The cleanest source is RTX Remix Get Textures, which outputs usd_attributes for every texture it finds. Read first, modify, then set the same attribute to the new path. That read-modify-write loop is the backbone of any upscale-and-replace workflow: Get Textures → upscale/PBR in ComfyUI → Ingest Texture → Set Texture on the matching attribute.
Install: part of NVIDIAGameWorks/ComfyUI-RTX-Remix, NVIDIA's official pack. ComfyUI Manager (search "RTX Remix") or:
cd ComfyUI/custom_nodes
git clone https://github.com/NVIDIAGameWorks/ComfyUI-RTX-Remix
# restart ComfyUI
Needs ComfyUI v0.3.48+ (V3 schema) and a running Toolkit with a project open - a live API call.
Where people get burned: the usd_attribute. It's not a filename and not a layer ID - it's the attribute path on the material, and a wrong or stale one fails or silently points nowhere. Pull it from Get Textures rather than guessing. Also, without force, setting a slot that already has a texture can error - if you're replacing in a loop, expect to flip force on. And the golden rule: set the ingested path (the DDS), not your raw PNG, or the Toolkit will happily accept a path to a file that isn't a real game texture.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| usd_attribute | STRING | — | |
| texture_path | STRING | — | |
| context | RTXRemixContext | — | |
| enable_this_node | BOOLEAN | true | — |
| forceopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| context | RTXRemixContext | — |