Update Add Simple Translate, add more language

This commit is contained in:
Anonymzx
2026-06-14 15:22:28 +07:00
parent 872d6b268e
commit 1bd0ddbb8e
5 changed files with 166 additions and 35 deletions
+75 -14
View File
@@ -52,19 +52,38 @@ No third-party background applications are required — the backend relies only
# 🌐 Universal Prompt Translator
An integrated translation node that converts prompts from **16+ languages** into English and directly outputs CLIP conditioning.
An integrated translation node that converts prompts from **100+ languages** into English and directly outputs CLIP conditioning.
| Code | Language | Code | Language |
|------|----------|------|----------|
| `auto` | Auto Detect | `en` | English |
| `id` | Indonesian | `ja` | Japanese |
| `ko` | Korean | `zh-CN` | Chinese (Simplified) |
| `zh-TW` | Chinese (Traditional) | `fr` | French |
| `de` | German | `es` | Spanish |
| `pt` | Portuguese | `ru` | Russian |
| `it` | Italian | `ar` | Arabic |
| `tr` | Turkish | `hi` | Hindi |
| `th` | Thai | `vi` | Vietnamese |
| Code | Language | Code | Language | Code | Language | Code | Language |
|------|----------|------|----------|------|----------|------|----------|
| `auto` | Auto Detect | `en` | English | `id` | Indonesian | `ja` | Japanese |
| `ko` | Korean | `zh-CN` | Chinese (Simplified) | `zh-TW` | Chinese (Traditional) | `fr` | French |
| `de` | German | `es` | Spanish | `pt` | Portuguese | `ru` | Russian |
| `it` | Italian | `ar` | Arabic | `tr` | Turkish | `hi` | Hindi |
| `th` | Thai | `vi` | Vietnamese | `af` | Afrikaans | `sq` | Albanian |
| `am` | Amharic | `hy` | Armenian | `az` | Azerbaijani | `eu` | Basque |
| `be` | Belarusian | `bn` | Bengali | `bs` | Bosnian | `bg` | Bulgarian |
| `ca` | Catalan | `ceb` | Cebuano | `ny` | Chichewa | `co` | Corsican |
| `hr` | Croatian | `cs` | Czech | `da` | Danish | `nl` | Dutch |
| `eo` | Esperanto | `et` | Estonian | `tl` | Filipino | `fi` | Finnish |
| `fy` | Frisian | `gl` | Galician | `ka` | Georgian | `el` | Greek |
| `gu` | Gujarati | `ht` | Haitian Creole | `ha` | Hausa | `haw` | Hawaiian |
| `iw` | Hebrew | `hmn` | Hmong | `hu` | Hungarian | `is` | Icelandic |
| `ig` | Igbo | `ga` | Irish | `jw` | Javanese | `kn` | Kannada |
| `kk` | Kazakh | `km` | Khmer | `ku` | Kurdish | `ky` | Kyrgyz |
| `lo` | Lao | `la` | Latin | `lv` | Latvian | `lt` | Lithuanian |
| `lb` | Luxembourgish | `mk` | Macedonian | `mg` | Malagasy | `ms` | Malay |
| `ml` | Malayalam | `mt` | Maltese | `mi` | Maori | `mr` | Marathi |
| `mn` | Mongolian | `my` | Myanmar (Burmese) | `ne` | Nepali | `no` | Norwegian |
| `ps` | Pashto | `fa` | Persian | `pl` | Polish | `pt` | Portuguese |
| `pa` | Punjabi | `ro` | Romanian | `sm` | Samoan | `gd` | Scots Gaelic |
| `sr` | Serbian | `st` | Sesotho | `sn` | Shona | `sd` | Sindhi |
| `si` | Sinhala | `sk` | Slovak | `sl` | Slovenian | `so` | Somali |
| `su` | Sundanese | `sw` | Swahili | `sv` | Swedish | `tg` | Tajik |
| `ta` | Tamil | `te` | Telugu | `th` | Thai | `tr` | Turkish |
| `uk` | Ukrainian | `ur` | Urdu | `uz` | Uzbek | `vi` | Vietnamese |
| `cy` | Welsh | `xh` | Xhosa | `yi` | Yiddish | `yo` | Yoruba |
| `zu` | Zulu | | | | | | |
<br>
@@ -88,8 +107,50 @@ An integrated translation node that converts prompts from **16+ languages** into
<br>
## 📸 Sample Workflow
<br>
# 🌐 Bangtrix Simple Translate
A lightweight, standalone translation node that converts text from **100+ languages** using the Google Translate API — no CLIP encoding, no prompts. Perfect for simple text translation tasks.
| Code | Language | Code | Language | Code | Language | Code | Language |
|------|----------|------|----------|------|----------|------|----------|
| `auto` | Auto Detect | `en` | English | `id` | Indonesian | `ja` | Japanese |
| `ko` | Korean | `zh-CN` | Chinese (Simplified) | `zh-TW` | Chinese (Traditional) | `fr` | French |
| `de` | German | `es` | Spanish | `pt` | Portuguese | `ru` | Russian |
| `it` | Italian | `ar` | Arabic | `tr` | Turkish | `hi` | Hindi |
| `th` | Thai | `vi` | Vietnamese | `af` | Afrikaans | `sq` | Albanian |
| `am` | Amharic | `hy` | Armenian | `az` | Azerbaijani | `eu` | Basque |
| `be` | Belarusian | `bn` | Bengali | `bs` | Bosnian | `bg` | Bulgarian |
| `ca` | Catalan | `ceb` | Cebuano | `ny` | Chichewa | `co` | Corsican |
| `hr` | Croatian | `cs` | Czech | `da` | Danish | `nl` | Dutch |
| `eo` | Esperanto | `et` | Estonian | `tl` | Filipino | `fi` | Finnish |
| `fy` | Frisian | `gl` | Galician | `ka` | Georgian | `el` | Greek |
| `gu` | Gujarati | `ht` | Haitian Creole | `ha` | Hausa | `haw` | Hawaiian |
| `iw` | Hebrew | `hmn` | Hmong | `hu` | Hungarian | `is` | Icelandic |
| `ig` | Igbo | `ga` | Irish | `it` | Italian | `jw` | Javanese |
| `kn` | Kannada | `kk` | Kazakh | `km` | Khmer | `ku` | Kurdish |
| `ky` | Kyrgyz | `lo` | Lao | `la` | Latin | `lv` | Latvian |
| `lt` | Lithuanian | `lb` | Luxembourgish | `mk` | Macedonian | `mg` | Malagasy |
| `ms` | Malay | `ml` | Malayalam | `mt` | Maltese | `mi` | Maori |
| `mr` | Marathi | `mn` | Mongolian | `my` | Myanmar (Burmese) | `ne` | Nepali |
| `no` | Norwegian | `ps` | Pashto | `fa` | Persian | `pl` | Polish |
| `pa` | Punjabi | `ro` | Romanian | `sm` | Samoan | `gd` | Scots Gaelic |
| `sr` | Serbian | `st` | Sesotho | `sn` | Shona | `sd` | Sindhi |
| `si` | Sinhala | `sk` | Slovak | `sl` | Slovenian | `so` | Somali |
| `su` | Sundanese | `sw` | Swahili | `sv` | Swedish | `tg` | Tajik |
| `ta` | Tamil | `te` | Telugu | `th` | Thai | `tr` | Turkish |
| `uk` | Ukrainian | `ur` | Urdu | `uz` | Uzbek | `vi` | Vietnamese |
| `cy` | Welsh | `xh` | Xhosa | `yi` | Yiddish | `yo` | Yoruba |
| `zu` | Zulu | | | | | | |
**Inputs:** Text (multiline), Source Language, Target Language
**Output:** Translated text (STRING)
**Category:** `BangtrixToolkit`
<br>
## 📸 Sample Workflow
<div align="center">
<img width="570" alt="Workflow" src="https://github.com/user-attachments/assets/44a6aeb5-1b15-4461-be2c-ec98291ac2e9" />
<br><br>
@@ -117,7 +178,7 @@ The HW Monitor integrates directly into the ComfyUI Settings panel. All changes
| **🌗 Base Mode** | Combo | Dark · Light |
| **🎨 Theme** | Combo | Default Green · Neon Blue · Crimson Red · Hacker (Black & Green) · Custom Colors|
| **⏱️ Refresh Rate** | Combo | 500ms · 1s · 2s |
| **👁️ Show on Startup** | Boolean | On / Off |
| **�️ Show on Startup** | Boolean | On / Off |
| **🔲 Background Opacity** | Slider | 0.1 – 1.0 (step 0.05) |
| **📦 Compact Mode** | Boolean | Hides sparkline graph for minimal footprint |
| **👻 Ghost Mode** | Boolean | Makes the background completely invisible/transparent |
+9
View File
@@ -36,6 +36,15 @@ try:
except Exception as e:
print(f"[BANGTRIX] Skipped translate_universal: {e}")
try:
_mod = importlib.import_module(".btx_nodes.bangtrix_simple_translate", package=__package__)
if hasattr(_mod, "NODE_CLASS_MAPPINGS"):
NODE_CLASS_MAPPINGS.update(_mod.NODE_CLASS_MAPPINGS)
if hasattr(_mod, "NODE_DISPLAY_NAME_MAPPINGS"):
NODE_DISPLAY_NAME_MAPPINGS.update(_mod.NODE_DISPLAY_NAME_MAPPINGS)
print("[BANGTRIX] Loaded bangtrix_simple_translate")
except Exception as e:
print(f"[BANGTRIX] Skipped bangtrix_simple_translate: {e}")
WEB_DIRECTORY = "web"
__all__ = [
+16 -3
View File
@@ -1,9 +1,22 @@
from .translate_universal import (
NODE_CLASS_MAPPINGS,
NODE_DISPLAY_NAME_MAPPINGS
NODE_CLASS_MAPPINGS as _TRANSLATE_UNIVERSAL_MAPPINGS,
NODE_DISPLAY_NAME_MAPPINGS as _TRANSLATE_UNIVERSAL_DISPLAY
)
from .bangtrix_simple_translate import (
NODE_CLASS_MAPPINGS as _SIMPLE_TRANSLATE_MAPPINGS,
NODE_DISPLAY_NAME_MAPPINGS as _SIMPLE_TRANSLATE_DISPLAY
)
NODE_CLASS_MAPPINGS = {}
NODE_CLASS_MAPPINGS.update(_TRANSLATE_UNIVERSAL_MAPPINGS)
NODE_CLASS_MAPPINGS.update(_SIMPLE_TRANSLATE_MAPPINGS)
NODE_DISPLAY_NAME_MAPPINGS = {}
NODE_DISPLAY_NAME_MAPPINGS.update(_TRANSLATE_UNIVERSAL_DISPLAY)
NODE_DISPLAY_NAME_MAPPINGS.update(_SIMPLE_TRANSLATE_DISPLAY)
__all__ = [
"NODE_CLASS_MAPPINGS",
"NODE_DISPLAY_NAME_MAPPINGS"
]
]
+60
View File
@@ -0,0 +1,60 @@
import requests
import urllib.parse
class BangtrixSimpleTranslate:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
# Daftar lengkap kode bahasa yang didukung oleh Google Translate
languages = [
"auto", "af", "sq", "am", "ar", "hy", "az", "eu", "be", "bn", "bs", "bg", "ca", "ceb", "ny", "zh-CN", "zh-TW", "co",
"hr", "cs", "da", "nl", "en", "eo", "et", "tl", "fi", "fr", "fy", "gl", "ka", "de", "el", "gu", "ht", "ha", "haw",
"iw", "hi", "hmn", "hu", "is", "ig", "id", "ga", "it", "ja", "jw", "kn", "kk", "km", "ko", "ku", "ky", "lo", "la",
"lv", "lt", "lb", "mk", "mg", "ms", "ml", "mt", "mi", "mr", "mn", "my", "ne", "no", "ps", "fa", "pl", "pt", "pa",
"ro", "ru", "sm", "gd", "sr", "st", "sn", "sd", "si", "sk", "sl", "so", "es", "su", "sw", "sv", "tg", "ta", "te",
"th", "tr", "uk", "ur", "uz", "vi", "cy", "xh", "yi", "yo", "zu"
]
return {
"required": {
"text": ("STRING", {"multiline": True, "default": ""}),
"source_language": (languages, {"default": "auto"}),
"target_language": ([lang for lang in languages if lang != "auto"], {"default": "en"}),
}
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("translated_text",)
FUNCTION = "do_translation"
CATEGORY = "BangtrixToolkit"
def do_translation(self, text, source_language, target_language):
if not text.strip():
return ("",)
try:
url = f"https://translate.googleapis.com/translate_a/single?client=gtx&sl={source_language}&tl={target_language}&dt=t&q={urllib.parse.quote(text)}"
response = requests.get(url, timeout=10)
if response.status_code == 200:
result = response.json()
translated_text = "".join([sentence[0] for sentence in result[0] if sentence[0]])
return (translated_text,)
else:
print(f"[BangtrixToolkit] Warning: Translation API responded with status {response.status_code}")
return (text,)
except Exception as e:
print(f"[BangtrixToolkit] Error during translation: {e}")
return (text,)
# =========================================
# NODE MAPPINGS
# =========================================
NODE_CLASS_MAPPINGS = {
"BangtrixSimpleTranslate": BangtrixSimpleTranslate
}
NODE_DISPLAY_NAME_MAPPINGS = {
"BangtrixSimpleTranslate": "Bangtrix Simple Translate 🌐"
}
+6 -18
View File
@@ -15,24 +15,12 @@ _translate_cache = {}
# =========================================
LANGUAGES = [
"auto",
"id",
"en",
"ja",
"ko",
"zh-CN",
"zh-TW",
"fr",
"de",
"es",
"pt",
"ru",
"it",
"ar",
"tr",
"hi",
"th",
"vi",
"auto", "af", "sq", "am", "ar", "hy", "az", "eu", "be", "bn", "bs", "bg", "ca", "ceb", "ny", "zh-CN", "zh-TW", "co",
"hr", "cs", "da", "nl", "en", "eo", "et", "tl", "fi", "fr", "fy", "gl", "ka", "de", "el", "gu", "ht", "ha", "haw",
"iw", "hi", "hmn", "hu", "is", "ig", "id", "ga", "it", "ja", "jw", "kn", "kk", "km", "ko", "ku", "ky", "lo", "la",
"lv", "lt", "lb", "mk", "mg", "ms", "ml", "mt", "mi", "mr", "mn", "my", "ne", "no", "ps", "fa", "pl", "pt", "pa",
"ro", "ru", "sm", "gd", "sr", "st", "sn", "sd", "si", "sk", "sl", "so", "es", "su", "sw", "sv", "tg", "ta", "te",
"th", "tr", "uk", "ur", "uz", "vi", "cy", "xh", "yi", "yo", "zu"
]
# =========================================