Nodes/ComfyUI-Minds/Minds · Selected Video
ComfyUI Node

Minds · Selected Video

Minds · Selected Video

By minds-ai-co·Created 3 days ago·Updated 2 days ago· 0
Minds · Selected Video
  • selected_creatives
  • video

The video version of the handoff

MINDS_CREATIVES in, VIDEO out. You tested two clips, the Audience preferred one, and this node puts the original back on the wire so SaveVideo or another video node can have it.

Two things make it different from its image sibling, and both matter.

It outputs a list, not a batch. OUTPUT_IS_LIST = (True,) - so downstream nodes run once per selected video rather than receiving a stacked tensor. There's no squashing of multiple videos into one object, and consequently no dimension-matching rule like the one that makes Selected Images fail on a mixed-size shortlist. Each winner is its own video, all the way through.

The audio survives. The candidate kept the native video object and only ever encoded a separate MP4 for upload. Selection hands you the native object, so nothing is re-muxed, re-encoded or audio-stripped on the way out. If your pipeline has ever lost a soundtrack between a test and a save, this is the part that doesn't.

The honest scope note from the pack's own docs: video support was verified end to end with two short fixture clips, and long-video acceptance hasn't been established by those smoke tests. This is a path that works, not a path that's been stress-tested at feature length.

Deprecated in 0.2.2 alongside the other compatibility nodes - Minds · Audience Preferences now returns selected_videos directly as a list. For the classic chain, this is the node.

How it works

It validates first, returns second:

if not selected_creatives or any(item["kind"] != "video" for item in selected_creatives):
    raise MindsError("Selected Video requires native generated video candidates.")
return ([item["native"] for item in selected_creatives],)

So: no empty selection, and nothing that isn't a native video. A hosted HTTPS clip or a text concept that won a test is a legitimate entry in selected_creatives - it just has no VIDEO object to give you, and this node says so rather than silently emitting a hole in the list.

Then it unwraps the native field on each winner and emits them as a list. That's the whole mechanism. Everything clever already happened upstream: the tie handling, the fingerprint check against the ranked batch, the per-Audience distribution.

The tie behaviour is worth restating here because this is where you'd see it. Ties at the cutoff all come through as separate videos - two clips that tied at top_k=1 give you two outputs, not an arbitrary one. The node description is explicit: tied winners remain separate videos. Downstream batch operations will therefore run twice. That's correct, and it's also the kind of thing that surprises you at SaveVideo when you expected one file.

Inputs and outputs

selected_creatives - from Minds · Select Creatives. Should be that node's output, after a completed run.

video - a list of native VIDEO objects. Wire to SaveVideo, or to a video encoder, or to whatever consumes video next. Because it's a list output, expect per-item execution downstream.

If you want them concatenated into one file, that's a job for a video-combine node downstream - this node deliberately doesn't do it, because a tie isn't one video.

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 ComfyUI with MINDS_API_KEY in the server's environment. Dependencies are requests and Pillow - notably no video libraries, because the encode uses ComfyUI's own VIDEO implementation. There are no checkpoints or models to download; nothing here runs on your GPU.

Common issues

"Selected Video requires native generated video candidates." Something without a native video made the shortlist - a hosted URL or a text concept. Re-test with native candidates, or read the ranking and skip the media handoff.

Two files saved when you asked for one. A tie at the cutoff. Either accept both or raise top_k awareness upstream - but you won't get the pack to break a tie for you.

Downstream node runs twice. Same cause, and it's the list output doing its job.

Type error wiring into a save node. You're on a list output; the receiving node needs to accept a list or be run per item. Some save nodes handle lists transparently, some don't.

No output at all. The research didn't complete. Cancelled, failed and media-incomplete runs select nothing, and "Video evidence was incomplete" is a real, deliberate refusal - the pack won't crown a winner from a run where respondents didn't reliably get watchable video.

CategoryMinds/Selection

Inputs (1)

NameTypeDefaultDescription
selected_creativesMINDS_CREATIVES—

Outputs (1)

NameTypeDescription
videoVIDEO—