Nodes/aicu-comfyui-stability-ai-api/Stability Image to Video
ComfyUI Node

Stability Image to Video

Turn a Still Into a Video Without a Video GPU

By aicuai·Created 2 years ago·Updated 2 years ago· 1
Stability Image to Video
  • image
  • IMAGE
api_key
seed0
cfg_scale1.8
motion_bucket_id127

Image-to-video is the biggest model in the local generation scene - Wan, LTX, Hunyuan - and all of them want a chunk of VRAM you may not have. StabilityImageToVideo is this pack's escape hatch: the image-to-video model runs on Stability's servers, you send a still, and the node hands you back frames. It's a hosted Stable Video Diffusion-class model behind /v2beta/image-to-video.

Here's the ComfyUI twist that trips people up: the node does not output a video file. It returns the clip as an IMAGE tensor - one frame per image in the batch. To actually save an mp4 you wire the output into a video-combine node (the pack's example workflow uses VHS_VideoCombine with a frame rate around 24fps). Think of this node as "image-to-video-frame-generator" and the last step is yours.

How it works

You send the image plus three controls. The API returns a generation ID, then the node polls /v2beta/image-to-video/result/{id} until the clip is ready, decodes it with OpenCV, and stacks the frames into a [B, H, W, C] tensor. Asynchronous and blocking - expect a minute or two of "processing" per clip, and budget for it: you're paying credits for every clip regardless of length.

The three knobs are worth knowing:

  • motion_bucket_id (1–255, default 127) - the interesting one. This is how much motion you want. Low numbers give gentle, slow movement; high numbers get dramatic (and start warping). 127 is the middle, and it's a sane default.
  • cfg_scale (0–10, default 1.8) - video guidance, and unlike image models it wants to be low. Around 2 is the sweet spot; cranking it toward 10 tends to hurt rather than help.
  • seed - set it to get the same motion back; 0 randomizes.

Inputs and outputs

  • image - required. Any still; Load Image or a prior generation node.
  • seed, cfg_scale, motion_bucket_id - as above.
  • api_key - per-node override.

Output: IMAGE (a batch of frames). Wire it to VHS_VideoCombine / a video save node, or feed individual frames into a filter for frame-by-frame cleanup.

Installing it

Same pack as all the Stability nodes here - aicu-comfyui-stability-ai-api:

cd ComfyUI/custom_nodes
git clone https://github.com/aicuai/aicu-comfyui-stability-ai-api.git
cd aicu-comfyui-stability-ai-api
pip install -r requirements.txt

Or ComfyUI Manager → search "aicu-comfyui-stability-ai-api" → install → restart. You need a Stability AI API key (paid credits): the node's api_key field, the STABILITY_API_KEY env var, or the pack's auto-generated config.ini.

Where it's not a great fit

If you have the VRAM for Wan or LTX locally, local is almost always the better deal - free, uncensored, and you control the output length and frame count. This node is for the GPU-poor or the impatient-with-downloads. The other real gotcha: the clip comes back as frames, and the first time you run it and see an IMAGE output where you expected a movie, that's not a bug. Grab VHS_VideoCombine, plug the frames in at 24fps, and you're done.

CategoryStability AI

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
api_keyoptSTRING
seedoptINT00–4294967295
cfg_scaleoptFLOAT1.80–10
motion_bucket_idoptINT1271–255

Outputs (1)

NameTypeDescription
IMAGEIMAGE