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

Minds · Video Candidate

Feeding a Native VIDEO to Minds

By minds-ai-co·Created 3 days ago·Updated 2 days ago· 0
Minds · Video Candidate
  • video
  • creatives
◄labelVideo A►

The one-video node

ComfyUI grew a real VIDEO type, and this node exists because of it. It takes a single native video object - audio included - and turns it into one Minds candidate.

The "one" is the design, not a limitation to work around. A preference test needs two or more alternatives, so you run two of these side by side and join them. That's why the pack ships a Combine node and why one of its seven example workflows is called native video selection: two LoadVideo nodes, two candidates, one test, and the winning file keeps its audio all the way to SaveVideo.

This is the video path people actually want and don't expect to find. Most "test my creative" tooling makes you export to a file, upload it in a browser, and then re-download the winner to get it back into the graph. Here the original object survives, so the thing you save is the thing you generated.

Second thing to know: 0.2.2 marks this node DEPRECATED = True. New workflows use Minds · Audience Preferences, which has videos and videos_b inputs that accept a VIDEO or list directly. This node remains loadable for older graphs.

How it works

video_to_creative does the obvious thing with one important detail. It saves the video object into a size-bounded buffer with an explicit format="mp4" - explicit because a file-like target doesn't infer a container - then checks the result isn't empty, hashes it, and keeps the native VIDEO object as a field on the candidate.

So there are two copies in play, doing different jobs. The MP4 bytes are what gets uploaded to Minds for the Audience to watch. The native object is what continues downstream when it wins, which is how audio survives: nothing about the selection step re-encodes or re-muxes anything. An empty video raises "The video is empty." rather than uploading a zero-byte asset.

The buffer is capped at 50 MB, the API's multipart upload limit for locally encoded media. That's per candidate, and video hits it far more easily than images do.

Inputs and outputs

video - a native ComfyUI VIDEO. Not a filename, not a path, not an image sequence - the node type. If your source is a directory of frames, encode it into a VIDEO somewhere upstream first.

label - a plain string, default Video A. Keep it descriptive and under 200 characters, and keep it distinct from the label on the other video or the combined test will refuse to prepare.

creatives - one MINDS_CREATIVES output. Feeds Combine Candidates (to pair it with a second video), or Prepare Creative Test.

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 set on the ComfyUI server process. Two Python dependencies, requests and Pillow - and notably no video libraries, because encoding uses ComfyUI's own VIDEO implementation. There are no model downloads; the Audiences live on Minds' side.

The honest caveat, straight from the pack's docs: video support was verified end to end with two short fixture clips, and long-video acceptance has not been established by those smoke tests. A 10-second product clip is the tested case. A three-minute explainer is not, and the 50 MB ceiling will catch you there anyway.

Common issues

"The encoded creative exceeds the 50 MB Minds multipart upload limit." Your MP4 is too big. Shorten it, drop the resolution, or raise the CRF upstream. This is the most likely wall you'll hit with video in this pack.

Ties produce two outputs. Not a bug. Tied winners stay separate videos on purpose - the pack won't pick one for you by input order. See Minds · Selected Video.

Type error on the input. You connected an IMAGE or a latent. The VIDEO socket only accepts a real video object; check what your loader or encoder node actually outputs.

"Video evidence was incomplete; no creatives were selected." The selection layer checks whether respondents actually got watchable media, and refuses to crown a winner when the evidence is partial. Re-run the test; don't try to force a selection out of a failed run.

Results time out. The default timeout_seconds on the run node is 900. Re-queue the same workflow - retries resume the saved run rather than starting a new one, and video tests take longer than image tests.

CategoryMinds/Creatives

Inputs (2)

NameTypeDefaultDescription
videoVIDEO—
labelSTRINGVideo A—

Outputs (1)

NameTypeDescription
creativesMINDS_CREATIVES—