ATH-MaaS/Pixelle-Video · error · Exception

The workflow did not return a video. Please check the workfl

Error message

The workflow did not return a video. Please check the workflow configuration.

What it means

generate_audio_visual_video iterates ComfyKit node outputs looking for node_output['videos']; if no video URL was produced it raises this Exception before downloading the result. It indicates the workflow ran but no output node emitted a video (or output parsing didn't match).

Source

Thrown at web/pipelines/action_transfer.py:438

                            workflow_input = workflow_config["workflow_id"]
                        else:
                            workflow_input = str(workflow_path)

                        video_result = await kit.execute(workflow_input, workflow_params)

                        generated_video_url = None
                        if hasattr(video_result, 'videos') and video_result.videos:
                            generated_video_url = video_result.videos[0]
                        elif hasattr(video_result, 'outputs') and video_result.outputs:
                            for node_id, node_output in video_result.outputs.items():
                                if isinstance(node_output, dict) and 'videos' in node_output:
                                    videos = node_output['videos']
                                    if videos and len(videos) > 0:
                                        generated_video_url = videos[0]
                                        break

                        if not generated_video_url:
                            raise Exception("The workflow did not return a video. Please check the workflow configuration.")

                        timeout = httpx.Timeout(300.0)
                        async with httpx.AsyncClient(timeout=timeout) as client:
                            response = await client.get(generated_video_url)
                            response.raise_for_status()
                            with open(final_video_path, 'wb') as f:
                                f.write(response.content)
                        progress_bar.progress(100)
                        status_text.text(tr("status.success"))
                        await save_web_generation_history(
                            pixelle_video,
                            task_id=task_id,
                            video_path=final_video_path,
                            pipeline="action_transfer",
                            title="动作迁移" if get_language() == "zh_CN" else "Action Transfer",
                            input_params={
                                "text": prompt,
                                "prompt_text": prompt,

View on GitHub (pinned to 848b054e4f)

Solutions

  1. Open the workflow JSON and confirm it contains a video output node (e.g. VHS_VideoCombine) whose results land under 'videos'
  2. Re-run the workflow in ComfyUI directly to see whether a video is actually produced
  3. Check ComfyUI server logs for node errors that prevented video generation
  4. Fix the output-parsing key if the node emits under a different field
Defensive patterns

Strategy: try-catch

Validate before calling

# Before relying on the pipeline, confirm the workflow JSON has a video output node:
import json
cfg = json.load(open("workflows/<key>.json"))
assert any("VHS_VideoCombine" in str(node) or "video" in str(node).lower() for node in cfg.get("nodes", {}).values()), "No video output node in workflow"

Type guard

def has_video_output(node_output: dict) -> bool:
    videos = node_output.get("videos") if isinstance(node_output, dict) else None
    return isinstance(videos, list) and len(videos) > 0

Try / catch

try:
    url = await generate_audio_visual_video(...)
except Exception as e:
    if "did not return a video" in str(e):
        st.error("Workflow produced no video; check its output node (must emit 'videos').")
        # fall back or re-run with a known-good workflow

Prevention

When it happens

Trigger: kit.execute(workflow_input, workflow_params) completes successfully, but the result's nodes contain no 'videos' list with entries — e.g. the workflow's save node outputs images instead of video, or the workflow lacks a video output node entirely.

Common situations: Editing the workflow JSON and accidentally replacing a VHS/Video save node with a SaveImage node; a workflow that only renders previews; an output node failing silently upstream so the videos list is empty.

Related errors


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