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
- Use the official family base repo (e.g. the family's base_repo) or an unsloth/* mirror of the model.
- Or download/clone the model to a local directory and pass that path as repo_id (existing local paths are trusted).
- For quantized single-file loads, use model_kind='gguf' with a .gguf checkpoint instead, which is not subject to this bar.
- 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
- For non-GGUF loads, default repo_id to fam.base_repo.
- Only deviate with unsloth/* repos or a local snapshot directory.
- Remember the GGUF path is the only kind that accepts arbitrary hub repos.
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
- {_cn_fs.reason}
- base_repo is limited to unsloth/* repos, the official family
- System folders cannot be used for model downloads.
- Credential or config folders cannot be used for model downlo
- This execution artifact is outside the Recipe Studio dataset
AI-assisted analysis of unslothai/unsloth@203007d190 (2026-08-15).
Data as JSON: /api/errors/f596cdd0e1667ba9.
Report an issue: GitHub.