Prompt Benchmark Rating
PBRating Is a Rubric for Your Own Judgment — Score an Image, Not an Essay
- rating
The honest problem with LLM-assisted prompting is that your feedback to the model is usually a shrug: "looks off, make it better." An LLM can't do much with that. PBRating exists to turn your gut feeling into structured, calibrated feedback the Prompt Bench text nodes actually use - you score six criteria on a 1–5 scale, and it hands the LLM a tidy package of what to fix, in what order.
What it is
It's the rating end of the loop from inflamously/comfyui_prompt_bench. You look at the image the sampler just produced, score it, and out pops a single rating payload. That payload feeds straight into PBTextModel or PBTextModelChat (and PBStore, if you want to log it). The node doesn't touch Ollama and doesn't need a GPU - it's just a structured form with a little math behind it.
The criteria that matter
Six drop-downs, each 1 - Poor through 5 - Excellent, defaulting to 3 - Okay, plus a freeform notes field. You set all of them; they're the whole node:
- prompt_adherence - does the image match what you actually typed?
- aesthetics - color harmony, composition, overall appeal
- technical_quality - sharpness, artifacts, clean render
- lighting - light quality, shadows, highlights, mood
- detail_richness - surface textures, fine detail
- coherence - anatomy, physics, spatial sense
Output: rating (RATING) - a dict with a rating_id, your notes, integer scores per criterion, and an automatically computed average_score.
How the score becomes instruction
This is the part that makes it better than freeform critique. The pack's prompt.py turns each score into a concrete rewrite rule: a 1 on lighting becomes "explicitly define a single primary light source with exact position," a 1 on coherence becomes "enforce a physically consistent layout." Scores of 4–5 get "maintain, only minor precision improvements." It even orders the feedback - fix the lowest scores first, then apply your notes. Your one-line note ("too busy background") gets appended as a hard requirement the model is told to apply precisely.
The one habit that matters: don't leave everything at 3. Three scores produce mild nudges ("refine lighting: specify intensity"), which is what you want mid-iteration, but if you're genuinely unhappy, mark a 1 or 2 - that's the signal that actually changes the prompt. And since the payload is computed per run, any edit to a score means re-executing the node; there's no "live update."
Install and wiring
Same as the rest of the pack - ComfyUI Manager, search "Prompt Bench", or:
cd ComfyUI/custom_nodes
git clone https://github.com/inflamously/comfyui_prompt_bench
restart, done. No pip install, no models to download. Wire rating into PBTextModel / PBTextModelChat and optionally into PBStore for the audit trail.
Gotchas
- The
RATINGoutput type is pack-specific - only the other Prompt Bench nodes (and anything else that declares it) accept it. notesis optional but worth using; it's the only place your subjective take ("the hands look wrong") survives the rubric.
It's a small node with a small job: make your feedback legible to a local LLM. Once you've scored a few images with it, the 1–5 rubric quietly becomes the way you look at every generation.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| notes | STRING | Optional notes about why this image was rated this way. | |
| prompt_adherence | COMBO | 3 - Okay | Subject, attributes, and composition match the prompt exactly |
| aesthetics | COMBO | 3 - Okay | Visual beauty, color harmony, and overall appeal |
| technical_quality | COMBO | 3 - Okay | Sharpness, clean render, and lack of artifacts |
| lighting | COMBO | 3 - Okay | Light quality, shadow detail, highlights, and mood |
| detail_richness | COMBO | 3 - Okay | Fine-grained surface textures and element detail |
| coherence | COMBO | 3 - Okay | Correct anatomy, physics, and spatial relationships |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| rating | RATING | — |