ComfyUI-HyMT2 — CLI tools
Two helpers for running Hy-MT2 through a remote ComfyUI server without opening the UI.
| Script | Style | Purpose |
|---|---|---|
hymt2_cli.py |
v2.0 套路 A/B | One-shot translation. |
hymt2_batch.py |
v2.0 套路 C | JSON batch with resumable runs. |
Both default to 127.0.0.1:8188; point them at your GPU server with
--ip 10.8.0.12 (or --server 10.8.0.12:8188).
For best startup time we recommend calling the venv's python directly (per v2.0 §2.4):
PY=/mnt/modelall/ComfyUI/.venv/bin/python
1. hymt2_cli.py — single shot
Inline text
$PY hymt2_cli.py "今天天气真好,我们去散步吧。" \
--target English --prompt-lang en --ip 10.8.0.12
Read from a file
$PY hymt2_cli.py /path/to/article.zh.md \
--target English --prompt-lang en --ip 10.8.0.12 \
--out /path/to/article.en.md
Read from stdin
cat article.zh.md | $PY hymt2_cli.py - \
--target Japanese --prompt-lang en --ip 10.8.0.12
With a glossary
cat > /tmp/glossary.txt <<'EOF'
# tech glossary
endpoint => endpoint
webhook => webhook
token => token
EOF
$PY hymt2_cli.py "调用 API 时,请在 endpoint 后附 token" \
--target English --prompt-lang en --ip 10.8.0.12 \
--terminology /tmp/glossary.txt
With background context
$PY hymt2_cli.py "本判决系终审判决。" \
--target English --prompt-lang en --ip 10.8.0.12 \
--background "Closing paragraph of a Chinese administrative-litigation judgment."
With a style descriptor
$PY hymt2_cli.py "Hi guys, this is a great product!" \
--target Chinese --prompt-lang zh --ip 10.8.0.12 \
--style "正式书面语"
Useful flags
| Flag | Default | Notes |
|---|---|---|
--target |
English |
Full language name. EN names with --prompt-lang en, ZH names with --prompt-lang zh. |
--prompt-lang |
en |
Selects the EN or ZH prompt template. |
--model-path |
tencent/Hy-MT2-1.8B |
Use tencent/Hy-MT2-7B for the 7B model. |
--gpu |
0 |
Maps to cuda:N. |
--temperature / --top-p / --top-k / --repetition-penalty / --max-new-tokens |
model-card defaults | Override the sampling params. |
--seed |
-1 |
Set a value for reproducible runs. |
--dump-workflow PATH |
— | Write the API workflow JSON for UI loading. |
--ws-recv-timeout |
600 s |
Cold-load tolerance for the WebSocket idle timeout (v2.0 §10). |
--force-reload |
off | Bypass the loader cache. |
2. hymt2_batch.py — batch translation
Input formats accepted (autodetected):
// (a) list of strings
[
"今天天气真好",
"明天去散步吧"
]
// (b) list of {id, text}
[
{ "id": "weather_1", "text": "今天天气真好" },
{ "id": "weather_2", "text": "明天去散步吧" }
]
// (c) dict of id → text
{
"weather_1": "今天天气真好",
"weather_2": "明天去散步吧"
}
Each item produces one output file <out-dir>/<sanitized-id>.json containing:
{
"id": "weather_1",
"source": "今天天气真好",
"translation": "The weather is really nice today.",
"target_lang": "English",
"prompt_lang": "en",
"model_path": "tencent/Hy-MT2-1.8B"
}
Resumable batch run
$PY hymt2_batch.py /mnt/modelall/in/ai_news_vocab.json \
--out-dir /mnt/modelall/out/hymt2_ai_news \
--target Japanese --prompt-lang en \
--ip 10.8.0.12 \
--limit 100 \
--dump-workflow /mnt/modelall/tmp/hymt2_first.json
Re-run the same command — already-finished files are skipped. Pass --force
to retranslate everything.
Apply a glossary to every item
$PY hymt2_batch.py words.json \
--out-dir /mnt/modelall/out/hymt2_words \
--target English --prompt-lang en --ip 10.8.0.12 \
--terminology /mnt/modelall/in/glossary.txt
Debugging tips
--dump-workflow /tmp/wf.jsonand load that into the ComfyUI UI — easiest way to confirm the prompt was built the way you expected.- On the server:
tail -f /mnt/modelall/tmp/comfy.logwhile the CLI runs to see[hymt2/translate],[hymt2/gen], and VRAM diagnostic lines. - If the WebSocket disconnects on a cold first-load, bump
--ws-recv-timeoutto1200or higher.