Load Diffusion From String
The dynamic Flux-style model loader
- model
Load Diffusion From String is the pack's answer for the Flux-style setup - where the model isn't a self-contained checkpoint but a separate diffusion model (the denoising network, sometimes called the UNet) that you load alongside a CLIP and a VAE of their own. It loads that one component by filename from a string on a wire, instead of a dropdown, and outputs a single MODEL.
The checkpoint vs. diffusion model split
The distinction matters because it's the difference between this node and the pack's Load Checkpoint From String. A checkpoint is a whole bundle - MODEL plus CLIP plus VAE in one file, the SD/SDXL way. A diffusion model is just the denoising network, the thing that does the actual diffusion work; in Flux-style pipelines it lives alone in models/diffusion_models (that's the folder this node searches) and gets paired with a separately loaded text encoder and VAE. If your workflow uses the core "Load Diffusion Model" node, this is its string-driven twin.
How it works
Mechanism is simple: model_name is a STRING (forceInput - wire it), looked up in models/diffusion_models, and loaded with ComfyUI's load_diffusion_model. Exact filename match required, extension included - flux1-dev.safetensors, not "flux". A missing file raises a FileNotFoundError and stops the run; an empty or blocked name returns an ExecutionBlocker, skipping the branch cleanly.
Inputs and outputs
model_name(STRING, wired) - the exact filename frommodels/diffusion_models.model(MODEL) - the loaded diffusion model, one output.
The gotcha
Here's the gotcha to plan around: this node outputs only the MODEL. It has no CLIP and no VAE sockets, so you still need to supply those from elsewhere - core's Load CLIP and Load VAE, or your own dynamic loaders. The string-driven part is only the model. That's usually the right split - the CLIP and VAE tend to stay constant while the diffusion model is what changes with your style preset - but if you wire this node up expecting a full bundle, your graph will sit there with two dangling inputs.
Putting it together
Where it shines: same switchboard pattern as the checkpoint loader. A Const String preset → If True → this node on one branch and a different diffusion model on the other → one string swaps the whole generation backbone. For shared workflows where you want to hand someone a graph and let them flip a text value instead of hunting through loaders, this is exactly the tool.
Installing it
Install: ComfyUI Manager → "Conditional Nodes by Mikudes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/levox00/Conditional-Nodes-Comfy-Ui
Restart ComfyUI. No dependencies beyond ComfyUI, no downloads - it reads your existing models/diffusion_models folder. The node appears in the conditional category.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |