Choose Best
Turn many results into one. An AI judge picks the best image or text against your criteria, or the node joins, counts, votes on or merges the results.
The Choose Best node turns many candidate results into one. Connect the results of a batch, or of several nodes through Collect. An AI judge then picks the best one against your criteria, or the node joins, counts, votes on or merges the results instead. The node shows the chosen result, its position among the candidates and the judge's reason.
When to use it
- You generate five variants of a cover and want only the best one to continue, for example to Telegram Post.
- You ask the same question several times and want the most common answer.
- You want to know how many results of a batch actually arrived.
- You want the texts of a batch joined into one text, or JSON objects merged into one object.
Quick start
Add the node
Press Tab on the canvas and choose Automate › Lists & Batching › Choose Best.
Connect the candidates
Wire the candidates into the Candidates input. They can come from a node that runs once per row of a List, such as Generate Image, or from a Collect that gathers several separate nodes.
Choose what to do
Open the settings panel. Under What to do with the candidates, keep AI picks the best, the default for a new node, or choose another option. For the AI judge, describe the winner under Judge by, and set The candidates are to Images when the candidates are pictures.
Run it
Choose Best runs once, after all the candidates exist. The node shows the winner and the judge's reason, and the Candidates tab lists every candidate.
Inputs and outputs
| Input or output | Accepts or sends | What it does |
|---|---|---|
| Candidates | Any results: text, links to images, videos or audio, or JSON | Every candidate to consider. The results of several connections are added together into one set. |
| Result | One value | The chosen or combined result. An image pick sends the image link, Merge JSON objects sends JSON text, and Count them sends a number. |
The result is a single value. To start a new batch from it, pass it through Split Text or a List.
What to do with the candidates
| Option | Use it when | Credits |
|---|---|---|
| AI picks the best | An AI judge should compare every candidate with your criteria and pick one. | The tokens the judge used, at the judge model's rate |
| Join into one text | You want every candidate in a single text, with a separator between them. | Free |
| First that has content | You want the first candidate that is not empty. | Free |
| Count them | You want to know how many candidates arrived. | Free |
| Most common answer | You want the candidate that appears most often. A tie goes to the first. | Free |
| Merge JSON objects | You want JSON objects combined into one object. | Free |
The option list shows the price for the judge model that is chosen on the node.
AI picks the best
The judge compares every candidate with your criteria. It answers with the position of the winner and a one-sentence reason, which appear on the node and in the Candidates tab.
| Setting | What it does |
|---|---|
| AI Model | The judge. The same model list as every AI text node, grouped by maker. A new node uses Claude Sonnet 5.5. |
| Judge by | What a winner looks like, for example "The most eye-catching cover for a dark editorial Instagram feed — one clear focal point, readable as a thumbnail." |
| The candidates are | Texts, the default, or Images. The same switch is on the node, next to the model. |
Choose Images for pictures. With Texts, the judge reads only the image links as text and compares those, which looks like a real choice but is not one.
The judge is one call over all the candidates. The call is charged for the tokens it actually used, at the judge model's rate. The tokens are your criteria, every candidate and the verdict, and each image counts as an image. The full rules are in How LLM calls are charged.
- Before the run, the strategy picker shows an estimate (
≈and a number) of a typical judge call on the selected model. - More or longer candidates cost more. A premium model, such as Claude Opus 5.5, costs more per token than an economy model, such as Gemini 3.6 Flash.
- A cut-off answer is still charged. When the judge's answer is cut off, the node falls back to the first candidate, and the call is charged for what the model's maker billed.
For example, take a List of 5 prompts that runs Generate Image, followed by Choose Best with the default judge. The workflow costs the 5 image runs, plus the judge's call, charged for what it used.
The free options
| Option | Setting |
|---|---|
| Join into one text | Separator — the text placed between two candidates. The default is a blank line. |
| First that has content | Nothing to set. |
| Count them | Nothing to set. |
| Most common answer | Treat different letter case as different answers — off by default, so Yes and yes count as the same answer. |
| Merge JSON objects | How to merge — Deep (nested objects too), the default, merges nested objects field by field. Shallow (top level only) replaces whole top-level fields, and later candidates win. |
What you see on the node
The node shows the chosen option and the judge model, and lets you edit the main setting in place, such as Judge by or Separator. After a run, it shows the candidates in a grid with the winner marked, followed by the result and the judge's reason.
The settings panel has two tabs. Config holds the settings. Candidates opens after a run and shows a Summary, the judge's reason under Why it chose this, and every candidate with the chosen one marked.
When some candidates failed
A failed run in a batch leaves an empty candidate. Choose Best drops every empty candidate before it decides, so each option works only on the results that arrived. For example, 10 images with 3 failures give Count them a result of 7, not 10.
When every candidate is empty, the result depends on the option:
| Option | When every candidate is empty |
|---|---|
| Join into one text | Returns empty text, without an error. |
| Count them | Returns 0, without an error. |
| First that has content, Most common answer, Merge JSON objects, AI picks the best | Stops with the error "All upstream iterations failed; nothing to reduce." |
From the API
Choose Best is available to code and AI assistants under its API type, reduce: POST /v1/reduce, the MCP tool reduce, and client.reduce in the SDK. Set strategyId to pick-best-llm, concat, first-non-empty, count, vote or merge-json. For the AI judge, strategyConfig takes criteria, inputKind (text or image-url) and llmModel. An unknown model is refused before any credits are reserved. See Run a single node and the MCP tools.
Tips
- Describe the winner, not the task. "One clear focal point, readable as a thumbnail" gives the judge something to compare. "Pick the best" does not.
- Match the judge to the stakes. An economy model is enough for a quick draft pick. Use a premium model for a final choice that matters.
- Gather separate nodes with Collect. Several connections into Candidates are added together. Route separate nodes through Collect when you want to see them on one node and set their order.
- Check text quality instead. To score a single text against a threshold, use QA Check.
Frequently asked questions
How do I pick the best of several generated images automatically?
Connect the images to Choose Best, either from a Generate Image node driven by a List or through Collect. Choose AI picks the best, describe the winner under Judge by, and set The candidates are to Images. The judge picks one image and gives a one-sentence reason.
How many credits does Choose Best cost?
Only AI picks the best costs credits. The judge's call is charged for the tokens it used, at the judge model's rate, and the settings panel shows an estimate before the run. The other five options are free. The nodes that made the candidates are charged as usual.
Why should I set The candidates are to Images?
With Texts, the judge reads only the image links as text and compares those, which looks like a real choice but is not one. With Images, the judge looks at every picture.
What happens when some candidates failed?
Empty candidates are dropped first, so Count them counts only the results that arrived. When every candidate is empty, Join into one text returns empty text and Count them returns 0, while the other options stop with an error.
Can I use Choose Best from the API or MCP?
Yes. The node's API type is reduce. Use POST /v1/reduce, the MCP tool reduce, or client.reduce in the SDK, with the same six options.
Related
Collect
List
Generate Image
QA Check
Lists and batching
Last updated on
Merge Lists
Combine several lists into one. Concatenate appends them in connection order, and Zip merges the items that share a position. Optionally drop duplicates.
Router
Send a workflow down one or more named routes. Choose the route yourself, turn several on at once, or let conditions on the incoming data decide.