sd-webui-bilingual-localization
AUTOMATIC1111 SD WebUI 扩展,中英双语对照翻译,保留原界面操作习惯的同时提供中
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AUTOMATIC1111 SD WebUI 扩展,中英双语对照翻译,保留原界面操作习惯的同时提供中
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你正在用 Stable Diffusion WebUI 创作一幅精美的概念图,参数调好了,prompt 写完了,正准备生成——却突然发现"Clip skip"这个参数藏在哪了。翻遍整个界面,全是英文,找不到想要的功能。这不是技术问题,而是语言问题。而正是这样一个看似简单的痛点,催生了今天要介绍的这个开源项目——sd-webui-bilingual-localization。
这是一个专为 Stable Diffusion WebUI(AUTOMATIC1111 及兼容分支)打造的双语对照翻译插件,由开发者 journey-ad 于 2023 年 2 月发布,目前 GitHub 已收获 915 颗星,76 个 forks,是 SD WebUI 生态中本地化扩展的标杆作品之一。

图1:插件主界面效果——英文原文与中文翻译并列对照显示
Stable Diffusion WebUI(由 AUTOMATIC1111 开发维护)是目前最流行的开源 AI 绘图工具,基于 Gradio 框架构建,界面完全依赖 Web 技术栈。然而,其默认界面仅有英文,对于非英语母语者而言,界面中大量专业术语(如"Negative prompt"、"CFG scale"、"Hires. fix"等)增加了学习成本。
传统的本地化方案(如社区语言包扩展)通常采用"替换"策略:将英文文字直接替换为对应语言版本。但这带来了一个副作用——用户再也看不到原始英文,当参考英文教程操作时,往往对不上界面上的中文按钮,产生新的困惑。
sd-webui-bilingual-localization 的核心理念与此截然不同:它不是"替换"而是"对照",让英文原文和翻译并行显示,用户既能理解功能,又能与英文资料对应。
插件通过 JavaScript 注入 CSS 样式,在 WebUI 界面中为几乎所有文本元素附加翻译对照层。以参数标签为例,界面上显示的是:
Clip skip: CLIP 反推终止层数
即英文原文在前(作为视觉主体),中文翻译以较小字号追加其后(作为辅助参考)。两种语言各司其职,用户无需切换、不丢失上下文。
SD WebUI 中大量元素带有动态生成的 title 提示(即鼠标悬停时显示的说明文字)。这些提示内容由 JavaScript 运行时生成,传统的静态语言包无法覆盖。bilingual-localization 通过拦截 DOM 中的 title 属性和 Gradio 的动态渲染机制,对这类动态文本也进行了翻译处理。
这是该插件最具技术含量的特性之一。在多标签、多模块的复杂界面中,同一个英文单词在不同场景下往往对应不同的中文含义。例如英文单词 "Normal" 在"图生图"标签下应译为"正态(分布)",而在"ControlNet"的"OpenPose"子模块下应译为"法线图"。
传统的全局替换会将所有 "Normal" 统一翻译,造成歧义。bilingual-localization 支持作用域语法:
{
"##tab_ti##Normal": "正态",
"##tab_threedopenpose##Normal": "法线图"
}
只有当文本节点的祖先元素 ID 匹配指定作用域时,翻译规则才会生效。这种精细化的映射机制解决了语言包扩展中的经典歧义难题。
插件还支持正则表达式匹配替换,适用于动态生成的复合文本。例如:
{
"@@/^(\d+) images in this directory, divided into (\d+) pages$/": "目录中有$1张图片,共$2页"
}
括号捕获的变量 $1、$2 在替换模板中被复用,实现了对动态页码等复合文本的完整翻译。
插件完全兼容 SD WebUI 原生的语言包扩展机制。用户安装第三方语言包后,只需在 Settings → Bilingual Localization 面板中选择对应的本地化 JSON 文件即可启用,无需重新导入语言料。
从代码结构看,该插件由两部分组成:
| 文件 | 职责 | 规模 |
|---|---|---|
javascript/bilingual_localization.js | 前端 DOM 注入、CSS 样式、翻译替换逻辑 | ~17,000 字符 |
scripts/bilingual_localization_helper.py | 后端 Python:加载本地化文件目录、暴露路径给前端 | ~2,400 字符 |
前端架构:插件以 Gradio 扩展脚本形式注入,核心是一个自执行函数(IIFE),通过在页面加载时向 DOM 注入双语 CSS 样式类(.bilingual__trans_wrapper),将每个文本节点包裹为"原文 + 译文的垂直堆叠"结构。样式文件中针对 SD WebUI 的各个功能区域(txtimg_hr_finalres、tab_ti、sddp-dynamic-prompting、available_extensions 等)做了精细的显示适配,确保不同区域的对照翻译样式协调美观。
后端架构:Python 脚本负责扫描 SD WebUI 的本地化目录(默认 localizations/),发现所有 .json 翻译文件后,通过 script_callbacks 回调机制将文件路径暴露给前端 JavaScript 使用。
技术栈:JavaScript(前端 DOM 操作/CSS 注入)+ Python(SD WebUI 扩展接口),无额外外部依赖,代码量极轻,部署简单。
插件支持两种安装方式,均可在 SD WebUI 内置界面中完成,无需命令行操作。
方式一:WebUI 内置安装(推荐)
Extensions → Install from URL,在文本框输入:
https://github.com/journey-ad/sd-webui-bilingual-localizationInstall,切换到 Installed 面板
图2:通过 WebUI 内置扩展管理器安装
Apply and restart UI
图3:重启 WebUI 后完成安装
方式二:Git 克隆
git clone https://github.com/journey-ad/sd-webui-bilingual-localization extensions/sd-webui-bilingual-localization
使用前注意:在 Settings → User interface → Localization 中必须设为 None(不能同时启用原生语言包),然后在 Settings → Bilingual Localization 中选择本地化 JSON 文件,点击 Apply settings 和 Reload UI 即可。
没有任何工具是完美的,bilingual-localization 也不例外:
SD WebUI 双语本地化看似是一个小工具,但它折射出 AI 工具民主化的一个关键命题:界面语言的门槛,直接决定了工具的普及速度。
从数据看,该项目 915 星的关注度和持续活跃的 issue 讨论(16 个 open issues)说明需求真实存在。而在 Stable Diffusion 生态中,围绕 WebUI 的扩展生态极为丰富——从 ControlNet 到 Lora 管理,从图片编辑到工作流自动化——但本地化始终是相对薄弱的环节。bilingual-localization 填补了这一空白,也为后续更完善的 i18n 方案提供了技术参照。
更重要的是,其"作用域翻译"的设计思路——即同一个词在不同上下文中呈现不同翻译——是一种可复用的前端国际化范式,对其他 Gradio 应用的多语言改造具有参考价值。