Nodes/ComfyUI-Video-Edit/Image To Video
ComfyUI Node

Image To Video

Turn one image into a still video — and don't pay for it

By guchendesigndog·Created 4 months ago·Updated 4 months ago· 6
Image To Video
  • image
  • video
frame_count30
frame_rate30

ImageToVideo takes a single image and repeats it for a specified number of frames, producing a still video. Yes, a video of a static image. It sounds pointless until you realize this is the standard trick for building the background layer of a composite.

The implementation detail that makes it cheap: it uses expand() on the image tensor, which is a zero-copy operation. All N frames are views over the same underlying image data, so a "10,000-frame video" costs no more memory than the single image. That's the same lazy philosophy the rest of ComfyUI-Video-Edit runs on - nothing materialized until something actually needs the pixels.

What you set

Three inputs, one output:

  • image (IMAGE) - any single image: an empty/black canvas, a generated background, whatever.
  • frame_count (INT) - how many frames to repeat, default 30.
  • frame_rate (INT) - frames per second of the output video, default 30, the author's tooltip calls it exactly that. Only matters at save time.
  • Output: video (VIDEO) - ready to feed the layer system or a save node.

The actual use case

You're assembling a multi-layer composite (see VideoCompositeLayer and VideoComposite in this same pack). The canvas for VideoComposite is an IMAGE, not a VIDEO - but everything you composite on top of it is a video. So to get a background that lives the same length as your other layers, you turn your canvas image into a still video with ImageToVideo and composite it like any other layer. It's also the lazy person's way to put a static title card or a freeze frame into an edit without dragging around a heavyweight video node.

Gotchas

  • It's a still. No motion, no interpolation, no magic. If you expected it to animate, you grabbed the wrong node - this is the "hold this frame" node.
  • Match your frame rate. If your foreground layers run at 24fps and this still is 30fps, you'll get inconsistent timing when you composite. Set frame_rate to whatever the rest of the project uses.
  • Length matters for compositing. VideoComposite derives the output length from the first layer it sees. If your still background is 30 frames and your foreground clip is 120, the composite only runs as long as the first layer - keep layer lengths aligned or you'll wonder where your footage went.

Install

cd ComfyUI/custom_nodes/
git clone https://github.com/guchendesigndog/comfyui-video-edit.git
pip install -r comfyui-video-edit/requirements.txt

Or search "ComfyUI-Video-Edit" in ComfyUI Manager and restart. Only real dependency: PyAV (av>=10.0.0), which needs FFmpeg. Small MIT-licensed pack by a solo author, and this node is one of the simpler members - genuinely useful the moment you start stacking layers, and practically free on memory.

CategoryVideoEdit

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
frame_countINT301–99999
frame_rateINT301–120Frames per second of the output video

Outputs (1)

NameTypeDescription
videoVIDEO