unslothai/unsloth · error · ValueError

Non-GGUF video loads are limited to unsloth/* repos, the off

Error message

Non-GGUF video loads are limited to unsloth/* repos, the official family base repos, and local paths; '{repo_id}' is neither.

What it means

Raised when model_kind is not 'gguf' (pipeline / single_file / diffusers-style loads deserialize arbitrary safetensors) and repo_id is not a trusted source: not an unsloth/* repo, not one of the official family base repos (_TRUSTED_NON_GGUF_VIDEO_REPOS), and not an existing local path. This is a supply-chain guard mirroring the image backend: untrusted repos cannot be deserialized with from_pretrained.

Source

Thrown at studio/backend/core/inference/video.py:1183

            picked = h3_transformer_task(gguf_filename or "")
            if h3_task and h3_task != picked:
                raise ValueError(
                    f"'{Path(gguf_filename or '').name}' is the {picked} partition, but the "
                    f"load asked for {h3_task}. Pick the matching checkpoint."
                )
        else:
            # Refuse a too-old diffusers here rather than deep in the load.
            from .diffusion_families import assert_pipeline_class_available
            assert_pipeline_class_available(fam.pipeline_class, fam.name)
            if fam.modular_workflow:
                import diffusers
                if not hasattr(diffusers, fam.transformer_class):
                    raise ValueError(
                        "MiniMax-H3 needs the Diffusers revision bundled with this Studio "
                        "version. Reinstall Studio dependencies and retry."
                    )
        if kind != "gguf" and not _is_trusted_video_repo(repo_id):
            raise ValueError(
                f"Non-GGUF video loads are limited to unsloth/* repos, the official "
                f"family base repos, and local paths; '{repo_id}' is neither."
            )
        # Companions load with from_pretrained, so a base repo is held to the non-GGUF bar: a GGUF pick must not smuggle in a remote base.
        if base_repo and (base_repo or "").strip() and not _is_trusted_video_repo(base_repo):
            raise ValueError(
                f"base_repo is limited to unsloth/* repos, the official family base "
                f"repos, and local paths; '{base_repo}' is neither."
            )
        # A local base_repo loads as a full pipeline (needs model_index.json); reject a non-pipeline one here, before the load.
        from core.inference.diffusion import _assert_local_base_is_pipeline

        _assert_local_base_is_pipeline(base_repo)
        if kind in ("gguf", "single_file") and not gguf_filename:
            raise ValueError("A gguf/single_file load needs the checkpoint filename.")
        if kind in ("gguf", "single_file") and fam.is_moe:
            # A single checkpoint carries one expert; the other would load dense bf16, off-plan.
            raise ValueError(

View on GitHub (pinned to 203007d190)

Solutions

  1. Use the official family base repo (e.g. the family's base_repo) or an unsloth/* mirror of the model.
  2. Or download/clone the model to a local directory and pass that path as repo_id (existing local paths are trusted).
  3. For quantized single-file loads, use model_kind='gguf' with a .gguf checkpoint instead, which is not subject to this bar.
  4. If the repo genuinely should be trusted, it must be added to _TRUSTED_NON_GGUF_VIDEO_REPOS in the codebase.

Example fix

# before
load(repo_id='randomuser/Wan2.5-fp8', model_kind='pipeline')

# after
load(repo_id='unsloth/Wan2.5', model_kind='pipeline')
# or a local path
load(repo_id='/models/wan25', model_kind='pipeline')
Defensive patterns

Strategy: validation

Validate before calling

from core.inference.video import _is_trusted_video_repo

if model_kind != 'gguf' and not _is_trusted_video_repo(repo_id):
    repo_id = fam.base_repo  # or an unsloth/* mirror, or a local path

Type guard

def repo_allowed(repo_id: str, kind: str) -> bool:
    return kind == 'gguf' or _is_trusted_video_repo(repo_id)

Try / catch

try:
    load(...)
except ValueError as e:
    if 'limited to unsloth' in str(e):
        # switch to fam.base_repo / unsloth mirror / local dir, then retry
        raise
    raise

Prevention

When it happens

Trigger: Calling the video load with model_kind='pipeline' (or any non-gguf kind) and repo_id like 'someuser/wan-2.5-fork' — the path does not exist locally, does not start with 'unsloth/', and is not in the trusted base repo set.

Common situations: Pointing at a community mirror or personal fork of a model repo; typo in the org name; expecting an arbitrary HF repo to be allowed like it is for GGUF loads; moving from the GGUF picker to the pipeline picker without changing the repo.

Related errors


AI-assisted analysis of unslothai/unsloth@203007d190 (2026-08-15). Data as JSON: /api/errors/f596cdd0e1667ba9. Report an issue: GitHub.