Nodes/ComfyTV/Video Resize
ComfyUI Node

Video Resize

The -1 trick is the whole game

By jtydhr88·Created 3 months ago·Updated about 16 hours ago· 725
Video Resize
  • video
  • video
force_run_token0
project_id
parent_output_id0
width1280
height720

Every video pipeline needs a resize step eventually - scale a 720p draft up to delivery size, shrink a 4K render to something you can actually upload, or normalize mixed sources before a cut. Video Resize is ComfyTV's version, and it has exactly two knobs plus one excellent default behavior.

What it does

It scales the whole clip to width × height using PyAV (FFmpeg bindings) on disk - no GPU, no AI upscaling, frame rate untouched. It re-encodes on ▶ Run and saves the result as a new COMFYTV_VIDEO snapshot.

The inputs:

  • width - target width in pixels, default 1280. Use -1 to derive it from height plus the source's aspect ratio.
  • height - target height, default 720. Same -1 trick applies.

That -1 is the part that saves beginners: set width=1280, height=-1 and you get a 1280-wide video that keeps its original proportions. Set both to fixed numbers whose ratio doesn't match the source and you'll stretch the picture - the docs call this out explicitly, and it's the most common "why does it look wrong" report. The rule of thumb: keep one axis -1 unless you genuinely want to distort.

Where it fits

Resize is the finishing step in most chains: after a Crop or a Rotate (which can swap dimensions), before Demux or further processing, or as the "make it 1080p for delivery" stage at the end of a timeline. It composes cleanly with everything - Resize in, Resize out, and any video stage downstream accepts the result.

One distinction worth making: this is geometric scaling. Video Upscale (AI per-frame enlargement) is a separate node - and at the time of writing it's still on the pack's roadmap as a TODO, so don't go looking for a working upscaler here. If you want AI upscaling, that lives outside ComfyTV for now, and you'd Bridge the video across.

Install and troubleshooting

Standard pack install: git clone https://github.com/jtydhr88/ComfyTV into ComfyUI/custom_nodes, restart, and it's under ComfyTV → Video. No models, no GPU requirements.

  • Stretched picture? One axis is set to a fixed value that doesn't match the source ratio. Use -1 on the other axis.
  • "Both dimensions -1" - that's invalid; at least one axis must be a real number.
  • Output looks soft? PyAV defaults to a standard scaler; this is a resize, not an enhancement, so don't expect the sharpness of an AI upscaler. Resize before heavy sharpening if you care about edges.

Small node, honest job. Remember the -1 and it will never bite you.

CategoryComfyTV/Video

Inputs (6)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
widthINT1280-1–8192Output width in pixels. Use -1 to derive from height + source aspect ratio.
heightINT720-1–8192Output height in pixels. Use -1 to derive from width + source aspect ratio.
videooptCOMFYTV_VIDEO

Outputs (1)

NameTypeDescription
videoCOMFYTV_VIDEO