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_voiceView on GitHub (pinned to 848b054e4f)
Solutions
- Inspect synthesis_result.msg for the root cause and fix the offending node/input
- Run the synthesis workflow directly in ComfyUI with identical parameters to reproduce
- Verify RunningHub workflow_id and account status when source == 'runninghub'
- 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
- Dry-run the synthesis workflow with real inputs before pipeline runs
- Confirm RunningHub workflow_id validity and quota for API-sourced workflows
- Install required custom node packs and monitor VRAM on the ComfyUI server
- Capture and alert on synthesis_result.msg early to shorten debug cycles
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
- Media generation failed: {error_msg}
- TTS generation failed: {error_msg}
- workflow execution failed: {combine_image.msg}
- Image analysis failed: {error_msg}
- No default workflow configured for {self.service_name}. Plea
AI-assisted analysis of ATH-MaaS/Pixelle-Video@848b054e4f (2026-08-30).
Data as JSON: /api/errors/dcd8866096afb53a.
Report an issue: GitHub.