Haiper Text to Video
Type a prompt, get a real video — no GPU required
- output_video_path
Haiper Text to Video is the whole reason to install this pack: you type a prompt, and up to six seconds of video comes back. It's a cloud API node - Haiper's model does the actual generation on their servers, so your GPU does nothing but sit there. If you've been staring at local video models and their multi-gigabyte downloads and VRAM budgets with dread, this is the "I just want a clip" escape hatch, at the cost of a per-second fee and a wait.
This is one of four nodes in Haiper's official ComfyUI pack (announced by the company on r/comfyui in late 2024). Knowing it's the vendor's own code matters: custom nodes run arbitrary Python on import, and the community has learned the hard way to be picky about what it loads. A pack you can trace straight back to the model maker's repo is the safe end of that spectrum.
How it works
It's a wrapper with almost no local logic. The node POSTs your prompt to Haiper's text2video endpoint, then polls the job status every 20 seconds, updating the ComfyUI progress bar as the cloud job advances. When the status flips to succeed, it requests the watermark-free version of your video and downloads the MP4 to a temp folder. Expect your queue to be occupied for a couple of minutes per clip - this is a blocking node, so grab a coffee.
The one output, output_video_path, is a STRING - a file path, not a video tensor, and not in ComfyUI's output directory. To preview it you wire that string into VHS_LoadVideoPath (from ComfyUI-VideoHelperSuite) and run the result through VHS_VideoCombine to keep a copy somewhere permanent. The pack's example workflows do exactly this, so install VideoHelperSuite first if you don't have it.
The inputs that matter
Only prompt is required. Everything else is optional with sane defaults:
negative_prompt- default is the tersebad, slow. Worth writing a real one; these cloud models respond to it.aspect_ratio- a string, default16:9. Documented options:21:9,16:9,9:16,3:4,4:3,1:1.duration- 1–6 in the widget; 4 and 6 are the documented API values. Since video is billed per second, this is your price tag too.resolution- 720 by default; 540 and 720 are the priced tiers.seed- -1 for random, or set one to re-roll/reproduce.use_ff_cond- first-frame conditioning, on by default. Leave it alone until you have a reason.is_enable_prompt_enhancer- an AI prompt upgrader, on by default. If Haiper's rewrite butchers your style, flip it off.is_public- defaults to False. Nice touch: the API's own default is public, but the node keeps your generations private to your account.
Install
You need an API key from haiper.ai/haiper-api - and note that Haiper requires prepaid credit before the API will accept requests, so a bare new account with no top-up will fail. Then:
cd ComfyUI/custom_nodes
git clone https://github.com/Haiper-ai/ComfyUI-HaiperAI-API.git
cd ComfyUI-HaiperAI-API
pip install -r requirements.txt
Open the .env file in that folder, replace the placeholder HAIPER_KEY with your real key, and restart ComfyUI. The key is read once when the module imports, so a restart after editing .env is required - a classic gotcha. Manager users: search "Haiper" or "ComfyUI-HaiperAI-API" (the README's "ComfyUI-HaiperAI-AP" is missing a letter). No model downloads, no heavy dependencies - requests and python-dotenv are the only things you don't already have.
Common issues
The usual first-run failure is authentication - placeholder or mistyped key, no credits, or no restart after editing .env. Don't go debugging your prompt first; check those three. And remember the output lives in a temp directory: if you didn't save it through VHS_VideoCombine, a reboot eats your masterpiece.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | add prompt here | — |
| negative_promptopt | STRING | bad, slow | — |
| seedopt | INT | -1 | — |
| aspect_ratioopt | STRING | 16:9 | — |
| resolutionopt | INT | 720 | — |
| durationopt | INT | 61–6 | — |
| is_publicopt | BOOLEAN | false | — |
| use_ff_condopt | BOOLEAN | true | — |
| is_enable_prompt_enhanceropt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_video_path | STRING | — |