Embeddings Shape Info (experimental)
The shape-check node that tells you if your encoders can even talk
- clip_vision_output
- CLIP TEXT Info
Embeddings Shape Info is the pack's diagnostic node: it prints the shape of a CLIP vision output's embedding vector, so you can check whether two encoders are compatible before you waste an afternoon on a search that silently comes out wrong.
The whole trick of this pack is that it treats an embedding as just a vector of numbers - whether that vector came from an image encoder or from a text encoder's pooled output (see Cond2Embeds) doesn't matter to the search math. What does matter is that the vector shapes match. A CLIP-ViT-H image embedding is a different dimensionality than a bigG embedding, and if you search a bigG-built database with a ViT-H query you'll get errors or nonsense. This node exists so you can check that shape directly instead of guessing.
How to use it
Drop a CLIP_VISION_OUTPUT in - from a CLIP Vision Encode node or from Cond2Embeds - and the single "CLIP TEXT Info" string output prints the shape, something like torch.Size([1, 1280]). Run it on both sides of your setup: your text encoder's output and your vision encoder's output. Same shape → compatible. Different shape → swap one of them, and the README's recommendation is the clip_g text encoder paired with the CLIP-ViT-bigG-14-laion2B-39B-b160k vision model.
One naming gotcha so it doesn't confuse you: the output is called "CLIP TEXT Info" but it's not text-encoder-only - it reports whatever CLIP_VISION_OUTPUT you give it, and that includes vision outputs. The name is a leftover. Don't read anything into it.
To actually see the shape you need a display node - the README suggests Crystools' "Show any value to console/display", and any text preview will do.
Installing it
Same pack, same routine:
cd ComfyUI/custom_nodes
git clone https://github.com/MoonMoon82/ClipVision_Tools
cd ClipVision_Tools
python -m pip install -r requirements.txt
Or ComfyUI Manager → "ClipVision_Tools". Restart after. No extra deps beyond orjson and pillow-heif.
When you'll actually need it
Honestly? Only when things aren't working. If your image search runs and every result is garbage or your text-search path throws a shape error, EmbedsInfo is the fastest way to confirm the diagnosis. Once your encoder pairing is stable, you can leave this node out of the workflow entirely - it's a check, not a pipeline stage. Which is exactly what a good diagnostic node should be.
It's also a nice teaching tool: run it on a few different CLIP vision models and you'll see why the README insists all your databases share one model. The shape difference between encoders is the whole reason that rule exists, and here it is in black and white.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_vision_output | CLIP_VISION_OUTPUT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP TEXT Info | STRING | — |