ComfyUI Wan2.2 Text Encoder Not Loading: Fix the umt5-xxl fp8 Filename and Directory Contract

One of the most common first-run failures in a Wan2.2 workflow has nothing to do with the 14B diffusion model at all. The queue starts, the model loads, and then the whole graph stops at the text-encoder node with a message that is easy to misread. This article explains why the Wan2.2 umt5-xxl text encoder so often fails to load, what the filename and directory rules actually are, and how to fix the mismatch without re-downloading a single 5GB checkpoint.

Why the Text Encoder Fails First

Wan2.2 is a latent video-diffusion family that depends on a large multilingual text encoder, commonly referred to as umt5-xxl, to convert prompts into conditioning for the diffusion model. Unlike the smaller CLIP-based encoders used by SD1.5 and SDXL, umt5-xxl is a big transformer on its own. In its fp8 form it still weighs roughly 5.7GB, and in many distributions it ships as a separate .safetensors file rather than being bundled into the diffusion checkpoint.

Because it is a separate file, the loader node has to resolve it by name, and the name has to resolve to a file inside a specific directory. When either the filename or the directory does not match what the node expects, the node fails before any sampling happens. The error usually looks like the model “is not there” even though it clearly exists on disk.

The Three Things That Must All Agree

A text-encoder load succeeds only when three independent values line up. When diagnosing a failure, check each one in order.

  • The file actually exists on disk, in the directory ComfyUI scans for text encoders.
  • The filename in the node matches the file on disk exactly, including case, underscores, and the .safetensors extension.
  • The loader node type matches the encoder format — a CLIP loader, a WanVideo-specific text encoder loader, or a generic loader.

Almost every “text encoder not loading” report on a Wan2.2 workflow reduces to one of these three values drifting out of sync, most often after a model was downloaded under a slightly different name than the workflow template expected.

The fp8 Filename Contract

Wan2.2 community workflows and the Comfy-Org official releases use a consistent naming scheme for the text encoder. The fp8 quantized encoder is typically distributed as umt5_xxl_fp8_e4m3fn_scaled.safetensors, while the higher-precision variants drop the fp8 token or use a different precision suffix. The important detail is that the name is a contract, not a suggestion: a workflow authored against umt5_xxl_fp8_e4m3fn_scaled.safetensors will not silently accept a file named umt5-xxl-enc-fp8_e4m3fn.safetensors even though the two are the same underlying encoder.

The same consistency applies to the diffusion models. The Comfy-Org Wan2.2 release files follow a pattern like wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors and wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors, where the _high_noise_ and _low_noise_ tokens select different noise-level experts of the same 14B model. Understanding this naming discipline makes it much easier to spot when a migrated workflow still points at an old filename.

Diagnosing the Mismatch Step by Step

Start with the directory, because that is the failure that looks most like a “missing model.” ComfyUI scans specific folders under the models directory: text encoders live under models/text_encoders/, not under models/clip/ and not under models/diffusion_models/. A diffusion model placed in the text-encoder folder, or a text encoder placed in the diffusion-models folder, will not appear in the dropdown of the node that is supposed to load it.

Next, confirm the exact string the workflow is asking for. In the UI, click the loader node and read the value of its model or clip_name field. In API-driven flows, find the node with "class_type": "CLIPLoader" (or the WanVideo text-encoder loader) and read its clip_name input. Compare that string character-for-character against the filename on disk.

Finally, verify the loader matches the encoder. umt5-xxl is a T5-family encoder, so it belongs in a loader that expects a T5/umt5 format, not the clip_l/clip_g dual-loader used for SDXL. Mixing these up produces a state-dict or dtype error at load time rather than a clean “not found.”

The Most Common Fixes

Once you have located the mismatch, the fix is usually one of three small, reversible edits:

  • Rename the file to match the workflow’s expected name (or update the node’s value to match the file you have). Renaming the file is the safer choice when you have multiple workflows sharing one encoder, because a single canonical name keeps all of them working.
  • Move the file into models/text_encoders/ if it landed in the wrong directory during download.
  • Switch the node to the correct loader type if the encoder was mapped through a CLIP-specific node.

None of these requires re-downloading the 5.7GB encoder. The checkpoints are identical bytes; only the name and location are wrong.

A Note on Precision and VRAM

The filename also encodes precision, which matters for people on tight VRAM budgets. The recommended order of preference for Wan models, from highest quality to smallest footprint, is generally fp16, then bf16, then fp8-scaled, then plain fp8. The scaled suffix indicates a per-tensor scaling calibration that recovers some of the quality that naive fp8 quantization loses. If you are moving a workflow from a cloud GPU to a 16GB local card, selecting the _fp8_scaled encoder rather than the fp16 encoder is often the difference between a graph that fits and one that exhausts VRAM before the diffusion model even loads.

For a deeper look at fitting large diffusion models onto consumer cards, see our guide to Wan2.2 Animate 14B on 16GB VRAM, and for the broader stack the model belongs to, read our overview of the open-source video generation stack.

Verifying the Fix

After correcting the name, directory, or loader, do not just wait for the image. The text encoder runs first and fails fast, so a successful fix shows up quickly: the loader node’s dropdown will now list the file, and the queue will advance past the encoding stage to the sampling stage. In the console or API response, watch for the text-encoder node to complete without a state-dict or “not found” error, then confirm the diffusion model begins sampling.

If the error still names the same file, re-read the exact string the node is asking for — the lingering problem is almost always a residual character difference (an underscore versus a hyphen, or a missing _scaled suffix) rather than a genuinely corrupt model.

Conclusion

The Wan2.2 text-encoder “not loading” error is a filename-and-directory problem, not a hardware or download problem. The fix is to make the file’s name, its directory, and the loader node agree — a rename, a move, or a node swap — and to keep in mind that the fp8_scaled vs fp16 choice encoded in the filename has real VRAM consequences on local hardware.

Primary Documentation

For the authoritative reference on Wan model files and precision variants, consult the WanVideoWrapper repository documentation and the official ComfyUI documentation. Verify the exact expected filenames against the version of the workflow and wrapper you have installed, because naming can shift between releases.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *