Processor
The unglamorous tokenizer that makes a PickScore workflow tick
- model
- images
- INPUTS
The Processor looks like it's doing the heavy lifting - it has a model input, after all - but it does zero scoring. Its entire job is to preprocess your images and your prompt into the exact format PickScore expects, then bundle them into one wire for the Selector. It's the least glamorous node in the pack and also the one that makes everything else work.
What goes in, what comes out
Three required inputs:
model(PS_MODEL) - straight from the Loader. This isn't used to score anything; it just carries the CLIP processor to use.images(IMAGE) - the batch you want ranked. Doesn't have to be generated images; loaded files work fine.text- a multi-lineSTRING, defaulting to empty. This is the prompt you're scoring against, so it's where your "award-winning close-up, golden hour" phrasing lives.
The single output is INPUTS (type PS_INPUTS), which wires directly into the Selector's inputs slot.
How it works
Mechanically it's two calls into the same Hugging Face CLIP processor. Images go through with do_rescale=False - important, because ComfyUI images are already in 0–1 range and double-rescaling would silently wreck every score. Text gets padded, truncated to max_length=77 - CLIP's standard text window - and tokenized. Both come back as tensors and travel as one bundle down the INPUTS wire. Nothing runs on the GPU here; the real compute happens later in the Selector.
The history that trips people up
This node used to be two. Until April 2024 the pack shipped a separate Image Processor and Text Processor, each taking a processor from an older Loader design. That got consolidated into this single combined node, and old workflows that still reference ZuellniPickScoreImageProcessor or ZuellniPickScoreTextProcessor will show up with missing nodes. The fix is just rewiring: Loader → Processor → Selector, with both images and text into this node. You lose nothing in the swap - the combined node does both preprocessing steps in one pass, so the image batch and text stay aligned by construction.
The one thing to remember
The quality of your scores is decided in the text box here, not by any knob in the Selector. PickScore is a human-preference model, so it responds to descriptive, concrete prompts the way a person would rank images. Vague words like "best" or "nice" give you mushier rankings than "sharp focus, detailed, well-composed". Take the thirty seconds to write a real prompt.
Installing
Grab the pack via ComfyUI Manager (search "ComfyUI PickScore Nodes") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Zuellni/ComfyUI-PickScore-Nodes
Restart ComfyUI. First run will download the ~3.9 GB PickScore model on the Loader, so don't panic at the long pause.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | PS_MODEL | — | |
| images | IMAGE | — | |
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| INPUTS | PS_INPUTS | — |