arkennemasis fal · MiniMax Voice Clone · $1.50/voice
Ten seconds of audio and $1.50 buys you a voice
- audio
- audio
- audio_path
- custom_voice_id
- info
Hand it at least ten seconds of somebody talking, and it hands back a voice ID you can then use for any amount of speech. $1.50 per clone. No training run, no dataset, no GPU fan spin-up.
The KB's audio chapter makes the case that local cloning crossed the "good enough" line - Chatterbox came close enough that the community stopped treating the API as mandatory, and this pack even ships a local Qwen3-TTS clone node. So why route out? Two reasons: you want it done in one call with zero setup, or you want a specific high-quality voice and don't care that the sample went to a server.
What the node needs, and the 7-day rule
audio is the reference sample: any AUDIO value, at least 10 seconds of it. Clean speech, one speaker, no music. If your source is a ripped interview with a bed underneath, clean it up first - this pack also ships an ElevenLabs audio-isolation node for exactly that job, and the node's own noise_reduction toggle will help but won't perform surgery.
Then the part nobody reads until a voice disappears:
To retain the voice permanently, use it with a TTS (text-to-speech) endpoint at least once within 7 days. Otherwise it will be automatically deleted.
So the clone is generated, and it's provisional. Use it - wire custom_voice_id into a speech node and actually run something - inside a week, or it gets reaped and you're paying $1.50 again.
The inputs worth setting
text- a preview line the clone speaks immediately. Defaulted to "Hello, this is a preview of your cloned voice! I hope you like it!" so you hear something the moment it finishes. Preview characters bill separately at $0.30 per 1,000 characters - three cents on a 100-character line, so use a real sentence from your script rather than a nonsense one; it tells you more.model- which MiniMax TTS generates the preview:speech-02-hd,speech-02-turbo,speech-01-hd,speech-01-turbo. It affects the preview only.noise_reduction/need_volume_normalization- off by default. Turn them on when the sample isn't studio-clean.accuracy- a text-validation threshold from 0 to 1, with-1meaning "leave it to the model". If the clone keeps mis-reading your scripts, this is a dial rather than a mystery.
Outputs and how they wire
audio is the preview as a real ComfyUI AUDIO value with a player on the node. audio_path is that file on disk, under output/fal/fal-ai_minimax_voice-clone/. custom_voice_id is the point of the whole exercise - a STRING, which is exactly why it wires: voice_setting_voice_id on the pack's Speech 2.8 Turbo node is also a plain string, so you connect one to the other and your clone starts narrating. info is the JSON receipt (request id, estimate, files, fal's answer).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Restart ComfyUI, or search arkennemasis in ComfyUI-Manager. requirements.txt is httpx alone - for the pack's Codex nodes - and the fal provider is standard-library only. Then your key:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
in the .env next to run_nvidia_gpu.bat. No key widget exists on any node in this pack; that's a deliberate choice, because widget values are saved into the workflow JSON verbatim.
Where people get burned
- The clone sounds like a stranger. Sample quality beats sample length. Ten clean seconds of someone speaking directly at a mic outperforms two noisy minutes.
- It vanished a week later. The 7-day rule above. Generate speech with it once and it sticks.
- You fed it music, or two speakers. It clones the average of what you gave it, and the average of two people is nobody.
- You sent someone else's voice. Worth saying once, plainly: consent isn't a formality here, and the sample leaves your machine.
- You paid twice for the same clone.
reuse_identical_run(default true) reuses the paid result for identical inputs, but a new reference sample is a new clone and a new $1.50 - that one's not a bug.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | URL of the input audio file for voice cloning. Should be at least 10 seconds long. To retain the voice permanently, use it with a TTS (text-to-speech) endpoint at least once within 7 days. Otherwise, it will be automatically deleted. | |
| noise_reduction | BOOLEAN | false | Enable noise reduction for the cloned voice |
| need_volume_normalization | BOOLEAN | false | Enable volume normalization for the cloned voice |
| accuracy | FLOAT | -1.00-1–1 | Text validation accuracy threshold (0-1) -1 leaves it to the model. |
| text | STRING | Hello, this is a preview of your cloned voice! I hope you like it! | Text to generate a TTS preview with the cloned voice (optional) Empty leaves it out. |
| model | COMBO | speech-02-hd | TTS model to use for preview. Options: speech-02-hd, speech-02-turbo, speech-01-hd, speech-01-turbo |
| max_cost_usdopt | FLOAT | 20.00–100000 | Safety 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_runopt | BOOLEAN | true | If 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_jsonopt | STRING | Advanced: 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_concurrentopt | INT | 11–32 | How 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)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_path | STRING | — |
| custom_voice_id | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |