Extensions/ComfyUI-TypedDecision
ComfyUI Extension

ComfyUI-TypedDecision

Typed decisions (noul / choice / score) with calibrated probabilities, on ComfyUI's text-encoder engine. Currently imajev.

By nomadoor·Created a day ago·Updated about 19 hours ago· 6
nomadoor/ComfyUI-TypedDecision
Nodes—
On cloudLocal install
Stars6
Updatedabout 19 hours ago
Readme

ComfyUI-TypedDecision

Custom nodes for Jev-style typed decisions: a multimodal LLM does not write text, it only makes a decision. You ask one typed question about images and text, and get the answer with calibrated probabilities:

  • noul: true or false
  • choice: one of your options
  • score: a position on your ordered levels

Several local alternatives to Jev exist. ComfyUI already has its own multimodal LLM inference engine, so this pack reuses it and starts with imajev.

More details on the blog: 日本語 · English · 中文

Installation

Search for ComfyUI-TypedDecision in ComfyUI Manager and install it.

Models

📂ComfyUI/
└── 📂models/
    ├── 📂text_encoders/
    │   └── qwen3.5_4b_int8_convrot.safetensors
    └── 📂typed_decision/
        └── 📂imajev-4b/
            ├── adapter_config.json
            ├── adapter_model.safetensors
            ├── calibration-rot4-modality.json
            ├── decision_readout.json
            └── decision_readout.safetensors

Nodes

Load Typed Decision Model: pick Qwen3.5 as backbone and imajev-4b as adapter.

Typed Decision: answers one question. Write questions and options in English.

  • mode: noul, choice or score
  • instructions / criteria: the question, and the options or levels, one per line. noul takes optional criteria_true / criteria_false for when to answer yes or no.
  • images: up to 2 images. With two, the first is the reference and the second is the one to judge.
  • state: optional facts to judge against, as text or JSON
  • debias: average over several option orders (slower)

| Output | Meaning | | --- | --- | | value | noul: probability of true<br>choice: probability of the chosen option<br>score: expected level (0 = first line) | | label | The answer. Not affected by threshold. | | index | noul: yes = 1<br>choice, score: line number of the answer, from 0 | | pass | value >= threshold and the model did not abstain | | abstained | The images and state were not enough to answer | | result | Full answer as JSON |

Sample workflows

  • noul: are many people in the image?
  • choice: what is the main subject?
  • score: how usable is the photo for training?
  • two images: do two images show the same person?
  • dataset sort: save photos with and without people under different names
  • resolution from prompt: pick the aspect ratio from the prompt, then generate with Krea 2

Credits

  • imajev and imajev-4b by mohit67890: the model, prompt format and scoring this pack reproduces
  • Qwen3.5 by the Qwen team, repackaged for ComfyUI by Comfy-Org