一个用于 ComfyUI 的自定义节点,利用 OpenAI Whisper 自动识别音频生成字幕,并使用 FFmpeg 将字幕**硬压制(Hardcode)**到视频帧中。
支持自定义字体、大小、颜色、描边、阴影及位置对齐,适合制作带字幕的短视频或序列帧动画。
- 🎤 自动语音转文字:基于 OpenAI Whisper 模型(支持多语言)。
- 🔥 硬字幕压制:使用 FFmpeg
subtitles滤镜,支持复杂样式。 - 🚀 流式处理:输入图片序列 + 音频 → 输出带字幕帧,可直接送入 Video Combine。
- 🛠 高度可定制:支持字体、颜色、描边、阴影、位置等参数调节。
cd ComfyUI/custom_nodes/
git clone https://github.com/starsFriday/ComfyUI-Audio-Subtitle.git本节点依赖:
- openai-whisper
- imageio
- torchaudio
- numpy
请在 ComfyUI 所使用的 Python 环境中安装:
pip install openai-whisper imageio[ffmpeg] torchaudio numpy
sudo apt-get install fonts-wqy-zenhei本节点通过调用系统的 ffmpeg 进行字幕渲染。
- 下载 FFmpeg 并解压
- 将
/bin目录加入系统环境变量 Path - 验证:
ffmpeg -versionsudo apt install ffmpeg
# 或
brew install ffmpeg- 使用
Load Video (Upload)或VHS Load Video加载视频 - 将视频的 IMAGE 输出连接到本节点的
images - 将视频的 AUDIO 输出连接到本节点的
audio - 设置 fps(建议从 VHS Info 获取)
- 将本节点输出的
frames与audio送入Video Combine节点合成最终视频
本节点通过 FFmpeg 的 force_style 参数控制字幕样式。
| model_size | 特点 |
|---|---|
| tiny/base | 速度快,精度一般 |
| small/medium | 推荐,速度与精度平衡 |
| large | 精度最高,但占用显存大、速度慢 |
- Fontname:字体名称
- Windows 常用:Arial, SimHei, Microsoft YaHei(支持中文)
- Fontsize:字号(像素)
ASS 颜色格式:
&H[透明度][蓝][绿][红]
即:&H AABBGGRR(注意:BGR 顺序)
| 颜色 | ASS 代码 |
|---|---|
| 纯白 | &H00FFFFFF |
| 纯黄 | &H0000FFFF |
| 纯红 | &H000000FF |
| 纯黑 | &H00000000 |
- BorderStyle
1:普通文字 + 描边(常用)3:带不透明背景框
- Outline:描边宽度(像素)
- Shadow:阴影深度(像素)
Alignment 与小键盘布局类似:
| 对齐值 | 位置 |
|---|---|
| 1 | 左下角 |
| 2 | 下方居中(推荐) |
| 3 | 右下角 |
| 5 | 中央 |
| 7 | 左上角 |
- MarginV:垂直边距(Alignment=2 时控制与底部距离)
A: 字体不支持中文,请设置 Fontname 为:
- Microsoft YaHei
- SimHei
- 任何支持中文的字体
A: 未安装 FFmpeg 或未加入系统 Path。
A: 因为 ASS 使用 BGR 排序,不是 RGB。
MIT License
