ATH-MaaS/Pixelle-Video · error · RuntimeError

请先在素材分析服务中选择 API VLM 模型。 / Please select an API VLM model in

Error message

请先在素材分析服务中选择 API VLM 模型。 / Please select an API VLM model in the asset analysis service settings.

What it means

In web/pipelines/asset_based.py's _render_output_preview, before executing the asset-based pipeline it validates that when video_params['source'] == 'api' an analysis VLM model is selected, raising RuntimeError with a localized (zh/en) message. This prevents calling the asset analysis service without a configured API VLM model.

Source

Thrown at web/pipelines/asset_based.py:570

                                current=event.frame_current,
                                total=event.frame_total
                            )
                        elif event.event_type == "concatenating":
                            if event.extra_info == "complete":
                                message = tr("asset_based.progress.concat_complete")
                            else:
                                message = tr("progress.concatenating")
                        elif event.event_type == "completed":
                            message = tr("progress.completed")
                        else:
                            message = tr(f"progress.{event.event_type}")
                        
                        status_text.text(message)
                        progress_bar.progress(min(int(event.progress * 100), 99))
                    
                    # Execute pipeline with progress callback
                    if video_params.get("source") == "api" and not video_params.get("analysis_vlm_model"):
                        raise RuntimeError(
                            "请先在素材分析服务中选择 API VLM 模型。"
                            if get_language() == "zh_CN"
                            else "Please select an API VLM model in the asset analysis service settings."
                        )

                    ctx = run_async(pipeline(
                        assets=video_params["assets"],
                        video_title=video_params.get("video_title", ""),
                        intent=video_params.get("intent"),
                        duration=video_params.get("duration", 30),
                        source=video_params.get("source", "runninghub"),
                        analysis_image_workflow=video_params.get("analysis_image_workflow"),
                        analysis_video_workflow=video_params.get("analysis_video_workflow"),
                        analysis_vlm_model=video_params.get("analysis_vlm_model"),
                        bgm_path=video_params.get("bgm_path"),
                        bgm_volume=video_params.get("bgm_volume", 0.2),
                        bgm_mode=video_params.get("bgm_mode", "loop"),
                        api_video_workflow=video_params.get("api_video_workflow"),

View on GitHub (pinned to 848b054e4f)

Solutions

  1. Open the asset analysis service settings and choose an API VLM model from the dropdown
  2. Save the settings and verify analysis_vlm_model is persisted in video_params
  3. If the dropdown is empty, check API credentials/endpoint so the model list can load
  4. Switch source to 'local' if you intend to use a local VLM instead

Example fix

// before
video_params = {"source": "api"}  # analysis_vlm_model missing
// after
video_params = {"source": "api", "analysis_vlm_model": "glm-4v"}
Defensive patterns

Strategy: validation

Validate before calling

if video_params.get("source") == "api" and not video_params.get("analysis_vlm_model"):
    raise ValueError("Select an API VLM model in asset analysis settings before generating.")

Try / catch

try:
    run_async(pipeline(...))
except RuntimeError as e:
    if "VLM model" in str(e):
        st.error("Please select an API VLM model in the asset analysis service settings.")

Prevention

When it happens

Trigger: User selects 'api' as the asset-analysis source in the UI but leaves the analysis_vlm_model dropdown empty, then clicks generate; render() -> _render_output_preview() reaches the check and raises.

Common situations: Fresh install where the model list hasn't been fetched, so the dropdown stays empty; user switched source from 'local' to 'api' without picking a model; saved settings lost the model field after an upgrade.

Understand the failure class

Background: "X is required", "must be set", "cannot be empty": the missing-required-config error family, from Vertex AI project/location to WeChat keys — this error's family across 18 libraries.

Related errors


AI-assisted analysis of ATH-MaaS/Pixelle-Video@848b054e4f (2026-08-30). Data as JSON: /api/errors/e8900393ddd3069f. Report an issue: GitHub.