Nodes/DIGIT Nodes/DIGIT SRT Maker
ComfyUI Node

DIGIT SRT Maker

Turn a script into timed subtitles without touching an audio file

By thedepartmentofexternalservices·Created 6 months ago·Updated 26 days ago· 0
DIGIT SRT Maker
    • srt_filepath
    • srt_text
    modelgemini-2.5-flash
    script_url
    extra_instructionsonly include actually spoken word. look at the script and do not include any words describing people, actors, or stage direction. figure out only what is actually going to be spoken, and only use that in the SRT file outputs. The SRT outputs are only for on screen dialogue.
    words_per_second2.5
    projekts_root
    project
    filenamedialogue
    gcp_project_id
    gcp_region
    script_text

    Most subtitle tools start from audio or video. DIGIT SRT Maker is the odd one out in the best way: it starts from a script. Paste a Google Doc URL or raw script text, and it has Gemini figure out what's actually spoken - stripping out stage directions, scene headings, camera notes, and action lines - then generates a properly timed SRT at a natural speaking pace. If you're captioning a commercial, a short film, or any produced piece where the script is the source of truth, this is the node you want before you've even rendered the audio.

    It pairs naturally with SRT From Video (transcribe from audio) - this one is for when the script is cleaner than any transcription would be, and you want dialogue-only captions that read like the writer intended, not like Whisper heard it.

    The inputs that matter

    • script_url - a Google Doc URL or any web URL containing the script. Private docs work if you've done gcloud auth login --enable-gdrive-access, since the node grabs a token from gcloud and talks to the Drive API; if authenticated access fails it falls back to public export.
    • script_text - paste the script directly instead. Overrides the URL if both are given, and honestly it's the more reliable path for most people.
    • extra_instructions - pre-filled with a sensible default that says "only include actually spoken word, no stage direction." You can tailor it: filter by character, by scene, whatever the project needs.
    • words_per_second - 2.5 is the natural conversational pace and the default. Drop it toward 1.5–2 for slower, longer subtitles; push it up and entries get shorter. This is the single knob that controls how the timing feels.
    • model - gemini-2.5-flash default, Pro or Gemini 3 previews available if the script is gnarly.
    • projekts_root / project / filename - where it saves. Output lands in PROJEKTS/project/assets/auto_srt/<filename>.srt, dialogue.srt by default.

    Outputs: srt_filepath (the saved file) and srt_text (raw content - run it through SRT Preview to QA before you commit to it).

    How it works

    The node fetches the script (Google Docs via the Drive API, plain URLs via HTTP), strips HTML down to text, and sends the whole thing to Gemini with your extra_instructions. Gemini identifies only the spoken dialogue and returns timed SRT entries based on a natural speaking pace - that's where words_per_second comes in; the node uses it to lay out subtitle durations and spacing. There's a small fixed gap between entries so captions don't butt against each other.

    Setup and gotchas

    Standard DIGIT install - ComfyUI Manager search comfyui-digit, or clone-and-pip. This is a Vertex AI node, so it needs the gcloud application-default credentials and aiplatform.googleapis.com enabled; gcp_region defaults to global, which is fine for Gemini.

    The one thing that trips people: a Google Doc that looks public but exports nothing usually means the share settings are view-only-for-specific-accounts. Either make it link-shared or use script_text instead - pasting is faster than fighting Drive permissions anyway. And remember Gemini's output is only as clean as the instruction: if you see scene headings sneaking into captions, that's the extra_instructions field doing its job poorly, so say exactly what to exclude.

    CategoryDIGIT

    Inputs (10)

    NameTypeDefaultDescription
    modelCOMBOgemini-2.5-flash9 options: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flash, gemini-2.0-flash-lite, gemini-3.1-pro-preview, +3
    script_urlSTRING
    extra_instructionsSTRINGonly include actually spoken word. look at the script and do not include any words describing people, actors, or stage direction. figure out only what is actually going to be spoken, and only use that in the SRT file outputs. The SRT outputs are only for on screen dialogue.
    words_per_secondFLOAT2.50.5–10
    projekts_rootCOMBO1 options: /root/PROJEKTS
    projectCOMBO1 options:
    filenameSTRINGdialogue
    gcp_project_idSTRINGGCP project ID. Auto-detected from DIGIT_GCP_PROJECT env var or GCP metadata.
    gcp_regionSTRINGGCP region. Auto-detected from DIGIT_GCP_REGION env var or GCP metadata. Defaults to 'global'.
    script_textoptSTRING

    Outputs (2)

    NameTypeDescription
    srt_filepathSTRING
    srt_textSTRING