Nodes/Allma Nodes/Allma RandomNoise
ComfyUI Node

Allma RandomNoise

The subgraph seed that finally advances

By OliveiraNickolas·Created 2 months ago·Updated 20 days ago· 1
Allma RandomNoise
    • NOISE
    ◄noise_seed0►
    ◄control_after_generaterandomize►

    You tidied your workflow into a subgraph, queued ten times, and got ten identical pictures. The seed dropdown says randomize. It is lying to you.

    That's the specific, reproducible pain this node exists for, and it isn't your fault: the built-in RandomNoise has a structural problem with subgraphs, and the fix is a different node rather than a different setting.

    Why the stock node breaks inside a subgraph

    On ComfyUI's built-in RandomNoise, control_after_generate isn't an input. It's an attached decoration on the noise_seed widget - a canvas-only thing the frontend draws, not something the node declares in its schema. Subgraph promotion only offers you the inputs a node actually declares, so that dropdown simply isn't in the list. You can promote the seed number out, but not the behaviour attached to it, and the inner node keeps handing back the same value run after run.

    You can see the shape of the complaint in the wild: people wrapping Flux-era example workflows discover the seed never moves, and the working advice that floats around is "unplug the seed that comes in from the main graph" or "keep the RandomNoise node outside the subgraph." Both are workarounds for a missing input.

    What this node does differently

    AllmaRandomNoise splits the two things apart into two real, declared inputs:

    • noise_seed - INT, default 0, range up to 18446744073709551615 (that's 2⁶⁴−1, the same 64-bit space the core node uses).
    • control_after_generate - a COMBO with randomize, fixed, increment, decrement, defaulting to randomize. Declared as a schema input rather than a widget decoration, so both promote cleanly to the containing subgraph node - including the dropdown that never used to make it out.

    One output: NOISE, same type as ever, into the noise input of SamplerCustomAdvanced / KSampler (Custom) and friends. Mechanically it's the same noise the core node makes - a Noise object wrapping comfy.sample.prepare_noise with your seed and the latent's batch index. Nothing exotic happens to your pixels.

    The part worth knowing: it steps in the browser

    Here's the detail that explains most "it still doesn't move" reports. The seed arithmetic isn't done on the server. The pack ships a small frontend extension (web/allma_random_noise.js) that hooks the queue action, and at queue time it steps the seed according to your dropdown - randomize, increment, decrement, or leave it alone for fixed - writing the new value both to the node's own widget and to the promoted widget on the parent subgraph node. That last bit is the whole point: it follows the promotion back out, so the number you see on the collapsed subgraph advances with the one inside.

    Two consequences. First, the advance happens before the run is queued, which means the number left sitting in the box is the one that made the image you're looking at - the opposite of the classic ComfyUI trap where the seed you just loved was silently overwritten at the end of the run. Second, the extension has to actually be loaded. If a stale browser cache is serving an old bundle, the seed sits still and the Python node can do nothing about it. Hard-refresh (Ctrl+Shift+R) before you file a bug.

    Install

    Manager → search Allma Nodes, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/OliveiraNickolas/AllmaNodes
    

    Restart, then hard-refresh the browser. No pip installs: requirements.txt is empty, pyproject.toml lists no dependencies, and the Python side only imports comfy.sample and the V3 comfy_api API. That V3 API matters - the pack registers through comfy_entrypoint and uses from comfy_api.latest import io, so on an old ComfyUI build the entire pack fails to import and no Allma node appears.

    One oddity worth saying out loud: this node isn't in the pack's README table yet. The README describes eight nodes; the code registers sixteen. If you read the docs and concluded the node doesn't exist, you're reading a README that lags the source.

    Where people get burned

    Still the same image every run. Check which node is inside the subgraph. Leaving a stock RandomNoise in there and adding this one elsewhere is an easy mistake - the fix only works if the node in the subgraph is this one.

    fixed is fixed. If the dropdown on the collapsed subgraph reads fixed, nothing will step, and that's correct behaviour, not a bug. The global "widget control mode" server setting doesn't govern this node either - the extension handles stepping from the node's own dropdown, so don't go hunting in settings for it.

    Batch behaviour is a batch. One step happens per queue, so a multi-image batch shares the seed.

    CategoryAllma/sampling

    Inputs (2)

    NameTypeDefaultDescription
    noise_seedINT00–18446744073709550000The random seed used for creating the noise.
    control_after_generateCOMBOrandomizeControl behavior after each generation: randomize, fixed, increment, or decrement. Promotable to Subgraphs.

    Outputs (1)

    NameTypeDescription
    NOISENOISE—