π Bawk Model Loader
One node to load your FLUX model, VAE, and both text encoders
- MODEL
- VAE
- CLIP
- MODEL_STRING
A stock FLUX workflow needs three loader nodes before you've generated a single pixel: UNETLoader for the 12B diffusion model, DualCLIPLoader for the T5-XXL + CLIP-L text encoders, and VAELoader for ae.safetensors. Bawk Model Loader (class name DiffusionModelLoader) folds all three into one node - which is precisely the pack's whole reason to exist: a four-node text-to-image chain instead of a ten-node one.
How it works
It's a thin, honest wrapper around ComfyUI's own loading functions. comfy.sd.load_diffusion_model loads the file from models/diffusion_models/, with the weight_dtype applied as model options. It loads the VAE separately from models/vae/ unless you pick "baked VAE", and it loads up to two text encoders from models/text_encoders/ as a FLUX CLIP pair (CLIPType.FLUX), which is how ComfyUI handles FLUX's dual-encoder conditioning. The MODEL_STRING output is just the model filename - it's the pack's way of passing "what model made this" down to the image saver for folder naming.
The inputs that matter
model_name- your FLUX diffusion model file (e.g.flux1-dev.safetensors) frommodels/diffusion_models/.vae_name-ae.safetensorsfrommodels/vae/, or "baked VAE" if your file bundles one (most FLUX dumps do not).clip_name1/clip_name2- T5-XXL (the big one, ~11GB fp8) and CLIP-L respectively. Pick "none" for either if you're loading a single-encoder model.weight_dtype- the interesting one.default, then three fp8 variants. fp8 cuts FLUX's VRAM footprint roughly in half with minimal visible quality loss - it's the standard way to get a 12B model onto a 12GB card.fp8_e4m3fn_fastis the speedier sibling;fp8_e5m2trades a bit more precision for even lower memory. If it fits in fp16/bf16, keep it there; if it doesn't, fp8 is the first lever to pull.
Outputs and wiring
MODEL, VAE, CLIP, and MODEL_STRING. MODEL and CLIP feed Bawk Wildcard Encoder (or straight to the sampler if you skip wildcards), VAE feeds Bawk Sampler, and MODEL_STRING feeds Bawk Image Saver's model_string input so your output folders say [flux1-dev]-16-08-2026 instead of mystery names.
Install
Same pack install - ComfyUI Manager β search "Bawk Nodes" β install β restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/juddisjudd/ComfyUI-BawkNodes.git
The pack adds no heavy dependencies (requirements.txt is torch/torchvision/safetensors/numpy/requests - all already present). What you supply are the model files: the diffusion model, the VAE, and the two text encoders, each in the right folder. That's the real "download" for this node.
Gotchas
- Pick "none" or "baked VAE" correctly. The node skips loading those files - choose them and it validates that the file exists, with a clear error if not. That validation is the node's best feature: typos fail loudly instead of silently.
- fp8 needs a compatible file. You can load a full-precision model at fp8 dtype (ComfyUI quantizes on load), so you don't need a separate fp8 download - but you pay a small load-time cost.
- The
CLIPType.FLUXpairing means this loader is FLUX-shaped. For Z-Image, the pack has a dedicated Z-Image Loader that's a drop-in replacement for this node's sockets - same four outputs, different settings.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | FLUX diffusion model from models/diffusion_models (.safetensors or .gguf) | |
| vae_name | COMBO | ae.safetensors for FLUX.1, flux2-vae.safetensors for FLUX.2 | |
| clip_name1 | COMBO | FLUX.1: t5xxl. FLUX.2-dev: mistral_3_small. FLUX.2-klein: qwen_3_4b (4B) / qwen_3_8b (9B) | |
| clip_name2 | COMBO | FLUX.1: clip_l. Leave 'none' for FLUX.2 models (single text encoder) | |
| weight_dtype | COMBO | Diffusion model precision. fp8 halves VRAM. Ignored for .gguf files |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | β |
| VAE | VAE | β |
| CLIP | CLIP | β |
| MODEL_STRING | STRING | β |