Skip to content

Latest commit

 

History

496 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 ComfyUI-Global-Translation

全面、智能、兼容的 ComfyUI 界面多国语言翻译解决方案

前后端协同的实时翻译插件,覆盖节点、菜单、设置面板、管理器等所有可见文本,与 ComfyUI 官方原生翻译完美兼容。

Stars Version License Languages Bilibili

🌍 语言 · Language

简体中文 · English · 繁體中文 · 日本語 · 한국어 · Русский · Français · Deutsch · Español · Italiano · Português · العربية · Türkçe · فارسی · עברית

作者:猪的飞行梦 — 本项目基于 AIGODLIKE-ComfyUI-TranslationComfyUI-DD-Translation 进行的修改,特别感谢大佬们对开源社区的杰出贡献。此项目将持续保持开源。


目录


插件简介

ComfyUI-Global-Translation 是一个专为 ComfyUI 设计的汉化插件。通过前后端协同工作,实现界面元素的实时中文翻译,覆盖节点、菜单、设置面板、管理器等所有可见文本,同时与 ComfyUI 官方原生翻译完美兼容。翻译语言自动跟随 ComfyUI 官方语言设置(设置 → 通用 → Comfy.Locale),插件自身的界面文案支持 15 种语言。

为什么选择本插件?

特性 本插件 其他翻译插件
官方翻译兼容 ✅ 不覆盖官方已有翻译 ❌ 可能冲突
右键菜单功能 ✅ 翻译后功能正常 ❌ 部分功能失效
新旧版 UI 兼容 ✅ 双重按钮架构 ❌ 仅支持单一版本
实时切换 ✅ 无需重启 ❌ 需要重启
用户自定义标题保护 ✅ 不覆盖用户修改 ❌ 可能被覆盖

核心特性

🎯 智能翻译系统

  • 智能检测机制 — 自动识别已翻译文本,避免重复翻译和无限递归
  • 原生翻译兼容 — 与 ComfyUI 官方中文翻译完美共存,互不干扰
  • 上下文感知 — 根据不同界面元素类型(节点、菜单、控件等)采用最合适的翻译策略
  • 翻译数据智能合并 — 多个翻译文件包含同名节点时自动互补合并,不再互相覆盖丢失翻译
  • 自定义面板翻译 — 节点内部创建的自定义面板(按钮、标签、下拉框、提示文本、弹窗等)也能自动汉化
  • 回调安全保护 — 右键菜单翻译后所有功能(断开连接、重命名等)完全正常

🎨 美观的用户界面

  • 胶囊分段控件 — 圆角胶囊形态的滑动开关,蓝色滑块在"开启/关闭"两段间平滑切换,现代感强
  • 七彩动态效果 — 激活状态下显示流畅的彩虹渐变动画
  • 灰色简约设计 — 未激活状态下采用优雅的灰色渐变
  • 原生低调模式 — 可选与 ComfyUI 默认主题一致的低调配色
  • 实时状态反馈 — 按钮文字和颜色实时反映当前翻译状态

🔧 灵活的翻译管理

  • 实时切换 — 无需重启即可开启/关闭翻译
  • 状态持久化 — 翻译设置自动保存,重启后保持状态
  • 设置面板集成 — 在 ComfyUI 设置面板中可配置开关样式与下拉选项翻译(翻译语言自动跟随 ComfyUI 官方语言设置)
  • 插件级翻译开关 — 设置面板内置插件翻译管理,可勾选禁用某些插件的翻译
  • 新增翻译即生效 — 添加新的翻译文件后无需重启

🛡️ 稳定可靠

  • 完善的异常捕获 — 所有关键操作都有错误处理
  • 优雅降级 — 翻译失败时自动回退到原始文本
  • DOM 安全保护 — 翻译不会破坏 Vue/PrimeVue 组件的事件绑定
  • 多版本兼容 — 同时支持 ComfyUI 新旧版本界面

效果展示

仅展示中英双语效果,其它语言请自行查看。切换跟随ComfyUI语言设置。

