Nodes/ComfyUI-Easy-Media/Add Subtitle To Video
ComfyUI Node

Add Subtitle To Video

Burn Subtitles Without Leaving ComfyUI

By yolain·Created 3 months ago·Updated about 16 hours ago· 158
Add Subtitle To Video
  • video
  • VIDEO
subtitle_text
srt_savetemp
font_size16

Subtitles are the last manual step in most video workflows

You generate a clip, maybe dub it, and then what? If the answer is "open a video editor to slap captions on it," you've broken the automation chain. Easy-Media's Add Subtitle To Video is the node that burns text into the video itself - an output node you can drop at the end of a pipeline and call it done.

It's designed to sit after the pack's recognize side of things too: the pack can auto-generate subtitles from audio (Whisper or Qwen3-ASR), and this node takes that text - or anything you typed yourself - and makes it permanent.

How it works

Three steps under the hood, and you only care about the first:

  1. Parse. The subtitle_text box accepts three formats, so you can paste whatever you have:

    • Full SRT: 1\n00:00:00,000 --> 00:00:02,000\nSubtitle text
    • Inline timestamps: 00:00:00,000 --> 00:00:02,000 Subtitle text
    • Bracket format: [00:02.000 --> 00:04.000] Subtitle text
  2. Normalize. Whatever you fed it gets rewritten into a clean SRT file. You choose where it lands with srt_save: temp keeps it in ComfyUI's temp folder (fine for a one-off), output writes it to ComfyUI/output/srt/ so you keep the captions as a separate file.

  3. Burn. The video and the subtitle track get muxed together with FFmpeg - that's the real mechanism, and it's the whole reason the pack's README starts with a loud "install FFmpeg first" warning.

The inputs that matter

  • subtitle_text - the actual captions, multiline. This is where the formats above go.
  • video - the VIDEO input you want captioned.
  • srt_save - temp or output. The "output" option is the one you want if you're archiving the SRT alongside your renders.
  • font_size - 16 by default, range 8–96. Note the units: this is burned at encode-time pixel size, so 16 is small on a 1080p frame. For actual viewing, most people end up around 36–48. If your captions look like ant legs, this is the first knob to turn.

The single output is a VIDEO with the text baked into the pixels. There's no way to un-burn it later - that's what the saved SRT is for.

Setup and troubleshooting

Install is the pack install: ComfyUI Manager → search ComfyUI-Easy-Media, or

cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Media.git

then restart ComfyUI. Before anything else, make sure FFmpeg is on your PATH - the README flags it as strongly recommended for the whole pack, and this node hard-requires it.

The usual failure modes:

  • Nothing burns / the node errors - 90% of the time FFmpeg isn't found. Run ffmpeg -version in a terminal; if that fails, install it (on Windows, winget or a PATH setup; on Linux/macOS your package manager) and restart ComfyUI.
  • Captions show but at the wrong time - check the timestamp format. The parser is tolerant but it isn't a psychic: [00:02.000 --> 00:04.000] is seconds, 00:00:00,000 --> 00:00:02,000 is the SRT format with comma milliseconds. Mixing them up silently shifts everything.
  • Font too small (or huge) - that's font_size, and remember it's relative to the rendered frame, not your screen.

This node is unglamorous plumbing, but it's the difference between a "generated a video" workflow and a "generated a finished video" workflow. Wire it after your save node or straight after the sampler and the subtitles are part of the deliverable.

CategoryEasyUse/Video

Inputs (4)

NameTypeDefaultDescription
subtitle_textSTRING
videoVIDEO
srt_saveCOMBOtempSave the normalized SRT in temp or output/srt.
font_sizeINT168–96

Outputs (1)

NameTypeDescription
VIDEOVIDEO