Nodes/comfyui-get-meta/Get Combo from Image
ComfyUI Node

Get Combo from Image

Recover a checkpoint or scheduler name straight from the file

By shinich39·Created about a year ago·Updated 5 months ago· 9
Get Combo from Image
  • image
  • COMBO
query
combo

Some metadata values aren't numbers or free text - they're dropdown picks. The checkpoint that made an image, the sampler, the scheduler. In ComfyUI's UI those are combo widgets (hence the name); in the metadata they're just strings. Get Combo from Image recovers them, and it's the one node in the pack whose output isn't locked to a single type.

Part of shinich39's comfyui-get-meta, this node is your answer to "what model was that actually made with?" Load the image, query Load Checkpoint.ckpt_name, and the exact checkpoint filename comes out - ready to feed back into your own CheckpointLoaderSimple.

How it works

Same pack architecture as its siblings. The Python class is a passthrough that returns whatever sits in the combo widget; the real work is frontend-side. The browser extension finds the image loader feeding the image input, asks the backend to read the file's embedded metadata with Pillow, parses the stored prompt JSON (JSON5), and writes the queried widget's value into the node. IS_CHANGED is hardcoded so the node re-runs every queue, pushing the recovered value through.

The genuinely interesting bit is the output type. Where the pack's other query nodes emit a fixed INT or STRING, this one returns a * - ANY type - so the value plugs into just about any input socket without ComfyUI complaining about type mismatches. That's what makes "take this checkpoint name and drop it into a loader" work at all, since combo inputs expect an arbitrary string.

The inputs and output that matter

  • image - from a supported loader: core LoadImage/LoadImageMask, Inspire Pack, Crystools, or WAS Node Suite. The usual list.
  • query - the combo you want, in NODE_TYPE.WIDGET_NAME form (#NODE_ID.WIDGET_NAME for IDs). The practical ones:
    • Load Checkpoint.ckpt_name or CheckpointLoaderSimple.ckpt_name - the checkpoint
    • KSampler.sampler_name - e.g. euler, dpmpp_2m
    • KSampler.scheduler - e.g. karras, normal
  • combo - the result widget, default empty string. A run overwrites your edits.

The COMBO output is the wildcard - wire it into any matching input.

Installing it

ComfyUI Manager → search comfyui-get-meta → Install, restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/shinich39/comfyui-get-meta

Restart after cloning. No models, no requirements.txt, no downloads beyond the repo itself.

Common issues

  • Empty result - the image's metadata is stripped or absent (metadata-less saves, re-uploads, screenshots). The classic cause.
  • Type mismatch when wiring - you can mostly avoid this because the output is *, but if you force it into a socket that expects a specific list of choices, behavior depends on the receiving node. The wildcard type is convenient because it bypasses checks; treat that as a feature with a debugging asterisk.
  • Unsupported loader - no traced file path means no fill. Stick to the supported loaders.

A word on the wildcard output: the ecosystem has a standing debate about untyped "anything anywhere" nodes making workflows harder to reason about. This node uses the same trick, but narrowly - you're extracting one known value, not routing everything through one hose. It's fine. If you want your model's exact name back without eyeballing someone's screenshot, this is the cleanest route.

Categoryimage

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
querySTRING
comboSTRING

Outputs (1)

NameTypeDescription
COMBO*