翻译开关按钮

中文开关1 英文开关1 中文开关2 英文开关2 中文开关3 英文开关3

管理界面

设置界面 英文设置界面

安装方法

方法 1:Git 克隆(推荐)

cd ComfyUI/custom_nodes
git clone https://github.com/a63976659/ComfyUI-Global-Translation.git

安装完成后重启 ComfyUI。

方法 1-新手详细介绍版:

  1. 打开插件文件夹ComfyUI\Custom_nodes
  2. Win11系统空白处右键,选择在终端中打开。Win10系统地址栏输入cmd回车。
  3. 点击此网页右上角的code展开,复制地址。(也可以直接复制网址)
  4. 在命令窗口输入git空格clone空格,粘贴地址并回车。输入参考git clone https://github.com/a63976659/ComfyUI-Global-Translation.git
  5. 安装完成,重启ComfyUI。(安装失败,开启科学上网并重试)

方法 2:ComfyUI Manager

  1. 打开 ComfyUI Manager
  2. 数据改为:频道(远程)
  3. 点击节点管理
  4. 搜索 猪的飞行梦
  5. 点击安装,重启 ComfyUI

方法 3:手动下载(不推荐,无法更新)

  1. 在 GitHub 页面点击 Code → Download ZIP
  2. 解压到 ComfyUI/custom_nodes/ComfyUI-Global-Translation
  3. 重启 ComfyUI

使用说明

翻译开关

安装后界面会出现翻译开关按钮,点击即可切换翻译状态:

  • 开启翻译 — 按钮显示 翻译开启,界面文字翻译为当前语言(跟随 ComfyUI 官方语言设置)
  • 关闭翻译 — 按钮显示 翻译关闭,恢复原始英文界面

翻译语言

翻译语言不再在插件内单独设置,而是自动跟随 ComfyUI 官方语言设置(设置 → 通用 → 语言 / Comfy.Locale):

  • 官方支持的语言均可匹配:中文、繁体中文、英、日、韩、俄、法、德、西、意、葡(巴西)、土、阿、波斯、希伯来;未覆盖的语言回退英文
  • 在 ComfyUI 设置中切换官方语言后,页面会自动刷新,翻译内容与本插件界面文案同时生效,无需手动重启

设置面板

在 ComfyUI 设置 → 「🌐 翻译设置」中提供两个配置项,界面文案随当前语言本地化(15 种语言)且各语言布局顺序一致:

设置项 说明 选项
🎨 开关样式 选择开关外观,切换后实时重绘无需刷新 pill (胶囊分段) / gradient (七彩渐变) / plain (原生低调)
📋 下拉选项 是否同时翻译下拉框(COMBO)中的选项文本 开 / 关(修改后自动刷新生效)

设置项下方还附带插件翻译管理面板:列出所有带翻译文件的插件,取消勾选即可禁用某个插件的翻译,保存后自动刷新。

💡 胶囊分段(推荐):圆角胶囊形态,蓝色高亮滑块覆盖当前状态分段。点击蓝色滑块即可滑动到另一侧完成切换,选择后立即保存到配置文件,重启 ComfyUI 后依然保持。

按钮样式说明

样式 开启效果 关闭效果 适用场景
胶囊分段 蓝色滑块覆盖"开启"段,白色粗体文字 蓝色滑块滑至"关闭"段,灰色文字 现代简洁,状态一目了然
七彩渐变 彩虹流动动画,白色粗体 灰色流动动画,深色粗体 希望直观醒目
原生低调 ComfyUI 主题色背景 深色背景,灰色文字 希望融入界面

胶囊分段交互说明:仅蓝色高亮滑块是切换触发点——点击后滑块先播放滑动动画(约 300ms)再保存并刷新页面;灰色文字分段仅作状态标签,点击无反应属设计行为。


翻译覆盖范围

翻译内容

