ATH-MaaS/Pixelle-Video · error · ValueError
No assets provided. Please upload at least one image or vide
Error message
No assets provided. Please upload at least one image or video.
What it means
The asset_based pipeline requires at least one image or video to operate on. setup_environment reads context.request['assets'] and raises ValueError when the list is empty or missing, before any asset analysis starts.
Source
Thrown at pixelle_video/pipelines/asset_based.py:187
context: Pipeline context with assets list
Returns:
Updated context with asset_index
"""
# Create isolated task directory
task_dir, task_id = create_task_output_dir()
context.task_id = task_id
context.task_dir = Path(task_dir) # Convert to Path for easier usage
# Determine final video path
context.final_video_path = get_task_final_video_path(task_id)
logger.info(f"📁 Task directory created: {task_dir}")
logger.info("🔍 Analyzing uploaded assets...")
assets: List[str] = context.request.get("assets", [])
if not assets:
raise ValueError("No assets provided. Please upload at least one image or video.")
total_assets = len(assets)
logger.info(f"Found {total_assets} assets to analyze")
# Emit initial progress (0-15% for asset analysis)
self._emit_progress(ProgressEvent(
event_type="analyzing_assets",
progress=0.01,
frame_current=0,
frame_total=total_assets,
extra_info="start"
))
self.asset_index = {}
for i, asset_path in enumerate(assets, 1):
asset_path_obj = Path(asset_path)
View on GitHub (pinned to 848b054e4f)
Solutions
- Add at least one image or video path to the request's 'assets' list before invoking the pipeline
- Verify the upload step actually stores file paths under the request key 'assets' (not another key)
- If the intent was text-to-video with no assets, switch to a pipeline that supports text-only generation
Example fix
# before
await pipeline(text="a cat surfing", request={})
# after
await pipeline(text="a cat surfing", request={"assets": ["/tmp/uploads/cat.jpg"]}) Defensive patterns
Strategy: validation
Validate before calling
assets = request.get("assets") or []
if not assets:
raise ValueError("assets must contain at least one image or video path") Type guard
def has_assets(req: dict) -> bool:
a = req.get("assets")
return isinstance(a, (list, tuple)) and len(a) > 0 Try / catch
try:
result = await pipeline(request=req)
except ValueError as e:
if "No assets provided" in str(e):
result = await text_only_pipeline(request=req)
else:
raise Prevention
- Always populate request['assets'] with at least one path before calling asset-based pipelines
- Validate the request payload in your app layer before dispatching to a pipeline
- Route asset-less requests to a text-only pipeline instead
When it happens
Trigger: Calling the asset-based pipeline (via __call__/service.generate_video) without an 'assets' key in the request, or with assets: [].
Common situations: Text-only prompt submitted to a pipeline that fundamentally needs reference media; frontend forgot to include uploaded file paths; assets uploaded under a different request key (e.g. 'images'/'media') so the default [] kicks in.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- Unknown pipeline: '{pipeline}'. Available pipelines: {availa
- API video models require image_path, first_clip_path, or ref
- frame_template is required to determine media size
- Progress must be between 0.0 and 1.0, got {self.progress}
- Image file not found: {image_path}
AI-assisted analysis of ATH-MaaS/Pixelle-Video@848b054e4f (2026-08-30).
Data as JSON: /api/errors/e325a3555679c7da.
Report an issue: GitHub.