/AIGODLIKE-ComfyUI-Translation

A plugin for multilingual translation of ComfyUI,This plugin implements translation of resident menu bar/search bar/right-click context menu/node, etc

Primary LanguageJavaScript

AIGODLIKE-ComfyUI-Translation

A plugin for multilingual translation of ComfyUI,This plugin implements translation of resident menu bar/search bar/right-click context menu/node, etc

ComfyUI users in other languages, I need your help

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~

Language supported

COMFYUI Translation zh-CN简体中文 zh-TW繁體中文 English Japanese日本語 Korean한국어 Your language
Menu TODO
NodeCategory TODO
Nodes TODO

Function

  1. Translate all UI of ComfyUI image image image
  2. Direct language switching (limitation: custom names will be removed) https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION/assets/116185401/e43182b7-8932-4358-bc65-ade7bddf27c5
  3. Support for adding other languages
  4. Support translation custom nodes
  5. (2023/8/16) Support one-click switching between English/currently set language
  6. (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
AnimateDiff TODO
AnimateDiff-Evolved TODO TODO
CLIP Seg TODO
ComfyRoll TODO TODO
ControlNet LLLite TODO TODO
ControlNet Preprocessors TODO
ControlNet Preprocessors AUX 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
Efficiency Nodes TODO
EllangoK Postprocessing TODO TODO
ExLlama nodes TODO TODO
experiments TODO TODO
Fast Decode 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
LCM TODO TODO TODO
Manager TODO TODO
Masquerade Nodes TODO TODO
Math TODO TODO TODO
Mixlab Nodes TODO TODO TODO
Noise TODO TODO
Portrai Master TODO TODO TODO
QR TODO TODO
ReActor TODO TODO TODO
Restart-Sampling TODO TODO
Roop TODO TODO TODO
rgthree TODO TODO TODO
SDXL_prompt_styler TODO TODO
SeargeSDXL TODO TODO
Segment Anything TODO TODO TODO
StabilityNodes 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)

How to install

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

image

How to use

Launch ComfyUI and open the menu. Click on the language option to switch languages. image

How to add other languages(translator)

  1. Create a new 'Language Name' folder in the plugin directory (e.g. example folder) image

  2. Find the LocaleMap.js file and add the language code with the same name as the first step folder in it image

    export const LOCALES = {
        "zh-CN": {
            "nativeName": "中文",
            "englishName": "Chinese Simplified"
        },
        "en-US": {
            "nativeName": "English (US)",
            "englishName": "English (US)"                    
        },
        "example": {
            "nativeName": "exampleDisplayName",
            "englishName": "enName"
        },
    }
  3. After completing the above two steps, restart the ComfyUI service to find the 'exampleDisplayName' language type in the 'AGLTranslation language' settings bar image

How to add custom node translations(translator)

  1. Translation files are currently divided into three types
    1. Node information translation (including node name, node connector, node component) corresponding translation file Your language folder/Nodes/somenode.json
    2. Node classification information (used for right-click the new node menu) corresponds to the translation file Your language folder/NodeCategory.json
    3. Menu information (including resident menu, settings panel, right-click context menu, search menu, etc.) corresponds to translated files Your language folder/Menu.json
  2. Node information translation can be placed in multiple JSON files under 'Your language folder/Nodes/' based on different nodes
  3. All translation files are in JSON format, please fill in strictly according to the JSON file format

Translation examples

  1. 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": {}
    }
  2. 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]"
    }
  3. Menu information translation format
    {
        "conditioning": "conditioning[example]",
        "latent": "latent[example]",
        "loaders": "loaders[example]",
        "image": "image[example]"
    }

Limitations

  1. Supports direct switching of any language node to the target language, but will lose custom names
  2. A small portion of options that use Enum type data cannot be translated image