类别 覆盖内容 状态
节点名称 所有工作流节点的标题和显示名称
节点属性 输入/输出端口、控件标签、描述信息
菜单系统 主菜单、右键菜单、上下文菜单
设置面板 ComfyUI 设置对话框
管理器 ComfyUI Manager 界面
模版库 工作流模版名称
界面元素 按钮、标签、工具提示、搜索框
自定义面板 节点自建DOM面板的按钮、标签、下拉框、提示文本、弹窗
队列信息 队列大小等动态文本

翻译文件结构

zh-CN/
├── Nodes/          # 节点翻译(标题、输入、输出、控件、自定义面板)
│   └── internal.json
├── Categories/     # 节点分类翻译
│   ├── Internal.json
│   └── Other.json
└── Menus/          # 菜单和界面翻译
    ├── Comfy设置菜单及管理器菜单.json
    ├── Comfy条件选项.json
    ├── Comfy模版汉化-zdfxm.json
    └── ...

其它语言目录(zh-TW/en-US/ja-JP/ko-KR/ru-RU/fr-FR/de-DE/es-ES/it-IT/pt-BR/ar-SA/tr-TR/fa-IR/he-IL/)采用同样结构,按当前语言自动加载;其中 en-US/ 用于把其它语言插件的节点还原为英文。

添加自定义翻译

zh-CN/Nodes/ 目录下创建 JSON 文件即可:

{
  "YourNodeClassName": {
    "title": "节点中文名称",
    "inputs": {
      "input_name": "输入名翻译"
    },
    "outputs": {
      "output_name": "输出名翻译"
    },
    "widgets": {
      "widget_name": "控件名翻译"
    },
    "ui": {
      "English text in panel": "面板中的中文翻译"
    }
  }
}

编写提示

  • widgets 的键必须使用控件的真实名称(源码中的参数名,如 target_language),而不是界面显示的 display_name(如 Target Language)。对于 V3 API(io.Schema)插件,建议真实名称与 display_name 两种键都写上,兼容性最佳
  • ui 字段用于翻译节点内部自定义面板(通过 addDOMWidget 创建)中的英文文本,键为界面显示的英文原文,值为中文译文
  • 请勿添加"恒等翻译"(值与键相同的条目,如 "cfg": "cfg"),此类条目没有翻译意义
  • 注意核对键名拼写,键名与源码不一致(如 perturb_atttn 多打一个 t)会导致该控件翻译不生效

zh-CN/Menus/ 目录下创建 JSON 文件即可添加菜单翻译:

{
  "English Menu Text": "中文菜单文本",
  "Another Item": "另一个项目"
}

添加翻译文件后无需重启 ComfyUI,切换翻译开关即可生效。


技术架构

整体架构

