Nodes/VRGameDevGirl Video Enhancement Nodes/VRGDG Video Folder Grid Plot
ComfyUI Node

VRGDG Video Folder Grid Plot

Put a wall of videos side by side and judge them at a glance

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
VRGDG Video Folder Grid Plot
  • video1
  • video2
  • video3
  • video4
  • video5
  • video6
  • video7
  • video8
  • video9
  • video10
  • video11
  • video12
  • video13
  • video14
  • video15
  • video16
  • video17
  • video18
  • video19
  • video20
  • images
  • filename_prefix
  • output_fps
  • status
video_folder
output_nameVideoGrid
filename_prefixVRGDG/VideoGrid
video_count4
cell_width0
cell_height0
label_tilestrue
output_fps24
label_1
label_2
label_3
label_4
label_5
label_6
label_7
label_8
label_9
label_10
label_11
label_12
label_13
label_14
label_15
label_16
label_17
label_18
label_19
label_20

When you're training a LoRA or testing a workflow, you don't want to review forty videos one at a time. You want them all on one screen, labeled, running side by side, so the winner jumps out. VRGDG_VideoFolderGridPlot is exactly that: it takes a folder of videos (or explicit video inputs), arranges them into a labeled grid, and hands the grid to a video-combine node as a single comparison clip.

This is the node VRGameDevGirl's own LTX LoRA training workflow uses to build its "final labeled XYZ comparison video" - the grid that shows you how every checkpoint or prompt variation actually performed. If you've ever tried to eyeball whether training step 3,000 beat step 5,000 by opening files one after another, you know why this exists.

How it works

The tooltips in the schema are unusually helpful here, so trust them:

  • video_folder - the folder of videos to grid up. "Leave this as the source, or connect explicit video inputs below if you want to include only selected videos."
  • video_count (default 4, max 20) - "how many explicit video input slots and matching label fields to show. If any connected video inputs are present, those are used instead of scanning the folder." So: leave it empty and it scans; wire in inputs and they win.
  • cell_width / cell_height (default 0) - tile size. "Use 0 to auto-detect from the first video."
  • label_tiles (default true) - "adds a label above each tile using the video filename." You can also override with the label_1..label_20 string inputs.
  • output_name (default VideoGrid) - base filename prefix for the output.
  • filename_prefix (default VRGDG/VideoGrid) - "filename prefix to pass downstream to a video combine node. Example: VRGDG/MyGrid or tests/compare_grid."
  • output_fps (default 24) - "FPS to pass downstream to a video combine node."

Four outputs: images (the grid frames, as an IMAGE tensor), filename_prefix and output_fps (both literally designed to plug into a video combine node so the grid gets encoded with the right name and frame rate), and status (a string, handy for debugging which path it took - folder scan vs connected inputs).

The 20 optional video1..video20 IMAGE inputs pair with the label_1..label_20 fields, and each carries the VRGDG/VideoGrid node's author-described purpose: put videos you care about in explicitly, label them, and they land in the grid.

Installing it

Part of the VRGameDevGirl Video Enhancement Nodes pack. ComfyUI Manager → search vrgamedev → install, restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl

No models to download. You'll want a video combine node downstream (VideoHelperSuite is the usual one) to actually encode the grid - this node hands you frames plus the exact filename_prefix/fps to feed it.

Common issues

It scanned the folder when you wanted only specific videos. Connect at least one videoN input - per the tooltip, connected inputs override the folder scan entirely.

Labels are wrong or missing. label_tiles must be true, and if you set your own label_N fields, those override the filename labels. Turn label_tiles off and you get bare tiles.

The grid doesn't encode. Check that you wired filename_prefix and output_fps into your combine node's inputs - that's exactly what those two outputs are for, and leaving them unwired is the classic mistake.

For comparing training runs or workflow variants, this is the one you'll actually reach for. Ten videos, one glance, decision made.

CategoryVRGDG/Video

Inputs (48)

NameTypeDefaultDescription
video_folderSTRINGFolder containing the videos to place into the grid. Leave this as the source, or connect explicit video inputs below if you want to include only selected videos.
output_nameSTRINGVideoGridBase filename prefix to send downstream into a video combine node.
filename_prefixSTRINGVRGDG/VideoGridFilename prefix to pass downstream to a video combine node. Example: VRGDG/MyGrid or tests/compare_grid.
video_countINT41–20How many explicit video input slots and matching label fields to show. If any connected video inputs are present, those are used instead of scanning the folder.
cell_widthINT00–4096Width of each tile. Use 0 to auto-detect from the first video.
cell_heightINT00–4096Height of each tile. Use 0 to auto-detect from the first video. If labels are enabled, the label band is added automatically.
label_tilesBOOLEANtrueAdds a label above each tile using the video filename.
output_fpsINT241–120FPS to pass downstream to a video combine node.
video1optIMAGE
video2optIMAGE
video3optIMAGE
video4optIMAGE
video5optIMAGE
video6optIMAGE
video7optIMAGE
video8optIMAGE
video9optIMAGE
video10optIMAGE
video11optIMAGE
video12optIMAGE
video13optIMAGE
video14optIMAGE
video15optIMAGE
video16optIMAGE
video17optIMAGE
video18optIMAGE
video19optIMAGE
video20optIMAGE
label_1optSTRING
label_2optSTRING
label_3optSTRING
label_4optSTRING
label_5optSTRING
label_6optSTRING
label_7optSTRING
label_8optSTRING
label_9optSTRING
label_10optSTRING
label_11optSTRING
label_12optSTRING
label_13optSTRING
label_14optSTRING
label_15optSTRING
label_16optSTRING
label_17optSTRING
label_18optSTRING
label_19optSTRING
label_20optSTRING

Outputs (4)

NameTypeDescription
imagesIMAGE
filename_prefixSTRING
output_fpsINT
statusSTRING