unslothai/unsloth · critical · ValueError
This LTX checkpoint stores scaled fp8 weights, which this lo
Error message
This LTX checkpoint stores scaled fp8 weights, which this loader does not dequantize yet. Use the GGUF quants from unsloth/LTX-2.3-GGUF instead (Q8_0 for the highest fidelity) or the official bf16 checkpoint.
What it means
The LTX-2.3 loader (video_ltx2.py) refuses checkpoints whose transformer weights carry .weight_scale/.input_scale companion tensors — the Lightricks scaled-fp8 single-file format. Casting those weights to bf16 without applying the scales corrupts every quantized layer, so the loader detects the scale keys in the split 'dit' group and raises ValueError pointing at supported alternatives instead of producing garbage output.
Source
Thrown at studio/backend/core/inference/video_ltx2.py:580
import transformers
from diffusers import LTX2Pipeline
from diffusers.loaders.single_file_utils import load_single_file_checkpoint
variant = checkpoint_variant(checkpoint_path)
logger.info(
"video.ltx23_assembly: variant=%s gguf=%s extras=%s",
variant,
is_gguf,
LTX23_EXTRAS_REPO,
)
state = load_single_file_checkpoint(str(checkpoint_path))
groups = _split_checkpoint(state)
del state
# The Lightricks fp8 single files store SCALED float8 weights (.weight_scale/.input_scale companions), and casting without
# the scales corrupts every quantized layer, so refuse loudly and point at the GGUF quants (Q8_0 for highest fidelity).
if any(k.endswith((".weight_scale", ".input_scale")) for k in groups["dit"]):
raise ValueError(
"This LTX checkpoint stores scaled fp8 weights, which this loader does "
"not dequantize yet. Use the GGUF quants from unsloth/LTX-2.3-GGUF "
"instead (Q8_0 for the highest fidelity) or the official bf16 checkpoint."
)
transformer = load_ltx23_transformer(
groups["dit"],
base_repo = base_repo,
torch_dtype = torch_dtype,
is_gguf = is_gguf,
hf_token = hf_token,
)
connectors = load_ltx23_connectors(
groups["connectors"],
variant = variant,
torch_dtype = torch_dtype,
hf_token = hf_token,
)View on GitHub (pinned to 203007d190)
Solutions
- Download the GGUF quants from unsloth/LTX-2.3-GGUF — Q8_0 for highest fidelity (the loader has is_gguf support).
- Or use the official bf16 checkpoint (larger, but loads as-is).
- Do not attempt to strip the scale tensors; the loader is refusing because silent corruption would follow.
Example fix
# before
ckpt = "Lightricks/LTX-2.3...fp8...safetensors" # -> ValueError: scaled fp8
# after
ckpt = hf_hub_download("unsloth/LTX-2.3-GGUF", "LTX-2.3-Q8_0.gguf") Defensive patterns
Strategy: validation
Validate before calling
from safetensors import safe_open
def is_scaled_fp8(ckpt_path) -> bool:
with safe_open(ckpt_path, framework="pt") as f:
return any(k.endswith((".weight_scale", ".input_scale")) for k in f.keys())
if is_scaled_fp8(path):
raise SystemExit("use unsloth/LTX-2.3-GGUF (Q8_0) or the bf16 checkpoint") Try / catch
try:
transformer = load_ltx23(...)
except ValueError as e:
if "scaled fp8" in str(e):
ckpt = hf_hub_download("unsloth/LTX-2.3-GGUF", "LTX-2.3-Q8_0.gguf")
transformer = load_ltx23(..., checkpoint=ckpt)
else:
raise Prevention
- Pin checkpoints to unsloth/LTX-2.3-GGUF or the official bf16 release in configs.
- Do not attempt to dequantize or strip scale tensors yourself — corruption, not savings.
- Pre-scan checkpoint keys for .weight_scale/.input_scale in CI for model-download jobs.
When it happens
Trigger: Loading the Lightricks LTX-2.3 fp8 single-file checkpoint through load_single_file_checkpoint + _split_checkpoint; any checkpoint whose DiT state dict ends up with .weight_scale or .input_scale keys.
Common situations: Downloading the official fp8 release for its smaller size; HuggingFace 'safetensors fp8' variants; version changes where a previously-tolerated format is now explicitly refused rather than mis-loaded.
Related errors
- The requested LoRA adapters could not be applied: baking ada
- This quantized (int8/fp8) load was built without LoRA adapte
- transformer_quant='{requested}' could not be used: {reason}.
- text_encoder_quant='{requested}' could not be used: {reason}
- transformer_quant '{requested_scheme}' is unavailable for '{
AI-assisted analysis of unslothai/unsloth@203007d190 (2026-08-15).
Data as JSON: /api/errors/ef85eb9060d6c05b.
Report an issue: GitHub.