MusiQ Image Scorer
A quality score that's currently reading the aspect ratio, not your image
- image
- quality_score
- quality_rating
"Stop guessing if your generation is good" - that's the pitch, and it's a great one. A node that scores your image objectively and tells you it's an 87? Sign me up. The MusiQ Image Scorer is supposed to be that: it's named after Google's MUSIQ (Multi-Scale Image Quality) models, which are real, respected no-reference image quality scorers that rate aesthetic and technical quality without needing a reference image.
Here's what you need to know before you trust that number: the node that ships in this pack returns a placeholder heuristic, not an actual MUSIQ score. I checked the source. The scoring function converts your image, then awards points for vibes: a baseline of 50, +10 if the aspect ratio is near-square, +20 if it's over 512×512, +10 more if it's over 1024×1024. Then it clamps to 0–100 and maps to a rating. It's a thumbnail-property guess with a pretty name, and the code itself has the TODO admitting the real model inference isn't implemented yet.
The pack does contain a real MUSIQ scorer (musiq_scorer.py) that loads the TensorFlow Hub models and runs them - but it's not connected to the node. So the honest state: the plumbing exists, the node doesn't use it.
How it works (what ships)
Input image → convert to PIL → heuristic: baseline 50, bonuses for square-ish aspect and high resolution → clamp to 0–100 → map to a rating. The rating thresholds: 80+ is "Excellent", 60+ "Good", 40+ "Fair", below that "Poor".
Inputs and outputs
- image - the IMAGE to score. The only required input.
- normalize_score (optional boolean, default on) - clamps the score into 0–100. Turn it off and you get the raw heuristic value.
Outputs:
- quality_score (FLOAT) - the number, 0–100 in default mode.
- quality_rating (STRING) - Excellent / Good / Fair / Poor.
The dependency elephant
The pack's requirements.txt pulls in tensorflow and tensorflow-hub - a very heavy install, and it exists entirely for the MusiQ scorer that isn't even wired up. If you're only here for this node, that's a lot of gigabytes for a placeholder. Installing the pack for the Gemini or save nodes means accepting TensorFlow into your environment whether you want it or not.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/thedivergentai/divergent_nodes.git divergent_nodes
cd divergent_nodes
pip install -r requirements.txt
Or via ComfyUI Manager ("Divergent Nodes"). It's built on the newer v3 node API, so a current ComfyUI is required. Expect the TensorFlow install to take a while - that part's real.
The honest verdict
Right now, don't let this score make decisions for you. A square 1080×1080 image scores 80 and rates "Excellent" no matter how mangled it is, and a beautiful 800×450 landscape caps out around 60. It's a resolution/aspect-ratio meter wearing a quality-score costume. Watch the repo - the real scorer is sitting there in the codebase, and the day it gets connected, this becomes a genuinely useful node. Until then, use your eyes; they're still better at this.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Image to assess quality for | |
| normalize_scoreopt | BOOLEAN | true | Normalize score to 0-100 range |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| quality_score | FLOAT | — |
| quality_rating | STRING | — |