VRGDG Video Folder Grid Plot
Put a wall of videos side by side and judge them at a glance
- 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
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 thelabel_1..label_20string inputs.output_name(defaultVideoGrid) - base filename prefix for the output.filename_prefix(defaultVRGDG/VideoGrid) - "filename prefix to pass downstream to a video combine node. Example:VRGDG/MyGridortests/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.
Inputs (48)
| Name | Type | Default | Description |
|---|---|---|---|
| video_folder | STRING | Folder 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_name | STRING | VideoGrid | Base filename prefix to send downstream into a video combine node. |
| filename_prefix | STRING | VRGDG/VideoGrid | Filename prefix to pass downstream to a video combine node. Example: VRGDG/MyGrid or tests/compare_grid. |
| video_count | INT | 41–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. |
| cell_width | INT | 00–4096 | Width of each tile. Use 0 to auto-detect from the first video. |
| cell_height | INT | 00–4096 | Height of each tile. Use 0 to auto-detect from the first video. If labels are enabled, the label band is added automatically. |
| label_tiles | BOOLEAN | true | Adds a label above each tile using the video filename. |
| output_fps | INT | 241–120 | FPS to pass downstream to a video combine node. |
| video1opt | IMAGE | — | |
| video2opt | IMAGE | — | |
| video3opt | IMAGE | — | |
| video4opt | IMAGE | — | |
| video5opt | IMAGE | — | |
| video6opt | IMAGE | — | |
| video7opt | IMAGE | — | |
| video8opt | IMAGE | — | |
| video9opt | IMAGE | — | |
| video10opt | IMAGE | — | |
| video11opt | IMAGE | — | |
| video12opt | IMAGE | — | |
| video13opt | IMAGE | — | |
| video14opt | IMAGE | — | |
| video15opt | IMAGE | — | |
| video16opt | IMAGE | — | |
| video17opt | IMAGE | — | |
| video18opt | IMAGE | — | |
| video19opt | IMAGE | — | |
| video20opt | IMAGE | — | |
| label_1opt | STRING | — | |
| label_2opt | STRING | — | |
| label_3opt | STRING | — | |
| label_4opt | STRING | — | |
| label_5opt | STRING | — | |
| label_6opt | STRING | — | |
| label_7opt | STRING | — | |
| label_8opt | STRING | — | |
| label_9opt | STRING | — | |
| label_10opt | STRING | — | |
| label_11opt | STRING | — | |
| label_12opt | STRING | — | |
| label_13opt | STRING | — | |
| label_14opt | STRING | — | |
| label_15opt | STRING | — | |
| label_16opt | STRING | — | |
| label_17opt | STRING | — | |
| label_18opt | STRING | — | |
| label_19opt | STRING | — | |
| label_20opt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| filename_prefix | STRING | — |
| output_fps | INT | — |
| status | STRING | — |