Pipe Out VC-Filename Generator I
Paths, frame caps and the mask counts — VC Filename Generator I, unpacked
- pipe
- path
- rel_path
- frame_load_cap
- mask_first_frames
- mask_last_frames
- files
If you're combining video clips in a ComfyUI workflow, you've probably met the "VC-Filename Generator I [RvTools]" node - the thing that works out where your clips live and how many frames each side should keep. This is its unpack half. "Pipe Out VC-Filename Generator I" takes that generator's pipe and splits it into the individual values the combine nodes actually read.
Six outputs, no pipe passthrough: path, rel_path, frame_load_cap, mask_first_frames, mask_last_frames, and files.
The ones that matter for a video-join pipeline:
path(STRING) - the full path to the output video.rel_path(STRING) - same path with the output directory prefix stripped, so downstream save nodes get the relative form. The source does this with a regex that lops off everything up to the output root.frame_load_cap(INT) - how many frames to load for the clip.mask_first_frames/mask_last_frames(INT) - the I-version's signature fields: how many frames to mask off at the start and end of the clip. These feed the crop/fade logic when two clips get joined, so you don't get a hard seam.files(STRING) - the file names from the generator's internal file dict, stringified and stripped of brackets and quotes.
Mechanically, pure relay - a tuple unpack with the file list tidied into a readable string. All the path math happened in the generator upstream; this node is the socket on the wall.
The I and II versions are siblings with a split personality. II carries a simple_combine flag and a files_join output for the joining half; I carries the two mask-frame counts instead. In the pack's own Combine_Join_Test workflow they run side by side - I feeds the crop/mask side of the join, II feeds the combine side. If a workflow shows you both, that's not redundancy; that's the join needing the mask geometry and the file list, and the author chose to keep each bundle tight.
Installing it
Ships in ComfyUI-RvTools_v2. ComfyUI Manager: search "ComfyUI-RvTools_v2". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Restart ComfyUI. Dependencies (torch, numpy, Pillow, opencv-python, pilgram, pynvml, piexif) install through Manager. No model downloads.
Where people get burned
- Pair it with the I generator. The I unpacker expects the I pipe (with
mask_first_frames/mask_last_frames). Feed it a II pipe and you'll get a tupleValueErrorthe moment the workflow runs - the pipe wire type is shared, so nothing warns you at wiring time. - No pipe passthrough. Outputs only; place it where the values are consumed.
- Deprecation. The RvTools v2 pack is unmaintained and the README points to ComfyUI_Eclipse. The video-combine nodes are precisely the ones to re-check there before you build new pipelines on them.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | pipe | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| path | STRING | — |
| rel_path | STRING | — |
| frame_load_cap | INT | — |
| mask_first_frames | INT | — |
| mask_last_frames | INT | — |
| files | STRING | — |