并发提交|HappyHorse 1.1 视频生成
HappyHorse 1.1 in parallel — t2v, first-frame i2v, and up to 9-image reference video
- first_image
- reference_image2
- reference_image3
- reference_image4
- reference_image5
- reference_image6
- reference_image7
- reference_image8
- reference_image9
- api_config
- future
HappyHorse 1.1 is one of the more niche models in this pack, and honestly, that's exactly when you want the concurrent version. If you're already paying per clip on an API that isn't the headline Seedance model, you want to fire a few variants in one batch and pick the winner - not babysit sequential runs. This node is the concurrent-submit wrapper for the pack's HappyHorse 1.1 generator, covering the three models: happyhorse-1.1-t2v, happyhorse-1.1-i2v, and happyhorse-1.1-r2v (reference-image-to-video).
Mechanics are the pack standard: parameters get validated up front, then the job is pushed to a background video thread pool and you get a SEEDANCE_VIDEO_FUTURE handle back. Feed that into SeedanceConcurrent_Video_Await, and the receiver waits on up to ten futures in parallel, handing you finished VIDEO outputs in slot order. Three prompt variants of a t2v, or a t2v next to an r2v with character references - that's a one-receiver job.
The inputs that matter
model- the three-way split above.prompt- required for t2v; optional for i2v and r2v. In r2v mode you can reference the input images directly in the prompt by writing图1/图2(the Chinese for "image 1/2") - that's how the upstream expects you to address reference material here, not@Image 1.seconds- 3 to 15, and note it does not support-1for model-decided duration, unlike some siblings in the pack.resolution-720por1080ponly.ratio- forwarded asmetadata.ratio; the API maps it to the upstreamaspectRatio.first_image- required for i2v; for r2v it plays the role of 图1 (image 1), withreference_image2…reference_image9filling out the reference set. Gaps in the middle get compacted to connected order, and the console tells you when it renumbers.
Plus the standard trio: api_config (or env var / config/.env), skip_error (placeholder video on failure instead of nuking the batch), and seed - a cache seed where fixed reuses cached output when nothing else changed.
How it runs
Same wrapper machinery as the rest: the i2v path sends first_image as images[0], r2v sends the compacted reference list, and the background worker handles upload → submit → poll → download with the MP4-header integrity check before a result counts as a real video. Because validation is synchronous, a bad combo (say, i2v with no first frame) fails at the node rather than halfway through a batch.
Installing
# ComfyUI Manager: search "ComfyUI Seedance" → install → restart.
# or:
comfy node install seedance
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ../.. && python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt
Dependency is just requests; no weights. API key from the Seedance API Config node, SEEDANCE_API_KEY, or config/.env.
Where people trip
- i2v with no
first_image- rejected up front. HappyHorse i2v only looks at the first frame, so don't hunt for a last-frame slot; there isn't one on this node. seconds = -1- unsupported here. Pick a real number.- Reference renumbering - skip
reference_image4and yourreference_image5becomes 图4. If your prompt says 图4 and the wrong face shows up, that's why.
The usual API-wrapper caveats apply: metered per clip, your prompt and frames leave the machine, and result links are temporary - save what you keep.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | happyhorse-1.1-t2v | HappyHorse 1.1 task type. t2v uses prompt only; i2v uses first_image; r2v uses 1-9 reference images. | t2v 只用提示词;i2v 使用首帧图;r2v 使用 1-9 张参考图。 |
| prompt | STRING | Text prompt, up to 20480 chars. In multimodal mode you can reference materials as @Image 1 / @Video 1 / @Audio 1. | 文本提示词,多模态可用 @Image 1、@Video 1 指代第几个素材。 | |
| seconds | COMBO | 4 | HappyHorse supports 3-15 seconds and does not support -1. | 支持 3-15 秒,不支持 -1。 |
| resolution | COMBO | 720p | HappyHorse supports 720p or 1080p. | HappyHorse 支持 720p 或 1080p。 |
| ratio | COMBO | adaptive | Aspect ratio forwarded as metadata.ratio for upstream aspectRatio mapping. | 画幅会通过 metadata.ratio 映射给上游 aspectRatio。 |
| first_imageopt | IMAGE | Required for happyhorse-1.1-i2v, and image 1 / 图1 for happyhorse-1.1-r2v. | i2v 必填;r2v 中作为图1。 | |
| reference_image2opt | IMAGE | Optional r2v reference image 2; prompt can mention 图2. Gaps are compacted to connected order. | r2v 可选参考图 2,提示词可写图2;跳号会按连接顺序压缩。 | |
| reference_image3opt | IMAGE | Optional r2v reference image 3; prompt can mention 图3. Gaps are compacted to connected order. | r2v 可选参考图 3,提示词可写图3;跳号会按连接顺序压缩。 | |
| reference_image4opt | IMAGE | Optional r2v reference image 4; prompt can mention 图4. Gaps are compacted to connected order. | r2v 可选参考图 4,提示词可写图4;跳号会按连接顺序压缩。 | |
| reference_image5opt | IMAGE | Optional r2v reference image 5; prompt can mention 图5. Gaps are compacted to connected order. | r2v 可选参考图 5,提示词可写图5;跳号会按连接顺序压缩。 | |
| reference_image6opt | IMAGE | Optional r2v reference image 6; prompt can mention 图6. Gaps are compacted to connected order. | r2v 可选参考图 6,提示词可写图6;跳号会按连接顺序压缩。 | |
| reference_image7opt | IMAGE | Optional r2v reference image 7; prompt can mention 图7. Gaps are compacted to connected order. | r2v 可选参考图 7,提示词可写图7;跳号会按连接顺序压缩。 | |
| reference_image8opt | IMAGE | Optional r2v reference image 8; prompt can mention 图8. Gaps are compacted to connected order. | r2v 可选参考图 8,提示词可写图8;跳号会按连接顺序压缩。 | |
| reference_image9opt | IMAGE | Optional r2v reference image 9; prompt can mention 图9. Gaps are compacted to connected order. | r2v 可选参考图 9,提示词可写图9;跳号会按连接顺序压缩。 | |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config; otherwise SEEDANCE_API_KEY is used. | |
| skip_erroropt | BOOLEAN | false | On failure return a placeholder error video instead of stopping the workflow. | 失败时输出占位错误视频。 |
| seedopt | INT | 00–18446744073709550000 | ComfyUI cache seed. Fixed reuses the cached result while all other inputs stay unchanged; randomize/increment/decrement starts a new execution. This value is not sent to models without documented seed support. | ComfyUI 缓存种子;Fixed 在其他输入不变时复用缓存,随机、递增或递减会触发新任务。未声明支持 seed 的模型不会收到此参数。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| future | SEEDANCE_VIDEO_FUTURE | — |