Nodes/PopNow/Gemini 3.8 Flash-Lite TTS · Text to Speech
ComfyUI Node

Gemini 3.8 Flash-Lite TTS · Text to Speech

30 voices, three cents a minute, one catch in the text box

By popnow-ai·Created 24 days ago·Updated about 20 hours ago· 0
Gemini 3.8 Flash-Lite TTS · Text to Speech
    • audio
    • task id
    ◄text►
    ◄dialogue►
    ◄speakers►
    ◄voice_idKore►
    ◄stylemodel default►
    ◄pacemodel default►
    ◄accentmodel default►
    ◄instructions►
    ◄scene►
    ◄filler_wordsfalse►
    ◄temperature-1.00►

    The cheap voice in the family

    PopNow ships three Gemini speech nodes and this is the bottom of the ladder: 0.03 credits per second of audio, thirty prebuilt voices, and the least expressive of the three. If you're voicing a rough cut, generating scratch narration for a video you'll re-do, or need fifty lines of placeholder dialogue to time an edit, the arithmetic here is hard to argue with - a minute of speech costs about two credits.

    The catch is right there in the author's tooltip for text: "Spell out sounds such as sighs or laughter; bracketed cues may be read aloud." On the Pro and Flash nodes, [sighs] becomes a sigh. Here it might become the word "sighs". Write the sound out - "hah", "mmm", a long dash for a pause - and treat square brackets as decorative at best.

    How the call works

    Nothing runs on your machine. The node posts your text (or your scripted dialogue) to PopNow with a price quote first, submits the task under an idempotency key so a retry can't bill twice, polls until it's done, and decodes the returned audio into ComfyUI's AUDIO format. When the model returns several takes they arrive as a batch, resampled and padded to the longest so a single Save Audio node writes one file each.

    The pack has no Python dependencies outside ComfyUI's own stack, which means no TTS project to babysit - no transformers version roulette, no per-engine runtime isolation, none of the tax that makes local audio a chore. You're paying credits in exchange for skipping that.

    The inputs a beginner actually touches

    • text - the words to be spoken. For a single voice, this is the whole job.
    • dialogue + speakers - leave both empty unless you want a two-person scene. If you do, dialogue is a JSON list of {"text", "speaker"} objects and speakers is a JSON list of one or two voices, each with a name (referenced by the dialogue lines), a required voice_id, and optional pace, style, accent and profile.
    • voice_id - combo, default Kore. Thirty options; each is a fixed character, not a dial.
    • style, pace, accent - all default to model default. That's the honest default: the field is omitted from the request and the voice does its natural thing. accent here defaults to model default rather than a fixed neutral, unlike the 2.5 Pro node - worth knowing if you're copying settings between the two.
    • instructions, scene - free text that shapes delivery without being spoken. Mood, pace, who's listening; where the words are spoken. Cheap to use, occasionally surprising.
    • temperature - -1 to 2, step 0.05, where -1 hands the choice back to the model. Bump it if you want three genuinely different takes of the same line.

    Output is audio (AUDIO, possibly a batch) and task id (STRING).

    Install

    Manager → search PopNow → Install, or:

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

    Restart, then create a key at popnow.ai/api/console/keys and paste it under Settings > PopNow, or export POPNOW_API_KEY if the box is headless. Restart again - the node list is rebuilt from your account's catalog on startup, and "the node vanished" is nearly always a missing restart. Delete the old standalone popnow_api.py if you have one.

    Fixing the usual failures

    No key or a revoked one gives you No PopNow API key is set or PopNow 401. 40310 means your email isn't verified. 40201 means no credits - at this node's rate that's harder to hit than on the Pro model, but a long script still adds up. A 400 that names dialogue or speakers is almost always invalid JSON; the fields are strings, not parsed objects, so one stray comma kills the run. Models that decline are reported as content_rejected and refunded.

    Beginner move worth unlearning: hitting cancel. It stops you waiting; the task keeps running on PopNow and is charged if it finishes. If you want to stop spending, stop queueing.

    PopNow is a new vendor with no evident community history, so take the low-stakes route - small credit pack, key in the environment, and a workflow you've actually run before you point it at a deadline.

    CategoryPopNow/Audio/Google

    Inputs (11)

    NameTypeDefaultDescription
    textSTRINGWords to speak, up to 10,000 characters. Native inline cues include <laugh>, <sigh> and <short pause>.
    dialogueSTRINGA scripted conversation, used instead of text: each line names a speaker from speakers. JSON. A list of objects with "text", "style"?, "speaker".
    speakersSTRINGThe cast for dialogue: one or two voices, each with a name the lines refer to. JSON. A list of objects with "name", "pace"?, "style"?, "accent"?, "profile"?, "voice_id"?, "consent_audio_url"?, "reference_audio_url"?.
    voice_idCOMBOKorePrebuilt voice that reads the text. Each voice has a fixed character.
    styleCOMBOmodel defaultOverall manner of the reading. Omit it to use the voice's own default manner.
    paceCOMBOmodel defaultRhythm of the reading. Omit it to keep the voice's own rhythm.
    accentCOMBOmodel defaultEnglish accent used for the reading.
    instructionsSTRINGHow to read the text: mood, distance from the microphone, who is listening. Shapes the delivery and is not spoken.
    sceneSTRINGWhere and to whom the words are spoken. Shapes the delivery and is not spoken.
    filler_wordsBOOLEANfalseAllow filler words in a two-speaker conversation. Has no effect on single-speaker requests.
    temperatureFLOAT-1.00-1–2Variation between takes; higher is less predictable. -1 leaves it to the model.

    Outputs (2)

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