┌──────────────────────────────────────────────────────┐
│                    ComfyUI 主程序                      │
│                                                        │
│  Python 后端 (__init__.py)     前端 JS (js/)           │
│  ├─ HTTP API 路由              ├─ main.js (翻译引擎)   │
│  ├─ 翻译数据编译               ├─ MenuTranslate.js     │
│  └─ 配置持久化                 └─ utils.js (工具函数)  │
│         │                             │                │
│         ▼                             ▼                │
│   zh-CN/ 翻译数据              MutationObserver        │
│   ├─ Nodes/*.json              实时 DOM 翻译           │
│   ├─ Categories/*.json                                 │
│   └─ Menus/*.json                                      │
└──────────────────────────────────────────────────────┘

核心技术

技术 说明
回调包装 (Callback Wrapping) 翻译右键菜单文本的同时保护底层回调的 content 匹配逻辑
双重按钮架构 同时兼容旧版 .comfy-menu 和新版 .comfyui-menu 两套 UI
MutationObserver 监听 实时检测 DOM 变化,自动翻译新出现的界面元素
translatedValueSet 使用 Set 数据结构 O(1) 判断文本是否已翻译,避免重复处理
叶子节点保护 innerText 仅对无子元素的节点赋值,保护 Vue 事件绑定
Gzip 压缩传输 翻译数据通过 Gzip 压缩传输,减少网络开销

完整技术细节请参考 TECHNICAL_DOCUMENTATION.md


注意事项

兼容性

  • 翻译插件冲突 — 本插件会和其他翻译插件冲突(如 AIGODLIKE-ComfyUI-Translation),请卸载其他翻译插件后使用
  • 已知冲突插件ComfyUI Browser 可能存在兼容性问题
  • 浏览器支持 — 推荐使用 Chrome、Edge、360 浏览器,其他浏览器未充分测试

环境要求

组件 要求
ComfyUI 最新版(兼容新旧版本 UI)
Python 3.8+
浏览器 Chrome / Edge(推荐)

更新记录

2026-09-21

新增阿拉伯语(ar-SA)、波斯语(fa-IR)、希伯来语(he-IL)翻译

  • 完成三种 RTL(从右到左)语言的翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 ar-SA / fa-IR / he-IL 即可自动启用对应界面

新版 ComfyUI 翻译开关位置升级

  • 开关优先插入命令栏、与 ComfyUI-Manager 设置按钮同排;启动时锚点未就绪会由看门狗在其就绪后自动搬迁归位,并新增未挂载期防抖动与挂载后胶囊滑块位置自动重算

2026-09-20

新增日语(ja-JP)翻译

  • 完成日语翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 ja-JP 即可自动启用日语界面

新增西班牙语(es-ES)翻译

  • 完成西班牙语翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 es-ES 即可自动启用西语界面

新增韩语(ko-KR)翻译

  • 完成韩语翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 ko-KR 即可自动启用韩语界面

新增土耳其语(tr-TR)翻译

  • 完成土耳其语翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 tr-TR 即可自动启用土耳其语界面

新增意大利语(it-IT)翻译

  • 完成意大利语翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 it-IT 即可自动启用意大利语界面

新增巴西葡萄牙语(pt-BR)翻译

  • 完成巴西葡萄牙语翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 pt-BR 即可自动启用葡语界面

新增德语(de-DE)翻译

  • 完成德语翻译包,覆盖节点、分类、菜单与设置面板;将 ComfyUI 官方语言设为 de-DE 即可自动启用德语界面

2026-09-19

语言跟随官方设置

  • 移除插件内「翻译语言」设置项,翻译语言自动跟随 ComfyUI 官方语言设置(Comfy.Locale
  • 切换官方语言后页面自动刷新,翻译与插件界面文案同时生效,无需手动重启

配置界面多语言与统一布局

  • 开关文字与设置界面文案覆盖 15 种语言(含繁体中文及阿拉伯语、波斯语、希伯来语 RTL 语言),未知语言回退英文
  • 各语言下设置面板布局顺序一致:开关样式 → 下拉选项 → 插件翻译管理,小节表头随语言翻译
  • 「插件翻译管理」面板不再被字典二次翻译,始终与当前界面语言一致
  • 开关开启态文案去掉 (语言代码) 后缀,只保留文案本身

2026-09-12

  • 修复多个翻译文件包含同名节点时翻译被覆盖丢失的问题,现在会自动合并互补
  • 新增节点自定义面板翻译支持,面板里的按钮、标签、下拉框、提示文本、弹窗都能自动汉化
  • 修复控件被"转换为输入"后端口名称保持英文的问题
  • 新增翻译守护机制,后来创建的节点也能自动补上翻译
  • 感谢石头(Q:34720803)提供的优化

2026-09-07

  • 修复侧边栏「工作流」列表里自己起的工作流名字被误翻译成中文的问题,现在会原样保留

2026-08-20

  • 新增「胶囊分段」翻译开关样式,蓝色滑块在开启和关闭之间平滑滑动,状态一目了然

2026-07-27

修复:V3 API 节点控件翻译失效问题

  • 修复了使用 V3 API(io.Schema)编写的插件(如 ComfyUI-qwenmultiangle)控件不翻译的问题
  • 根因:V3 节点常为控件声明英文 display_name(如 name 为 horizontal_angle、label 为 Horizontal Angle),旧的已翻译判定将"label ≠ name"一律视为原生翻译而跳过
  • 方案isAlreadyTranslated 增加归一化比对,label 仅是 name 的美化形式(大小写/空格/下划线/连字符差异)时不视为已翻译

修复:恒等翻译条目污染已翻译判定集合

  • 修复了个别控件(如 cfg)在所有节点上都无法翻译的问题
  • 根因:某些翻译文件存在"恒等翻译"条目(如 "cfg": "cfg"),其值被加入 translatedValueSet 后,控件英文原名被误判为"已翻译文本",全局阻断该名称的翻译
  • 方案:构建判定集合时跳过值与键相同的条目

翻译文件修正

  • 修正 ComfyUI-LTXVideo 翻译文件中的键名拼写错误(perturb_atttnperturb_attncross_atttncross_attnquantize_fnnquantize_ffn
  • 补充 ComfyUI-qwenmultiangle 翻译文件缺失的控件真实名称键(target_languageprompt

2026-04-08

修复:右键菜单功能失效问题

  • 修复了翻译开启后,输出接口右键菜单的「断开连接」「重命名接口」等操作无响应的严重 Bug
  • 根因:LiteGraph 底层通过 value.content 英文文本匹配来分发回调动作,翻译后匹配失败
  • 方案:实现回调包装(Callback Wrapping)机制,在回调执行瞬间临时恢复英文、执行后恢复中文,兼顾翻译显示与功能正确性
  • 同时包装 value.callback(独立回调)和 options.callback(共享回调)两种模式
  • 增加 _originalContent 多次翻译覆盖保护,防止画布菜单经过两次翻译管道后原始值丢失

修复:DOM 翻译破坏事件绑定问题

  • 修复了 replaceTextinnerText 赋值摧毁子元素及 Vue/PrimeVue 事件监听器的问题
  • 方案:增加叶子节点检查 target.children.length === 0,仅对无子元素的节点执行 innerText 赋值

2025-12-20

重命名

  • 插件名称从 ComfyUI-Translation-node 更名为 ComfyUI-Chinese-Translation
  • 显示名称从「翻译节点」改为「中文翻译」,更符合插件定位

功能增强

  • 改版为支持多国语言文件架构(版本 2.0)
  • 新增设置面板,可在 ComfyUI 设置中配置语言和按钮样式
  • 新增原生低调 UI 样式选项
  • 修复重启后图标设置失效问题(感谢群友「幻影」反馈)

社区与支持

作者主页

Bilibili

交流群

  • ComfyUI 交流 QQ 群202018000

反馈与贡献

  • 问题反馈GitHub Issues
  • 贡献翻译:欢迎提交 PR 补充翻译文件

支持作者

如果觉得插件不错,欢迎点个 ⭐ Star 和支持作者:

  • 赞助
微信图片_20260920163034 微信图片_20260920163043

开源许可

本项目基于 MIT License 开源。

Copyright (c) 2025 猪的飞行梦

任何人都可以自由复制、修改和分发本项目,但需保留原始版权声明。详见 LICENSE 文件。


免责声明

本翻译作品及分享内容声明如下:

非商业性质

本翻译为个人无偿行为,未收取任何报酬或商业利益,仅用于学习交流与知识分享。

准确性不保证

翻译内容力求忠实于原文,但不保证翻译的准确性、完整性、时效性或适用性。任何因使用或依赖本翻译内容而产生的风险与后果,由使用者自行承担。

原始来源归属

本翻译所依据的原始材料(包括但不限于文字、图片、视频等)之版权归原作者或原始权利人所有。本翻译不主张对原始内容的任何权利。

建议参考原文

若涉及重要决策、法律效力、技术实现或专业判断等情形,请务必查阅并依赖官方原始版本,而不应以本翻译作为依据。

权利保留

若原始权利人认为本翻译侵犯其合法权益,请及时联系,本人将及时删除或处理。

About

comfyui全面翻译节点

Resources

Stars

242 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages