Llama.cpp Media Diagnostics
Did it even see the media?
- media_diagnostics
- All Media Evaluated
- Vision Available
- Audio Available
- Video Available
- AUDIO_COUNT
- IMAGE_COUNT
- VIDEO_COUNT
- JSON
- FormattedText
When a llama.cpp generation quietly ignores your image, the hardest part isn't the fix - it's proving the image wasn't ingested. Llama.cpp Media Diagnostics is the node for that exact moment. The llama.cpp Generate nodes emit a typed media diagnostics output that records whether the fork's multimodal ingestion actually accepted your media; this node expands that opaque receipt into booleans, counts, and text you can read at a glance or wire into logic.
The input is a single socket, media_diagnostics, which comes from the media diagnostics output on Llama.cpp Generate, Profiled Generate, or Sequential Generate. Feed it in and you get nine outputs:
All Media Evaluated(BOOLEAN) - did everything you connected get evaluated, or was something skipped?Vision Available/Audio Available/Video Available(BOOLEANs) - capability flags for the installed wheel and projector combination. This is where you learn that your wheel was built withoutMTMD_VIDEOsupport, or that your mmproj doesn't do audio.AUDIO_COUNT,IMAGE_COUNT,VIDEO_COUNT(INTs) - how many of each item actually made it into the request.JSON(STRING) - the raw receipt.FormattedText(STRING) - the human-readable version, for a text output node.
The failure modes this surfaces are the classic "it didn't do anything and I don't know why" ones. If Vision Available is false but you connected images, no amount of prompt tuning will help - the wheel or projector can't see. If the count is zero but you connected a list, the flattening didn't do what you expected. If All Media Evaluated is false, something was deliberately skipped rather than mis-handled, and the formatted text tells you what. This is the "read the receipt" node that turns a mystery into a checklist.
Wiring is trivial: generate → media diagnostics → this node → a ShowText or a few conditionals. It's a debug utility, not a pipeline component, so it earns its keep on the day things break, not on the day they work.
Install is the pack standard:
cd ComfyUI/custom_nodes
git clone https://github.com/craftingmod/ComfyUI-Ollama-ImageList
Restart ComfyUI. Same shared prerequisites as every llama.cpp node here: the JamePeng multimodal llama-cpp-python wheel (with MTMD_VIDEO for video) in ComfyUI's Python environment, and ComfyUI 0.19.3+.
Honest verdict: you don't need this node most of the time, and you'll be very glad it exists the other 5% of the time. The count and capability outputs double as a sanity check when you're setting up a new mmproj - connect it once after a successful run, confirm the numbers match what you fed in, and you'll never wonder again whether your 12 images actually went over the wire or got silently flattened into one.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| media_diagnostics | OLLAMA_IMAGE_LIST_LLAMA_CPP_MEDIA_DIAGNOSTICS | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| All Media Evaluated | BOOLEAN | — |
| Vision Available | BOOLEAN | — |
| Audio Available | BOOLEAN | — |
| Video Available | BOOLEAN | — |
| AUDIO_COUNT | INT | — |
| IMAGE_COUNT | INT | — |
| VIDEO_COUNT | INT | — |
| JSON | STRING | — |
| FormattedText | STRING | — |