Skip to content

Releases: Saganaki22/ComfyUI-Hyperflow

v1.3.2

Choose a tag to compare

@Saganaki22 Saganaki22 released this 14 Oct 17:05

v1.3.2: ComfyUI update compatibility checks

No HyperFlow runtime incompatibility was reproduced against the installed
ComfyUI update. This release adds compatibility tests and documents the results;
it does not change sampling behavior or weights.

Verified

  • 101 tests passed, with no skips or failures. The original 88 tests passed
    before adding the new coverage.
  • Both node classes import, register and expose their expected inputs/outputs.
  • Native CUDA MiniMax-H3 fixtures run with bf16 and INT8/convrot backbone
    weights, in bypass and merge modes.
  • Full-base two-time conditioning, pruned backbone-only conditioning and
    experimental curve-refit routing complete all eight scheduled forwards.
  • Each CUDA case loads, samples, unloads and reloads twice. Outputs match
    bit-for-bit across reloads; the original model attributes are restored.
  • Native token refinement, attention/rotary kernels, MLP activation dispatch,
    output heads, ModelPatcher injections and diffusion-model wrappers are used.

The CUDA fixtures are small synthetic models, not full-size generation runs.
These results do not identify an unreported user traceback, nor validate every
custom loader, attention extension, workflow or memory/offload configuration.

Environment

  • Checked on 2026-10-14 using the ComfyUI venv.
  • ComfyUI: 7bf5df9e38763dbdd94a0f9c939273019025c2bc (2026-10-13), version 0.39.0.
  • GPU: NVIDIA GeForce RTX 5090.
  • PyTorch: 2.10.0+cu130.
  • Comfy Kitchen: 0.2.37.
  • comfy-aimdo: 0.5.6.
  • Full suite: 101 passed, 1 warning in 15.65s.
  • Warning: PyTorch's pynvml deprecation warning; not a test failure.

Run from the node-pack directory:

& C:\Users\drbaph\Documents\ComfyUI\venv\Scripts\python.exe -m pytest tests -q --tb=short

CUDA coverage skips on machines without CUDA. The local 5090 run executed all
12 CUDA cases, covering 192 scheduled model forwards across the reload cycles.

Relevant upstream change

ComfyUI fixed bypass LoRAs being skipped by fused operations
on October 7. The installed October 13 build includes that fix. An intermediate
build before the fix could behave differently; this is a possible explanation,
not a diagnosis of the reports without their logs.

For a failing installation, capture its exact ComfyUI commit, complete traceback,
base/adapter filenames and the [hyperflow] ... applied line. The existing
--disable-fast-disk troubleshooting advice remains a diagnostic for loading
stalls, not a confirmed remedy for an unidentified error.

No replacement adapter or curve-fit download is needed for this test/documentation
release.

v1.3.1

Choose a tag to compare

@Saganaki22 Saganaki22 released this 22 Sep 17:12

Hotfix: curve refit now works with mirror/HF copies of the weights

v1.3.0 bound the experimental curve refit to exact SHA-256 hashes of the fitted files. In practice the adapter file on Hugging Face (and various mirrors) has different bytes than the fitted copy — same weights, different file — so download_if_missing users and manual mirror downloads got curve refit disabled: no fit matches.

v1.3.1 replaces the all-or-nothing check with tiered matching:

  • Exact files → fit applies silently (unchanged)
  • Byte-different copies of the fitted base or adapter (HF downloads, mirrors, repacks — same filename, different bytes) → fit applies best-effort with a one-line console warning. The recipe (strength 1, default gate/sigmas) is always validated from your actual files.
  • Unknown checkpoints / modified MODEL → backbone-only fallback, and the warning now prints the actual file hashes, so support just needs your log — no PowerShell required.
  • A ModelSampling node placed before ApplyHyperFlow is now whitelisted (previously blocked the refit with "requires an unmodified checkpoint"); any other pre-patching node still blocks it.
  • A corrupt fit file no longer blocks the others.

Verified end-to-end against the real checkpoints: all seven scenarios (exact / HF-copy adapter / mirror base / renamed / ModelSampling / foreign prepatch / strength override) behave as intended, and the 88-test suite passes.

If you got the fallback warning on v1.3.0: update to v1.3.1 and re-run — the refit will apply (with a "best-effort" warning if your file bytes differ from the fitted ones).

