Japanese Romaji Converter
LTX can't read こんにちは — feed it romaji
- converted_prompt
If you've ever tried to get LTX-2.3 - or any of the English-first video models - to have a character say an actual Japanese line, you already know the pain. You write "コーヒーの香りは、私の心を落ち着かせます。" in quotes and the model dutifully generates audio that sounds like Japanese to someone who doesn't speak it, which is to say: gibberish. This is a well-trodden community problem - people spent hundreds of re-rolls trying kana, romaji, and hybrids before landing on "romaji inside quoted dialogue" as the thing that reliably works.
JapaneseRomajiConverter is the automated version of that hard-won lesson. Give it your prompt, and it rewrites the quoted Japanese into Hepburn romaji - "コーヒーの香りは、私の心を落ち着かせます。" becomes "Koohii no kaori wa, watakushi no kokoro o ochitsukasemasu." - while leaving every word of English untouched. It's a text node, not a model: no VRAM, no weights, nothing to download except two small Python libraries. The name is the whole pitch, and it does exactly what it says.
Why this exists
LTX's text encoder is fundamentally an English machine. By 2.3 it's much better at prompt adherence overall, but Japanese dialogue is still the weak spot - kanji gives you garbage, and even pure kana gets mangled because the model guesses at readings. は gets rendered as "ha" where it should be "wa", and so on. Romaji sidesteps all of it: it's just English-ish syllables, so the model can actually pronounce what it reads. This node does the transcription so you don't have to, and it's built to slot into the middle of a prompt-generation pipeline: scenario → romaji conversion → LTX formatting.
How it works
Two engines, chosen at runtime, and they're the entire dependency story:
- fugashi (default, recommended) - a real morphological analyzer with the UniDic dictionary. It tokenizes your Japanese, reads each morpheme's
pron(pronunciation) field, and converts that to romaji from a katakana table. Because it works from the pronunciation, particles come out right automatically: は→wa, を→o, へ→e. It also does genuine spacing smarts - nouns and particles get spaces (koohii no kaori wa), verbs and auxiliaries join up (tabeteimasu), and geminate consonants get repaired across word boundaries (mukatteimasu, notmukatsuteimasu). - pykakasi - the lightweight fallback. Just a katakana→romaji library plus a regex patch for the same は/を/へ particle fixes. Less accurate, less dependency weight.
Either way the behavior is the same: quoted Japanese becomes romaji with its first letter capitalized (so the output reads naturally inside a sentence), English inside quotes is left alone, and everything outside quotes passes through untouched.
The inputs that matter
It's a small node, so this is quick:
prompt(STRING) - the prompt to convert. Multiline, so paste freely.engine(COMBO) -fugashiorpykakasi. Leave it on fugashi unless you can't install it.remove_english_translations(BOOLEAN, default true) - deletes(English translation)-style parentheticals, which LLMs love to append to quoted dialogue.
One output: converted_prompt (STRING). Wire it straight into your model's text prompt - or into the next formatting stage of your pipeline.
Installing it
The easy way: open ComfyUI Manager, search "ComfyUI Japanese Romaji Converter", install, restart. The manual way:
cd ComfyUI/custom_nodes/
git clone https://github.com/hirokazu/ComfyUI-JapaneseRomaji
pip install fugashi unidic-lite
That's the entire dependency list - no models, no GGUF files, no ComfyUI core forks. Restart ComfyUI and the node appears under LTX-Video/Prompt. It's MIT-licensed and pure CPU work.
Gotchas worth knowing
- Pick your engine before you hit a wall. fugashi is bundled in
requirements.txt(withunidic-lite), but pykakasi is not - if you switch the engine dropdown to pykakasi withoutpip install pykakasi, it'll error out with a Japanese ImportError. Install it, or stick with fugashi. remove_english_translationsis blunt. Its regex nukes any parenthesized text containing a Latin letter - so(Thank you!)goes, but so does(4K)or(Tokyo)if they're in parens. If your prompt uses parentheticals for anything but translations, flip the toggle off.- First run takes a beat. The tagger is lazy-loaded, so the first conversion loads the UniDic dictionary - ComfyUI may look frozen for a moment. It's just reading a dictionary; subsequent runs are instant.
- It only touches quoted Japanese, which is exactly what you want for dialogue - but if you ever need to convert unquoted Japanese too, that's what the Advanced sibling node in this pack is for.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | 変換対象のプロンプト。引用符("")で囲まれた日本語テキストがローマ字に変換されます。 | |
| engine | COMBO | fugashi | fugashi: 高精度(推奨)/ pykakasi: 軽量 |
| remove_english_translationsopt | BOOLEAN | true | 括弧内の英語翻訳 (English translation) を削除するかどうか |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| converted_prompt | STRING | — |