mudler/LocalAI · warning · ValueError
Unknown pipeline: {class_name}
Error message
Unknown pipeline: {class_name} What it means
Raised by get_pipeline_info when the requested class_name is not a key in the pipeline registry — this informational helper requires an exact (case-sensitive) registry hit, unlike resolve_pipeline_class which tolerates case differences. The registry is built from the installed diffusers version's discovered pipelines.
Source
Thrown at backend/python/diffusers/diffusers_dynamic_loader.py:523
def get_pipeline_info(class_name: str) -> Dict[str, Any]:
"""
Get information about a specific pipeline class.
Args:
class_name: The pipeline class name
Returns:
Dictionary with pipeline information including:
- name: Class name
- aliases: List of task aliases
- supports_single_file: Whether from_single_file() is available
- docstring: Class docstring (if available)
"""
registry = get_pipeline_registry()
aliases = get_task_aliases()
if class_name not in registry:
raise ValueError(f"Unknown pipeline: {class_name}")
cls = registry[class_name]
# Find all aliases for this pipeline
pipeline_aliases = []
for alias, classes in aliases.items():
if class_name in classes:
pipeline_aliases.append(alias)
return {
'name': class_name,
'aliases': pipeline_aliases,
'supports_single_file': hasattr(cls, 'from_single_file'),
'docstring': cls.__doc__[:200] if cls.__doc__ else None
}
View on GitHub (pinned to 44413a9d06)
Solutions
- Use the exact class name spelling, e.g. get_pipeline_info('StableDiffusionPipeline').
- Enumerate valid names first via get_available_pipelines() / the registry keys and validate user input against them.
- Upgrade diffusers if the class should exist.
Example fix
# before
info = get_pipeline_info("stable-diffusion-xl-pipeline")
# after
info = get_pipeline_info("StableDiffusionXLPipeline") Defensive patterns
Strategy: validation
Validate before calling
registry = get_pipeline_registry()
assert class_name in registry, f"unknown pipeline {class_name!r}; valid: {sorted(registry)[:20]}" Type guard
def is_registered_pipeline(class_name: str) -> bool:
return class_name in get_pipeline_registry() Try / catch
try:
info = get_pipeline_info(class_name)
except ValueError:
info = None # metadata lookup is optional; degrade gracefully Prevention
- Populate UI dropdowns from get_available_pipelines() so names are always exact.
- Remember this lookup is case-sensitive, unlike resolve_pipeline_class.
- Treat info lookup failures as non-fatal; it is metadata, not loading.
When it happens
Trigger: Calling get_pipeline_info('stableDiffusionPipeline') (wrong case), a slug like 'stable-diffusion-pipeline', or a class unknown to the installed diffusers.
Common situations: UIs or scripts listing pipeline metadata with user free-text input, casing copied from docs that differs from the actual class name, or querying a pipeline from a newer diffusers than installed.
Related errors
- Invalid scheduler '{'k_' if is_karras else ''}{name}'
- Could not find base class '{base_class_name}' in diffusers
- Unknown pipeline class '{class_name}'. Available pipelines:
- Unknown task '{task}'. Available tasks: {', '.join(sorted(al
- voiceCreate.audio.durationError
AI-assisted analysis of mudler/LocalAI@44413a9d06 (2026-08-15).
Data as JSON: /api/errors/3f7cfa0ac1a6cd58.
Report an issue: GitHub.