invoke-ai/InvokeAI · error · ValueError
'Transformer (Low Noise)' must be a single-file Wan model (G
Error message
'Transformer (Low Noise)' must be a single-file Wan model (GGUF or checkpoint). '{low_config.name}' is in {low_config.format.value} format. What it means
WanModelLoaderInvocation validates that the 'Transformer (Low Noise)' input is a single-file Wan model (GGUF or checkpoint format, membership in _SINGLE_FILE_FORMATS). If the low-noise model's config format is anything else (e.g., a diffusers folder-style model), invoke raises this ValueError naming the model and its format. Dual-expert loading is only implemented through the single-file loaders, which both produce a plain WanTransformer3DModel.
Source
Thrown at invokeai/app/invocations/wan_model_loader.py:176
if self.transformer_low_noise_model is not None and main_variant == WanVariantType.TI2V_5B:
# The field's own docs promise this input is ignored for the
# single-expert TI2V-5B — e.g. a leftover wire from an A14B session.
context.logger.warning("'Transformer (Low Noise)' is ignored for the single-expert TI2V-5B variant.")
if self.transformer_low_noise_model is not None and main_variant != WanVariantType.TI2V_5B:
if self.transformer_low_noise_model.key == self.model.key:
raise ValueError(
"The same model is wired to both 'Transformer' and 'Transformer (Low Noise)'. "
"A Wan A14B expert pair needs two different single-file models."
)
low_config = context.models.get_config(self.transformer_low_noise_model)
self._validate_main_config(low_config, "Transformer (Low Noise)")
# The two experts don't have to share a format — both single-file
# loaders produce a plain WanTransformer3DModel, so a GGUF high-noise
# expert pairs fine with a safetensors low-noise one.
if low_config.format not in _SINGLE_FILE_FORMATS:
raise ValueError(
f"'Transformer (Low Noise)' must be a single-file Wan model (GGUF or checkpoint). "
f"'{low_config.name}' is in {low_config.format.value} format."
)
low_id = self.transformer_low_noise_model.model_copy(update={"submodel_type": SubModelType.Transformer})
low_expert = getattr(low_config, "expert", "none")
if getattr(low_config, "variant", None) != main_variant:
low_variant = getattr(low_config, "variant", None)
raise ValueError(
"The high-noise and low-noise models must use the same Wan variant, but "
f"'{main_config.name}' is {main_variant.value} and '{low_config.name}' is "
f"{getattr(low_variant, 'value', low_variant)}."
)
# The expert tag is a filename heuristic, so 'none' (untagged) is common on
# community finetunes. The wiring itself is explicit user intent — main slot
# = high, low-noise slot = low — so an untagged file is taken at its wired
# position (or inferred as the complement of its tagged partner). Only aView on GitHub (pinned to 0b6a024f2f)
Solutions
- Install the low-noise expert as a single file (safetensors checkpoint or GGUF) and re-select it in 'Transformer (Low Noise)'.
- Convert/download a single-file checkpoint of the low-noise expert (e.g., from the official Wan 2.2 release safetensors or a GGUF quant).
- Confirm the model's detected format in the model manager before wiring it.
Example fix
// before low_config.format # ModelFormat.Diffusers -> ValueError // after: use a single-file low-noise expert low_config.format in _SINGLE_FILE_FORMATS # e.g. GGUF or Checkpoint/Safetensors single file
Defensive patterns
Strategy: validation
Validate before calling
low_config = context.models.get_config(transformer_low_noise_model)
SINGLE_FILE = {ModelFormat.GGUF, ModelFormat.Checkpoint} # per _SINGLE_FILE_FORMATS
if low_config.format not in SINGLE_FILE:
raise ValueError(f"{low_config.name} must be GGUF or single-file checkpoint, got {low_config.format.value}") Type guard
def is_single_file_wan(config) -> bool:
return config.format in {ModelFormat.GGUF, ModelFormat.Checkpoint} Try / catch
try:
out = wan_model_loader.invoke(context)
except ValueError as e:
if "must be a single-file Wan model" in str(e):
install_single_file_low_noise_expert()
else:
raise Prevention
- Install A14B experts as safetensors checkpoints or GGUF files, not diffusers folders.
- Check the model manager's detected format before wiring the low-noise slot.
- Convert diffusers-format experts to single-file if dual-expert loading is required.
When it happens
Trigger: Wiring a diffusers-format (directory) Wan model into 'Transformer (Low Noise)' on an A14B setup; any non-single-file format value for low_config.format when the field is populated and main variant is not TI2V-5B.
Common situations: Users who downloaded Wan A14B experts as diffusers repositories and installed them via the diffusers model path; mixed installs where the high-noise expert is a GGUF single file but the low-noise one is a diffusers folder.
Related errors
- The same model is wired to both 'Transformer' and 'Transform
- The high-noise and low-noise models must use the same Wan va
- Both selected models are tagged as the {primary_expert}-nois
- No VAE source provided. Single-file / GGUF transformers requ
- No Mistral encoder source provided. Single-file / GGUF trans
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/a01752bb6216d3a8.
Report an issue: GitHub.