{"record":{"id":"2c03b360eb65b97b","repo":"ATH-MaaS/Pixelle-Video","slug":"workflow-execution-failed-combine-image-msg","errorCode":null,"errorMessage":"workflow execution failed: {combine_image.msg}","messagePattern":"workflow execution failed: (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"web/pipelines/digital_human.py","lineNumber":723,"sourceCode":"                                        media_type=\"image\",\n                                        image_paths=[character_assets[0], goods_assets[0]],\n                                        output_path=generated_image_path,\n                                        width=1080,\n                                        height=1920,\n                                    )\n                                    generated_image_url = media_result.url\n                                else:\n                                    workflow_path = third_workflow_path\n                                    workflow_params = {\"firstimage\": character_assets[0], \"secondimage\": goods_assets[0]}\n                                    kit = await pixelle_video._get_or_create_comfykit()\n                                    workflow_config = json.load(open(workflow_path, 'r', encoding='utf8'))\n                                    if workflow_config.get(\"source\") == \"runninghub\" and \"workflow_id\" in workflow_config:\n                                        workflow_input = workflow_config[\"workflow_id\"]\n                                    else:\n                                        workflow_input = str(workflow_config)\n                                    combine_image = await kit.execute(workflow_input, workflow_params)\n                                    if combine_image.status != \"completed\":\n                                        raise Exception(f\"workflow execution failed: {combine_image.msg}\")\n                                    generated_image_url = getattr(combine_image, \"images\", [None])[0]\n                                status_text.text(tr(\"progress.step_audio\"))\n                                audio_path = os.path.join(task_dir, \"narration.mp3\")\n                                tts_inference_mode = video_params.get(\"tts_inference_mode\", \"local\")\n                                tts_voice = video_params.get(\"tts_voice\")\n                                tts_speed = video_params.get(\"tts_speed\")\n                                tts_workflow = video_params.get(\"tts_workflow\")\n                                ref_audio = video_params.get(\"ref_audio\")\n\n                                tts_kwargs = {\n                                    \"text\": generated_text,\n                                    \"output_path\": audio_path,\n                                    \"inference_mode\": tts_inference_mode\n                                }\n                                if tts_inference_mode == \"local\":\n                                    tts_kwargs[\"voice\"] = tts_voice\n                                    tts_kwargs[\"speed\"] = tts_speed\n                                elif tts_inference_mode == \"comfyui\":","sourceCodeStart":705,"sourceCodeEnd":741,"githubUrl":"https://github.com/ATH-MaaS/Pixelle-Video/blob/848b054e4fae40dabc62ec58e960b573e83793ac/web/pipelines/digital_human.py#L705-L741","documentation":"In generate_digital_human_video, the first-stage combine-image workflow is executed via kit.execute(workflow_input, workflow_params); if the returned result's status != 'completed', the Exception surfaces the ComfyKit failure message (combine_image.msg). This means the ComfyUI workflow run itself failed.","triggerScenarios":"The combine-image workflow errors server-side (bad node, invalid input image, missing node pack, RunningHub API error) so kit.execute returns a non-completed status with an error message.","commonSituations":"Invalid workflow_id for RunningHub source; missing ComfyUI custom nodes; input image format/size rejected by a node; ComfyUI server overloaded or out of VRAM.","solutions":["Read combine_image.msg in the error for the underlying ComfyUI failure and fix that node/input","Validate the workflow runs in ComfyUI (or RunningHub) directly with the same inputs","For RunningHub source, confirm workflow_id is correct and the account/quota is valid","Install missing custom node packs and retry; check server VRAM/logs"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"# Validate workflow config before execution\nif workflow_config.get(\"source\") == \"runninghub\":\n    assert workflow_config.get(\"workflow_id\"), \"RunningHub workflows need a valid workflow_id\"","typeGuard":null,"tryCatchPattern":"try:\n    await generate_digital_human_video(...)\nexcept Exception as e:\n    if e.__class__ is Exception and str(e).startswith(\"workflow execution failed\"):\n        st.error(f\"Combine-image workflow failed: {e}\")  # underlying msg included\n        # inspect ComfyUI/RunningHub logs, fix node/input, retry","preventionTips":["Test the combine-image workflow in ComfyUI/RunningHub with representative inputs","Install all custom node packs the workflow depends on","Validate RunningHub workflow_id and quota before batch runs","Watch server VRAM; reduce resolution/length on OOM errors"],"tags":["workflow-execution","comfyui","runninghub"],"backgroundTag":"workflow-execution-failed","analyzedSha":"848b054e4fae40dabc62ec58e960b573e83793ac","analyzedAt":"2026-08-30T03:24:41.468Z","schemaVersion":2},"datasetVersion":"2026-08-30T08:17:16.595Z"}