AI-HIVE 视频生成与编辑
Seedance, MiniMax H3 and HappyHorse Video from a ComfyUI Node — for a Metered Fee
- reference_image
- result_urls_json
- task_id
- task_json
Same trick as the image nodes, with video: AI-HIVE 视频生成与编辑 (class AIHiveGenerateVideo) calls the AI-HIVE API and returns a generated clip. Three model families across five modes, all behind one node: seedance_2_5 (ByteDance's flagship video line - closed, API-only, and one of the models the community measures everything else against), minimax_h3 (the Hailuo line, famous for native stereo audio in video), and happyhorse (a Wan-family commercial model). The five generation modes are t2v (text to video), i2v (image to video), r2v (reference to video), edit, and extend.
Mechanically it's the standard AI-HIVE flow: upload any reference image, match your family+mode to a public_model_* id, submit with a pricing snapshot, poll every ~3 seconds until done or timeout. The README's own starter is a Seedance i2v product video: feed a product image in, pick seedance_2_5 + i2v, and prompt something like 15 秒竖屏产品视频:微距材质开场,镜头拉远展示全貌,随后展示使用动作,结尾留出行动号召空间.
The first thing that trips everyone up: outputs are URLs, not video
The outputs are result_urls_json, task_id, and task_json - three STRINGs. There is no VIDEO tensor to preview or save. You get a JSON array of URLs back, and you download the files yourself (browser, curl, or a node that fetches a URL). That's a deliberate choice: ComfyUI's native video handling is heavy, so this pack just hands you the links and gets out of the way. It means you can't wire this node straight into a VHS decode node - plan for a download step.
Which family does which modes
This comes from the pack source, not the docs, and it's worth knowing:
seedance_2_5: t2v, i2v, r2v, edit, extendminimax_h3: t2v, i2v, r2vhappyhorse: t2v, i2v, r2v, edit
Pick a family+mode with no mapping and you get an error telling you to fill custom_public_model_id - which must start with public_model_. That field is the escape hatch for video models AI-HIVE adds after this pack's dropdowns were frozen, so don't be afraid of it once you know the id format.
The inputs that matter
promptandmodel_family+generation_mode- the two choices that define the job.reference_image(optional IMAGE) - uploaded and appended to your image list automatically. This is the i2v path.image_media_ids_json,video_media_ids_json,audio_media_ids_json- JSON arrays of media IDs you uploaded via the AI-HIVE 上传参考图 node. Audio IDs are how you get a soundtrack in - relevant for MiniMax H3, whose whole party trick is synchronized sound.first_frame_media_id/last_frame_media_id- pin the start or end frame, great forextendand structure control.routing_mode,model_params_json(e.g.{"aspect_ratio":"9:16"}),wait_for_result,timeout_seconds.
The cost reality
Video is where a metered session gets expensive fast - a single 10-second Seedance clip is billed per job, and higher-tier and longer clips cost more per second of output. The default 600s timeout is generous but reachable on long or 4K jobs, and when it hits you've already been billed. Don't resubmit. Keep the task_id and use the AI-HIVE 查询任务 (AIHiveGetTask) node to pull the finished URLs later. That's the pack's own advice, and it's the right advice.
Installing
ComfyUI Manager: search AI-HIVE, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/wubin1836/comfyui-ai-hive.git
pip install -r comfyui-ai-hive/requirements.txt
Only requests and Pillow - no weights, no VRAM. Set AI_HIVE_API_KEY (or ~/.ai-hive/config.json) before launching, and remember the whole pack is a brand-new, unvetted third-party API wrapper: data leaves your machine, and the standard "read the source before you trust it" rule applies. This is a genuinely useful way to reach closed video models from a Comfy graph - just treat every queue as spending real money.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | 电影级产品视频,动作自然,运镜稳定 | — |
| model_family | COMBO | 3 options: seedance_2_5, minimax_h3, happyhorse | |
| generation_mode | COMBO | 5 options: t2v, i2v, r2v, edit, extend | |
| custom_public_model_id | STRING | — | |
| routing_mode | COMBO | 3 options: COST_FIRST, SPEED_FIRST, SUCCESS_FIRST | |
| image_media_ids_json | STRING | [] | — |
| video_media_ids_json | STRING | [] | — |
| audio_media_ids_json | STRING | [] | — |
| first_frame_media_id | STRING | — | |
| last_frame_media_id | STRING | — | |
| model_params_json | STRING | {} | — |
| wait_for_result | BOOLEAN | true | — |
| timeout_seconds | INT | 60030–1200 | — |
| reference_imageopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| result_urls_json | STRING | — |
| task_id | STRING | — |
| task_json | STRING | — |