v1.3.0

Choose a tag to compare

@Saganaki22 Saganaki22 released this 22 Sep 14:53

Experimental: two-time conditioning on pruned bases (curve refit)

Pruned/curve MiniMax-H3 bases have no time_embedder, so HyperFlow's two-time (t, r) conditioning physically couldn't apply — pruned users were stuck with backbone-only LoRA, single-time, off-recipe. This release adds an experimental curve refit that restores most of that signal:

  • A tiny ~34 KB checkpoint-bound fit (bundled for the FL2VA and REF2VA pruned int8 checkpoints) replaces the missing time-conditioning pathway. No extra model weights, no download.
  • Fits are hash-bound to the exact base + adapter + recipe (strength 1, default gate/sigmas). Any mismatch falls back to backbone-only with a console warning — it never silently does the wrong thing.
  • Preserves the v1.2.5 first-step audio endpoint fix: separate fitted rows for video and audio even where both share t = 0.

Measured against the full base (fixed prompt/seed/latents, 768x768, 124 frames, Euler):

Stream Backbone-only + curve refit
FL2VA video (cosine) 0.81 0.88
FL2VA audio 0.98 0.98
REF2VA video 0.87 0.89
REF2VA audio 0.93 0.997

How to enable: set experimental_curve_refit = True on the Apply node (show optional widgets), keep strength = 1.0, no gate/sigma overrides. Recommended: bypass mode + Euler + the node's SIGMAS output. Details and pruned-base settings: README → Pruned / curve bases.

Honest caveats: recovers most — not all — of the missing conditioning (pruning removed both learned time-embedder LoRAs; some residual is irreducible without training). Single prompt/seed validation so far; the full base remains the reference. New pruned checkpoints need their own fit (validation/curve_spike.py). Full analysis: validation/curve_findings.md.

Also in this release

  • README troubleshooting: "Stuck at Model Initializing" after a ComfyUI update (--disable-fast-disk diagnostic).
  • 88 tests pass; the full-base path is bit-exact vs v1.2.5 (verified across all 8 steps incl. collision/mask rows).

Update: pull latest and restart ComfyUI. The toggle is off by default — full-base users are unaffected.

v1.2.5

Choose a tag to compare

@Saganaki22 Saganaki22 released this 20 Sep 10:38

Bug fixes

A review against upstream (Video-Rebirth/hyperflow) found 5 porting bugs — all fixed in this release:

  • SwiGLU LoRA rows were reversed. Diffusers and ComfyUI store the gate/value halves in opposite order, so the feed-forward calculation was wrong throughout the model. Existing weight files are auto-corrected on load — no re-download needed — and the converter now writes the correct layout.
  • First-step audio got the wrong endpoint. Video and audio both start at t=0 but need different r values; audio was receiving video's endpoint on step 1. Distinct (t, r) rows are now preserved through the blocks and output heads.
  • Merge mode contaminated the endpoint embedder. In merge mode the endpoint branch read LoRA-merged weights, double-applying the base time LoRA. The two small time projections now stay in bypass even when merging.
  • Automatic weight downloads failed when the destination folder didn't exist, and broke Hugging Face cache symlinks on Windows.
  • Sparse-attention recipe mapping was off. start_percent=0.25 silently kept 3 steps dense instead of 2; corrected to 0.16 in docs and both example workflows (plus extra_tokens, sink conditioning, and min_tokens aligned with upstream).

Improvements

  • Bypass QKV adapters no longer carry ~1.07 GiB of zero padding — bit-identical to upstream-style separate projections, and slightly faster at realistic sequence lengths.
  • 57 tests pass, including 17 new regression tests covering all of the above; validated against the published weight files.

Update: pull latest and restart ComfyUI. Old weight files keep working — the loader applies the SwiGLU correction automatically.

v1.2.0 — Context-loop fix + clearer wrong-file errors

Choose a tag to compare

@Saganaki22 Saganaki22 released this 19 Sep 16:32

What's Changed

Fixed

  • Context-loop scene 2 crash ("the two-time embedder ran without step context"): ApplyHyperFlow re-installed on a fresh clone while a previous scene's patch was still resident on the shared time_embedder module captured the already-patched forward, stacking a wrapper bound to the old scene's cleared step context. The installer now unwraps any resident HyperFlow forward back to the true original before capturing it. Applying twice on the same model is still rejected.

