GodnessMerger_InputBlocks
Set, or randomize, one block group's merge ratio
- GM_INPUT_BLOCKS
This is a companion config node for GodnessMerger_Apply - it doesn't merge anything by itself, it just decides the merge ratio for one specific part of a UNet: the input_blocks group. Wire its output into GodnessMerger_Apply's input_blocks slot and that block group stops following the merge's global strength and starts following whatever this node produces instead.
How it works
This is where the "controlled randomization" from the README actually happens. type picks between two modes: custom uses a fixed value you set directly (custom_value, 0–1), while random rolls a value somewhere inside your min/max bounds (also 0–1), using seed to make that roll deterministic. That last part is the whole point - a random ratio you can't reproduce is just noise, but a random ratio pinned to a seed means you can roll a batch of merges, pick the one you like, and get back to that exact input_blocks ratio later just by reusing the same seed.
The inputs and outputs that matter
type-customorrandom. This decides which of the other fields actually matter.custom_value(0–1, default 1) - used only whentypeiscustom.min/max(0–1) - the bounds for the random roll, used only whentypeisrandom.seed- makes the random roll reproducible.- Output:
GM_INPUT_BLOCKS- a single-purpose custom type that only wires intoGodnessMerger_Apply'sinput_blocksinput.
input_blocks is one of six block groups a full UNet merge cares about - alongside time_embed, label_emb, middle_block, output_blocks, and out. This node only controls the one. If you want independent control over every part of the network, you'd wire up a version of this node (or its Experimental sibling) for each group; if input_blocks is the only piece you want to treat specially, this is the only extra node you need.
How to install it
Through ComfyUI Manager: search "SP-Nodes," install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
Restart ComfyUI afterward.
Common issues
The easiest mistake here is setting the wrong fields for the type you've actually chosen - type: custom silently ignores min, max, and seed, and type: random silently ignores custom_value. There's no error for having the "wrong" fields populated, it just quietly does nothing with them, so if changing a value doesn't seem to affect your merge at all, check that type actually matches which fields you're trying to use before assuming something's broken.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| min | FLOAT | 0.00–1 | — |
| max | FLOAT | 1.00–1 | — |
| type | COMBO | 2 options: custom, random | |
| custom_value | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| GM_INPUT_BLOCKS | GM_INPUT_BLOCKS | — |