Nodes/ComfyUI-Video-Edit/Video Composite Layer
ComfyUI Node

Video Composite Layer

The compositing layer node that does no work (until you want it to)

By guchendesigndog·Created 4 months ago·Updated 4 months ago· 6
Video Composite Layer
  • video
  • mask
  • layer
x0.00
y0.00
scale1.00
opacity1.00
blend_modenormal
order0

VideoCompositeLayer is where you configure one layer of a multi-layer video composite: position, size, transparency, blend mode, and stacking order. And here's the part that confuses people at first - it doesn't actually render anything. It just packages up a configuration dictionary and hands it to VideoComposite, which does the real work. Think of it as a settings card you fill out, not a paint operation.

That's actually a feature. Because it only stores configuration, you can build up a scene of layers (even the same video wired into several layer nodes) and then tune the VideoComposite once at the end. No processing cost until the composite node fires.

What you set

  • video (VIDEO) - the clip this layer shows. Comes from Video Load Preview, ImageToVideo, or anything else in this pack that outputs VIDEO.
  • x, y (FLOAT) - position as fractions of the canvas, 0–1 range. x: 0 = left, 0.5 = center, 1 = right. y: 0 = top, 0.5 = center, 1 = bottom. The range technically allows -2 to 2, which just shoves the layer off-canvas and crops it.
  • scale (FLOAT) - 0.5 = half size, 1 = original, 2 = double. Default 1.
  • opacity (FLOAT) - 0 to 1, default 1. 0 is fully transparent, 1 fully opaque.
  • blend_mode (enum) - normal, add, multiply, screen, overlay. Default normal. These are your standard Photoshop-ish blend modes, applied per pixel.
  • order (INT) - stacking order, higher = on top. Default 0.
  • mask (MASK, optional) - a per-pixel mask if you want the layer's alpha to vary across the frame.
  • Output: layer (VIDEOCOMPOSITE_LAYER) - wire this into a layerN input on VideoComposite.

The fiddly parts

The coordinates are normalized, not pixel-based - x=0.5, y=0.5 is always center, regardless of canvas size. That's convenient until you realize the layer's content doesn't get centered by position alone; the position is the top-left anchor in canvas-fraction terms, and the actual on-screen placement interacts with scale. Expect to nudge values. The blend modes are per-pixel math - add will blow out to white fast if you stack bright layers, overlay is the one people reach for when they want contrast interaction between layers.

Common issues

  • The layer is only a config. If you connect VideoCompositeLayer's output to anything other than VideoComposite, nothing renders. The layer type is a new custom type, so it only plugs into its sibling node.
  • Order ties. If two layers have the same order, sorting is not guaranteed to match what you visually intended. Give each layer a distinct order value.
  • Length mismatch is a downstream problem. The layer stores its video's length, but VideoComposite decides the output length from the first layer. Keep your layers the same frame count or you'll get surprises at the composite stage.

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. It's a small MIT-licensed pack from a solo author - don't expect a big community around it, but the composite pair (this node + VideoComposite) is the most capable thing in the pack.

CategoryVideoEdit

Inputs (8)

NameTypeDefaultDescription
videoVIDEO
xFLOAT0.00-2–2X position (0=left, 0.5=center, 1=right)
yFLOAT0.00-2–2Y position (0=top, 0.5=center, 1=bottom)
scaleFLOAT1.000.1–10Scale: 0.5=half, 1=original, 2=double
opacityFLOAT1.000–1
blend_modeCOMBOnormal5 options: normal, add, multiply, screen, overlay
orderINT00–1000Higher = on top
maskoptMASK

Outputs (1)

NameTypeDescription
layerVIDEOCOMPOSITE_LAYER