{"record":{"id":"a641a8a4f90a25d5","repo":"invoke-ai/InvokeAI","slug":"unsupported-submodel-type-for-want5encoder-submo","errorCode":null,"errorMessage":"Unsupported submodel type for WanT5Encoder: {submodel_type.value if submodel_type else 'None'}","messagePattern":"Unsupported submodel type for WanT5Encoder: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"invokeai/backend/model_manager/load/model_loaders/wan.py","lineNumber":592,"sourceCode":"            target = nested_text_encoder if nested_text_encoder.exists() else root\n            return UMT5EncoderModel.from_pretrained(\n                str(target),\n                torch_dtype=torch.bfloat16,\n                local_files_only=True,\n            )\n        if submodel_type == SubModelType.Tokenizer:\n            from transformers import AutoTokenizer\n\n            # Prefer a sibling tokenizer/ directory; fall back to the encoder dir\n            # itself, which is normal for \"flat\" downloads.\n            target = (\n                nested_tokenizer\n                if nested_tokenizer.exists()\n                else (nested_text_encoder if nested_text_encoder.exists() else root)\n            )\n            return AutoTokenizer.from_pretrained(str(target), local_files_only=True)\n\n        raise ValueError(\n            f\"Unsupported submodel type for WanT5Encoder: {submodel_type.value if submodel_type else 'None'}\"\n        )\n","sourceCodeStart":574,"sourceCodeEnd":595,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/backend/model_manager/load/model_loaders/wan.py#L574-L595","documentation":"When loading the Wan T5 text encoder's submodels, _load_model only handles SubModelType.Tokenizer and SubModelType.TextEncoder; anything else falls through to this ValueError. The message interpolates the unsupported SubModelType value so you can see which type was requested. It is a guard against asking a T5-encoder loader for a component it never contains (e.g. a VAE or transformer).","triggerScenarios":"Calling _load_model(config, SubModelType.Vae) (or Transformer/Scheduler/etc.) on a Wan model whose submodel dispatch resolves to the WanT5Encoder branch.","commonSituations":"Misconfigured model record where the wrong SubModelType was attached to a Wan T5 encoder entry; iterate-all-submodels scripts that blindly request every SubModelType for each config; copy-pasted loader code from the main-transformer branch.","solutions":["Request only SubModelType.Tokenizer or SubModelType.TextEncoder for the Wan T5 encoder entry.","Check your model-config records: the submodel listing for the T5 encoder should not include VAE/transformer entries; fix the config or re-convert the model.","If you iterate submodels generically, filter by the model's supported submodel types before calling the loader."],"exampleFix":"// before\nenc = loader._load_model(t5_config, SubModelType.Vae)\n\n// after\nenc = loader._load_model(t5_config, SubModelType.TextEncoder)\ntok = loader._load_model(t5_config, SubModelType.Tokenizer)","handlingStrategy":"type-guard","validationCode":"SUPPORTED = {SubModelType.Tokenizer, SubModelType.TextEncoder}\nif submodel_type not in SUPPORTED:\n    raise ValueError(f\"WanT5Encoder supports only {SUPPORTED}, got {submodel_type}\")","typeGuard":"def is_t5_submodel(st: SubModelType | None) -> bool:\n    return st in (SubModelType.Tokenizer, SubModelType.TextEncoder)","tryCatchPattern":"try:\n    model = loader._load_model(t5_config, submodel_type)\nexcept ValueError as e:\n    if \"Unsupported submodel type for WanT5Encoder\" in str(e):\n        logging.warning(\"skipping unsupported submodel request: %s\", submodel_type)\n    else:\n        raise","preventionTips":["Only register Tokenizer/TextEncoder submodels on Wan T5 encoder model records.","When iterating all SubModelType values, filter against the model's actual submodel list first.","Validate converted Wan model folders include text_encoder/ and tokenizer/ directories."],"tags":["python","valueerror","model-loading","unsupported-type"],"backgroundTag":"unsupported-submodel-type","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}