QuickMT Translate
The ComfyUI translation node that actually feels instant
- translations
QuickMTRun (labeled "QuickMT Translate") is the second node in the billwuhao/ComfyUI_gemmax pack, and honestly it's the more interesting half. While its sibling GemmaxRun drags a multi-GB multilingual LLM into VRAM, QuickMTRun wraps the quickmt translation toolkit (the pack even ships the library in quickmt_third_party/) around small, direction-specific CTranslate2 models. The README's headline is that it translates 1000 words in about half a second, and the speed claim is the whole point: this is the node you reach for when you want translations now, in bulk, without a big model squatting on your GPU.
The trade is scope. There are no source/target language dropdowns - the model is the language pair. Your four choices are quickmt-en-zh, quickmt-zh-en, quickmt-en-fr, and quickmt-fr-en. No auto-detection, no 28-language coverage. If your workflow is Chinese↔English or English↔French, you're golden; anything outside those pairs and you want the GemmaxRun node instead. For localizing a batch of prompts or running a caption-translation pass over a training dataset, this is the one I'd reach for.
How it works
The flow is classic neural MT plumbing, all running through CTranslate2 - the same optimized inference engine that makes a lot of CPU-friendly translation possible, so this node works even without a GPU. Your text is split on blank lines into paragraphs, each paragraph is sentence-split with blingfire, tokenized with a SentencePiece model shipped in the model folder, run through CTranslate2, then detokenized and rejoined with \n\n so your paragraph structure survives. You get one translations string back.
The inputs that matter
- model - the four pair choices above, default
quickmt-en-zh. - text - a STRING with
forceInput, so wire it from any text source (the example workflow uses aMultiLinePromptATnode). - beam_size - default 5. This is the real quality/speed knob: higher beam = better quality, slower.
- temperature / top_k / top_p - here's the trap that will cost you an hour: CTranslate2 only applies sampling when beam_size is 1. With the default beam of 5 you're doing beam search and all three of these sliders are silently doing nothing. If you want to play with them, drop beam_size to 1 first. If you don't, leave them alone and you'll never notice.
- max_batch_size - default 32. The RAM knob: lower it if memory is tight on long inputs, raise it for a speed bump.
- unload_model - default true, same behavior as the sibling node: the model is unloaded after every run, so repeated calls reload it each time. Flip it off for batch work.
The translations output is a plain STRING, previewable with PreviewAny/Show Text or fed into anything else that eats text.
Installing it
Same pack, same install - this is one of the two nodes billwuhao/ComfyUI_gemmax ships, so you get it by installing that:
cd ComfyUI/custom_nodes
git clone https://github.com/billwuhao/ComfyUI_gemmax.git
cd ComfyUI_gemmax
pip install -r requirements.txt
(Windows embeddable Python: ./python_embeded/python.exe -m pip install -r requirements.txt.) ComfyUI Manager also finds it as "MW-ComfyUI_gemmax". Then download a quickmt model from HuggingFace (quickmt/quickmt-en-zh, etc.) into ComfyUI/models/TTS - yes, the TTS folder, same quirk as the pack's other node. The requirements.txt here is the real deal for this node: ctranslate2, sentencepiece, blingfire, and friends are all pinned.
Common issues & troubleshooting
- Nothing comes out. Check you picked the model that matches your direction - there's no auto-detection, so feeding Chinese into
quickmt-en-zhyields garbage or silence. That's user error, not a bug. - "The sliders do nothing." Beam search is running; sampling needs beam_size 1. See above - it's the most common complaint about this node.
- Slow batch runs.
unload_modelis true by default, so each call reloads. Set it false when translating a long queue. - First call takes a while. It's loading the CTranslate2 model into memory; subsequent calls are the fast ones.
This is a niche node - single-digit impressions, no real community footprint yet - so if something feels wrong, the source is short and readable. It's one of the few translation options in ComfyUI that feels like a tool rather than a wait.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | quickmt-en-zh | 4 options: quickmt-en-zh, quickmt-zh-en, quickmt-en-fr, quickmt-fr-en |
| text | STRING | — | |
| beam_size | INT | 51–100 | — |
| max_batch_size | INT | 321–100 | — |
| temperature | FLOAT | 1.00–2 | — |
| top_k | INT | 500–100 | — |
| top_p | FLOAT | 0.900–1 | — |
| unload_model | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| translations | STRING | — |