Nodes/ComfyUI-Hyperflow/Apply HyperFlow Advanced (Ablations)
ComfyUI Node

Apply HyperFlow Advanced (Ablations)

The ablation knobs, and why you should leave them alone

By Saganaki22·Created 5 days ago·Updated a day ago· 55
Apply HyperFlow Advanced (Ablations)
  • model
  • model
  • sigmas
hyperflow_file
strength1.00
lora_modebypass
variantauto
download_if_missingfalse
gate-1.00
sigmas
verbosefalse
experimental_curve_refitfalse

Same node, two extra dials

Apply HyperFlow Advanced is the base HyperFlow node with the lid off. Same job - the 8-step HyperFlow adapter (a rank-256 LoRA plus two-time (t, r) conditioning) patched onto MiniMax-H3 between the loader and the sampler - same install, same models/hyperflow/ weights, same two outputs.

The difference is two widgets: gate and sigmas. Both exist so you can reproduce ablations of the released model. With them at their defaults this node does exactly what ApplyHyperFlow does - the code backs that up: gate below zero and an empty sigmas string are passed through as None, meaning "read it from the weights file."

So the honest advice is: if you don't know why you'd change these, use the plain node. The advanced node buys you two ways to break your render and nothing else.

Why the two knobs exist

Recall the blend that gives HyperFlow its two-time conditioning:

t_emb = emb_t(t) + gate * (emb_r(r) - emb_t(t))

Every step is conditioned on the interval it integrates, r = 1 - sigma_next, rather than the point t.

gate is the scalar on that endpoint term. -1 (the default, and the sentinel) means "use the gate stored in the weights file" - the trained value. Any other number overrides it, which is an ablation: 0 collapses the blend to plain single-time conditioning, and pushing it up weights the endpoint embedding harder than the model was ever trained for. Range goes to 2.0 in 0.05 steps. There's no version of this where a random value looks better; it's a probe, not a taste setting.

sigmas is a raw sigma grid as a comma-separated string, and it's the one people get wrong. Four rules, straight from the validator:

  • it must have at least two points,
  • be strictly decreasing,
  • start at or below 1.0,
  • and end at exactly 0.0.

Empty means "use the grid stored in the weights file" - the trained 8-step grid:

1.0, 0.931506, 0.839236, 0.703462, 0.5, 0.296538, 0.160764, 0.068494, 0.0

Nine points, eight Euler steps. Type your own and you're changing the step count or the spacing of the trajectory - again, an ablation. Note that this is the unshifted grid: the node applies the video shift (12) internally before handing you the SIGMAS output, so if you're copying values out of a SamplerCustomAdvanced widget to paste back in here, you're pasting the wrong clock. Commas or spaces both parse; anything non-numeric raises.

One interaction worth knowing

experimental_curve_refit - the pruned-base conditioning fit - is disabled the moment you override gate, strength or sigmas. That's deliberate: the fit is bound to a specific checkpoint and a specific recipe, so any override drops you back to backbone-LoRA-only behaviour. If you're on a pruned base and wondering why the refit quietly did nothing, check these three first.

Inputs and outputs

The shared fields are the same set as the base node: model (chain once - it errors if HyperFlow is already applied), hyperflow_file, strength, lora_mode, variant, download_if_missing and verbose. Same advice applies - strength stays at 1.0, lora_mode stays bypass unless you need the VRAM back, and experimental_curve_refit is the optional widget you may have to reveal with right-click → show optional widgets.

Outputs are model and sigmas. Wire sigmas into SamplerCustomAdvanced's sigma input instead of a scheduler, and sample with Euler. Optional sparse attention on top: sol-attn at start_percent = 0.16, dense_blocks = "0,1", tau = 1.0, sink off, extra_tokens = 0.

Install

ComfyUI Manager → ComfyUI-Hyperflow → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/ComfyUI-Hyperflow

Then place one converted .safetensors in ComfyUI/models/hyperflow/ - the full build (3.67 GiB, the released model) or the pruned one (3.64 GiB, for pruned/curve bases only). Zero pip dependencies; the pack ships nothing beyond torch and ComfyUI itself.

Gotchas

Full build on a pruned base (or the reverse) errors out by design with the filename you should have chosen - that check is automatic, so trust the message. A sigma grid that isn't strictly decreasing or doesn't land on 0.0 is rejected with your list echoed back, which usually means a stray shifted value snuck in. And a stall at "Model Initializing" after a ComfyUI update is worth isolating with --disable-fast-disk, since that status covers the first full sampling step including weight loading and LoRA merging - it doesn't prove a hang.

Same licence caveat as the rest of the pack: the code is Apache-2.0, the weights are a MiniMax-H3 derivative under the H3 Community License, which excludes the US, EU, UK and South Korea.

Categorymodel_patch/video

Inputs (10)

NameTypeDefaultDescription
modelMODELThe MiniMax-H3 diffusion model to patch. Chain once.
hyperflow_fileCOMBOThe ComfyUI-converted HyperFlow weights (models/hyperflow).
strengthFLOAT1.000–2Adapter strength. 1.0 is the released model.
lora_modeCOMBObypassbypass: run-time additive (sharp). merge: folded into the weights (low VRAM, softer on quantized bases).
variantCOMBOautoBuild to fetch when downloading: auto (default) matches the detected base; full = non-pruned base; pruned = backbone-only for pruned/curve bases. Ignored when the file is already on disk.
download_if_missingBOOLEANfalseDownload the chosen variant from drbaph/Hyperflow-Comfyui into models/hyperflow when missing. Requires internet.
gateFLOAT-1.00-1–2Blend of the endpoint embedding. -1 (default) reads the gate from the weights file; any other value overrides it (ablation).
sigmasSTRINGCustom raw sigma grid, comma separated, must start <= 1 and end at exactly 0 (e.g. the 9 default points). Empty = the grid stored in the weights file (the trained 8-step grid). Ablation use only.
verboseBOOLEANfalseLog the applied modules and the per-step (t, r) context.
experimental_curve_refitoptBOOLEANfalseExperimental checkpoint-bound fit; gate/strength/sigma overrides disable the refit and keep backbone-only behavior.

Outputs (2)

NameTypeDescription
modelMODEL
sigmasSIGMAS