Nodes/h4_Live/h4 - Varianator
ComfyUI Node

h4 - Varianator

H4's variation batch generator

By m3rr·Created 9 months ago·Updated 10 days ago· 1
h4 - Varianator
  • model
  • clip
  • vae
  • latent_in
  • positive_in
  • negative_in
  • variations
  • latent_batch
  • summary
variation_count4
variation_profilemoderate
seed_modeincrement
base_seed123456789
sampler_nameeuler
scheduler_namesimple
steps18
cfg7.0
denoise1.00

You've got a prompt, a model, and an image you like. Now you want six subtly different remixes to pick from, without running the sampler six times by hand. H4_Varianator is that: one node that takes your model, conditioning, and a latent, then samples a batch of variations in a single run - different seeds, different denoise "riffs" per variation - and hands you all the results as one batched image plus the latents.

The README calls it "The Remix Node," and that's exactly the use case. Pick a base generation you're happy with, feed it back in, and let the Varianator explore around it.

How it works

It's a KSampler wrapped in a loop. For each of the variation_count passes it:

  1. Picks a seed according to seed_mode (fixed, increment, random).
  2. Picks a per-variation denoise within the range for your chosen variation_profile (minimal, moderate, major) - that range is the "riff" amount, so minimal keeps remixes subtle and major lets them drift a lot.
  3. Calls the stock ComfyUI KSampler with your sampler, scheduler, steps, and CFG, then decodes the result through your VAE.
  4. Collects everything, concatenates the images into one batch, and concatenates the latents too.

You get a summary string listing each variation's seed and denoise, which is the part people actually like - it's the difference between "I made six images" and "I know exactly what changed to make each one."

The inputs that matter

  • variation_count (int, default 4, max 16) - how many remixes.
  • variation_profile (enum: minimal / moderate / major) - how different they should be.
  • seed_mode (enum: fixed / increment / random) - seed strategy across the batch. fixed with increment off gives you one seed, which is mostly useful for testing.
  • base_seed (int) - the anchor seed for the fixed/increment modes.
  • sampler_name, scheduler_name, steps (default 18), cfg (default 7) - the standard sampler settings, same choices as a KSampler.
  • denoise (float, default 1.0) - img2img strength; 1.0 is a fresh image, 0.5 a 50% remix.

Optional: model, clip, vae, latent_in, positive_in, negative_in. Note it's strict - it requires model, vae, latent, and both conditionings and raises a clear error if any are missing.

Outputs: variations (IMAGE, batched), latent_batch (LATENT, batched), summary (STRING).

Installing h4_Live

Part of the h4_Live pack. ComfyUI Manager: search h4_Live, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/m3rr/h4_Live

Restart. No model files, no pip extras.

Common issues

  • It's a KSampler, so it samples. If you set variation_count to 16 on a big model at high steps, that's 16 full sampling runs in one queue. The node does exactly what you asked; be sensible about steps and count.
  • Clip is accepted but not required. The schema lists clip as optional, and the sampler only needs model + conditioning + latent + vae. Feed the conditionings in from a standard CLIPTextEncode like you normally would.
  • No per-variation prompt changes. Every variation uses the same positive/negative conditioning - the differences come from seeds and denoise, not text. If you want prompt-variation, that's H4_Switcheroo's job.
  • Watch the shared-state context. This is a generation node, not a logic node, so it doesn't touch the loop counter directly - but if it's wired into an h4 loop graph, the usual single-global-counter rules for the rest of the pack still apply.
Categoryh4_Live/Generation

Inputs (15)

NameTypeDefaultDescription
variation_countINT41–16How many remix versions do you want?
variation_profileCOMBOmoderateHow different should they be? Minimal = subtle, Major = big changes.
seed_modeCOMBOincrementControl the randomness of the remixes.
base_seedINT1234567890–9223372036854776000The starting random seed.
sampler_nameCOMBOeulerThe logic used to draw the variations.
scheduler_nameCOMBOsimpleControls the noise removal steps.
stepsINT181–150Number of quality passes.
cfgFLOAT7.01–30Creativity strength.
denoiseFLOAT1.000–1Img2Img Strength. 1.0 = New Image, 0.5 = 50% remix.
modeloptMODEL
clipoptCLIP
vaeoptVAE
latent_inoptLATENT
positive_inoptCONDITIONING
negative_inoptCONDITIONING

Outputs (3)

NameTypeDescription
variationsIMAGE
latent_batchLATENT
summarySTRING