Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · MiniMax Voice Design · $3/voice
ComfyUI Node

arkennemasis fal · MiniMax Voice Design · $3/voice

Describe a voice you've never recorded, for $3

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · MiniMax Voice Design · $3/voice
    • audio
    • audio_path
    • custom_voice_id
    • info
    ◄prompt►
    ◄preview_text►
    ◄max_cost_usd20.0►
    ◄reuse_identical_runtrue►
    ◄extra_json►
    ◄max_concurrent1►

    Cloning needs a sample. Designing needs a sentence. Voice Design takes a description - "a low, dry, sixty-something narrator with a smoker's rasp" - and manufactures a voice to match, then returns an ID you can use everywhere else. Three dollars per voice.

    That's the interesting split in this pack's audio section: clone when the voice exists (Voice Clone), design when it doesn't. If you're casting a narrator for a video series and the person you have in mind is a character rather than a colleague, this is the node.

    The two boxes

    Only two required inputs, and both are text:

    • prompt - the voice description. This is the whole act of casting, so write it like a casting brief rather than like a prompt for an image model. Age, pitch, texture, pace, mood, accent, and what kind of person it sounds like. "Female voice" produces wallpaper; "an unhurried Southern documentary narrator, warm mid-range, slight gravel, sounds like she's smiling" produces something you can use.
    • preview_text - up to 500 characters of script the new voice reads immediately, so you can hear it before you commit to anything. Billed at $30 per 1M characters, which is about a cent and a half for a full-length preview. Practically free, and the only reason to write it carefully is that your preview is also your quality check.

    Then it returns the voice and its ID. There's no separate "save" step and no candidate list - one call, one voice.

    Outputs and the wiring that matters

    audio is the preview as a ComfyUI AUDIO value with a player on the node. audio_path is that file under output/fal/fal-ai_minimax_voice-design/. custom_voice_id is the useful one - a plain STRING, which is why it connects directly to voice_setting_voice_id on the pack's Speech 2.8 Turbo node (also a plain string). Clone or design a voice, wire it into the TTS node, and your narration is being read by something that didn't exist ten minutes ago. info carries the request id, cost estimate, saved files and fal's answer.

    Worth noting before you spend: unlike the clone path, there's no published retention warning in the node's own fields for a designed voice - so don't park an ID in a sticky note and assume it lives forever. Use it, and keep the preview audio you liked as your reference.

    Where the $3 goes

    One design request is one voice, and the cost estimate is a flat per-run figure checked against max_cost_usd (default $20) before anything is uploaded. Same for every fal node in the pack: the pre-flight is free, the submit is the only billable step. Results and the request ledger live in output/fal/, and if ComfyUI restarts mid-run, the job continues on fal and fal Recover Result collects it by id at no extra charge.

    reuse_identical_run is on by default, which in this case means an identical description and preview text returns the voice you already paid for rather than designing a new one. Want a second take on the same brief? Turn it off - and budget for it, because each attempt is $3.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Hishamahmer/comfyui-arkennemasis
    

    Restart ComfyUI, or install from ComfyUI-Manager by searching arkennemasis. The only declared dependency is httpx, and that's for the pack's Codex nodes - the fal provider uses Python's standard library, so nothing else gets pulled in. Then:

    FAL_KEY=your-key-from-fal.ai/dashboard/keys
    

    in the .env next to run_nvidia_gpu.bat.

    Where people get burned

    • The voice is generic. The description was generic. Specificity is the skill here, not luck.
    • You spent $3 auditioning. That's the honest trap with a single-shot node: write the brief properly, use the preview to judge, and if you're iterating on a voice concept, iterate on paper first.
    • A great voice and no way to reach it later. Keep the preview audio, and keep the description text - reproducing a design means re-running the same prompt, which is another $3.
    • Your description was thin and the model just picked a default-sounding voice. Same as point one. Add texture words.
    • It refused to run at all. Check max_cost_usd and that preview_text isn't empty - the preview text is required, not optional.
    Categoryarkennemasis/fal/Audio/MiniMax

    Inputs (6)

    NameTypeDefaultDescription
    promptSTRINGVoice description prompt for generating a personalized voice
    preview_textSTRINGText for audio preview. Must be at least 1 character and limited to 500 characters. A fee of $30 per 1M characters will be charged for the generation of the preview audio.
    max_cost_usdoptFLOAT20.00–100000Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap.
    reuse_identical_runoptBOOLEANtrueIf these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings.
    extra_jsonoptSTRINGAdvanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally.
    max_concurrentoptINT11–32How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed.

    Outputs (4)

    NameTypeDescription
    audioAUDIO—
    audio_pathSTRING—
    custom_voice_idSTRING—
    infoSTRINGJSON: request id, cost estimate, saved files and fal's full answer.