invoke-ai/InvokeAI · error · ValueError
The selected FLUX model does not ship its own {', '.join(mis
Error message
The selected FLUX model does not ship its own {', '.join(missing)}, so {'it' if len(missing) == 1 else 'they'} must be selected explicitly. Only a complete SDNQ pipeline install (transformer + CLIP + T5 + VAE) can supply these itself. What it means
When loading a FLUX model that is not a complete self-contained SDNQ pipeline, the loader resolves T5 encoder, CLIP embed, and VAE from explicit selections or the main model. If any of the three ends up with no source, it raises ValueError listing the missing components, because FLUX cannot run without them and only a full SDNQ pipeline install can self-supply them.
Source
Thrown at invokeai/app/invocations/flux_model_loader.py:112
self_contained = is_self_contained_sdnq_flux1_pipeline(main_config)
def resolve(selected: ModelIdentifierField | None) -> ModelIdentifierField | None:
"""Explicit selection wins; otherwise the main model supplies the part if it can."""
if selected is not None:
return selected
return self.model if self_contained else None
t5_source = resolve(self.t5_encoder_model)
clip_source = resolve(self.clip_embed_model)
vae_source = resolve(self.vae_model)
missing = [
title
for title, source in (("T5 Encoder", t5_source), ("CLIP Embed", clip_source), ("VAE", vae_source))
if source is None
]
if missing:
raise ValueError(
f"The selected FLUX model does not ship its own {', '.join(missing)}, so "
f"{'it' if len(missing) == 1 else 'they'} must be selected explicitly. Only a complete "
"SDNQ pipeline install (transformer + CLIP + T5 + VAE) can supply these itself."
)
transformer = self.model.model_copy(update={"submodel_type": SubModelType.Transformer})
vae = vae_source.model_copy(update={"submodel_type": SubModelType.VAE})
tokenizer = clip_source.model_copy(update={"submodel_type": SubModelType.Tokenizer})
clip_encoder = clip_source.model_copy(update={"submodel_type": SubModelType.TextEncoder})
if t5_source is self.model:
# The pipeline's own T5 lives in the slots discovery recorded, not behind the standalone
# T5 bundle layouts `preprocess_t5_*` exists to normalize.
tokenizer2 = t5_source.model_copy(update={"submodel_type": SubModelType.Tokenizer2})
t5_encoder = t5_source.model_copy(update={"submodel_type": SubModelType.TextEncoder2})
else:
tokenizer2 = preprocess_t5_tokenizer_model_identifier(t5_source)View on GitHub (pinned to 0b6a024f2f)
Solutions
- Select explicit T5 encoder, CLIP embed, and VAE models in the FLUX loader node fields
- Install a complete SDNQ FLUX pipeline (transformer + CLIP + T5 + VAE)
- Install the missing companion models and point the node at them
- Check is_self_contained_sdnq_flux1_pipeline applicability or use a complete model folder
Example fix
// before: transformer-only selection, no companions FluxModelLoader(model=flux_key) // after FluxModelLoader(model=flux_key, t5_encoder_model=t5_key, clip_embed_model=clip_key, vae_model=vae_key)
Defensive patterns
Strategy: validation
Validate before calling
# ensure explicit selections exist and are set when the main model is not a full SDNQ pipeline
assert t5_encoder_model and clip_embed_model and vae_model, "Select T5, CLIP and VAE explicitly"
for m in (t5_encoder_model, clip_embed_model, vae_model):
assert context.models.exists(m.key), f"Missing companion model {m.key}" Type guard
def has_all_companions(t5, clip, vae) -> bool:
return t5 is not None and clip is not None and vae is not None Try / catch
try:
output = loader.invoke(context)
except ValueError as e:
if 'must be selected explicitly' in str(e):
# provide t5_encoder_model/clip_embed_model/vae_model or install full SDNQ pipeline
pass
else:
raise Prevention
- Always select explicit T5/CLIP/VAE companions unless using a full SDNQ pipeline install
- Install complete FLUX pipelines (transformer + CLIP + T5 + VAE)
- Never delete companion models a workflow depends on
When it happens
Trigger: invoke() with a partial/incomplete FLUX install (transformer-only) and no explicit t5_encoder_model/clip_embed_model/vae_model selections, or selections that failed resolution, so missing != [] after source resolution.
Common situations: Installing only the FLUX transformer checkpoint without T5/CLIP/VAE companions; a non-SDNQ FLUX model missing VAE; deleting a companion model while the workflow relied on the main model to supply it.
Related errors
- Unknown model: {key}
- Unknown lora: {lora.lora.key}!
- LoRA model is in unsupported FLUX format
- Unknown lora: {lora.lora.key}!
- No VAE source provided. Single-file / GGUF transformers requ
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/6f4787898f5bc08c.
Report an issue: GitHub.