Nodes/hy_omniweaving_comfyui_unofficial/HY OmniWeaving CLIP Vision Concat
ComfyUI Node

HY OmniWeaving CLIP Vision Concat

The CLIP-Vision concat node

By Shiba-2-shiba·Created 5 months ago·Updated 4 months ago· 1
HY OmniWeaving CLIP Vision Concat
  • clip_vision_output_1
  • clip_vision_output_2
  • clip_vision_output_3
  • clip_vision_output_4
  • CLIP_VISION_OUTPUT

OmniWeaving's reference2v mode is at its best when it's given more than one reference image - combine a character shot and a style frame and it can build a video that honors both. But each reference needs to go through HY OmniWeaving Redux Vision Encode first, which means you end up with multiple CLIP_VISION_OUTPUT objects and no clean way to hand them all to the next node at once. HY OmniWeaving CLIP Vision Concat is the glue: it takes up to four CLIP-vision outputs and merges them into a single one.

Mechanically it's about as simple as a node gets. All the tensor attributes (last_hidden_state, image_embeds, penultimate_hidden_states, all_hidden_states, and the all-important mm_projected) get concatenated along the batch dimension, and the per-image sizes are collected into image_sizes. The result is one CLIP_VISION_OUTPUT where the batch is just your references stacked - which is exactly what the conditioning path expects when it forwards vision context into the model.

Inputs and outputs

  • clip_vision_output_1 - required, the first encoded reference.
  • clip_vision_output_2 / _3 / _4 - optional; wire as many as you have references. Unconnected slots are simply ignored.

Output is a single CLIP_VISION_OUTPUT, which feeds into HY OmniWeaving Conditioning (it gets forwarded into the positive/negative conditioning for any non-t2v task) or into HY OmniWeaving Text Encode's clip_vision_output input.

If you're only using one reference, you don't need this node - skip it and wire the Redux output straight through. It earns its keep the moment you're blending two, three, or four references, which is the whole point of reference2v.

Installing it

It's part of the hy_omniweaving_comfyui_unofficial pack. ComfyUI Manager (search "hy_omniweaving") or:

cd ComfyUI/custom_nodes
git clone https://github.com/Shiba-2-shiba/hy_omniweaving_comfyui_unofficial

Restart. No pip dependencies; needs a recent ComfyUI for the extension API. No model files of its own - it only shuffles tensors that already exist, so it can't add VRAM pressure by itself. (The two or three Redux encodes feeding it are a different story; each holds a SigLIP model in memory.)

Common issues

  • Only the first reference "sticks" - check that every input slot actually has a Redux Vision Encode output, and that each encoder used the same crop and model files. Mixing different preprocessing between references gives the concat a mismatched batch.
  • A None mm_projected sneaks into the merged output - this is the legacy-route symptom. The Redux node populates mm_projected; if one of your inputs came from a different vision encoder that didn't, the concat can only merge what's there. Re-route all references through the pack's Redux node.
  • Shape mismatch errors - you concatenated outputs from different SigLIP configs. Flex-Redux uses a 384px SigLIP; if one encoder resolved a different config, the hidden states won't line up. Keep all references on the same encoder file.

The one opinion worth having: for a single-reference i2v run, this node is dead weight - don't add it just because it exists. Save it for actual multi-reference reference2v work, where it quietly does exactly what it should.

Categoryconditioning/video_models

Inputs (4)

NameTypeDefaultDescription
clip_vision_output_1CLIP_VISION_OUTPUT
clip_vision_output_2optCLIP_VISION_OUTPUT
clip_vision_output_3optCLIP_VISION_OUTPUT
clip_vision_output_4optCLIP_VISION_OUTPUT

Outputs (1)

NameTypeDescription
CLIP_VISION_OUTPUTCLIP_VISION_OUTPUT