Remote Conditioning
Turn a smuggled string back into real conditioning
- CONDITIONING
Two separate ComfyUI processes don't share memory, so you can't just wire a CONDITIONING socket from one instance's graph into another's - there's no cable long enough. NetDist_Plus works around that by turning conditioning into a plain string on one side and turning it back into real conditioning on the other. This node is the "turn it back" half.
Why this exists
The pack's headline use case, spelled out in its own README, is running your text encoding on a second GPU: T5 and CLIP-L do their work on a remote or secondary instance, while your primary GPU stays free to focus on UNet and VAE. That only pays off if the conditioning those encoders produce can actually make it back to the machine doing the sampling. ConditioningToBase64-Nux flattens the conditioning into a string on the remote side; FetchRemoteWithExtras-Nux can carry that string back automatically as part of collecting a remote job. Either way, once you have a base64_conditioning string sitting on your primary instance, this node is what turns it into an actual CONDITIONING type your KSampler can use.
Inputs and outputs
One input: base64_conditioning, a multiline string field. In practice you'll almost always wire this from an upstream output - FetchRemoteWithExtras-Nux's P_conditioning_base64 or N_conditioning_base64, or ExtractBase64FromImage(Upload)-Nux if you're pulling it back out of a saved file - rather than typing it in by hand. Nothing stops you from pasting a saved string in directly if you want to freeze a specific conditioning and reuse it across runs, though.
One output: CONDITIONING. Wire it straight into your positive or negative slot on a KSampler like you would any other conditioning.
Installing it
Search ComfyUI_NetDist_Plus in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/nux1111/ComfyUI_NetDist_Plus
pip install requests
Restart ComfyUI. No models to download for this node specifically - it's pure deserialization.
Where people get burned
The string has to be complete and untouched. If it's been hand-edited, truncated, or passed through something that wraps or reflows long lines of text (a chat app, some text editors), deserialization will fail or produce garbage conditioning. Wire it directly rather than copy-pasting through an intermediate tool.
The other trap is a mismatch that this node has no way of catching: the shape of a conditioning tensor depends on which text encoder produced it. Conditioning encoded by T5+CLIP-L on the remote side needs to land on a sampler expecting exactly that shape on the receiving side. This node just deserializes whatever bytes you give it - it doesn't validate that the model on the other end actually matches, so if you get a shape-mismatch error out of your KSampler, check that both instances are running compatible model families before assuming this node is broken.
Worth saying plainly: this is a fairly niche pack, built and maintained by one person for a specific multi-GPU workflow, and its own author describes himself as "a primitive coder" figuring things out as he goes. It does what it says for the case it was built for - splitting text encoding off onto a second card - but don't expect it to gracefully handle much outside that lane.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| base64_conditioning | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |