DSD Model Loader
The lean twin of the Downloader for when the model is already on disk
- dsd_model
The DSD Model Downloader grabs the model and loads it in one step. This node is the other half of that same loading routine - the "I already have the files, just load them" version. They share nearly identical load options, so the honest way to think about it is: if you want one-click setup, use the Downloader; if you downloaded manually from Hugging Face or Google Drive (the README's Option 2), or you're rebuilding a graph on a machine that already has the weights, use this and skip the re-download entirely.
How it works
Give it paths (or nothing), and it builds the same thing the Downloader does: it loads a FluxTransformer2DConditionalModel from the transformer folder, wraps it in a FluxConditionalPipeline over the black-forest-labs/FLUX.1-schnell base (auto-downloaded, no HF login needed), sets up the scheduler with a shift of 3, and applies the DSD LoRA. Then it moves everything to your chosen device. The output is a single dsd_model that feeds straight into the DSD Image Generator.
The convenient bit: both path inputs default to empty strings, and empty means "use the standard locations" - ComfyUI/models/dsd_model/transformer/diffusion_pytorch_model.safetensors for the model and ComfyUI/models/dsd_model/pytorch_lora_weights.safetensors for the LoRA. If files aren't found there (or at whatever paths you type), the node refuses politely with a FileNotFoundError telling you to use the Downloader first. So it won't silently generate with nothing.
Inputs worth touching
- model_path / lora_path - leave empty for the defaults, or paste custom paths if you stored the weights somewhere else.
- device -
cudaorcpu. On CPU, generation will be slow; this is a FLUX-scale model. - dtype -
bfloat16default. On older GPUs that don't support bf16 well,float16is the fallback;float32is for debugging or unusual setups. - low_cpu_mem_usage - default true, recommended on.
- model_cpu_offload / sequential_cpu_offload - the README's memory ladder: bf16 first, then lower resolution and fewer steps in the generator, and only if that's still not enough, enable these. Sequential offload is the last resort because, as the tooltip says, it significantly impacts speed. DSD is a big conditional FLUX variant, so if you're on a 12–16GB card, plan to spend real time here.
The usual snags
Most "it won't load" reports trace back to missing files - the model lives outside the pack, in ComfyUI/models/dsd_model/, and you have to fetch it once (Downloader node, or manual download). The other classic: importing the pack throws if its dependencies aren't installed. That's the pip install -r requirements.txt step after a manual clone, or the dependency install ComfyUI Manager does for you. And remember the load options here are load-time settings only - they don't change what files the node looks for. Wrong paths, clean error; empty paths, clean defaults. That's about as friendly as a heavy model loader gets.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | STRING | — | |
| lora_path | STRING | — | |
| device | COMBO | cuda | 2 options: cuda, cpu |
| dtype | COMBO | bfloat16 | 3 options: bfloat16, float16, float32 |
| low_cpu_mem_usage | BOOLEAN | true | Reduces CPU memory usage during model loading. Recommended for faster loading. |
| model_cpu_offload | BOOLEAN | false | Offloads state dict to reduce memory usage during loading. May slow down inference speed. |
| sequential_cpu_offload | BOOLEAN | false | Enables sequential CPU offloading. Only use if low on VRAM. Significantly impacts inference speed. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| dsd_model | DSD_MODEL | — |