FLUX · FILE CONTRACT

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.

DEFAULT INVENTORIES · ORIGINAL FORGEOne model root, three owning folders
<active data directory>/models/
Stable-diffusion/diffusion .safetensors / .ggufCheckpoint
VAE/ae.safetensorsVAE / Text Encoder
text_encoder/clip_l + T5-XXLVAE / Text Encoder
Inspected original Forge · commit dfdcbab · content and code checked 24 Aug 20263 roots · 4 roles
01 · Package manifest

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.

What did the publisher document?
LOAD CONTRACTStart with one file

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.

VERIFIED The original Forge split-file announcement defines the four-role raw/GGUF layout. Package completeness remains a distribution-specific fact. Read #1050 ↗

02 · Exact map

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.

Default paths at inspected original Forge commit dfdcbab
RoleExample identityFolder → controlProof / common confusion
Diffusion modelflux1-dev.safetensors or a documented .ggufmodels/Stable-diffusion/CheckpointAppears in Checkpoint after RefreshNot a LoRA; GGUF does not imply bundled encoders
VAEae.safetensors for the official raw FLUX.1-dev setmodels/VAE/VAE / Text EncoderSelectable as an additional moduleNot VAE-approx and not an SD/SDXL VAE by default
CLIP-Lclip_l.safetensorsmodels/text_encoder/VAE / Text EncoderSelectable with the T5 and VAECLIP-G and CLIP Vision are different components
T5-XXLThe precision documented by the chosen distributionmodels/text_encoder/VAE / Text EncoderSelectable with CLIP-L and VAEDo not choose FP16 or FP8 from VRAM folklore alone
03 · Role anatomy

The four files do four different jobs

A folder fix cannot repair an architecture mismatch. Know which loader assertion belongs to which component.

01 · TRANSFORMER

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 dict
02 · PROMPT VECTOR

CLIP-L

The current FLUX engine requests a clip_l text component. CLIP-G and CLIP Vision belong to different component contracts.

missing → CLIP state dict
03 · PROMPT SEQUENCE

T5-XXL

The second prompt encoder supplies the T5 sequence representation. Its precision and packaging must match the documented distribution.

missing → T5 state dict
04 · IMAGE CODEC

VAE

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 dict
04 · Copy and select

Install the split set in one controlled pass

This sequence is for a distribution documented as separate diffusion, VAE, CLIP-L and T5 files.

  1. 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.

  2. 02

    Finish every transfer

    Verify final filenames and publisher checksums when supplied. A partial download can still have a scannable extension.

  3. 03

    Copy the diffusion file

    Place the raw/full .safetensors or documented .gguf under models/Stable-diffusion/.

  4. 04

    Copy the three companion roles

    Place ae.safetensors under models/VAE/; place CLIP-L and the documented T5-XXL under models/text_encoder/.

  5. 05

    Refresh both inventories

    Use the top Refresh button. Current Forge refreshes Checkpoint and VAE / Text Encoder choices together.

  6. 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.

  7. 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.

05 · Validation receipt

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.

FLUX FILESET RECEIPTBase components only
0 / 6 recorded
Downloaded ≠ discovered ≠ loadable ≠ usable
06 · Custom roots

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-dir

Replaces the base models root. The three default inventories then live beneath that active root.

--ckpt-dir

Adds an explicit Checkpoint directory for diffusion models.

--vae-dir

Adds an explicit VAE directory to the combined additional-module inventory.

--text-encoder-dir

Adds 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.

Inspect the current arguments ↗
Resolve the complete Forge path hierarchy
07 · Error decoder

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.

08 · Exact questions

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.

09 · Evidence boundary

Current code owns paths; publishers own packages

We separate what Forge scans from what any particular download contains.

VERIFIED

Current original Forge code

UI labels, recursive inventories, accepted extensions, launch overrides and component assertions were inspected at commit dfdcbab.

Inspect UI and scanners ↗
STALE SNAPSHOT

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 ↗
COMMUNITY-REPORTED

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 ↗
NEXT TASK

Files load. Now prove the model baseline.

Return to the parent guide for preset, variant behavior, memory controls and the first controlled generation.

Run the FLUX baseline