Nodes/ComfyUI_MieNodes/Single Image To Video ๐Ÿ‘
ComfyUI Node

Single Image To Video ๐Ÿ‘

ComfyUI Node Guide

By MieMieeeeeยทCreated about a year agoยทUpdated 21 days agoยท 225
Single Image To Video ๐Ÿ‘
  • images
  • video_path
โ—„filename_prefixvideoโ–บ
โ—„save_outputtrueโ–บ
โ—„fps25โ–บ
โ—„duration2.00โ–บ
โ—„translation_x0.00โ–บ
โ—„translation_y0.00โ–บ
โ—„scale1.10โ–บ

Don't confuse this with a Wan or LTX-style AI video model - there's no diffusion happening here at all, and that's actually the appeal. Single Image To Video does the classic "Ken Burns" trick: take one still, pan and zoom across it over time, render that motion out as an actual video file. It's the technique behind every documentary photo montage and every slideshow-with-motion you've ever seen, done procedurally rather than generatively. No GPU-hungry sampling, no model download, no seed to worry about - just an affine transform animated over a duration and encoded to a video. If you're building content-creator-style output (title cards, static promo images that need to feel alive in a video edit, B-roll from a single photo) this is a much cheaper and more predictable tool than reaching for an AI video model to do the same job.

How it works. You give it an image, and over duration seconds at fps frames per second, the node moves the crop window across the source by translation_x / translation_y and grows or shrinks it by scale, producing a smooth pan-and-zoom clip. Note the input socket is typed for images (plural, since ComfyUI's IMAGE type is technically always a batch) but the node's whole design - one set of motion parameters, "Single" right there in the name - is built around one source image. Don't expect a batch of several images to each become its own clip; feed it one image at a time.

Inputs that matter. fps (1โ€“60, default 25) sets frame rate. duration (default 2) is the clip length in seconds - combined with fps that's your total frame count, so the default settings render 50 frames. translation_x and translation_y (each โ€“100 to 100, default 0) control how far the frame pans across the image; leave them at 0 for a pure zoom with no pan. scale (0.1โ€“10, default 1.1) is the zoom factor the crop grows or shrinks to by the end of the clip - 1.1 is a gentle, classic slow zoom-in; push it higher for a more dramatic push, or below 1.0 to zoom out instead. filename_prefix (default "video") and save_output (default true) control where and whether the result lands in your permanent output folder - like most ComfyUI save nodes, turning save_output off routes the render to a temporary location instead.

The output is worth noting. Unlike core video-save nodes that hand back a VIDEO type you can preview inline, this one outputs video_path - a plain STRING file path. That makes it easy to chain into anything that wants a path (log it with Show And Save Anything, feed it to a further file-management step) but means you won't get an inline video preview in the graph the way you would from a native ComfyUI video node - you'll need to open the file to check it.

Install. Search "ComfyUI_MieNodes" in ComfyUI Manager, or cd ComfyUI/custom_nodes && git clone https://github.com/MieMieeeee/ComfyUI-MieNodes and restart ComfyUI. No models to download - this node is pure image-processing math, not a diffusion pipeline, so it needs nothing beyond whatever video-encoding dependency the pack itself installs.

Troubleshooting. If the output looks like a static image rather than a moving clip, check translation_x/translation_y and scale aren't all at their neutral defaults (0, 0, and exactly 1.0) - with no pan and no zoom, there's genuinely no motion to render. If the clip feels too short or too long, remember duration is in seconds and total frames scale with fps, so doubling either one doubles render length and file size. And if you can't find the output file, check save_output and filename_prefix - the string returned in video_path tells you exactly where it landed, so pair this node with Show And Save Anything the first time you use it just to confirm the path before you go hunting for it manually.

Category๐Ÿ‘ MieNodes/๐Ÿ‘ Image Operator

Inputs (8)

NameTypeDefaultDescription
imagesIMAGEโ€”
filename_prefixSTRINGvideoโ€”
save_outputBOOLEANtrueโ€”
fpsINT251โ€“60โ€”
durationFLOAT2.000.1โ€“10000โ€”
translation_xFLOAT0.00-100โ€“100โ€”
translation_yFLOAT0.00-100โ€“100โ€”
scaleFLOAT1.100.1โ€“10โ€”

Outputs (1)

NameTypeDescription
video_pathSTRINGโ€”