Nodes/ComfyUI-RvTools_v2/Pipe In Context vGEN v2
ComfyUI Node

Pipe In Context vGEN v2

The video context bus, plus ControlNet

By r-vageΒ·Created about a year agoΒ·Updated 5 months agoΒ· 23
Pipe In Context vGEN v2
  • base_ctx
  • model
  • clip
  • vae
  • positive
  • negative
  • latent
  • images
  • images_ref
  • images_cn1
  • images_cn2
  • images_cn3
  • images_cn4
  • images_cn5
  • mask1
  • mask2
  • mask3
  • mask4
  • mask5
  • audio
  • sampler
  • scheduler
  • context
  • model
  • clip
  • vae
  • positive
  • negative
  • latent
  • images
  • images_ref
  • images_cn1
  • images_cn2
  • images_cn3
  • images_cn4
  • images_cn5
  • mask1
  • mask2
  • mask3
  • mask4
  • mask5
  • audio
  • sampler
  • scheduler
  • steps
  • cfg
  • seed
  • frame_rate
  • width
  • height
  • load_cap
  • batch_size
  • skip_first_frames
  • select_every_nth
  • img_in_prev
  • imgs_in_filter_prev
  • prev_crop_pos
  • prev_crop_interpol
  • scale_by
  • images_per_batch
  • text_pos
  • text_neg
  • path
β—„stepsβ€”β–Ί
β—„cfgβ€”β–Ί
β—„seedβ€”β–Ί
β—„frame_rateβ€”β–Ί
β—„widthβ€”β–Ί
β—„heightβ€”β–Ί
β—„load_capβ€”β–Ί
β—„batch_sizeβ€”β–Ί
β—„skip_first_framesβ€”β–Ί
β—„select_every_nthβ€”β–Ί
β—„img_in_prevβ€”β–Ί
β—„img_in_filter_prevβ€”β–Ί
β—„prev_crop_posβ–Ύβ–Ί
β—„prev_crop_interpolβ–Ύβ–Ί
β—„scale_byβ€”β–Ί
β—„images_per_batchβ€”β–Ί
β—„text_posβ€”β–Ί
β—„text_negβ€”β–Ί
β—„pathβ€”β–Ί

Pipe In Context vGEN v2 is the second cut of the video context bus, and the "v2" earns its keep: on top of everything the original Pipe In Context vGEN carries, it adds five ControlNet image slots and proper text prompts. That's the difference between "a neat bundle node" and "the one you'd actually build a controlled video workflow around."

The context machinery is unchanged - same rgthree-style dict, same base_ctx inheritance, same every-field-also-an-output. What changed is the field list. v2 has images_ref for reference frames, and then the big addition: images_cn1 through images_cn5, five IMAGE slots meant for ControlNet preprocessing - the depth, pose, canny, or lineart maps you'd feed a ControlNet to pin down the composition. There are also five masks (mask1…mask5) instead of two, and text_pos / text_neg strings for the prompt, which the v1 context didn't carry. Everything else from vGEN - audio, the frame_rate/load_cap/skip_first_frames/select_every_nth loader knobs, the img_in_prev / prev_crop_pos / prev_crop_interpol previous-frame conditioning group, scale_by, images_per_batch, path - rides along.

Why the ControlNet slots matter for video specifically: video generation has a hard time staying on-composition, and the standard fix is feeding the model structured conditioning - depth or pose maps - as a strong anchor. Five slots lets you stack a ControlNet per element: one for depth, one for pose, one for the canny edges of your reference, and so on. The pack's context design makes that genuinely pleasant: wire each map into its images_cnN slot once, and the whole stack travels on the single context wire to wherever the ControlNet nodes consume it.

Install. ComfyUI Manager β†’ search "RvTools" β†’ install ComfyUI-RvTools_v2 and restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
# restart ComfyUI afterwards

No models or keys. Manual clones: pip install -r requirements.txt (opencv-python, pynvml, piexif, Pillow, pilgram).

The catches. The obvious one: if you're not using ControlNet, v2's extra slots are dead weight and plain vGEN is the lighter option - but if you are, this is the version to reach for, and the author's own workflows lean this way. It's the current, non-deprecated member of the vGEN line. The pack caveat still applies (unmaintained, ComfyUI_Eclipse is the README's successor), and the context-dict caveat too: context is pipe-typed and unpacks cleanly with a matching RvTools/rgthree-style Out node, but dict keys are pack-specific, so verify your downstream understands images_cn1 before relying on it. Also keep in mind this is a carrier - the ControlNet images don't do anything until you wire them to actual ControlNet/conditioning nodes downstream.

Category🫦 RvTools II/ Pipe

Inputs (41)

NameTypeDefaultDescription
base_ctxoptpipeβ€”
modeloptMODELβ€”
clipoptCLIPβ€”
vaeoptVAEβ€”
positiveoptCONDITIONINGβ€”
negativeoptCONDITIONINGβ€”
latentoptLATENTβ€”
imagesoptIMAGEβ€”
images_refoptIMAGEβ€”
images_cn1optIMAGEβ€”
images_cn2optIMAGEβ€”
images_cn3optIMAGEβ€”
images_cn4optIMAGEβ€”
images_cn5optIMAGEβ€”
mask1optMASKβ€”
mask2optMASKβ€”
mask3optMASKβ€”
mask4optMASKβ€”
mask5optMASKβ€”
audiooptAUDIOβ€”
sampleropt*β€”
scheduleropt*β€”
stepsoptINTβ€”
cfgoptFLOATβ€”
seedoptINTβ€”
frame_rateoptFLOATβ€”
widthoptINTβ€”
heightoptINTβ€”
load_capoptINTβ€”
batch_sizeoptINTβ€”
skip_first_framesoptINTβ€”
select_every_nthoptINTβ€”
img_in_prevoptINTβ€”
img_in_filter_prevoptINTβ€”
prev_crop_posoptCOMBO5 options: center, top, bottom, left, right
prev_crop_interpoloptCOMBO6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact
scale_byoptFLOATβ€”
images_per_batchoptINTβ€”
text_posoptSTRINGβ€”
text_negoptSTRINGβ€”
pathoptSTRINGβ€”

Outputs (41)

NameTypeDescription
contextpipeβ€”
modelMODELβ€”
clipCLIPβ€”
vaeVAEβ€”
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
latentLATENTβ€”
imagesIMAGEβ€”
images_refIMAGEβ€”
images_cn1IMAGEβ€”
images_cn2IMAGEβ€”
images_cn3IMAGEβ€”
images_cn4IMAGEβ€”
images_cn5IMAGEβ€”
mask1MASKβ€”
mask2MASKβ€”
mask3MASKβ€”
mask4MASKβ€”
mask5MASKβ€”
audioAUDIOβ€”
sampler*β€”
scheduler*β€”
stepsINTβ€”
cfgFLOATβ€”
seedINTβ€”
frame_rateFLOATβ€”
widthINTβ€”
heightINTβ€”
load_capINTβ€”
batch_sizeINTβ€”
skip_first_framesINTβ€”
select_every_nthINTβ€”
img_in_prevINTβ€”
imgs_in_filter_prevINTβ€”
prev_crop_poscenter,top,bottom,left,rightβ€”
prev_crop_interpollanczos,nearest,bilinear,bicubic,area,nearest-exactβ€”
scale_byFLOATβ€”
images_per_batchINTβ€”
text_posSTRINGβ€”
text_negSTRINGβ€”
pathSTRINGβ€”