# VoiceGate Dependency Inventory This document tracks the ComfyUI, custom node, Python package, model, and runtime dependencies required by `workflows/voicegate_api.json`. ## Workflow Node Sources | Workflow node(s) | Source | Repository | Version / pin status | Notes | | --- | --- | --- | --- | --- | | `LoadAudio`, `SaveAudioMP3`, `TrimAudioDuration` | ComfyUI core | `https://github.com/comfyanonymous/ComfyUI.git` | current checked HEAD: `5aa71b9bc28809a16596bb9fa3d0a6300d8e3f0e`; workflow recorded `comfy-core` `0.12.1` | Core audio nodes. | | `VoiceBridgeASRLoader`, `VoiceBridgeASRTranscribe`, `GenerateSRT`, `VoiceBridgeSRTSplitter`, `VoiceBridgeAudioListMergerBySRT`, `SaveSRTFromString` | VoiceBridge | `https://github.com/YanTianlong-01/comfyui_voicebridge.git` | current checked HEAD: `3728962c0db7b9e05a1d0b341e3dbbd8adba4409`; workflow recorded `ddefcc0082ab9591f9b613f0de565f25f85d8f2a` and `5149c68df1d156794999bd77ff6a86fcab0314ed` | Required. Existing workflow uses newer SRT split/merge nodes plus ASR/SRT generation. | | `RunningHub_VoxCPM_LoadModel`, `RunningHub_VoxCPM_Generate` | RunningHub VoxCPM | Prefer `https://github.com/RH-RunningHub/ComfyUI_RH_VoxCPM.git` | current checked HEAD: `8365fe0e1fa60d7547f83ae5db53453a3d9c627d`; mirror/fork `https://github.com/HM-RunningHub/ComfyUI_RH_VoxCPM.git` HEAD: `1cd7b29fb6596588319fc5ad49cd78f5b5375d76` | Required for VoxCPM2 TTS. Both candidate repos contain the needed node mappings; README points to `RH-RunningHub`. | | `MelBandRoFormerModelLoader`, `MelBandRoFormerSampler` | MelBand RoFormer | `https://github.com/kijai/ComfyUI-MelBandRoFormer.git` | current checked HEAD: `92c86854e6654f4aacc97484471af95c98ea16d4`; workflow recorded `b40e263224778ec417114d91d8b3b39934e30de5` | Required for vocal/background separation. | | `RH_LLMAPI_NODE` | RunningHub LLM API | `https://github.com/HM-RunningHub/ComfyUI_RH_LLM_API.git` | current checked HEAD: `26e18d1a769bd08e115b59bfdf170f8a2166c0df` | Required for DeepSeek/OpenAI-compatible SRT translation. No requirements file; code imports `openai`. | | `Any Switch (rgthree)`, `Fast Groups Bypasser (rgthree)` | rgthree | `https://github.com/rgthree/rgthree-comfy.git` | current checked HEAD: `738105af5fb14e96fbecaf406dc356e284797e8c` | Required by API workflow for reference audio/text switches. | | `easy showAnything`, `easy string` | Easy Use | `https://github.com/yolain/ComfyUI-Easy-Use.git` | current checked HEAD: `625efbfa2fc20c31797dfffcbb41a26b6d91ab7b` | `easy showAnything` is display-oriented and may be removable later, but current workflow references it. | | `CR Text` | Comfyroll | `https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git` | current checked HEAD: `d78b780ae43fcf8c6b7c6505e6ffb4584281ceca` | Required for the translation prompt text node. No requirements file found. | | `ReplaceText` | ComfyUI core extra nodes | `https://github.com/comfyanonymous/ComfyUI.git` | covered by the ComfyUI pin | Confirmed in `comfy_extras/nodes_dataset.py` as node id `ReplaceText`. | | `MergeAudioMW` | MW AudioTools | `https://github.com/billwuhao/ComfyUI_AudioTools.git` | current checked HEAD: `41463715b476aa1d44de617119a68d8841aa04bd` | Required for merging generated speech with separated background audio. | ## Python Requirements Observed ### ComfyUI Core Install from ComfyUI's own `requirements.txt` after cloning the selected ComfyUI commit. ### VoiceBridge `comfyui_voicebridge/requirements.txt`: ```text torch numpy qwen-asr transformers accelerate modelscope soundfile openai ``` ### RunningHub VoxCPM `ComfyUI_RH_VoxCPM/requirements.txt`: ```text voxcpm soundfile librosa wetext modelscope>=1.22.0 funasr inflect addict simplejson sortedcontainers pydantic transformers datasets safetensors argbind ``` The workflow only uses inference nodes, so training-only dependencies may be avoidable later. Keep the upstream requirements initially for compatibility, then trim once the runtime is known. ### MW AudioTools `ComfyUI_AudioTools/requirements.txt`: ```text sox librosa pydub pyyaml rotary-embedding-torch typeguard git+https://github.com/SesameAILabs/silentcipher ``` ### MelBand RoFormer `ComfyUI-MelBandRoFormer/requirements.txt`: ```text rotary_embedding_torch einops ``` ### Easy Use `ComfyUI-Easy-Use/requirements.txt`: ```text diffusers accelerate clip_interrogator>=0.6.0 lark onnxruntime opencv-python-headless sentencepiece spandrel matplotlib peft ``` ### rgthree `rgthree-comfy/requirements.txt` exists but is empty. ### RunningHub LLM API No `requirements.txt` found. The node imports `openai`, already covered by VoiceBridge. ### Comfyroll No `requirements.txt` found. ## Model Inventory | Model / asset | Source | Target location | Notes | | --- | --- | --- | --- | | Qwen ASR | `Qwen/Qwen3-ASR-1.7B` | persistent target `/data/voicegate_models/Qwen3-ASR/Qwen3-ASR-1.7B`; ComfyUI link root `ComfyUI/models/Qwen3-ASR` | Loaded by `VoiceBridgeASRLoader`. | | Qwen forced aligner | `Qwen/Qwen3-ForcedAligner-0.6B` | persistent target `/data/voicegate_models/Qwen3-ASR/Qwen3-ForcedAligner-0.6B`; ComfyUI link root `ComfyUI/models/Qwen3-ASR` | Loaded by `VoiceBridgeASRLoader`. | | VoxCPM2 | `openbmb/VoxCPM2` | persistent target `/data/voicegate_models/voxcpm/VoxCPM2`; ComfyUI link `ComfyUI/models/voxcpm/VoxCPM2` | RunningHub VoxCPM README documents the ComfyUI location. Approx. 4.6 GB. | | MelBand RoFormer | `Kijai/MelBandRoFormer_comfy` | persistent target `/data/voicegate_models/diffusion_models/MelBandRoFormer_comfy`; ComfyUI link `ComfyUI/models/diffusion_models/MelBandRoFormer_comfy` | Workflow references `MelBandRoFormer_comfy/MelBandRoformer_fp32.safetensors`. | ## System Packages Current `packages.txt` contains: ```text ffmpeg git ``` Likely sufficient for the first bootstrap pass. Revisit after dependency installation errors. ## Space Secrets Required: - `DEEPSEEK_API_KEY` or compatible OpenAI API key for `RH_LLMAPI_NODE`. Optional: - `DEEPSEEK_BASE_URL`, default `https://api.deepseek.com`. - `DEEPSEEK_MODEL`, default currently `deepseek-v4-flash` in the workflow. - `HF_TOKEN`, if model downloads require authenticated access. ## Pinning Strategy Use explicit git URLs and commits in the bootstrap script. Recommended initial pins: ```text ComfyUI 5aa71b9bc28809a16596bb9fa3d0a6300d8e3f0e comfyui_voicebridge 3728962c0db7b9e05a1d0b341e3dbbd8adba4409 ComfyUI_RH_VoxCPM 8365fe0e1fa60d7547f83ae5db53453a3d9c627d ComfyUI-MelBandRoFormer 92c86854e6654f4aacc97484471af95c98ea16d4 ComfyUI_RH_LLM_API 26e18d1a769bd08e115b59bfdf170f8a2166c0df rgthree-comfy 738105af5fb14e96fbecaf406dc356e284797e8c ComfyUI-Easy-Use 625efbfa2fc20c31797dfffcbb41a26b6d91ab7b ComfyUI_Comfyroll_CustomNodes d78b780ae43fcf8c6b7c6505e6ffb4584281ceca ComfyUI_AudioTools 41463715b476aa1d44de617119a68d8841aa04bd ``` Important: workflow-embedded commits for VoiceBridge and MelBand differ from current HEADs. Bootstrap should prefer current tested HEADs first, then fall back to workflow-embedded commits only if node API compatibility breaks. ## Installation Strategy Do not vendor custom node repositories into this Space yet. Install them during bootstrap from explicit git URLs and commit pins. This keeps the Space repo small and makes it easier to update or swap a node package when a ComfyUI API change breaks compatibility. Runtime layout target: ```text ComfyUI/ |-- custom_nodes/ | |-- comfyui_voicebridge/ | |-- ComfyUI_RH_VoxCPM/ | |-- ComfyUI-MelBandRoFormer/ | |-- ComfyUI_RH_LLM_API/ | |-- rgthree-comfy/ | |-- ComfyUI-Easy-Use/ | |-- ComfyUI_Comfyroll_CustomNodes/ | `-- ComfyUI_AudioTools/ `-- models/ |-- voxcpm/VoxCPM2/ |-- diffusion_models/MelBandRoFormer_comfy/ `-- Qwen3-ASR/ |-- Qwen3-ASR-1.7B/ `-- Qwen3-ForcedAligner-0.6B/ ``` Model files should be downloaded at runtime or first startup with `huggingface_hub`/`hf download`. The Space has persistent storage mounted at `/data`, so `scripts/bootstrap_comfy.py` defaults to storing large model files under `/data/voicegate_models` and creating symlinks at the ComfyUI paths expected by custom nodes. Override this with `VOICEGATE_MODEL_ROOT` if needed. Do not commit model weights to git. ## Remaining Compatibility Risks - Can the current `comfyui_voicebridge` HEAD run the workflow created with earlier recorded VoiceBridge commits? - Is `flash_attention_2` available in the target ZeroGPU environment, or should the workflow patcher downgrade attention mode automatically? - Should EasyUse and Comfyroll be removed from the API workflow by replacing `easy string`, `easy showAnything`, `CR Text`, and `ReplaceText` with plain Python-side prompt patching?