AnyFlow Euler Sampler
The no-settings sampler that AnyFlow adapters insist on
- SAMPLER
You clicked on a sampler node with an empty input box and you're wondering if it's a real node at all. It is, and the empty box is the point. AnyFlow Euler Sampler exists for one narrow audience: people running the "AnyFlow" adapters that the SimpleTuner team trains for Anima, Ideogram 4, and Wan 2.1. These are low-step, DMD-style distilled LoRAs that collapse a 40-step generate into four or five steps - and they will not run through a normal sampler. If you don't have one of those adapters, this node does nothing for you. If you do, it's the only sampler that works, and that's not marketing; the model literally refuses to sample without it.
Why this node exists at all
Ordinary diffusion samplers tell the denoiser where it currently is - the timestep t of this step - and let it predict its way forward. An AnyFlow adapter was trained on "flow maps" instead: at every step the model gets both ends of the current interval, t and r, where r is the endpoint this step is aiming at. That extra information is how a distilled adapter stays coherent when it's leaping a huge chunk of the denoising trajectory in a single jump. The problem: a stock ComfyUI sampler never tells the model about r, because stock models don't ask. So when you load an AnyFlow adapter with the pack's AnyFlow LoRA Loader and then run a plain Euler or DPM++ sampler, the model throws a RuntimeError about the sampler not providing r. This node is the fix, and only this node.
What it actually does
Under the hood it's ComfyUI's standard Euler sampler - the same x = x + d * (sigmas[i+1] - sigma) update you'd get from the built-in one, no exotic AnyFlow integration formula. The only difference is that before each denoiser call it stashes the current sigma and the next sigma in the transformer options, so the patched time-embedding path can compute its delta for the interval. That's the whole secret.
One consequence worth knowing: the sampler takes your sigma schedule verbatim. It doesn't reschedule, doesn't invent steps, doesn't do CFG. The step count and schedule come entirely from the scheduler node feeding SIGMAS into SamplerCustom or SamplerCustomAdvanced. Multi-evaluation solvers like DPM++ 2M don't have one unambiguous destination per model evaluation, which is exactly why the pack insists on deterministic Euler - there's no point fighting it.
Wiring it into a workflow
The node has no inputs and one SAMPLER output. You route that output into the sampler socket of SamplerCustomAdvanced (or SamplerCustom). Everything else around it is stock ComfyUI. The pack's Anima example is a good template:
BasicSchedulerwith schedulersimple, 4 steps, denoise 1.0BasicGuider(i.e. no real CFG - distilled adapters want guidance at ~1, not 7)RandomNoisefor a fixed seed, thenSamplerCustomAdvanced
That 4-step / simple pairing isn't arbitrary - it's what the adapter was trained for. Match the step count the adapter's author publishes; a 4-step DMD-style adapter run at 20 steps won't give you more quality, it'll give you artifacts.
Installing the pack
cd ComfyUI/custom_nodes
git clone https://github.com/SimpleTuner-io/ComfyUI-AnyFlow
Restart ComfyUI, or find comfyui-anyflow in ComfyUI Manager and install there. This is one of the rare packs with zero extra dependencies - no pip packages, nothing to compile. The adapter files themselves go in the normal ComfyUI/models/loras folder.
When it breaks
The classic failure is the error text itself: "This model has AnyFlow endpoint conditioning enabled, but the sampler did not provide r." That means you've got the loader in the graph but are still using a normal sampler - swap it for this node. If output looks overcooked or broken with an AnyFlow adapter, check the scheduler: you want a simple-style schedule at the trained step count, not Karras with CFG cranked up. And if you loaded the adapter without intending to use AnyFlow at all - say you only wanted its regular LoRA weights - remember this pack deliberately refuses to treat AnyFlow adapters as ordinary LoRAs. That's a design decision, not a bug; more on it at the loader node's page.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SAMPLER | SAMPLER | — |