Minds · Find Audiences
Finding Your Minds Audience IDs
- audiences_json
What it actually does
This node answers one question: which Minds Audiences can my account see, and are any of them ready to run? That's it. It never creates an Audience, and it never starts research. It's a lookup - a browser with a search box, wrapped in a ComfyUI node so you don't have to keep a second tab open.
You reach for it because every other node in the pack wants audience_ids, and those are UUIDs you cannot guess, invent, or derive from a name. Type "Gen Z 18-24" into an audience_ids field and the pack will tell you, correctly, that it isn't a UUID. This node is how you get the real thing.
Worth saying early: this is one of only two nodes in the pack that isn't flagged deprecated in 0.2.2. The __init__.py marks everything except MindsPreference and MindsAudiences with DEPRECATED = True. So this isn't a legacy leftover - it's the sanctioned helper.
How it works
Each queue hits GET /api/v1/audiences on https://getminds.ai with your search term and offset, limit fixed at 100. The response is trimmed down to four fields per Audience - id, name, mindCount, readiness - plus the API's pagination block, and dumped into a JSON string.
Two mechanics matter here:
- There is no caching.
IS_CHANGEDreturnsNaN, which means "always dirty," so every queue re-hits the API. That's deliberate, since readiness changes as Minds finish training, but queuing this fifty times is fifty round-trips. - It's an output node. It has no downstream wiring requirement; ComfyUI runs it as an endpoint and shows the JSON in the node's text display. You don't need to connect
audiences_jsonto anything for it to be useful.
Like everything in this pack, it's an HTTP client: it needs MINDS_API_KEY in the environment of the ComfyUI server process. Missing or whitespace-padded, and you get "Set MINDS_API_KEY in the ComfyUI server environment before using Minds." Per-call costs and data leaving your machine are the normal trade for this category of node - this one at least sends nothing but a search string.
The inputs and outputs that matter
search - a plain string, passed straight to the API. Blank returns everything visible. Matching behaviour is the API's, not the node's, so don't expect regex or wildcards.
offset - paging, minimum 0. The page size is hardcoded to 100, so you only touch this past your first hundred Audiences. offset=100 is page two; the pagination block in the output tells you whether there's a page three.
audiences_json - the only output, a STRING. Roughly:
{
"audiences": [
{"id": "…uuid…", "name": "Gen Z 18-24", "mindCount": 250, "readiness": "ready"}
],
"pagination": {"…": "…"}
}
The practical workflow is unglamorous: read readiness in the node display, copy the id of a ready Audience, paste it into the audience_ids field downstream. It's JSON rather than a bare UUID list, so wiring it into audience_ids and expecting it to parse is not the intended path - copy the ID.
The other thing to check here is mindCount. A five-Mind Audience is a smoke test, not a panel. The pack's own verification runs use a five-Mind QA Audience and say plainly that they verify the integration path rather than campaign performance.
Install
ComfyUI Manager → search comfyui-minds, publisher minds (also on the Comfy Registry). Or:
cd ComfyUI/custom_nodes
git clone https://github.com/minds-ai-co/ComfyUI-Minds
cd ComfyUI-Minds
pip install -r requirements.txt # use the same interpreter ComfyUI runs on
Then set the key in the server's environment and restart the process that owns it:
export MINDS_API_KEY="your-key-here"
No model downloads, no checkpoints, no GPU cost - the whole dependency list is requests and Pillow. Compared to the usual custom-node dependency roulette, that's a holiday. You will need a Minds account with Audiences on it; the node reads your account, not a demo dataset.
Common issues
"Use a valid UUID for each Audience and request ID." You're a node too early or too late - this comes from the other nodes rejecting a name where an ID belongs. Run this one first.
Empty list. Either the search term doesn't match anything visible to your key, or the key belongs to an account with no Audiences. Try a blank search before assuming auth is broken.
HTTP 401 / 403 from the client's error mapping: 401 is the key itself, 403 is which Audiences and plan allowances the account has. Both are account-side; nothing in the graph fixes them.
It shows results, then the test refuses to run. Check readiness again in what this node returned. An Audience that was mid-training when you queued this node may not be ready when the draft is prepared, and the pack refuses to run a draft whose readiness isn't confirmed.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| search | STRING | — | |
| offset | INT | 0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audiences_json | STRING | — |