Happy Horse / v1.1 / imageToVideo
Animate a single frame on Civitai's cloud
- image
- api_config
- video
- workflow_id
- raw_json
The image-to-video node of the Happy Horse v1.1 family. You feed it one image and a prompt; it returns a video that animates that image. The whole job runs on Civitai's servers through the official civitai/civitai-comfy-nodes pack, so there's no local model, no VRAM pressure, and every run costs Buzz.
If you've got a still you want to bring to life - a character render, a product shot, a keyframe - this is the zero-setup way to do it. The newer v1.1 engine is what Civitai is pushing for the Happy Horse line, and the node itself is deliberately minimal: image in, settings, video out. It's the "closed model inside my workflow" pattern from the KB's external-API-nodes doc, dropped straight into a ComfyUI graph where you can wire the result into whatever post-processing you already run locally.
How it works
Same orchestration plumbing as every node in the pack: build a videoGen workflow with the discriminator happyHorse / v1.1 / imageToVideo, submit to the Civitai Orchestration API, long-poll until succeeded, then download the MP4 into ComfyUI's temp directory and hand it back as a native VIDEO. The one input that matters mechanically is the image - it's encoded and uploaded with the request, so it leaves your machine. Don't animate anything you're not comfortable having on Civitai's servers.
One difference from the reference-to-video sibling worth noting: this node takes a single image input (not a list), and per the tooltip that input accepts "A URL, A DataURL or a Base64 string" - the IMAGE socket covers the normal Load Image → wire-in flow, but the underlying field is flexible about how the image is supplied.
Inputs and outputs that matter
- prompt (required) - what motion to give the image. Specify how it moves, camera, and any changes.
- image (required) - the
IMAGEsocket for your source frame. - resolution -
720p/1080p, default1080p. - duration - 3–15 seconds, default 5.
- seed - 0 for random; set it to lock a take.
- api_config - optional auth override.
Outputs: video, workflow_id, raw_json - the pack standard. video goes to a Video Preview or any downstream VIDEO consumer.
Installing it
The pack is shared across all Civitai nodes. ComfyUI Manager → Custom Nodes Manager → "Civitai Comfy Nodes" (publisher civitai) → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Dependency footprint is just requests; there are no model files to fetch.
Common issues
- Credentials. You need a Civitai account with Buzz. Connect the Civitai Auth node, set
CIVITAI_API_TOKEN, or use the sidebar connect panel to store a key/OAuth. Headless boxes should use the env var. - Stuck on "processing"? Cloud video jobs are queued on Civitai's fleet - a slow job is usually the provider's queue, not your graph.
workflow_idlets you look it up in your Civitai generation history. - Inputs leave the machine. The image uploads to Civitai for processing. Treat it accordingly.
- Early preview. The pack is under active development and behavior can change without notice. Pin the version for production use.
- Cost. Every run bills Buzz; 1080p and longer durations cost more. The node's status line shows the per-run cost.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image | IMAGE | Either A URL, A DataURL or a Base64 string | |
| resolutionopt | COMBO | 1080p | 2 options: 720p, 1080p |
| durationopt | INT | 53–15 | — |
| seedopt | INT | 00–4294967295 | — |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |