Nodes/SpicyAPI/Seed Speech 2.0 · Text to Speech
ComfyUI Node

Seed Speech 2.0 · Text to Speech

41 voices, knobs for speed and pitch, no filter

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Seed Speech 2.0 · Text to Speech
    • audio
    • task id
    ◄text►
    ◄voice_idstokie_en►
    ◄instructions►
    ◄speed1.00►
    ◄pitch0►
    ◄volume1.00►
    ◄languagemodel default►
    ◄output_formatmp3►
    ◄sample_ratemodel default►
    ◄seed0►

    Script goes in, a 24 kHz mono MP3 comes out in one of 41 preset voices, for $0.072 per 1,000 characters. Bottle that and wire it into a video workflow and you've got narration without ever opening another app.

    This is a full-featured TTS node by the standards of what else is in the pack. It has the things you'd hope for - a voice list, a language override, and a plain-language instructions field for delivery - and three knobs the Gemini TTS nodes don't expose at all: speed, pitch and volume. If you want to make a voice read faster and a semitone or two lower without reaching for a plugin, this is the node that lets you.

    What it does

    Your text is sent to SpicyAPI along with the voice and delivery settings; the hosted model returns audio, and the pack hands it back as a ComfyUI AUDIO value. Nothing runs on your hardware, so there's no model download and no VRAM cost - the sensible trade for a machine that can't host a voice model, and the sensible one anyway when you don't want to keep one warm.

    There's a detail in the output worth knowing before you wire anything up: several results can come back as a batch, and Save Audio writes one file per result. If you were expecting one file and got three, that's why.

    The inputs that matter

    • text - spoken exactly as written, and billed per 1,000 characters. This is the field that determines the price, so it's the one to trim.
    • voice_id - 41 presets, stokie_en by default. The suffix tells you which languages the voice was built for, so check it before you write a French script for a voice tagged _en.
    • instructions - tone, emotion, pace or volume in plain language. Not spoken, not billed: free direction, use it. "Read it like a tired documentary narrator" genuinely does something.
    • speed - 0.5 to 2, where 1 is the voice's natural pace. pitch - minus 12 to plus 12 semitones, 0 is neutral. volume - a 0.5 to 2 multiplier.
    • language - leave it on the default to auto-detect from the text, or force it.
    • output_format - mp3, or opus for an Ogg Opus file. sample_rate - the model uses 24000 Hz when you leave it alone.

    Outputs: audio, and task id - a STRING identifying the request in SpicyAPI's logs.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/spicyapi-ai/comfyui-spicyapi
    

    Restart ComfyUI, open Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys (or export SPICY_API_KEY), restart again. ComfyUI Manager: search SpicyAPI. No dependencies, no model files - the pack is a client for a host, which is why it works on a CPU-only build of ComfyUI.

    Costing speech

    $0.072 per 1,000 characters, so a 300-word voiceover is cheap and a 12-minute script is not. The rate shows on the node, and the quote taken before submission is what actually gets charged. Set Settings > SpicyAPI > Max cost per run and an over-budget read is refused before it starts. The instructions field is free, which makes it the best value on the node - fix delivery there before you consider paying for a retake. Seeds default to fixed so re-queueing doesn't double-bill; a cancelled run keeps generating server-side and is charged if it succeeds.

    When it misbehaves

    No SpicyAPI key is set for a missing or malformed key, 40310 for an unverified email, 40004 when the combination of voice, language and format isn't served - the message names the field, and nothing is charged. If a voice speaks with an odd accent, check language isn't forcing a reading the voice wasn't built for. And if a model isn't in your node menu, restart ComfyUI so the catalogue is rebuilt from your account.

    CategorySpicyAPI/Audio/ByteDance

    Inputs (10)

    NameTypeDefaultDescription
    textSTRINGThe words to be spoken, exactly as written. Billed per 1,000 characters.
    voice_idCOMBOstokie_enPreset voice. The suffix shows the languages it is built for.
    instructionsSTRINGHow to read the text: tone, emotion, pace or volume. Not spoken and not billed.
    speedFLOAT1.000.5–2Speaking rate; 1 is the voice's normal pace.
    pitchINT0-12–12Pitch shift in semitones; 0 keeps the voice's own pitch.
    volumeFLOAT1.000.5–2Loudness multiplier; 1 is the normal level.
    languageCOMBOmodel defaultForces the reading language. Leave empty to detect it from the text.
    output_formatCOMBOmp3File format of the result; opus is an Ogg Opus file.
    sample_rateCOMBOmodel defaultSample rate in Hz. The model uses 24000 when omitted.
    seedINT00–2147483647This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed.

    Outputs (2)

    NameTypeDescription
    audioAUDIOSeveral results come back as a batch; Save Audio writes one file each.
    task idSTRINGThe SpicyAPI task id, for the console logs or support.