Improved

  • Wrong-file errors now tell you exactly what to get: dropping a standalone/generic ComfyUI LoRA into models/hyperflow/ (keys like diffusion_model.<module>.lora_A.weight / .alpha, e.g. the builds from MiniMax-H3-Turbo-Lora-ComfyUI) now names the exact node build to download — custom_node_hyperflow_8step_v1.0_comfyui.safetensors, or custom_node_hyperflow_8step_v1.0_comfyui_pruned.safetensors for pruned/curve bases — from drbaph/Hyperflow-Comfyui.
  • The full-build-on-pruned-base mismatch error now also names the exact pruned file.

Tests

  • 40 passed: new regression tests cover the loop re-install scenario (fresh clone applied + sampled while the first patch is resident, numerically verified against the reference two-time formula) and same-patcher double-apply rejection.

Full changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@Saganaki22 Saganaki22 released this 19 Sep 08:09

Robustness release after real-world testing on quantized MiniMax-H3 bases.

New

  • Junctioned / symlinked model subfolders: checkpoints reached through Windows directory junctions or symlinked subfolders inside models/hyperflow/ now resolve instead of being rejected — containment accepts a literal or resolved path match, and .. traversal stays rejected.
  • Timestep endpoint coverage guard: the two-time embedder now verifies every t_vals row classifies as video/audio/pin. A row that would silently fall back to single-time (only legitimate for denoise-masked rows) triggers a one-time console warning with the offending values instead of quietly degrading.
  • CPU test suite grown to 38 tests, including a per-step mirror of the model''s unique_t construction across the whole trained grid (plain and conditioning payloads) and junction/traversal containment tests.

Fixes since v1.0.0

  • Base detection now duck-types the inner model (wrapper classes vary across ComfyUI builds).
  • Module resolution tolerates fast_disk/dynamic-loaded patcher models whose named_modules/state_dict drop the diffusion_model. prefix.
  • LoRA targets folded into fused quantized ops (no hookable module) auto-route through the merge path — reported as N fused/int8 targets via merge.
  • Endpoint embedder forces fp32 (matches the reference math; fixes a dtype crash on checkpoints that store time_embedder in bf16).
  • Full/pruned weights-on-wrong-base is now a hard error naming the right file.

v1.0.0

Choose a tag to compare

@Saganaki22 Saganaki22 released this 19 Sep 07:10

First release of the ComfyUI port of HyperFlow (Video Rebirth''s 8-step LoRA for MiniMax-H3, video + audio).

What''s in the box

  • ApplyHyperFlow / ApplyHyperFlowAdvanced — 8-step LoRA + two-time (t, r) conditioning on ComfyUI''s native MiniMax-H3 model (no core files modified, no custom sampler; endpoints derive from sample_sigmas, any core sampler works).
  • Outputs the trained 9-point grid as SIGMAS — feed SamplerCustomAdvanced + euler, 8 model forwards per clip.
  • LoRA via ComfyUI''s weight-adapter machinery: bypass (default, matches the reference''s unmerged bf16 branches) or merge; fused-quant targets on int8 bases auto-route through merge. Works on full and pruned/curve bases (auto-detected, matching full/pruned builds).
  • download_if_missing fetches the chosen variant from drbaph/Hyperflow-Comfyui into models/hyperflow/.
  • Optional sparse attention stays on core nodes: Model Attention Backend + Model Sparse Attention (sol-attn recipe: start_percent 0.25, dense_blocks "0,1", tau 1.0).

Weights for this node (download one into models/hyperflow/): custom_node_hyperflow_8step_v1.0_comfyui.safetensors (full base, the released model) or custom_node_hyperflow_8step_v1.0_comfyui_pruned.safetensors (pruned bases, backbone only).

Don''t want the custom node? Standalone builds that load with the stock Load LoRA node (backbone only, no two-time conditioning) live in drbaph/MiniMax-H3-Turbo-Lora-ComfyUI: minimax_h3_hyperflow_8step_v1.0_comfyui_bf16.safetensors (3.93 GB) / ..._pruned_bf16.safetensors (3.91 GB), plus rank-20 resized variants (~318/316 MB).

CPU test suite: python -m pytest tests/ -q (33 tests).