ComfyUI Node
FunPack Hybrid Euler 2S Sampler
Hybrid sampler: early Euler ancestral with order-2 denoised extrapolation for motion, late DPM-Solver++(2S) ODE for quality with progressive correction blending. Optional eta decay, anti-stiffness motion pulses, velocity bias, and reactive rescue. On rectified-flow models (CONST, e.g. LTXAV) it runs an RF-correct port of the same features (Heun corrector in place of 2S) instead of falling back to plain euler-ancestral.
FunPack Hybrid Euler 2S Sampler
- sigmas
- sampler
- sigmas
◄eta1.00►
◄eta_final1.00►
◄s_noise1.00►
◄high_quality_pct0.35►
◄correction_blend1.00►
◄quality_sharpness0.00►
◄motion_pulse_modeoff►
◄motion_pulse_start_pct0.30►
◄motion_pulse_count2►
◄motion_pulse_spacing_pct0.22►
◄motion_pulse_strength0.85►
◄velocity_bias_modeoff►
◄velocity_bias_strength0.00►
◄velocity_bias_sourcemean►
◄velocity_refinement_keydefault►
◄rescue_modefalse►
◄rescue_threshold0.15►
◄rescue_strength0.20►
◄normalize_strength0.00►
◄normalize_start_sigma0.900►
CategoryFunPack/Sampling
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| eta | FLOAT | 1.000–1 | Ancestral stochasticity at the start of sampling. Keep at 1.0 for classic ancestral behaviour. |
| eta_final | FLOAT | 1.000–1 | Eta value at the quality phase boundary. When below eta, ancestral noise decays linearly toward this value as sigma approaches the quality phase. Lower values give a cleaner hand-off into deterministic refinement. Set equal to eta to disable decay. |
| s_noise | FLOAT | 1.000–10 | Noise scale for ancestral noise injection. |
| high_quality_pct | FLOAT | 0.350–1 | Fraction of late denoise steps that enter the quality phase. The first half of quality steps use single-eval Euler ODE; the second half use the full 2S correction. |
| correction_blend | FLOAT | 1.000–1 | Blend between Euler ODE (0.0) and 2S correction (1.0) for the second half of quality-phase steps. |
| quality_sharpness | FLOAT | 0.000–1 | Restores fine detail lost to velocity-bias softening. Temporal-average unsharp on the x0 prediction during the quality phase only. 0 disables; 0.2-0.4 typical when velocity bias is on. Free (no extra model eval). |
| motion_pulse_mode | COMBO | off | Adds early/mid anti-stiffness motion pulses. Off preserves legacy sampler behavior. |
| motion_pulse_start_pct | FLOAT | 0.300–0.95 | Sampling progress where the first anti-stiffness pulse is applied. |
| motion_pulse_count | INT | 21–6 | How many early/mid motion pulses to request before the late quality phase. |
| motion_pulse_spacing_pct | FLOAT | 0.220.04–0.45 | Progress spacing between motion pulses. |
| motion_pulse_strength | FLOAT | 0.850–1 | How strongly motion pulses add monotonic noise kicks. Higher values push harder against stale image references. |
| velocity_bias_mode | COMBO | off | Experimental: capture/apply averaged early model velocity around normalized sigma 0.9 and 0.8. Off preserves legacy sampler behavior. |
| velocity_bias_strength | FLOAT | 0.000–3 | Strength of the remembered velocity (action) injected at the structure sigma. 0 disables. ~0.15 = subtle spice; 0.3-1.0 = clear action crossover; 2-3 approaches full action replacement (capped so the current gen isn't wiped). Creative tool, not for consistency. |
| velocity_bias_source | COMBO | mean | How velocity bias / rescue pick a good direction. 'mean' = prompt-blind global average (legacy). 'nearest' = single best-matching prompt cluster — preserves one real good gen's detail instead of a washed-out average (less softening). Affects both apply and rescue. |
| velocity_refinement_key | STRING | default | Memory key used to capture/apply early velocity bias. |
| rescue_mode | BOOLEAN | false | Reactive in-flight rescue, rating-gated. Steers each eligible step toward trajectories you rated good and away from ones you rated Awful (matched to the current prompt). Learns automatically from ratings while on — no separate capture step needed. A no-op until you've rated a few gens for this prompt/key (a positive rating builds the target, an Awful builds what to avoid). |
| rescue_threshold | FLOAT | 0.150–1 | Fires when the step has diverged from the good trajectory by more than this (1 - cosine) OR aligned with a bad trajectory by more than this (cosine). Lower = corrects more eagerly. 0.10-0.20 typical; raise toward 0.4+ for only severe cases. |
| rescue_strength | FLOAT | 0.200–0.5 | How hard to pull toward good / push away from bad when triggered (magnitude preserved, no energy injected). Keep moderate; 0.5 is a strong correction. |
| sigmasopt | SIGMAS | — | |
| normalize_strengthopt | FLOAT | 0.000–1 | Video-only latent normalization (anti-overbake / oversaturation / colour drift) stacked on this RF loop. 0 = off. 0.5 = gentle. Audio is never touched (LTXAV/CONST path). ~zero overhead. |
| normalize_start_sigmaopt | FLOAT | 0.9000–1 | Sigma at/below which latent normalization activates and anchors its reference. Only used when normalize_strength > 0. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sampler | SAMPLER | — |
| sigmas | SIGMAS | — |