mudler/LocalAI · error · ValueError
base_model must point to a LongCat-Video checkpoint
Error message
base_model must point to a LongCat-Video checkpoint
What it means
ValueError from _load_avatar_model(): when loading the Avatar-1.5 pipeline, the 'base_model' option (or the BASE_MODEL_ID default) must classify as MODEL_KIND_BASE — i.e. point at a LongCat-Video base checkpoint that supplies the tokenizer, UMT5 text encoder, and VAE via the AVATAR_BASE_PATTERNS subfolders. If it resolves to the avatar model itself or something else, the checkpoint resolution for the base components would fetch wrong weights, so it is rejected up front.
Source
Thrown at backend/python/longcat-video/backend.py:472
text_encoder=text_encoder,
vae=vae,
scheduler=scheduler,
dit=dit,
)
self.pipeline.to(self.device_index)
def _load_avatar_model(self, model):
avatar_patterns = list(AVATAR_COMMON_PATTERNS)
model_subfolder = (
"base_model_int8" if self.options["use_int8"] else "base_model"
)
avatar_patterns.append(f"{model_subfolder}/**")
checkpoint = self._resolve_checkpoint(model, avatar_patterns)
base_model = self._resolve_option_path(self.options.get("base_model"))
base_model = base_model or BASE_MODEL_ID
if classify_model(str(base_model)) != MODEL_KIND_BASE:
raise ValueError("base_model must point to a LongCat-Video checkpoint")
base_checkpoint = self._resolve_checkpoint(base_model, AVATAR_BASE_PATTERNS)
dtype = self.torch.bfloat16
overrides = attention_overrides(self.options["attention_backend"])
tokenizer = self.AutoTokenizer.from_pretrained(
base_checkpoint,
subfolder="tokenizer",
)
text_encoder = self.UMT5EncoderModel.from_pretrained(
base_checkpoint,
subfolder="text_encoder",
torch_dtype=dtype,
low_cpu_mem_usage=True,
)
vae = self.AutoencoderKLWan.from_pretrained(
base_checkpoint,
subfolder="vae",
torch_dtype=dtype,View on GitHub (pinned to 44413a9d06)
Solutions
- Set base_model to the LongCat-Video base checkpoint (the repo containing tokenizer/, text_encoder/, vae/ subfolders)
- Or omit base_model so the built-in BASE_MODEL_ID default is used
- Verify the path/id with classify_model-like naming: it must be the base video model, not the avatar variant
Example fix
# before options: base_model: LongCat-Video/Live-LongCat-Video-Avatar-1.5 # after options: base_model: LongCat-Video/Live-LongCat-Video
Defensive patterns
Strategy: validation
Validate before calling
def validate_avatar_options(options: dict) -> dict:
base = options.get("base_model") # None -> backend default, which is valid
if base is not None and "avatar" in str(base).lower():
raise ValueError("base_model must be a LongCat-Video base checkpoint, not the avatar model")
return options Try / catch
try:
stub.LoadModel(opts)
except grpc.RpcError as e:
if "base_model" in (e.details() or ""):
opts["options"].pop("base_model", None) # let backend use its default base
stub.LoadModel(opts)
else:
raise Prevention
- Omit base_model unless you deliberately host the base checkpoint at a custom location
- Keep base and avatar checkpoint ids in named constants to avoid copy-paste swaps
When it happens
Trigger: Setting options.base_model to the avatar repo (circular: avatar needs a *base* checkpoint); pointing base_model at an unrelated HF repo or local dir; default BASE_MODEL_ID unavailable and overridden with a wrong id.
Common situations: Users set every option to the same avatar model id thinking it is a fallback; local offline setups where base_model is redirected to a local path that only contains avatar weights.
Related errors
- resolution must be 480p or 720p
- request needs {segments} avatar segments, but max_segments i
- {name} must be true or false
- {name} must be an integer
- {name} must be a number
AI-assisted analysis of mudler/LocalAI@44413a9d06 (2026-08-15).
Data as JSON: /api/errors/cca0bdbd6fb9587e.
Report an issue: GitHub.