zhenzhen-MiniMax-H3-Multimodal-Video-lowprice
MiniMax-H3 video in ComfyUI with no 42 GB download and no GPU
- api_config
- first_frame
- last_frame
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- image8
- image9
- video1
- video2
- video3
- audio1
- audio2
- audio3
- drive_audio
- video
- video_url
- task_id
- response
If the name sounds like a mouthful, that's because it's doing a lot of work. zhenzhen-MiniMax-H3-Multimodal-Video-lowprice is an API-wrapper node for MiniMax H3 - the 33B omni-modal video model whose open weights are famously licence-locked out of the US, EU, UK and Korea. This node doesn't run those weights. It calls zhenzhen's cheap-shop API (default endpoint https://api.seedance.nz), waits for a paid job to finish on someone else's servers, and drops the finished MP4 back into your graph as a native ComfyUI VIDEO.
Why reach for it? Two honest answers. You want MiniMax H3 clips and you can't legally run the local weights in your region - the API path is the one door that stays open. Or you just don't want to babysit a ~42 GB model download for a clip you need now. It's the same trade as every reseller-node: per-call cost and your inputs leaving the machine, in exchange for no VRAM and no install beyond a Python package. This is a "run one clip" node, not your whole pipeline.
How it actually works
Under the hood it's the standard submit-poll-download dance. Mechanically: the node uploads your reference images as PNG, your reference videos as MP4, and your audio as WAV to the API, then builds one omni-modal content array - text plus first/last frame, up to 9 reference images, 3 reference videos, 3 reference audios, and optionally one "drive" audio - and POSTs it to /v2/video_generation. Then it polls until the job finishes and downloads the result. That unified text/image/video/audio input is what makes H3 "multimodal": the model sees it all as one context, not chained separate steps.
The inputs that matter
You mostly set four things; the rest can stay at defaults:
- prompt - required and non-empty, this is the engine. Nothing generates without it.
- duration - 4 to 60 seconds (default 4). Quirk worth knowing: past 15 seconds the node insists you connect a
drive_audio, so long silent clips aren't a thing here. - resolution -
480Por768P. Start at 480P; it's the cheaper tier and plenty to check whether an idea lands before paying for 768P. - ratio - 11 options including the fixed ones (
16:9,9:16,1:1, ...) plusadaptive,auto,api_default. For pure text prompts you must pick a fixed ratio;adaptive/autoonly work when you've connected a first or last frame.
The optional media slots are the interesting half: first_frame/last_frame for keyframed i2v, image1–image9 as references, video1–video3 (each with its own videoN_start_seconds to set where in the reference clip the model starts reading), audio1–audio3, and drive_audio. The audio_mode, denoise_strength and add_drive_as_reference controls only matter when a drive audio is connected - lock_source, remix_source and reference_only are audio-dubbing modes, so leave audio_mode on api_default unless you're doing that. The seed is ComfyUI cache control only: it is not sent to the API, and fixed reuses the cached result without recharging you.
Outputs
Four of them: video (native VIDEO, plug it into SaveVideo or any video preview), video_url (the raw MP4 link, handy for re-downloading later), task_id (your receipt for the job on the shop's task page), and response (the full JSON if you want to poke at what came back).
Installing and wiring it
The pack is T8mars/Comfyui-zhenzhen. Easiest route: ComfyUI Manager → search "Comfyui-zhenzhen" → install, then restart. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Restart ComfyUI. Manager pulls in the requirements (aiohttp, openai, opencv-python, transformers and friends - nothing exotic; torch is already there). No model files to download - that's the whole point.
Then you need an API key from the cheap shop itself (sign up at api.seedance.nz, the "国内版平价AI小铺" link in the README) and wire it through one of the pack's settings nodes. The example workflows use T8Zhenzhen_API_Settings, which defaults to the seedance_low_price base URL - connect its api_config output to this node and paste your key in. Alternatively set the SEEDANCE_API_KEY environment variable and skip the settings node entirely.
Where people get burned
First, billing. Each run is a paid job. The node deliberately does not retry a submit when the response times out - the server may already have charged you. So when a run goes quiet, don't spam it: check the shop's async-task page for your task_id before re-running. The author is upfront that 500s happen upstream ("just run it again").
Second, the validator gives you readable errors - empty prompt, >15s without drive audio, adaptive ratio with no keyframe - so read the red text instead of fighting it. And outside China the cheap-shop endpoint needs a stable connection; slow cross-border downloads are exactly why the pack bundles retry logic and custom TLS roots. If a clip fails at download, video_url is your escape hatch - grab it and fetch it manually.
Inputs (32)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | MiniMax-H3 | 1 options: MiniMax-H3 |
| prompt | STRING | — | |
| duration | INT | 44–60 | — |
| resolution | COMBO | 480P | 2 options: 480P, 768P |
| ratio | COMBO | 16:9 | 11 options: 16:9, 1:1, 2:3, 3:2, 3:4, 4:3, +5 |
| audio_mode | COMBO | api_default | 5 options: api_default, lock_source, remix_source, reference_only, native |
| denoise_strength | FLOAT | 0.350–1 | — |
| add_drive_as_reference | COMBO | api_default | 3 options: api_default, true, false |
| video1_start_seconds | FLOAT | 0.00–3600 | — |
| video2_start_seconds | FLOAT | 0.00–3600 | — |
| video3_start_seconds | FLOAT | 0.00–3600 | — |
| api_configopt | ZHENZHEN_SEEDANCE2_CONFIG | — | |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| image5opt | IMAGE | — | |
| image6opt | IMAGE | — | |
| image7opt | IMAGE | — | |
| image8opt | IMAGE | — | |
| image9opt | IMAGE | — | |
| video1opt | VIDEO | — | |
| video2opt | VIDEO | — | |
| video3opt | VIDEO | — | |
| audio1opt | AUDIO | — | |
| audio2opt | AUDIO | — | |
| audio3opt | AUDIO | — | |
| drive_audioopt | AUDIO | — | |
| skip_erroropt | BOOLEAN | false | — |
| seedopt | INT | 00–18446744073709550000 | Execution seed for ComfyUI cache control. Fixed reuses the cached result; randomize/increment/decrement requests a new run. This compatibility seed is not sent to APIs that do not expose a native seed parameter. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| task_id | STRING | — |
| response | STRING | — |