Nodes/ComfyUI LC Audio_Video Nodes/LC Create Video 🎬
ComfyUI Node

LC Create Video 🎬

Turn a frame batch into a video pipe β€” no encoding, just facts

By lonecatone23Β·Created 2 days agoΒ·Updated 2 days agoΒ· 1
LC Create Video 🎬
  • images
  • audio
  • pipe
  • pipe
  • images
  • frame_rate
  • duration
  • frame_count
β—„frame_rate24.00β–Ί

The name is a little misleading, and that's the first thing to get straight: LC Create Video does not create a video file. It takes an IMAGE batch (your frames, in playback order) plus a frame rate, and packages them - along with optional audio and any pipe metadata - into an LC_AV_PIPE. The actual encoding to an mp4 happens later, in LC Save Video. This node is the "define the video as data" step; Save Video is the "write it to disk" step.

That separation is a deliberate design, and it's the right one. Your frames exist as a tensor the moment a VAE decode finishes; whether you then want an h264, an av1, a different fps, or no file at all (just the pipe passed to something that reads frames) shouldn't force a re-run of the whole pipeline. By packaging frames + fps + audio into a pipe first, you can branch: save one copy, preview another, measure a third - all from a single generation. It's the video analogue of how the ecosystem treats the workflow itself as data until the last possible moment.

How it works

Feed it images (a [B, H, W, C] batch in playback order) and frame_rate (default 24). It computes the obvious derived facts and stores them on the pipe: duration = frame_count / frame_rate, plus the pixel width/height and frame_count. The optional audio input rides along on the pipe so Save Video can mux it in at encode time. The optional pipe socket accepts an existing LC_AV_PIPE - or even an image-side LC_PIPE, which contributes only prompts/seed/steps/size - so you can carry generation metadata forward instead of losing it at the video boundary.

The inputs and outputs that matter

  • images - the frame batch. Order is playback order.
  • frame_rate - playback fps (0.01–240). The value that decides how long the clip feels.
  • audio - optional soundtrack, stored for later muxing.
  • pipe - optional, to merge in metadata or extend an existing AV pipe.

Outputs: pipe (the LC_AV_PIPE - wire it to Save Video or Pipe Out), plus images, frame_rate, duration, and frame_count passed out as plain values for anything that wants them directly.

How to install it

Ships in lonecatone23/ComfyUI_LC_AV_nodes (LC Audio_Video nodes, MIT, by lonecatone23 - the AV sibling of ComfyUI_LC123_nodes; install as a separate repo, don't merge folders):

  • ComfyUI Manager: search "LC Audio_Video" or ComfyUI_LC_AV_nodes.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/lonecatone23/ComfyUI_LC_AV_nodes, restart ComfyUI.

Console prints [LC AV] total 16 nodes. No model downloads; core Python only.

The trap that catches everyone

The most common "bug" here is running the graph, seeing no file, and assuming it failed. It didn't - nothing encodes until an LC Save Video is on the wire. If you don't see a file, check you've actually wired the pipe (or the images output) into a Save Video node. The second gotcha is order: frame order in the batch is playback order, so if your frames come out shuffled or reversed upstream, that's exactly the order you'll get. Wire a preview on the images output if you ever doubt it.

CategoryLC AV/video

Inputs (4)

NameTypeDefaultDescription
imagesIMAGEFrame batch [B,H,W,C]. Order is playback order.
frame_rateFLOAT24.000.01–240Playback rate. duration = frame_count / frame_rate.
audiooptAUDIOOptional soundtrack. Stored on LC_AV_PIPE; Save Video muxes when possible.
pipeoptLC_AV_PIPELC_AV_PIPE or LC_PIPE. LC_PIPE contributes prompts/seed/steps/size only.

Outputs (5)

NameTypeDescription
pipeLC_AV_PIPEβ€”
imagesIMAGEβ€”
frame_rateFLOATβ€”
durationFLOATβ€”
frame_countINTβ€”