Files

5.2 KiB
Raw Permalink Blame History

ComfyUI-VideoToText 中文快速入门

视频转文字 ComfyUI 节点包,配合 ComfyUI-MiMoASR(小米 MiMo-V2.5-ASR)使用。

完整英文文档请看 README.md,实战安装记录在 INSTALL_NOTES.md。本文档给的是最短可工作路径。

这个包做什么

提供视频→音频→JSON 转录管线的"包装层"。ASR 本身由 MiMoASR 完成(强中英 code-switching、方言、抗噪),本包负责前后处理:

节点 作用
🎙️ Load Video (ASR) 从 ComfyUI/input 选视频
🎙️ Extract Audio (ffmpeg) 抽音轨成 16kHz WAV,带 mtime 缓存
🎙️ Audio From Path WAV 路径 → ComfyUI AUDIO dict(喂给 MiMoASR)
🎙️ Build Transcript JSON 文本 + 元数据 → v2.0 JSON
🎙️ Save Transcript JSON 保存到 ComfyUI/output/

装节点(在 ComfyUI 服务器上)

# 1) 装 ffmpeg(如果还没装)
$ sudo apt install ffmpeg

# 2) clone 本包
$ cd /mnt/modelall/ComfyUI/custom_nodes
$ git clone https://github.com/aadebuger/ComfyUI-VideoToText.git

# 或者从 tarball 装:
$ tar xzf /tmp/ComfyUI-VideoToText-v0.2.0.tar.gz

# 验证目录结构
$ ls ComfyUI-VideoToText/__init__.py   # 必须存在,不能多嵌套一层

# 3) 装唯一的依赖
$ cd /mnt/modelall/ComfyUI && source .venv/bin/activate
$ uv pip install torchaudio

# 4) 装 MiMoASR(如果还没装,详见它自己的 README)
$ cd /mnt/modelall/ComfyUI/custom_nodes
$ git clone https://github.com/aadebuger/ComfyUI-MiMoASR.git
$ cd ComfyUI-MiMoASR && ./scripts/install_server.sh

# 5) 装 PreviewAny(CLI 用,从 rgthree-comfy)
$ cd /mnt/modelall/ComfyUI/custom_nodes
$ git clone https://github.com/rgthree/rgthree-comfy.git

装模型(MiMo 权重,~24 GB)

# HF cache 必须重定向到大盘
$ export HF_HOME=/mnt/modelall/hf_cache
$ mkdir -p $HF_HOME

$ uv pip install -U huggingface-hub

# 主模型 ~16 GB
$ hf download XiaomiMiMo/MiMo-V2.5-ASR \
    --local-dir /mnt/modelall/models/MiMo-V2.5-ASR

# Audio tokenizer ~1-2 GB
$ hf download XiaomiMiMo/MiMo-Audio-Tokenizer \
    --local-dir /mnt/modelall/models/MiMo-Audio-Tokenizer

# 国内下载慢的话加镜像:
# $ export HF_ENDPOINT=https://hf-mirror.com

还要 clone MiMo 上游 repo(loader 注入 sys.path 用):

$ mkdir -p /opt/repos && cd /opt/repos
$ git clone https://github.com/XiaomiMiMo/MiMo-V2.5-ASR.git

启动 ComfyUI(关键三个 env var)

$ pkill -9 -f main.py; sleep 3
$ cd /mnt/modelall/ComfyUI && source .venv/bin/activate

$ export HF_HOME=/mnt/modelall/hf_cache
$ export MIMO_ASR_REPO=/opt/repos/MiMo-V2.5-ASR
# 可选:把 MiMo 绑到 GPU 1
# $ export CUDA_VISIBLE_DEVICES=1

$ nohup python main.py --listen 0.0.0.0 --port 8188 > ~/comfy_start.log 2>&1 &
$ sleep 30
$ grep -iE "IMPORT FAILED|VideoToText" ~/comfy_start.log

验证(在 Mac 上跑)

$ curl -s http://10.8.0.12:8188/object_info | python3 -c "
import json, sys
d = json.load(sys.stdin)
for n in ('VTT_LoadVideo','VTT_ExtractAudio','VTT_AudioFromPath',
          'VTT_BuildTranscriptJSON','VTT_SaveTranscript',
          'MiMoASRLoader','MiMoASRTranscribe','PreviewAny','LoadAudio'):
    print(f'  {n}: {\"OK\" if n in d else \"MISSING\"}')"

9 个全 OK 就 ready。

跑一个视频(在 Mac 上跑 CLI)

$ cd ~/ComfyUI-VideoToText/cli
$ uv pip install --system websocket-client requests

$ uv run python video_to_text_cli.py /path/to/test.mp4 \
    --ip 10.8.0.12 \
    --model-path /mnt/modelall/models/MiMo-V2.5-ASR \
    --tokenizer-path /mnt/modelall/models/MiMo-Audio-Tokenizer \
    --language Auto

第一次跑会卡 30–60 秒(MiMo 8B 模型进 VRAM),之后秒级。

可设个 alias 省事:

# ~/.zshrc
alias v2t='uv run python ~/ComfyUI-VideoToText/cli/video_to_text_cli.py \
    --ip 10.8.0.12 \
    --model-path /mnt/modelall/models/MiMo-V2.5-ASR \
    --tokenizer-path /mnt/modelall/models/MiMo-Audio-Tokenizer'

# 用:
$ v2t my_video.mp4 --language Chinese

输出长这样

{
  "schema_version": "2.0",
  "source": {
    "audio_path": "/tmp/comfyui_vtt/foo.wav",
    "duration_sec": 123.45,
    "video_path": "/path/to/foo.mp4"
  },
  "model": {
    "name": "MiMo-V2.5-ASR",
    "tokenizer": "MiMo-Audio-Tokenizer",
    "language": "Auto"
  },
  "text": "你好,今天我们聊一下 ESP32 嵌入式开发……"
}

常见问题速查

现象 原因 解决
VTT_* 节点 MISSING 包没装 / 嵌套了 / 没重启 重新装 + 重启 ComfyUI
MiMoASRLoader: MISSING MiMoASR 没装好 看 MiMoASR README
transformers 太新报错 MiMo 要求 ==4.49.0 $ uv pip install transformers==4.49.0 --force-reinstall
flash-attn NoneType 错误 编译静默失败 重编,看 ~/flash_attn_build.log
MIMO_ASR_REPO is empty 没设环境变量 启动前 $ export MIMO_ASR_REPO=/opt/repos/MiMo-V2.5-ASR
ffmpeg not found 服务器没装 ffmpeg $ sudo apt install ffmpeg
torchaudio is required 漏装依赖 $ uv pip install torchaudio
CUDA OOM GPU 0 被占 $ export CUDA_VISIBLE_DEVICES=1

详细排错见 INSTALL_NOTES.md。