Nodes/ComfyUI_EmbeddingToolkit/Inspect Embedding For Clip
ComfyUI Node

Inspect Embedding For Clip

Stop guessing — this node tells you whether an embedding will actually work on your model

By silveroxides·Created about a year ago·Updated 4 months ago· 11
Inspect Embedding For Clip
  • clip
  • STRING
embedding_file

Here's the frustrating situation this node exists to fix. You download an embedding, slap embedding:name in your prompt, and... nothing changes. Is it working subtly? Not loading at all? Nobody can tell, because ComfyUI silently ignores an embedding it can't apply. No error, no warning, no dims mismatch in the console - your trigger word just gets read as ordinary prompt text and you keep generating, convinced something is happening.

Inspect Embedding For Clip is the honesty check. You feed it a CLIP and an embedding file, run the workflow, and it dumps a diagnostic report to the UI telling you exactly whether that file can bind to that model.

What it actually checks

Load a CLIP loader into the clip port, pick an embedding file from the dropdown (it lists everything in ComfyUI/models/embeddings), and queue. The report is printed as text and covers:

  • What's in the file - the tensor keys it contains. A single-key file, or one with clip_l + clip_g (SDXL-style) vs t5xxl (Flux-style) - that tells you a lot immediately.
  • What the CLIP is - the wrapper and tokenizer class names, plus the chat template in use.
  • Per-component compatibility - for each sub-encoder the loaded model actually has (clip_l, clip_g, t5xxl, qwen*, mistral*, gemma*, ...), it checks whether a matching key exists in the file, compares the file tensor's last dimension against the model's real embedding size, and prints [OK] on a match or [FAIL] on a mismatch. It also checks the single-tensor fallback case - a lone embedding tensor that might match a given component.

The useful output is the dimension check. An SDXL CLIP-G embedding is 1280-wide; a Qwen3 encoder lives in a completely different space. When those numbers don't line up, the node says so plainly - which is the thing no other tool in ComfyUI will tell you.

Inputs and output

  • clip - any CLIP loader, wired in.
  • embedding_file - dropdown of your embeddings folder.
  • Output is a single STRING shown in the UI. There's no sensible wire target; it's a debug dead-end, so just read the text.

How to read the report

If you get [OK] on the component you care about, the file is compatible - if it still seems to do nothing, look at the filename, not the loader. If you get [FAIL] on every component, the file is simply built for a different text encoder, and no amount of prompting will fix that. That's the answer you were looking for: stop debugging, go get an embedding trained for your actual model.

Installing

Part of silveroxides/ComfyUI_EmbeddingToolkit - no dependencies, no model downloads. Via ComfyUI Manager (search "ComfyUI_EmbeddingToolkit") or:

cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI_EmbeddingToolkit

Restart ComfyUI and it'll be under the EmbeddingToolkit/Debug menu. Given how cheap this check is, it's the first thing I'd run on any embedding you didn't make yourself for the exact model you're using.

CategoryEmbeddingToolkit/Debug

Inputs (2)

NameTypeDefaultDescription
clipCLIP
embedding_fileCOMBO0 options:

Outputs (1)

NameTypeDescription
STRINGSTRING