Nodes/Protoface/Protoface MiniMax Hailuo 2.3 · Text to Video
ComfyUI Node

Protoface MiniMax Hailuo 2.3 · Text to Video

The two-field video node

By protoface-ai·Created 22 days ago·Updated 13 days ago· 0
Protoface MiniMax Hailuo 2.3 · Text to Video
    • video
    • files
    • run id
    ◄prompt►
    ◄enable_prompt_expansiontrue►
    ◄generation_id0►
    ◄request_scope►

    Two fields you can change

    prompt, and enable_prompt_expansion. That is the entire creative surface of this node. Fifteen seconds after you first see it you'll have read every control, and then you either queue it or close the tab.

    The output is fixed by the provider: a five-second 1080p clip from Hailuo 2.3. No duration picker, no resolution picker, no aspect ratio, no seed. If that sounds limiting, it is - and it's also the cleanest possible introduction to the whole API-node category. There's no workflow to build, no VRAM to budget, no sampler to tune. Text in, video out, invoice.

    Which is exactly when you'd reach for it: storyboard beats and animatics where you need a shot of something, fast, and you'll re-generate or move on. Not for a shot you need to repeat identically, and not for anything you need more than five seconds of.

    What happens when you queue

    The Protoface pack doesn't have hand-written code per model. There's one adapter, and ~95 nodes generated from a catalog of public request schemas - this is the video.generate operation for Hailuo 2.3. On execute, the node validates your payload against that schema before spending anything, journals a request identity (account + node scope + generation_id + model + schema fingerprint + payload) into ~/.cache/protoface-comfyui, submits with an idempotency key derived from it, then polls the job and turns the result into native ComfyUI types. The reason that matters practically: a duplicate queue of an unchanged node doesn't buy a second clip, and a network hiccup doesn't either.

    The catalog is bundled and loads offline, so the node exists even with no key and no network. New models arrive via Protoface → Refresh catalog plus a restart, without reinstalling the extension - nice design, and the reason a node you saw on the registry might not be in your Add Node list until you refresh.

    Inputs

    prompt is the shot description, and it's worth writing like a shot list rather than a caption: subject, action, camera, light. Hailuo responds to motion verbs.

    enable_prompt_expansion defaults to on. Read its tooltip carefully, because it's not just a prompt prettifier: the rewrite also switches on the safety checker. If a clip comes back tamer than what you asked for, or a prompt gets filtered, that's the flag involved. Leaving it on is the sane default; turning it off is a deliberate choice about both polish and filtering.

    generation_id (0 by default) is the job's identity, not a seed - there is no seed field here at all, so you cannot pin a lucky roll. Fixed ID plus unchanged inputs = reuse/resume. Incremented ID = a new paid generation. request_scope is stamped per node by the frontend and must be supplied by hand only in headless workflows, where an empty value makes the node refuse to submit.

    Outputs

    video is a native VIDEO - and a list, so multiple results map cleanly into Save Video or Video Combine downstream. files gives the untouched originals as PROTOFACE_FILE, which is what Protoface Save File writes to your output directory if you care about the provider's container rather than ComfyUI's re-mux. run id is a string: your support handle and the input to Protoface Resume Run.

    Install

    cd ComfyUI/custom_nodes
    git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git protoface
    python -m pip install -r protoface/requirements.txt
    

    ComfyUI 0.41.0+, Python 3.10+; dependencies are httpx, jsonschema, Pillow, av>=14. Or skip the shell: ComfyUI-Manager → search Protoface → install protoface-nodes → restart → reload the browser. Then the Protoface button in the lower-right corner and your API key. Note the key is held in server memory only - restart the server and you'll be asked again; for a headless box use PROTOFACE_API_KEY_FILE.

    Where people get bitten

    No nodes in the search box: check the ComfyUI version (0.41.0 is the floor), check the startup log for an import error, and make sure you don't have the pack installed twice under two folder names.

    No credit or an auth error right after a restart is usually the memory-only key, not the account.

    And the one that bites everyone eventually: a timeout or a dropped browser tab does not mean the render failed. Keep the same generation_id, requeue, or resume with the run id. Cancelling mid-job is best effort and carries no refund, so "stop" is not a discount.

    CategoryProtoface/Video/minimax

    Inputs (4)

    NameTypeDefaultDescription
    promptSTRINGThe positive prompt for the generation.
    enable_prompt_expansionBOOLEANtrueThe model automatically optimizes incoming prompts to enhance output quality. This also activates the safety checker, which ensures content safety by detecting and filtering potential risks.
    generation_idINT00–9007199254740991Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed.
    request_scopeSTRINGAutomatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret.

    Outputs (3)

    NameTypeDescription
    videoVIDEO—
    filesPROTOFACE_FILE—
    run idSTRING—