CD · Take Ranker
Let the numbers pick your best take instead of your gut
- best_take_id
- ranking_json
- best_score
You ran three takes per shot, the way CDBatchDirector wanted, and now you have to pick. This is where most people just eyeball it - and where "pick whichever feels right" quietly becomes "pick whichever I looked at last." CDTakeRanker is the node that makes the choice reproducible: it scores every take against the same weighted formula and hands you a ranked list, so the "best take" is a decision you can defend and re-run, not a mood.
It's from Continuity Director, a 20-node pack for repeatable AI video production, and it's the second of the three quality nodes. QualityGate is the binary yes/no; this one is the sorting hat.
What you feed it
- takes_json - a JSON array of take objects. The default shows the shape:
[{"take_id":"take-01","metrics":{"identity":0.9}}]. Each take carries its ownmetricsobject (or the metrics at the top level of the object - it handles both). - weights_json - how much each metric counts. The default is thoughtful:
identity 0.35,continuity 0.25,technical 0.20,motion 0.10,prompt 0.10. You can add your own metric names and weights; the node normalizes by the total weight, so the weights don't need to sum to 1.
How scoring works
Each metric score is clamped to 0..1, multiplied by its weight, summed, and divided by the total weight - a weighted average. Ties break by take_id, and the result is a ranked list with rank numbers and a score per take. Missing metrics score zero, so a take that never reported "motion" starts at a disadvantage instead of getting a free pass. Outputs are best_take_id (the winner), ranking_json (the full sorted list - feed this to a human reviewer or log it), and best_score (the winner's number, a float you can gate on).
The one thing to notice: the ranking is only as good as the weights and the metrics. It's opinionated in a transparent way - change the weights, get a different winner - which is exactly what you want from a decision tool.
Installing it
Continuity Director is a clean install: no model downloads, no API keys, and requirements.txt is one comment stating there are no mandatory Python dependencies. All standard library. Search "Continuity Director" in ComfyUI Manager and restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/xinjian0101/continuity-director.git ComfyUI-ContinuityDirector
Restart ComfyUI, look for CD · ... nodes and the Continuity Director sidebar with its "Add starter chain" scaffold. Update with git pull.
The honest take
The trap with a ranker is trusting it more than it deserves. It ranks by the numbers you gave it; if your metrics are noisy or your weights are arbitrary, you've mechanized the gut feeling rather than replaced it. Use it as the first pass - let it surface the top two, then eyeball those two - and it saves you from the real failure mode, which is picking the take you happened to see last. And since it's hash-linked JSON all the way down, your ranking decision lands in the audit trail, which is a genuinely nice property when someone asks you a month later why shot four is take 2 instead of take 1.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| takes_json | STRING | [{"take_id":"take-01","metrics":{"identity":0.9}}] | — |
| weights_json | STRING | {"identity":0.35,"continuity":0.25,"technical":0.2,"motion":0.1,"prompt":0.1} | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| best_take_id | STRING | — |
| ranking_json | STRING | — |
| best_score | FLOAT | — |