Minds · Run Reviewed Test
What Minds · Run Reviewed Test Actually Does
- draft
- preference_result
- tested_creatives
- results_json
The node with a lock on it
This is the one that spends the money. It takes the draft prepared upstream, checks that you've approved that exact draft, and then runs the research: creates a run in Minds, polls until it finishes or your timeout expires, and hands back the preference result.
The lock is the interesting part, and it's the reason this is a separate node rather than a checkbox. reviewed_draft has to equal the approval hash embedded in the draft. Not "look similar" - equal. The hash is computed over the draft's question, Audiences, revision and attachment set, so changing anything that would alter the study invalidates the approval. You cannot approve one thing and run another.
Short version: paste the approval string from the Prepare node's review_json into reviewed_draft, and it runs.
In 0.2.2 this node is DEPRECATED = True; the single Minds · Audience Preferences node performs the review and the run internally. This node stays loadable for existing workflows, and honestly it's still the clearest way to see the state machine - the approval being a wire you have to physically connect makes the two-step obvious in a way a dialog doesn't.
How it works
On run, it re-reads the receipt for that request ID, confirms it belongs to the same account (it calls /auth/me and compares identity - so switching API keys mid-test is caught), and re-previews the latest saved draft. Then it verifies, in order: the draft still matches the requested question, the Audiences haven't changed, the attachment fingerprint hasn't changed, and the new approval hash still equals yours. Any mismatch stops it with a message telling you to prepare again.
Then it either adopts an existing runId (if the draft is already confirmed) or starts one with an idempotency key derived from your request ID, and enters the polling loop. Completed returns. Queued or running keeps polling on roughly five-second intervals, checking for interruption between sleeps so Ctrl-C works. Anything else - failed, cancelled - raises and selects no winners.
The polling loop is why timeouts are survivable: the run ID lands in the receipt before polling starts, so re-queuing the same workflow resumes polling the same run instead of launching a second one. Read the saved workflow and ComfyUI's receipt data if you need to pick up after a restart.
Inputs and outputs
draft - the MINDS_CREATIVE_DRAFT from Prepare Creative Test. It carries your creatives, the review and the account identity it was prepared under.
reviewed_draft - the approval string. Copy it from review_json, or from the Prepare node's display. It's a long hash; a truncated paste is the most common way this fails.
timeout_seconds - 5 to 3600, default 900. Set it to how long you're willing to sit there, not to how long you think research takes. Timing out is harmless.
Three outputs:
preference_result - the structured ranking, one block per Audience, and the only thing Minds · Select Creatives accepts.
tested_creatives - the candidate bundle, unchanged. You must pass this to the Select node too, because selection re-checks a fingerprint over the candidates and refuses to rank a different batch.
results_json - the same ranking, serialised. Good for a text display or a downstream parser.
Install
Manager → search comfyui-minds (publisher minds), or:
cd ComfyUI/custom_nodes
git clone https://github.com/minds-ai-co/ComfyUI-Minds
cd ComfyUI-Minds && pip install -r requirements.txt
Restart with MINDS_API_KEY in the server environment. requests and Pillow, nothing else; research happens on Minds' infrastructure, so expect API usage to be metered against your plan rather than GPU time on your machine.
Common issues
"Review this exact draft and approve it before running." Empty or wrong reviewed_draft. Re-copy the full hash from the current review - an approval from before your last edit won't match.
"The saved draft changed after review. Prepare it again and approve the new revision." Something altered the draft server-side or you re-prepared. Prepare again, approve again.
"The authenticated Minds account changed." Different MINDS_API_KEY than the one that prepared the draft. Restore the key or redo the prepare.
"Research is still running. Queue the same workflow to resume polling without starting again." Exactly what to do: queue it unchanged.
"Research is failed." No winners are selected from a failed or partial run. Open the Study in Minds and read what happened; don't try to force a selection.
HTTP 429. Rate-limited. Retry the same request later - the idempotency key keeps it from duplicating the run.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| draft | MINDS_CREATIVE_DRAFT | — | |
| reviewed_draft | STRING | — | |
| timeout_seconds | INT | 9005–3600 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| preference_result | MINDS_CREATIVE_RESULT | — |
| tested_creatives | MINDS_CREATIVES | — |
| results_json | STRING | — |