dots.tts 字幕时间轴标准化 · T8star-Aix
Timeline — one node to validate and standardize any SRT, WebVTT, or dots.tts timeline
- 标准 SRT
- 标准时间轴 JSON
Subtitle files are the messy middle of any dubbing pipeline, and everyone who's edited one by hand knows the pain: a mangled timestamp, a malformed cue, an SRT that some tool wrote in a slightly-wrong dialect. T8_DotsTTS_Timeline is the pack's cleanup node - it takes a timeline in SRT, WebVTT, or the pack's own timeline JSON, validates it, and outputs a canonical SRT plus a standardized timeline JSON. It's the "make sure the subtitles aren't garbage before we hand them to the renderer" step, and it doubles as a queue endpoint so you can preview subtitle text directly in the UI.
Mechanically it's straightforward. timeline is the raw text you paste in, and input_format (srt default) tells it what dialect to parse. It's strict in the way subtitle tooling should be strict: invalid cues or unparseable timestamps come back as errors rather than being silently "fixed," because a dubbing render that proceeds on a subtly wrong timeline produces audio that's silently out of sync - the worst kind of bug. The two outputs are srt (the normalized SRT, rewritten consistently so every cue uses the same timestamp format and ordering) and timeline_json (the pack's standardized schema, with schema_version and a cues array).
Since it's marked as an output node, you can use it as the end of a chain: run T8_DotsTTS_Transcribe (which emits an SRT and timeline JSON) into this node, and the subtitle text appears in the UI preview for a quick read before you commit it to a project. That round-trip - transcribe → validate → render - is the intended position in a workflow.
When you'll actually reach for it
- You pulled an SRT from a caption tool and want to normalize it before feeding
T8_DotsTTS_ProjectorT8_DotsTTS_BatchQueue. - You're converting between WebVTT and SRT without hand-editing.
- You want to check whether a timeline is even valid before you burn GPU time rendering against it.
The node is pure text processing - no model, no GPU, runs instantly. The one trap is subtle: input_format must match what you actually pasted. Feed WebVTT while it's set to srt and you'll get parse errors that look like the node is broken. It isn't; the format selector is the dial to check first.
No install extras beyond the pack itself - ComfyUI Manager search dots-tts-t8, or git clone https://github.com/T8mars/comfyui-dots-tts-T8 into custom_nodes and pip install -r requirements.txt.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| timeline | STRING | — | |
| input_format | COMBO | srt | 3 options: srt, vtt, json |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 标准 SRT | STRING | — |
| 标准时间轴 JSON | STRING | — |