Nodes/MiniMaxRefDirector-ComfyUI/MiniMax Reference Subject
ComfyUI Node

MiniMax Reference Subject

Name your characters once, and the VLM stops forgetting who's who

By eaglering·Created 19 days ago·Updated about 10 hours ago· 23
MiniMax Reference Subject
    • config
    vlm_mode
    subject_data
    subject_count1
    global_prompt

    Character consistency in video is a treadmill: every new clip has to be reminded who the lead is, what they wear, and which voice they have. MiniMaxRefSubject is this pack's attempt to retire that treadmill for H3. It's a multi-subject registry - each subject gets a name, a description, a reference image, and an audio file - and the node bundles that registry, plus your VLM configuration, into a single config output that the Director node consumes. From there your characters become promptable by name across every segment of the timeline.

    The output is a SUBJECT_CONFIG: structured subject data plus the VLM options, all in one. Wire it into MiniMaxRefDirector's config input and the director merges it into guide_data, so the auto-written storyboard prompts can reference subjects by name. The global_prompt input is the one text box you'll actually type in - it conditions the whole video and anchors persistent characters, objects, and scene context, which is the difference between "a person walks in" and "Marco, in his red jacket, walks into the bar from scene one."

    Under the hood, the prompt-writing is delegated to a vision-language model, and vlm_mode decides where that model runs. Three options, per the schema: llama-cpp - a local GGUF text model plus its mmproj vision projector, both picked from ComfyUI/models/llm; api - a cloud provider (GLM, Moonshot/Qwen, Doubao, or anything OpenAI-compatible) with the key stored in ComfyUI Settings → API manager, with an optional per-node api_key override; ollama - a local Ollama server, with an ollama_model tag and endpoint. The local-versus-API tradeoff is the standard one: local GGUF is free, offline, and unfiltered but costs you VRAM alongside a 33B video model, which is why the pack unloads the llama models between segments. API is the easy path and the filtered one. The README adds that generated prompts follow your input language - Chinese in, Chinese out.

    The other two required inputs are self-managed: subject_data is the JSON state of your subjects (the tooltip says do not hand-edit) and subject_count just tells the UI how many subject slots to show. Everything visual - uploading reference images, binding audio - happens in the node's front-end panel.

    Mechanically this is upstream of generation; it doesn't touch the sampler. That means it's cheap to iterate on - reword a subject description, tweak the global prompt, and re-run only the VLM step, no GPU minutes burned. And it plugs into the same mental model the character-consistency crowd already uses: keep a persistent description of the fixed attributes and let the per-shot prompt handle the variable ones. The multi-subject attribution weakness that haunts every VLM captioner (who's wearing what when two people are in frame) is exactly the failure this node's explicit per-subject binding is trying to sidestep - but the model writes the copy, so audit the generated prompts the first few runs.

    Install via ComfyUI Manager or git clone https://github.com/eaglering/MiniMaxRefDirector-ComfyUI into custom_nodes, pip install -r requirements.txt, restart - only PyAV is a new dependency. This is a fresh v3 pack with no community trail yet, so when the API dropdown feels empty, remember providers are configured in ComfyUI's Settings, not here, and the node's options are populated from that config at load time.

    Categoryminimaxrefdirector

    Inputs (4)

    NameTypeDefaultDescription
    vlm_modeCOMBOHow the H3 prompt is generated: locally with llama-cpp (GGUF) or via a cloud API.
    subject_dataSTRINGJSON state of all subjects (auto-managed by the UI; do not edit by hand).
    subject_countINT1Number of active subjects to display in the UI.
    global_promptoptSTRINGConditions the entire video. Anchors persistent characters, objects, and scene context.

    Outputs (1)

    NameTypeDescription
    configSUBJECT_CONFIGUnified config: VLM opts plus structured subject data.