ZhipuAI VideoReportGenerate
How to Fire Off a Zhipu CogVideoX Job From ComfyUI Without Touching Your GPU
- images
- prompt_report_path
- video_report_path
Almost every CogVideoX workflow you'll find for ComfyUI is local: you pull the weights, clear the VRAM, wait through the Diffusion steps. This node is the exact opposite of that. VideoReportGenerate is a remote control for Zhipu's hosted platform - the same Z.ai that open-sourced CogVideoX back when it was the only credible open alternative to Kling and Runway. MetaGLM is Zhipu's own GitHub org, so this is a first-party bridge to their cloud API, not some third-party wrapper. No GPU work happens here; the job runs on their servers and you pay per call (or per your platform quota).
Why would you reach for it? Batch throughput and zero local hardware cost. The node is built around a batch pipeline - one prompt, or one prompt per image, submitted as a dataset. The honest trade-off is the async part: this is a submit node, not a get video node. You get task IDs back immediately and the actual video arrives minutes later, which is why the pack ships a separate pull node and leans hard on a resume cache.
How it works
Under the hood this node drives the zhipuai-platform-video Python package (also by Zhipu), and there are three stages:
- Your prompt, plus any optional images, get written to an Excel dataset under
ComfyUI/output/zhipu/input/(images land asimage_N.png). - Each prompt is expanded by GLM-4-Air, Zhipu's cheap text LLM. Heads-up: the system prompt is hardcoded to ask for a detailed scene description in Chinese, so your
video_promptcolumn will come back in Chinese even if your input is English. - Each expanded prompt (with image, if you fed one) is submitted to
cogvideoxon the platform, and the API returns avideo_task_idper row.
Everything lands as two CSVs in ComfyUI/output/zhipu/output/: prompt_report.csv and video_report.csv (prompts, image paths, and task IDs). The video_report_path is the one that matters - it's what you hand to the pull step.
The cache deserves a mention because it's the pack's best feature. Every API call is keyed by an md5 hash of its inputs and stored in a cache_data/ folder in your ComfyUI root, so re-running a workflow skips completed stages instead of re-billing you. That's the "idempotent" behavior the README brags about, and it's what makes the generate-then-wait-then-pull loop usable.
The inputs that actually matter
Only a few, so this is a short list:
prompt- a multiline string. The only thing you'll touch on every run. (The default, "What is Art?", is a shrug, not advice.)images- optional IMAGE input for image-to-video. Feed aLoadImage→ resize →IMAGEinto it and each image gets its own job.prompt_num_threads/video_num_threads- 1 to 10. These are concurrent API slots, and each slot is rate-limited to roughly one call per 60 seconds. Cranking these to 10 will not give you 10× speed on a free tier; it mostly matters for paid batch quotas.
Outputs are two absolute-path STRINGs: prompt_report_path and video_report_path. Wire the second into VideoReportPull.
Installing it
Easiest route is ComfyUI Manager - search for ComfyUI ZhipuAI Platform and hit install. Or, manually:
cd ComfyUI/custom_nodes
git clone https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform
Then restart ComfyUI. The install pulls the zhipuai-platform-video dependency (plus its tree: zhipuai, langchain-glm, datashaper, openpyxl) automatically - no model files to download, because there's nothing local to download. Two environment requirements you can't skip:
export ZHIPUAI_API_KEY="your_platform_key"
There's no API-key field on any node in this pack; the SDK reads ZHIPUAI_API_KEY from the environment that launches ComfyUI. The other trap is Python: the dependency pins >=3.10,<3.12, so if your ComfyUI venv runs Python 3.12+ the install will refuse to resolve. You'll want a 3.10 or 3.11 environment.
Where people get burned
- Empty prompt raises a hard
Prompt cannot be emptyValueError on the node. Fill it before queueing. - Auth errors (401-style failures from the SDK) mean the key is missing or mistyped - check how ComfyUI was launched, not the node.
- It bills you immediately. The node returns in seconds with task IDs while the video churns server-side. That's by design; don't assume something broke.
- The cache is in your ComfyUI root as
cache_data/. If you ever need to force a fresh submission - same prompt, new run, real re-bill - delete the matching folder there.
Treat the README's example workflow (example/zhipuai_cogvideo_workflow.json) as the reference wiring: LoadImage → resize → Generate → Pull → a text viewer.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | What is Art? | — |
| prompt_num_threads | INT | 11–10 | — |
| video_num_threads | INT | 11–10 | — |
| imagesopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt_report_path | STRING | — |
| video_report_path | STRING | — |