Put every FLUX file where Forge actually reads it
A diffusion model, CLIP-L, T5-XXL and VAE are different jobs. This map tells you when one packaged checkpoint is enough—and when Forge needs a four-role set.
First decide whether the file is a package or one component
Format words do not answer this. “GGUF,” “FP8,” and “NF4” describe storage or computation choices; the publisher must still document what the download contains.
Use this route only when the publisher explicitly says the checkpoint bundles the transformer and required companion components.
Packaged .safetensors → models/Stable-diffusion/
- In Forge
- Select the checkpoint. Leave VAE / Text Encoder empty for the first load unless the package documentation tells you otherwise.
- Stop signal
- Stop if the model card never says what is bundled. A convenient filename is not proof of a complete checkpoint.
The diffusion file is only one role. Forge needs the matching VAE and both prompt encoders for this route.
Diffusion .safetensors or .gguf → models/Stable-diffusion/ae.safetensors → models/VAE/clip_l.safetensors → models/text_encoder/Documented T5-XXL file → models/text_encoder/
- In Forge
- Select the diffusion file under Checkpoint, then select ae, CLIP-L and T5 together under VAE / Text Encoder.
- Stop signal
- Stop if any one role is absent. GGUF describes the diffusion weights; it does not certify that CLIP-L, T5 or VAE is inside.
Treat an undocumented file as an unknown package, even when its name contains dev, schnell, FP8, NF4 or GGUF.
Find the publisher model cardIdentify base variantIdentify bundled rolesRecord required companion versions
- In Forge
- Do not build a set by matching filenames from unrelated uploads. Return when the publisher documents the file contract.
- Stop signal
- No role manifest means no reproducible setup. Choose a documented distribution instead of guessing.
VERIFIED The original Forge split-file announcement defines the four-role raw/GGUF layout. Package completeness remains a distribution-specific fact. Read #1050 ↗
Route by component role, never by extension alone
Several roles can use .safetensors. The model card identifies the role; the role identifies the folder and UI control.
| Role | Example identity | Folder → control | Proof / common confusion |
|---|---|---|---|
| Diffusion model | flux1-dev.safetensors or a documented .gguf | models/Stable-diffusion/Checkpoint | Appears in Checkpoint after RefreshNot a LoRA; GGUF does not imply bundled encoders |
| VAE | ae.safetensors for the official raw FLUX.1-dev set | models/VAE/VAE / Text Encoder | Selectable as an additional moduleNot VAE-approx and not an SD/SDXL VAE by default |
| CLIP-L | clip_l.safetensors | models/text_encoder/VAE / Text Encoder | Selectable with the T5 and VAECLIP-G and CLIP Vision are different components |
| T5-XXL | The precision documented by the chosen distribution | models/text_encoder/VAE / Text Encoder | Selectable with CLIP-L and VAEDo not choose FP16 or FP8 from VRAM folklore alone |
The four files do four different jobs
A folder fix cannot repair an architecture mismatch. Know which loader assertion belongs to which component.
Diffusion model
Produces the latent image through denoising. Forge detects the architecture from its state dictionary and exposes the file as a Checkpoint.
missing → model state dictCLIP-L
The current FLUX engine requests a clip_l text component. CLIP-G and CLIP Vision belong to different component contracts.
missing → CLIP state dictT5-XXL
The second prompt encoder supplies the T5 sequence representation. Its precision and packaging must match the documented distribution.
missing → T5 state dictVAE
Encodes images to latents and decodes final latents back to pixels. A healthy preview does not prove the final VAE decode will succeed.
missing → VAE state dictInstall the split set in one controlled pass
This sequence is for a distribution documented as separate diffusion, VAE, CLIP-L and T5 files.
- 01
Record the distribution contract
Save the model-card URL, base variant and exact filenames. Do not combine modules from unrelated tutorials because their names look familiar.
- 02
Finish every transfer
Verify final filenames and publisher checksums when supplied. A partial download can still have a scannable extension.
- 03
Copy the diffusion file
Place the raw/full
.safetensorsor documented.ggufundermodels/Stable-diffusion/. - 04
Copy the three companion roles
Place
ae.safetensorsundermodels/VAE/; place CLIP-L and the documented T5-XXL undermodels/text_encoder/. - 05
Refresh both inventories
Use the top Refresh button. Current Forge refreshes Checkpoint and VAE / Text Encoder choices together.
- 06
Select by owning control
Choose the diffusion file under Checkpoint. Choose VAE, CLIP-L and T5 together in the multiselect labelled VAE / Text Encoder.
- 07
Prove the base set
Use the FLUX preset and a clean baseline. Keep LoRAs, ControlNet, hires and optional extensions out until one image completes.
A visible filename is only the second gate
Record all six checks before adding anything optional. This separates a wrong folder from a wrong component or incompatible set.
The active arguments outrank the folder you expect
If the defaults look correct but files stay absent, inspect the launch command. Portable packages, shared libraries and copied configs can change the active roots.
--models-dirReplaces the base models root. The three default inventories then live beneath that active root.
--ckpt-dirAdds an explicit Checkpoint directory for diffusion models.
--vae-dirAdds an explicit VAE directory to the combined additional-module inventory.
--text-encoder-dirAdds an explicit text-encoder directory for CLIP-L and T5 files.
--clip-models-path is not the FLUX text-encoder override.The current argument help assigns it to CLIP models used by Interrogate. Use --text-encoder-dir for the FLUX additional-module inventory.
Repair the earliest failed role
Do not move every file after one error. The first loader assertion narrows the failed component more reliably than a later cascade.
The FLUX checkpoint is absent from the dropdown
Confirm the active model root, use the singular `Stable-diffusion` directory, finish the transfer, and check that the diffusion file ends in `.ckpt`, `.safetensors`, or `.gguf`. Then use the top Refresh control.
CLIP-L, T5 or VAE is absent from VAE / Text Encoder
Use `models/text_encoder`—singular—for CLIP-L and T5, and `models/VAE` for ae. The current additional-module scanner accepts ckpt, pt, bin, safetensors and gguf and walks subfolders.
“You do not have CLIP state dict!”
Select `clip_l.safetensors` with the split set. `clip_g.safetensors` and a CLIP Vision model are not substitutes for the CLIP-L component expected by the current FLUX engine.
“You do not have T5 state dict!”
The T5 role is missing, unreadable or not selected. Verify the exact T5 file documented by the distribution and select it under VAE / Text Encoder.
“You do not have VAE state dict!”
Select the documented FLUX VAE for the split set. For the official raw dev files, the publisher tree names it `ae.safetensors`; do not silently substitute an SDXL VAE.
“You do not have model state dict!” or model type is not recognized
The selected Checkpoint file is not being recognized as the diffusion component. Verify architecture, download completion, source and format before changing memory settings.
The preview looks plausible, then the final image is black or broken
Final decoding is a VAE-stage clue, not proof by itself. Recheck the VAE identity and the complete matched set, then capture the earliest console error.
Open the complete output-stage diagnostic →Two files share the same basename
Rename nothing casually. The current additional-module inventory is keyed by basename, so duplicate names across scanned roots can mask which path is selected. Keep one documented copy or give files unambiguous publisher-approved names.
FLUX file and folder questions, settled
These answers describe original Forge at the inspected commit, not Forge Neo, reForge, ComfyUI or an undocumented bundle.
Where do I put a FLUX GGUF file in Forge?
Put the documented FLUX diffusion GGUF under `models/Stable-diffusion/`. It belongs to the Checkpoint inventory, not the text-encoder folder.
Does a FLUX GGUF include CLIP, T5 and VAE?
Do not assume so. The official Forge split-file guide pairs a GGUF diffusion model with separate CLIP-L, T5-XXL and `ae.safetensors`. Only a publisher’s explicit package manifest can change that contract.
Where does clip_l.safetensors go?
The default location is `models/text_encoder/`, and it is selected under VAE / Text Encoder.
Where does the FLUX T5 file go?
Place the documented T5-XXL file in `models/text_encoder/` and select it under VAE / Text Encoder.
Where does ae.safetensors go in Forge?
Place the FLUX autoencoder in `models/VAE/`. Do not put it in VAE-approx.
Why does models/text_encoders not work?
The current default directory is singular: `models/text_encoder`. The plural spelling is a different path and is not scanned by default.
Can FLUX files be organized in subfolders?
Yes for the current inspected scanners: both checkpoint discovery and the additional-module scan walk their inventory roots recursively. Keep each role under its correct root.
Do I need to restart Forge after copying FLUX files?
The top Refresh control refreshes both Checkpoint and VAE / Text Encoder inventories. If a completed file still does not appear, verify the active roots and extension before using a restart as a diagnostic.
Why is my T5 visible but CLIP is still missing?
Visibility of one module does not satisfy another role. Select CLIP-L as well; the current FLUX engine builds its prompt stack from both `clip_l` and `t5xxl`.
Can I use clip_g.safetensors instead of CLIP-L for FLUX?
Not for the current original Forge FLUX engine. It requests CLIP-L plus T5-XXL; CLIP-G is used by other architectures and does not satisfy this role.
Can I use a CLIP Vision model as the FLUX text encoder?
No. CLIP Vision is a separate image-encoding component. It does not replace `clip_l.safetensors` in the FLUX text-encoding set.
Should VAE, CLIP-L and T5 be selected together?
For the documented split route, yes: select all three under VAE / Text Encoder while the diffusion file is selected under Checkpoint.
Should I add separate modules to a packaged NF4 checkpoint?
Start from the package manifest. If it explicitly bundles the required components, prove the checkpoint alone first; adding duplicate modules by habit can create a mismatched set.
Which T5 should I download: FP16, FP8 or GGUF?
Use the T5 variant documented and tested by the distribution you chose. The current loader recognizes several storage types, but format support does not make every combination equivalent.
Why do all files appear but FLUX still fails to load?
Discovery proves only that filenames and extensions were scanned. Loader assertions verify actual state dictionaries. Capture the first assertion and repair that role rather than moving every file.
What does the Forge Refresh button refresh?
The current top Refresh handler updates both the Checkpoint list and the combined VAE / Text Encoder list. It does not prove that the selected components are compatible.
Can I store FLUX files outside the default folders?
Yes, with deliberate launch arguments: `--ckpt-dir`, `--vae-dir`, and `--text-encoder-dir`, or a changed model root. Record the active arguments because the visible filesystem tree alone may then be misleading.
Is --clip-models-path the FLUX text-encoder folder?
No. Its current help text describes CLIP models for Interrogate. Use `--text-encoder-dir` for the additional text-encoder inventory.
What files do I need for a split FLUX model in Forge?
You need four documented roles: the FLUX diffusion model, its VAE, CLIP-L and T5-XXL. One filename per role is not enough unless all four come from a compatible distribution contract.
Why is FLUX visible in Checkpoint but still unable to generate?
Checkpoint visibility proves only the diffusion inventory found that file. A split set can still lack VAE, CLIP-L or T5, or contain an incompatible component; use the first console assertion to identify the failed role.
Current code owns paths; publishers own packages
We separate what Forge scans from what any particular download contains.
Current original Forge code
UI labels, recursive inventories, accepted extensions, launch overrides and component assertions were inspected at commit dfdcbab.
Official 2024 FLUX announcement
The authoritative split-file recipe is dated. We retain its exact role map only where current code still implements the same folders and components.
Inspect announcement #1050 ↗Error language, not universal diagnosis
Issues and video transcripts reveal recurring missing-component questions. Their hardware, timing and third-party package claims are not generalized.
Inspect issue #3064 ↗