ATH-MaaS/Pixelle-Video · error · Exception

workflow execution failed: {synthesis_result.msg}

Error message

workflow execution failed: {synthesis_result.msg}

What it means

In the alternate digital-human flow, the synthesis workflow (image+text generation) is run via kit.execute; when its status != 'completed', the Exception reports synthesis_result.msg. The synthesis step itself failed in ComfyUI/RunningHub before TTS could start.

Source

Thrown at web/pipelines/digital_human.py:827

                                        prompt=(
                                            f"请为商品“{goods_title}”写一段适合数字人口播短视频的中文推广文案。"
                                            "要求自然、有吸引力,控制在80字以内,只输出文案正文。"
                                        ),
                                        temperature=0.7,
                                        max_tokens=300,
                                    )
                                else:
                                    workflow_path = first_workflow_path
                                    workflow_params = {"firstimage": character_assets[0], "secondimage": goods_assets[0], "goodstype": goods_title}
                                    kit = await pixelle_video._get_or_create_comfykit()
                                    workflow_config = json.load(open(workflow_path, 'r', encoding='utf8'))
                                    if workflow_config.get("source") == "runninghub" and "workflow_id" in workflow_config:
                                        workflow_input = workflow_config["workflow_id"]
                                    else:
                                        workflow_input = str(workflow_config)
                                    synthesis_result = await kit.execute(workflow_input, workflow_params)
                                    if synthesis_result.status != "completed":
                                        raise Exception(f"workflow execution failed: {synthesis_result.msg}")
                                    generated_image_url = getattr(synthesis_result, "images", [None])[0]
                                    generated_text = getattr(synthesis_result, "texts", [None])[0]
                                
                                status_text.text(tr("progress.step_audio"))
                                audio_path = os.path.join(task_dir, "narration.mp3")
                                tts_inference_mode = video_params.get("tts_inference_mode", "local")
                                tts_voice = video_params.get("tts_voice")
                                tts_speed = video_params.get("tts_speed")
                                tts_workflow = video_params.get("tts_workflow")
                                ref_audio = video_params.get("ref_audio")

                                tts_kwargs = {
                                    "text": generated_text,
                                    "output_path": audio_path,
                                    "inference_mode": tts_inference_mode
                                }
                                if tts_inference_mode == "local":
                                    tts_kwargs["voice"] = tts_voice

View on GitHub (pinned to 848b054e4f)

Solutions

  1. Inspect synthesis_result.msg for the root cause and fix the offending node/input
  2. Run the synthesis workflow directly in ComfyUI with identical parameters to reproduce
  3. Verify RunningHub workflow_id and account status when source == 'runninghub'
  4. Install missing custom nodes / free VRAM, then retry the task
Defensive patterns

Strategy: try-catch

Validate before calling

if workflow_config.get("source") == "runninghub":
    assert workflow_config.get("workflow_id"), "Synthesis workflow requires a workflow_id for RunningHub"
assert Path(source_image_path).is_file(), "Synthesis input image missing"

Try / catch

try:
    await generate_digital_human_video(...)
except Exception as e:
    if str(e).startswith("workflow execution failed"):
        st.error(f"Synthesis workflow failed: {e}")  # includes synthesis_result.msg
        # fix node/input per msg, then retry

Prevention

When it happens

Trigger: The synthesis workflow returns a failed status due to node errors, invalid inputs (source image/text), missing custom nodes, or RunningHub API problems.

Common situations: RunningHub workflow_id invalid or quota exhausted; input image rejected; GPU/VRAM exhaustion on the ComfyUI server; required node pack not installed.

Related errors


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