Noise Reuse Validation (Internal)
The node that exists purely to fail loudly
- latent
A node whose entire job is to throw an exception. That sounds like a joke until you've spent an afternoon convinced your hires pass is reusing noise when it isn't. This is the guardrail that makes that failure impossible: if the pack can't prove the provenance behind a noise-reuse request, it puts this node where the latent should be, and your queue stops with a message that tells you what to fix.
What it does
One input, message - the actionable source-graph validation error, generated by the pack's own planner. The output is a LATENT, which is not a joke either: that socket exists so the node can occupy a latent input and be type-valid while it raises at execution. Fail closed, rather than substituting fresh noise or silently encoding pixels.
When you switch on Noise Reuse Options for a receiving sampler, the pack traces backward from that sampler's latent to find the source run. If the trace fails - unsupported node in the path, a crop left enabled inside a latent upscale, a cycle, a broken image-to-latent provenance bridge, or a source that just isn't a sampler - the rewrite swaps the receiving sampler's latent input for this node. The error then surfaces as an ordinary ComfyUI execution error on that node, which is deliberate: failures raised during prompt handling are easy to swallow, and an error you can't read is worse than no feature at all.
Inputs and outputs
- message - the planner's validation error text.
- latent - a placeholder socket; nothing ever comes out the other side.
Install
Nothing separate - it ships with SimpleSyrup and only ever appears in a graph the pack rewrote.
cd ComfyUI/custom_nodes
git clone https://github.com/Artificial-Sweetener/SimpleSyrup.git
cd SimpleSyrup
../../venv/bin/python -m pip install -r requirements.txt
Manager users can search the Node Pack list for SimpleSyrup instead. Restart ComfyUI when it's done, and be on a current release of ComfyUI - the whole pack leans on the v3 extension API.
Reading the error, honestly
The messages are unusually specific for ComfyUI custom nodes, and each one points at a different fix:
"Noise Reuse Options on receiving sampler ... cannot reach a usable source sampler." The receiver's latent doesn't trace back to a sampler. Usually the latent came from a place the tracer has no business trusting - a merge, a batch trick, another pack's node - rather than from a real sampling run.
"Noise reuse cannot resolve latent provenance through ..." followed by a node name is the most common one. The chain has an unsupported hop. Break out into a graph the tracer understands: sampler → (latent upscale / Latent From Image) → receiver.
"Noise reuse requires latent upscaling with crop disabled." LatentUpscale with a crop silently changes what the latent is, so reuse can't safely follow it. Turn crop off, or do the crop differently.
"The original sampling run did not save noise for the requested level ... Queue the connected workflow again with Noise Reuse Options enabled." Not a wiring bug. The source sampler's output was cached from a run that captured a different noise level, so queue again and it will save the level you now need. Disable/enable or touch the receiving sampler's steps and that's normal.
"Noise reuse source and receiving model use different latent formats." You're trying to reuse SDXL noise in a Flux pass or similar. Reuse is one model family at a time.
Two more useful properties: because this node is named and typed like everything else, it survives in saved workflows, and because it's injected only when planning fails, its presence in a graph is a reliable signal that a specific reuse request was rejected. Nothing about it is silent, which is the entire design brief.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| message | STRING | Actionable source graph validation error. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | Validation must succeed before sampling. |