A plugin for multilingual translation of ComfyUI,This plugin implements translation of resident menu bar/search bar/right-click context menu/node, etc
I hope ComfyUI can support more languages besides Chinese and English, such as French, German, Japanese, Korean, etc. However, I believe that translation should be done by native speakers of each language. So I need your help, let's go fight for ComfyUI together!
[Korean] Korean translation needs help~
[Japanese] Japanese translation needs help~
COMFYUI Translation | zh-CN简体中文 | zh-TW繁體中文 | English | Japanese日本語 | Korean한국어 | Your language |
---|---|---|---|---|---|---|
Menu | √ | √ | √ | √ | √ | TODO |
NodeCategory | √ | √ | √ | √ | √ | TODO |
Nodes | √ | √ | √ | √ | √ | TODO |
- Translate all UI of ComfyUI
- Direct language switching (limitation: custom names will be removed) https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION/assets/116185401/e43182b7-8932-4358-bc65-ade7bddf27c5
- Support for adding other languages
- Support translation custom nodes
- (2023/8/16) Support one-click switching between English/currently set language
- (2023/8/19) Support for multilingual translation of custom nodes * (in production)
Custom Node Name | zh-CN | zh-TW | English | Japanese | Korean |
---|---|---|---|---|---|
Advanced Encode | √ | √ | √ | TODO | TODO |
Advanced ControlNet | √ | √ | √ | TODO | TODO |
AGL-ComfyUI-Translation | √ | √ | √ | √ | TODO |
AlekPet Nodes | √ | √ | √ | √ | TODO |
AnimateAnyone | √ | TODO | √ | TODO | TODO |
AnimateDiff | √ | √ | √ | √ | TODO |
AnimateDiff-Evolved | √ | √ | √ | TODO | TODO |
CLIP Seg | √ | √ | √ | √ | TODO |
ComfyRoll | √ | √ | √ | TODO | TODO |
ControlNet LLLite | √ | √ | √ | TODO | TODO |
ControlNet Preprocessors | √ | √ | √ | √ | TODO |
ControlNet Preprocessors AUX | √ | √ | √ | √ | TODO |
Crystools | √ | TODO | √ | TODO | TODO |
Cutoff | √ | √ | √ | √ | TODO |
Custom-Scripts | √ | √ | √ | TODO | TODO |
cg-use-everywhere | √ | TODO | √ | TODO | TODO |
cg-image-picker | √ | TODO | √ | TODO | TODO |
Davemane42 Nodes | √ | √ | √ | √ | TODO |
Dagthomas Nodes | √ | √ | √ | √ | TODO |
Dynamic Thresholding | √ | √ | √ | TODO | TODO |
Easy Tools | √ | TODO | √ | TODO | TODO |
Easy Use | √ | TODO | √ | TODO | TODO |
Efficiency Nodes | √ | √ | √ | √ | TODO |
EllangoK Postprocessing | √ | √ | √ | TODO | TODO |
ExLlama nodes | √ | √ | √ | TODO | TODO |
experiments | √ | √ | √ | TODO | TODO |
Fast Decode | √ | √ | √ | √ | TODO |
FreeU Advanced | √ | TODO | √ | TODO | TODO |
IPAdapter | √ | √ | √ | TODO | TODO |
IPAdapter_plus | √ | √ | √ | TODO | TODO |
Image Grid | √ | √ | √ | TODO | TODO |
Impact Pack | √ | √ | √ | TODO | TODO |
Impact Subpack | √ | √ | √ | TODO | TODO |
Inspire Pack | √ | √ | √ | TODO | TODO |
KJ Nodes | √ | TODO | √ | TODO | TODO |
LaMa Preprocessor | √ | TODO | √ | TODO | TODO |
Latent2RGB | √ | √ | √ | √ | TODO |
LayerStyle | √ | TODO | √ | TODO | TODO |
LCM | √ | TODO | √ | TODO | TODO |
Manager | √ | √ | √ | TODO | TODO |
Masquerade Nodes | √ | √ | √ | TODO | TODO |
Math | √ | TODO | √ | TODO | TODO |
Mixlab Nodes | √ | TODO | √ | TODO | TODO |
MotionCtrl | √ | TODO | √ | TODO | TODO |
MotionCtrl-SVD | √ | TODO | √ | TODO | TODO |
Noise | √ | √ | √ | TODO | TODO |
Portrai Master | √ | TODO | √ | TODO | TODO |
Power Noise Suite | √ | TODO | √ | TODO | TODO |
Prompt Reader | √ | TODO | √ | TODO | TODO |
QR | √ | √ | √ | TODO | TODO |
OneButtonPrompt | √ | TODO | √ | TODO | TODO |
ReActor | √ | TODO | √ | TODO | TODO |
Restart-Sampling | √ | √ | √ | TODO | TODO |
Roop | √ | TODO | √ | TODO | TODO |
rgthree | √ | TODO | √ | TODO | TODO |
SD-Latent-Interposer | √ | TODO | √ | TODO | TODO |
SDXL_prompt_styler | √ | √ | √ | TODO | TODO |
SeargeSDXL | √ | √ | √ | TODO | TODO |
Segment Anything | √ | TODO | √ | TODO | TODO |
StabilityNodes | √ | √ | √ | TODO | TODO |
TiledDiffusion | √ | TODO | √ | TODO | TODO |
TiledKSampler | √ | √ | √ | √ | TODO |
TinyTerra | √ | TODO | √ | TODO | TODO |
UltimateSDUpscale | √ | √ | √ | TODO | TODO |
Vextra Nodes | √ | √ | √ | TODO | TODO |
WAS Suite | √ | √ | √ | TODO | TODO |
WD14-Tagger | √ | √ | √ | TODO | TODO |
zfkun | √ | TODO | √ | TODO | TODO |
The above only includes translations for the UI. If you are a developer and need me to help you translate your interface, you can go directly to the ComfyUI Plugins List to add your custom node project, or send an issue, as long as I can see it, I will translate it (it will take some time)
AIGODLIKE-COMFYUI-TRANSLATION is equivalent to a custom node, you can use any method you like, just put it in folder custom_nodes Then run:
cd ComfyUI/custom_nodes
git clone https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION.git
Launch ComfyUI and open the menu. Click on the language option to switch languages.
-
Create a new 'Language Name' folder in the plugin directory (e.g. example folder)
-
Find the LocaleMap.js file and add the language code with the same name as the first step folder in it
export const LOCALES = { "zh-CN": { "nativeName": "中文", "englishName": "Chinese Simplified" }, "en-US": { "nativeName": "English (US)", "englishName": "English (US)" }, "example": { "nativeName": "exampleDisplayName", "englishName": "enName" }, }
-
After completing the above two steps, restart the ComfyUI service to find the 'exampleDisplayName' language type in the 'AGLTranslation language' settings bar
- Translation files are currently divided into three types
- Node information translation (including node name, node connector, node component) corresponding translation file
Your language folder/Nodes/somenode.json
- Node classification information (used for right-click the new node menu) corresponds to the translation file
Your language folder/NodeCategory.json
- Menu information (including resident menu, settings panel, right-click context menu, search menu, etc.) corresponds to translated files
Your language folder/Menu.json
- Node information translation (including node name, node connector, node component) corresponding translation file
- Node information translation can be placed in multiple JSON files under 'Your language folder/Nodes/' based on different nodes
- All translation files are in JSON format, please fill in strictly according to the JSON file format
- Node Translation Format
{ "KSampler": { "title": "KSampler[example translation]", "inputs": { "model": "模型", "positive": "正向提示词", "negative": "反向提示词", "latent_image": "潜空间" }, "widgets": { "seed": "随机种", "control_after_generate": "运行后操作", "steps": "步数", "cfg": "CFG", "sampler_name": "采样器", "scheduler": "调度器", "denoise": "降噪" }, "outputs": { "LATENT": "潜空间", } }, "Load VAE": {} }
- Node classification translation format
{ "Add Node": "Add Node[example]", "Add Group": "Add Group[example]", "Search": "Search[example]", "Queue size:": "Queue size[example]:", "Queue Prompt": "Queue Prompt[example]", "Extra options": "Extra options[example]" }
- Menu information translation format
{ "conditioning": "conditioning[example]", "latent": "latent[example]", "loaders": "loaders[example]", "image": "image[example]" }