Seed to Noise
Give Custom Samplers a Seed They Can Actually Use
- NOISE
ComfyUI has two worlds. In the friendly world, you drop in a KSampler, type a seed, and it just works. In the advanced world - custom samplers, noise schedules, refiner passes - a seed stops being a number you type and starts being a NOISE object that has to exist before sampling starts. That gap is exactly what Seed to Noise fills: it turns a plain integer seed into a NOISE object you can hand to the nodes that actually want one.
The name is literal. Give it a seed, get a noise. There's no generation happening here - this is plumbing, and it's the good kind.
How it works
The whole node is a thin wrapper around ComfyUI's own Noise_RandomNoise class from comfy_extras.nodes_custom_sampler. Feed it a seed and it constructs a Noise_RandomNoise(seed) instance - the same thing the built-in Random Noise node produces, just with the seed as a simple widget you can wire up.
def generate_noise(self, seed):
noise = Noise_RandomNoise(seed)
return (noise,)
That's the entire implementation. No state, no cache, nothing clever. If you've ever built a workflow with SamplerCustom (or any node that takes a NOISE input instead of a seed widget), you already know what this is for: you can't type a seed into those nodes, so you need something that manufactures the noise object for you.
Inputs and outputs
- seed - an integer, 0 to 2^64−1. It has
control_after_generateturned on, so the widget auto-increments between runs, which is handy for looping seeds through a custom-sampler graph without touching the value every time. - NOISE - the output. It only wires into inputs typed
NOISE, which in practice means the custom-sampler family of nodes. This is the #1 place people get confused: you can't drag this into a KSampler's seed slot. Wrong type, wrong wire.
One genuinely nice pattern: because the seed is just a value flowing through your graph, you can split it - send the same seed to this node and to a text-processing or metadata node, so everything downstream is keyed off one number.
Install
It ships with the geocine-comfyui pack, which is small and dependency-light (no model downloads, the only pip requirement is openai, and you only need that for the LLM node). Install it once and you get all eleven nodes:
- ComfyUI Manager → search geocine-comfyui → install → restart ComfyUI
- or Comfy CLI:
comfy node install geocine-comfyui - or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/geocine/geocine-comfyui
then restart ComfyUI.
Common issues
"It won't connect to anything." Check that the target actually takes NOISE. If you're in a standard KSampler workflow, you don't need this node at all - you already have a seed box. This exists for the custom-sampler detour, and only there.
"Different seeds, same output." That's not this node's fault. Noise_RandomNoise generates standard Gaussian noise keyed to the seed; if your sampler or scheduler is collapsing everything to the same result, the usual suspects apply (step count, CFG, sampler choice - see the concepts rundown in the knowledge base). The node is doing its one job. If anything, run it next to the pack's Turbo Seed Variance node, which attacks the other end of the "all seeds look alike" problem - the conditioning - for distilled models.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| NOISE | NOISE | — |