Nodes/Confucius4-R2T2 Q8 ASR/Confucius4 Save Transcript
ComfyUI Node

Confucius4 Save Transcript

Where the text actually lands on disk

By T8mars·Created 21 days ago·Updated 9 days ago· 15
Confucius4 Save Transcript
    • saved_path
    ◄result_json—►
    ◄format▾►
    ◄prefixr2t2_transcript►
    ◄offset_ms0►
    ◄allow_partialfalse►
    ◄whole_audio_draftfalse►

    Every transcription workflow ends here. Confucius4 Transcribe and Confucius4 Live Microphone hand you text inside ComfyUI, which is fine for eyeballing and useless for anything else - this node writes it to a file in ComfyUI's output folder so you can actually use it.

    The inputs

    result_json - the forced input. Not the text output: the full JSON string from one of the two transcribe nodes. The node parses it, so a plain sentence from some other string node will fail on JSON decode. This is the mistake people make.

    format - txt or json. txt writes nothing but the transcript. json writes the whole result: segment boundaries, detected language, timing, mode_executed, the status flag. If you care about anything other than the words, pick json. There are no timestamps in the txt - that's not a bug, that's the format.

    prefix - the front of the filename, default r2t2_transcript. Anything outside letters, digits, dash, and underscore gets swapped for an underscore, and it's capped at 64 characters, so a tidy prefix like podcast_ep12 is worth the five seconds.

    What it does when you Run it

    It reads the status field first and only saves results that are complete, finalized, requires_review, or truncated - i.e. finished, or finished-with-a-caveat. A cancelled or half-fed live session has no status worth trusting, and this node won't write one out.

    Then it builds a filename from your prefix plus the first 16 hex characters of a SHA-256 of the JSON, and writes to ComfyUI/output/ as <prefix>_<hash>.<ext>. Two consequences worth knowing:

    • Re-running is safe. Same result, same filename, no duplicates piling up on every queue. The write is atomic (temp file, then link), and if a file with that name exists with different content, it raises instead of clobbering.
    • One edited word changes the filename. The hash is of the content. If you want predictable filenames for a pipeline, don't lean on this one - rename or copy after the fact. Keeping the prefix meaningful at least makes them sortable.

    It also refuses to follow a symlink at the target path, which is the pack being paranoid about writing outside your output directory. Mild, and worth a shrug unless you've done something creative with your output folder.

    OUTPUT_NODE is set, so this always executes when it's part of the queued graph - no need to route anything further downstream to make it fire. Its single output, saved_path, is the absolute path it wrote, which you can wire into a text node or anything else that wants the path string.

    Install

    Same pack, same install as the rest: ComfyUI Manager → Confucius4-R2T2 Q8 ASR, then the Windows scripts/setup_worker_windows.ps1 step, which is what actually gives the pack a runtime - audio tooling in ComfyUI tends to arrive as a bespoke pack with its own dependency stack, as audio-generation.md puts it, and this one is no exception. Both bundled workflows already end in this node - the file one with prefix r2t2_ui_drag and format json, the live one with r2t2_live - so if you drag either one in you're already set up correctly.

    Where people get burned

    Feeding it raw text. Wire result_json, not text. Errors here look cryptic because they surface as a JSON parse failure or the "only finalized transcripts" message, depending on what you handed it.

    Wondering where the file went. ComfyUI/output/, under the prefix and hash name. In the frontend, the output folder shortcut is the quickest way there.

    Wanting timestamps and saving txt. Switch the format to json; the per-segment sample offsets only exist in the JSON.

    Trying to save a live session you cancelled. Nothing was finalized, so there's nothing to save. Press Stop and finalize, then Run.

    CategoryConfucius4-R2T2

    Inputs (6)

    NameTypeDefaultDescription
    result_jsonSTRING—
    formatCOMBO4 options: txt, json, srt, vtt
    prefixSTRINGr2t2_transcript—
    offset_msoptINT0-86400000–86400000—
    allow_partialoptBOOLEANfalse—
    whole_audio_draftoptBOOLEANfalse—

    Outputs (1)

    NameTypeDescription
    saved_pathSTRING—