File: README.md
BallonsTranslator
Features
[!IMPORTANT]
如打算公开分享本工具的机翻结果,且没有有经验的译者进行过完整的翻译或校对,请在显眼位置注明机翻。
一键机翻
- 译文回填参考对原文排版的估计,包括颜色,轮廓,角度,朝向,对齐方式等
- 最后效果取决于文本检测,识别,抹字,机翻四个模块的整体表现
- 支持日漫和美漫
- 英译中,日译英排版已优化,文本布局以提取到的背景泡为参考,中文基于 pkuseg 进行断句,日译中竖排待改善
图像编辑
支持掩膜编辑和修复画笔文本编辑
支持上下文和术语表的 LLM 翻译
翻译历史
- 将 LLM 上下文 设为 +翻译历史 后,
LLMTranslator会参考之前已完成的页面,有助于统一人名、术语和语气。继续运行和选定范围也可使用范围之前符合条件的页面。 - Token 预算 控制加入多少较早的译文,并优先保留较新的页面。当前页面、指令、术语表和生成回复还需要额外的上下文空间。默认值为
4096。 - 较大预算可提供更多剧情上下文并减少旧页淘汰,但会发送更多输入,可能需要更长时间。本地模型还可能显著增加内存/显存占用。默认值
4096是特意设置的保守选择;DeepSeek 等具有较大上下文窗口的主流服务通常可以使用更高上限。模型上下文上限的约 70% 可作为合理上限(128K 模型约为90000)。 - 历史预算也会影响提示词缓存。历史在预算内增长时,连续请求会保留相同的开头,OpenAI、DeepSeek 等服务可按折扣价复用这些输入 token,并可能降低延迟。预算迫使程序淘汰旧页后,公共开头会改变,缓存复用随之重置。较大预算可减少重置次数,但也会发送更多历史,因此总费用不一定更低。
下表以 DeepSeek 为例,对普通漫画页面进行粗略估算;其缓存输入 token 的价格为普通输入 token 的 10%。实际结果会因项目、模型和服务商而异。
历史预算 (tokens) 预计保留的翻译历史(页) 相对不使用历史的预计总费用 20483–4 1.65× 40966–9 1.79× 819212–19 2.10× 1638423–38 2.66× 可复用术语表
在运行对话框中设置 术语表,可使用 UTF-8 编码的
.json、.txt或.tsv文件。文件只会被读取,并可在多个项目间复用。仅匹配 只发送原词出现在相关页面中的条目;全表 会发送全部条目,可能明显增加 token 用量。
支持以下格式:
text# Sakura 格式文本 原词->译词 # 可选备注 # 制表符分隔文本 原词<TAB>译词<TAB>可选备注json[ {"src": "原词", "dst": "译词", "info": "可选备注"} ]匹配不区分大小写,并按字面文本匹配。条目冲突、文件格式错误、不支持的扩展名或文件不存在时,翻译会在发送 LLM 请求前停止。
历史页面上下文和术语表注入只对
LLMTranslator生效,其他翻译器会忽略这些设置。
- 将 LLM 上下文 设为 +翻译历史 后,
适用于条漫
使用说明
Windows
方式 A(一键自动配置本地环境,需要系统支持 PowerShell):
该脚本会在执行目录安装 BallonsTranslator:
irm https://raw.githubusercontent.com/dmMaze/BallonsTranslator/dev/scripts/install.ps1 | iex或者在系统的命令提示符 (cmd.exe) 中运行:
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/dmMaze/BallonsTranslator/dev/scripts/install.ps1 | iex"方式 B(下载免配置压缩包):
从 GitHub Releases 下载 Ballonstranslator_win_minium.zip,解压并双击运行 launch_win.bat 启动程序。
以上方式不支持 Windows 7,Windows 7 用户需要自行安装 Python 3.8 运行源码。
如果遇到 msvcp140.dll、c10.dll 或 [WinError 1114] 相关错误,请安装或更新 Microsoft Visual C++ Redistributable x64(Visual Studio 2015-2022;官方下载说明)。
macOS / Linux
该脚本会在执行目录安装 BallonsTranslator:
curl -fLO https://raw.githubusercontent.com/dmMaze/BallonsTranslator/dev/scripts/install.sh && chmod +x install.sh && ./install.sh如果系统没有 curl,也可以用 wget -O ... 下载脚本。安装完成后会自动启动程序;之后可运行 cd BallonsTranslator && ./launch.sh 再次启动。
启动程序会检查核心依赖;选择需要额外库的模块时,程序会提示安装缺失的可选依赖(也可在设置中启用自动安装)。
一键翻译
建议在命令行终端下运行程序,首次运行请先配置好源语言/目标语言,打开一个带图片的文件夹,点击 Run 等待翻译完成
一键机翻嵌字格式如大小、颜色等默认是由程序决定的,可以在设置面板->嵌字菜单中改用全局设置。全局字体格式就是未编辑任何文本块时右侧字体面板显示的格式:
画板
修复画笔
修复画笔
矩形工具
矩形工具
按下鼠标左键拖动矩形框抹除框内文字,按下右键拉框清除框内修复结果。
抹除结果取决于算法(gif 中的"方法1"和"方法2")对文字区域估算的准确程度,一般拉的框最好稍大于需要抹除的文本块。两种方法都比较玄学,能够应付绝大多数简单文字简单背景,部分复杂背景简单文字/简单背景复杂文字,少数复杂背景复杂文字,可以多拉几次试试。
勾选"自动"拉完框立即修复,否则需要按下"修复"或者空格键才进行修复,或 Ctrl+D 删除矩形选框。
文本编辑
文本编辑
批量文本格式调整及自动排版
OCR并翻译选中文本框
界面说明及快捷键
- Ctrl+Z,Ctrl+Y 可以撤销重做大部分操作,注意翻页后撤消重做栈会清空
- A/D 或 pageUp/Down 翻页,如果当前页面未保存会自动保存
- T 切换到文本编辑模式下(底部最右"T"图标),W激活文本块创建模式后在画布右键拉文本框
- P 切换到画板模式,右下角滑条改原图透明度
- 标题栏->运行 可以启用/禁用任意自动化模块,全部禁用后Run会根据全局字体样式和嵌字设置重新渲染文本
- 设置面板配置各自动化模块参数
- Ctrl++/- 或滚轮缩放画布
- Ctrl+A 可选中界面中所有文本块
- Ctrl+F 查找当前页,Ctrl+G全局查找
- 0-9调整嵌字/原图透明度
- 文本编辑下
Ctrl+B加粗,Ctrl+U下划线,Ctrl+I斜体 - 字体样式面板-"特效"修改透明度添加阴影
Alt+Arrow Keys或Alt+WASD(正在编辑文本块时pageDown或pageUp) 在文本块间切换
命令行模式 (无GUI)
python -m ballontranslator --headless --exec_dirs "[DIR_1],[DIR_2]..."所有设置 (如检测模型, 原语言目标语言等) 会从 config/config.json 导入。
如果渲染字体大小不对, 通过 --ldpi 指定 Logical DPI 大小, 通常为 96 和 72。
自动化模块
本项目重度依赖 manga-image-translator,在线服务器和模型训练需要费用,有条件请考虑支持一下
- Ko-fi: https://ko-fi.com/voilelabs
- Patreon: https://www.patreon.com/voilelabs
- 爱发电: https://afdian.net/@voilelabs
Sugoi 翻译器作者: mingshiba
文本检测
- 暂时仅支持日文(方块字都差不多)和英文检测,训练代码和说明见https://github.com/dmMaze/comic-text-detector
- 支持使用 星河云(团子漫画OCR)的文本检测,需要填写用户名和密码,每次启动时会自动登录。
- 详细说明见 团子OCR说明
YSGDetector是由 lhj5426 训练的模型,能更好地过滤日漫/CG里的拟声词。需要手动从 YSGYoloDetector 下载模型放到 data/models 目录下。
OCR
- 所有 mit 模型来自 manga-image-translator,支持日英汉识别和颜色提取
- manga_ocr 来自 kha-white,支持日语识别,注意选用该模型程序不会提取颜色
- PaddleOCRVLManga 支持日语识别,选用该模型程序不会提取颜色
- 支持使用 星河云(团子漫画OCR)的OCR,需要填写用户名和密码,每次启动时会自动登录。
- 目前的实现方案是逐个textblock进行OCR,速度较慢,准确度没有明显提升,不推荐使用。如果有需要,请使用团子Detector。
- 推荐文本检测设置为团子Detector时,将OCR设为none_ocr,直接读取文本,节省时间和请求次数。
- 详细说明见 团子OCR说明
- OCR设置项: 字体识别。把字体识别模型(YuzuMarker.FontDetection)下载下来放在data\models\YuzuMarker.FontDetection目录下。
需要的三个文件分别是data\models\YuzuMarker.FontDetection\font_dataset,data\models\YuzuMarker.FontDetection\name=4x-epoch=18-step=368676.ckpt,data\font_demo_cache.bin
识别到的置信率大于60%的字体名称会保存在json文件的_detected_font_name字段中。目前没做可视化外显,使用脚本导出LabelPlus txt时可选带上字体字号信息,导入到其他软件(如PS/ID)嵌字用。
图像修复
- AOT 修复模型来自 manga-image-translator
- patchmatch 是非深度学习算法,也是PS修复画笔背后的算法,实现来自 PyPatchMatch,本程序用的是我的修改版
- lama* 是微调过的lama
翻译器
- 谷歌翻译器已经关闭中国服务,大陆再用需要设置全局代理,并在设置面板把 url 换成*.com
- 彩云,需要申请 token
- papago
- DeepL 和 Sugoi (及它的 CT2 Translation 转换)翻译器,感谢 Snowad14,如果要使用Sugoi翻译器(仅日译英),下载离线模型,将
sugoi_translator移入 BallonsTranslator/ballontranslator/data/models。 - 支持 Sakura-13B-Galgame。如果在本地单卡上运行且显存不足,可以在设置面板里勾选
low vram mode(默认启用)。 - DeepLX 请参考Vercel 或 deeplx
- 支持两个版本的 OpenAI 兼容翻译器,支持兼容 OpenAI API 的官方或第三方LLM提供商,需要在设置面板里配置。
- 无后缀版本token消耗更小,但分句稳定性稍差,长文本翻译可能有问题。
- exp后缀版本token消耗更大,但稳定性更好,且在Prompt中进行了“越狱”,适合长文本翻译。
- m2m100: 下载并将 m2m100-1.2B-ctranslate2 移到 data/models 目录下
其它优秀的离线英文翻译模型请参考这条讨论
如需添加新的翻译器请参考加别的翻译器,本程序添加新翻译器只需要继承基类实现两个接口即可不需要理会代码其他部分,欢迎大佬提 pr
杂
电脑带 Nvidia 显卡或 Apple silicon 默认启用 GPU 加速
感谢 bropines 提供俄语翻译
第三方输入法可能会造成右侧编辑框显示 bug,见#76,暂时不打算修
启用 AMD ROCm 显卡加速方法
通用方案 ZLUDA (ROCm)
优点:
文本和文本框识别速度比社区预览版略快,当然比 CPU 更快
缺点:
需要额外安装并进行相关配置才可工作,首次启动以及更换识别模型、显卡驱动升级等都需要长时间预热缓存
安装步骤:
- 更新显卡驱动至最新版 (建议 24.12.1 及以上,根据自身系统环境下载并安装 AMD HIP SDK Page )
- 下载 ZLUDA 并解压到 zluda 文件夹内,复制 zluda 文件夹到系统盘下: 比如c盘 (C:\zluda)
- 配置系统环境变量,以 windows 10 系统为例:设置 - 系统属性 - 高级系统设置 - 环境变量 - 系统变量 - 找到 path 变量,点击编辑,在最后添加
C:\zluda和%HIP_PATH%bin两项 - 替换 CUDA 库的动态链接文件: 将
C:\zluda文件夹内的cublas.dllcusparse.dll和nvrtc.dll复制出一份到桌面,按如下规则重命名复制出来的文件
注意事项
注意 HIP SDK 和 ZLUDA 版本对应关系,建议使用较新的AMD显卡驱动程序。
| Windows 版本 | HIP SDK 版本 | ZLUDA 版本 |
|---|---|---|
| Windows 11 | 7.1.1 | 3.9.6 |
| Windows 10 和 11 | 6.4.2 | 3.9.5 |
| Windows 10 和 11 | 6.2.4 | 3.9.5 |
| Windows 10 和 11 | 6.1.2 | 3.9.5 |
原文件名 → 新文件名
cublas.dll → cublas64_11.dll
cusparse.dll → cusparse64_11.dll
nvrtc.dll → nvrtc64_112_0.dll 将已经重命名的文件替换掉 BallonsTranslator\ballontrans_pylibs_win\Lib\site-packages\torch\lib\ 目录中的同名文件
- 启动程序并设置 OCR 和文本检测 为 Cuda (图像修复请继续使用 CPU)
- 运行 OCR 并等待 ZLUDA 编译 PTX 文件 (首次编译大概需要 5-10 分钟,取决于 CPU 性能),下次运行无需编译
File: doc/add_translator_ru.md
简体中文 | English | pt-BR | Русский
Если у вас есть базовые знания программирования на python, вы будете знать, как использовать python для вызова необходимого api переводчика или модели перевода, Напишите класс в dl/translators.init.py следующим образом, чтобы использовать его непосредственно в программе.
Следующий пример DummyTranslator закомментирован в dl/translator/init.py, и его можно не комментировать, чтобы увидеть результат в программе.
/* Detailed source-code truncated for AI context efficiency. */Во-первых, переводчик должен быть декорирован с помощью register_translator и наследоваться от базового класса BaseTranslator, параметр 'dummy translator' внутри декоратора - это имя переводчика, которое будет отображаться в интерфейсе, будьте осторожны, чтобы не дублировать имя существующего переводчика.
Сохраните concate_text на потом.
@register_translator('dummy translator')
class DummyTranslator(BaseTranslator):
concate_text = TrueЕсли новый переводчик требует настраиваемых пользователем параметров, создайте словарь params, как показано ниже, в противном случае оставьте его в покое или присвойте значение None.
Ключом в params является соответствующее имя параметра, отображаемое в интерфейсе, значение может быть str, api_key ниже будет текстовый редактор с пустым значением по умолчанию в интерфейсе.
Значение параметра также может быть словарем, но должно быть указано как тип 'type', который будет показан как селектор в интерфейсе, следующее устройство является селектором, либо cpu, либо cuda, по умолчанию cpu.
params: Dict = {
'api_key': '',
'device': {
'type': 'selector',
'options': ['cpu', 'cuda'],
'value': 'cpu'
}
}Результат вышеуказанного словаря параметров в панели настроек интерфейса
Переводчик должен реализовать _setup_translator, который выполняет инициализацию здесь. Ключ словаря lang_map - это языковая опция, отображаемая в интерфейсе, и присваивается языковому ключевому слову, принятому API, например, 'zh' для упрощенного китайского языка Google Translate. Здесь указаны только языки, поддерживаемые переводчиком, полный список языков см. в LANGMAP_GLOBAL в translator.init.
def _setup_translator(self):
self.lang_map['简体中文'] = 'zh'
self.lang_map['日本語'] = 'ja'
self.lang_map['English'] = 'en'Переводчику также необходимо реализовать _translate, где lang_source и lang_target - это языки, выбранные в интерфейсе на данном этапе, а соответствующие ключевые слова api можно получить из предыдущей lang_map, чтобы сшить вместе параметры api и отправить запрос.
Обратите внимание, что если предыдущий параметр concate_text имеет значение False, то переданный сюда текст будет представлять собой таблицу строк, соответствующую оригинальному содержимому каждого текстового блока на текущей странице перевода, и переведенный результат также должен представлять собой таблицу переведенного текста один к одному. Если установлено значение True, входящий текст будет представлять собой обычную строку всех текстовых блоков, а выходной текст должен быть переведенной строкой.
Слишком медленно посылать запрос для каждого текстового блока, поэтому вся страница сшивается и переводится. concate_text настроен на автоматическое сшивание/разделение, и по умолчанию сшивает весь блок вместе с '\n###\n' в качестве разделителя, а затем разделяет переведенный текст обратно в текстовую таблицу с помощью '####'. Это работает для большинства проверенных мной переводчиков, но некоторые из них избавляются от #, поэтому вы можете отключить перевод concate_text блок за блоком или реализовать свой собственный метод сшивания.
Некоторые апи, такие как Caiyun, поддерживают прямые текстовые таблицы в сообщениях, поэтому можно установить значение False.
def _translate(self, src_list: List[str]) -> List[str]:
api_key = self.params['api_key'] # 如此获取用户修改过的api_key
source = self.lang_map[self.lang_source]
target = self.lang_map[self.lang_target]
return textФиктивный переводчик не делает ничего, кроме возвращения оригинального текста.
После внедрения переводчика рекомендуется написать собственный тест переводчика для проверки правильности вывода, следуя примеру в tests/test_translators.py. Как только тест пройден, вы можете использовать его в своем приложении.
Наконец, updateParam выше будет вызываться автоматически, когда пользователь изменит параметр, по умолчанию он будет изменять только значение в params, такое как api_key выше. Обычно это можно игнорировать, но если вам нужно изменить состояние транслятора, например, если это локальная модель трансляции, которая может переключаться между cuda и cpu, вы можете сделать это здесь.
File: doc/how_to_add_new_translator.md
简体中文 | English | pt-BR | Русский
If you know how to to call the target translator api or translation model in python, implement a class in ballontranslator/dl/translators.init.py as follows to use it in the app.
The following example DummyTranslator is commented out of ballontranslator/dl/translator/init.py and can be uncommented to test in the program.
/* Detailed source-code truncated for AI context efficiency. */First the translator must be decorated with register_translator and inherit from the base class BaseTranslator, the 'dummy translator' passed to the decorator is the name of the translator that will be displayed in the interface, be careful not to rename it with an existing translator.
This concate_text will be explained later, set it to False if this translator is a offline model or target api accept str list.
@register_translator('dummy translator')
class DummyTranslator(BaseTranslator):
concate_text = TrueIf the new translator requires user-configurable parameters, construct a dictionary named params as below, otherwise leave it alone or assign None to it.
The keys in params is the corresponding parameter names displayed in the interface, if the corresponding value type is str, it will show in app as a text editor, in following example, the api_key be a text editor with an empty default value.
The value of the parameter can also be a dictionary, in which case it must be described by 'type', in following example, the 'device' parameter will be shown as a selector in app, valid options are 'cpu' and 'cuda.
params: Dict = {
'api_key': '',
'device': {
'type': 'selector',
'options': ['cpu', 'cuda'],
'value': 'cpu'
}
}params displayed in the app's config panel.
Implement _setup_translator: initialized the translator here.
def _setup_translator(self):
'''
do the setup here.
keys of lang_map are those languages options showed in the app,
assign corresponding language keys accepted by API to supported languages.
Only the languages supported by the translator are assigned here, this translator only supports Japanese, and English.
For a full list of languages see LANGMAP_GLOBAL in translator.__init__
'''
self.lang_map['日本語'] = 'ja'
self.lang_map['English'] = 'en'Implement _translate, the following lang_source and lang_target are the languages selected in the interface at this point, you can use the previous lang_map to get the corresponding api language keywords and make a request or process text & feed into model here.
If prementioned concate_text is set to False, input could be str list(all text recognized in a page) or str, else the input could be concated text of a str list (['text1', 'text2'] -> 'text1 \n###\n text2'), set it to True only if this translator is a online api and don't accept str list to make fewer requests.
def _translate(self, src_list: List[str]) -> List[str]:
'''
do the translation here.
This translator do nothing but return the original text.
'''
source = self.lang_map[self.lang_source]
target = self.lang_map[self.lang_target]
translation = text
return translationRe-implement updateParam, supported_tgt_list, supported_src_list if necessary, please refer to their comments for further details.
Once the translator is implemented, it is recommended to test it following the example in tests/test_translators.py.
File: doc/saladict.md
Note it only work with browsers that offer global shortcuts for extensions(Currently only Firefox does no support global shortcuts)
- Installation: https://saladict.crimx.com/download.html
- In Saladict options, enable "Keep in Background", enable "Permissions" - 'Read Clipboard".
- In browser(edge://extensions/shortcuts or chrome://extensions/shortcuts), set a global shortcut for
Search clipboard content in Standalone Panel:
Note the shortcut in browser should be the same as in the ballonstranslator, with "ALT+S" by default:
File: doc/saladict_chs.md
需要浏览器支持为扩展设置全局快捷键(火狐尚未支持)
- 安装: https://saladict.crimx.com/download.html
- 在沙拉查词扩展选项中, 开启「后台保持运行」, 允许「权限管理」-「读取剪贴板」
- 浏览器里为沙拉查词设置全局快捷键(打开edge://extensions/shortcuts或者chrome://extensions/shortcuts):
注意应该与软件内的一致, 默认是"ALT+S":
File: README_EN.md
BallonsTranslator
Features
[!IMPORTANT]
If you're sharing the translated result publicly and no experienced human translator participated in a throughout translating or proofreading, please mark it as machine translation somewhere clear to see.
Fully automated translation
- Support automatic text-detection, recognition, removal, and translation. Overall performance is dependent upon these modules.
- Typesetting is based on the formatting estimation of the original text.
- Works decently with manga and comics.
- Improved manga->English, English->Chinese typesetting (based on the extraction of balloon regions.).
Image editing
- Support mask editing & inpainting (something like spot healing brush tool in PS)
- Adapted to images with extreme aspect ratio such as webtoons
Text editing
- Support rich text formatting and text style presets, translated texts can be edited interactively.
- Text transforms, Search & replace
- Support export/import to/from word documents
Context-aware LLM translation & Glossary
Translation history
- Set LLM Context to +history to show
LLMTranslatorexamples from earlier completed pages. This can keep names, terminology, and tone more consistent. Continue and selected-range runs can also use eligible earlier pages. - Token budget controls how much earlier translated text is included. Newer pages are kept first. The current page, instructions, glossary, and generated reply need additional space. The default is
4096. - A larger budget gives the model more story context and drops old pages less often, but sends more input and may take longer. Local models may also need substantially more RAM/VRAM. The
4096default is deliberately conservative; mainstream providers with large context windows, such as DeepSeek, can often use a higher limit. About 70% of the model's context limit is a reasonable upper bound (90000for a 128K model). - The history budget also affects prompt caching. While history grows within the budget, consecutive requests keep the same beginning; OpenAI and DeepSeek can reuse these input tokens at a discount and may respond faster. Dropping old pages changes the beginning and resets the cache. A larger budget means fewer resets but sends more history, so it is not guaranteed to cost less.
The table below is a rough manga-page example using DeepSeek, where cached input tokens cost 10% of regular input tokens. Actual results vary by project, model, and provider.
Token budget Estimated history kept (pages) Estimated total cost vs. no history 20483–4 1.65× 40966–9 1.79× 819212–19 2.10× 1638423–38 2.66× Reusable glossaries
Set Glossary File in the Run dialog to a UTF-8
.json,.txt, or.tsvfile. The file is read-only and can be reused across projects.Matching sends only entries whose source terms occur on the relevant page. All sends every entry and may use considerably more tokens.
Supported formats include:
text# Sakura-style text source->translation # optional note # Tab-separated text source<TAB>translation<TAB>optional notejson[ {"src": "source", "dst": "translation", "info": "optional note"} ]Matching is case-insensitive and literal. Conflicting entries, malformed files, unsupported formats, and missing files stop the translation before an LLM request is sent.
Prior-page context and glossary injection affect only
LLMTranslator; other translators ignore these settings.
- Set LLM Context to +history to show
Installation
On Windows
Method A (One-Click Local Environment Setup, requires PowerShell):
The script installs BallonsTranslator in the directory where you run it:
irm https://raw.githubusercontent.com/dmMaze/BallonsTranslator/dev/scripts/install.ps1 | iexOr run the following command in the Command Prompt (cmd.exe):
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/dmMaze/BallonsTranslator/dev/scripts/install.ps1 | iex"Method B (Download Pre-configured Package):
Download Ballonstranslator_win_minium.zip from GitHub Releases, extract it, and double-click launch_win.bat to launch the application.
These methods do not support Windows 7; Windows 7 users must install Python 3.8 manually and run from source.
If you see errors involving msvcp140.dll, c10.dll, or [WinError 1114], install or update the Microsoft Visual C++ Redistributable x64 (Visual Studio 2015-2022; official download notes).
macOS / Linux
The script installs BallonsTranslator in the directory where you run it:
curl -fLO https://raw.githubusercontent.com/dmMaze/BallonsTranslator/dev/scripts/install.sh && chmod +x install.sh && ./install.shIf curl is not available, download the script with wget -O ... instead. The app launches automatically after installation; later, use cd BallonsTranslator && ./launch.sh to start it again.
The app checks core dependencies at startup. When you select a module that needs extra libraries, the app will prompt you to install the missing optional dependencies (you can also enable automatic installation in Settings).
Usage
It is recommended to run the program in a terminal in case it crashed and left no information, see the following gif.
- The first time you run the application, please select the translator and set the source and target languages by clicking the settings icon.
- Open a folder containing images of a comic (manga/manhua/manhwa) that need translation by clicking the folder icon.
- Click the
Runbutton and wait for the process to complete.
The font formats such as font size and color are determined by the program automatically in this process, you can predetermine those formats by change corresponding options from "decide by program" to "use global setting" in the config panel->Typesetting. (global settings are those formats shown by the right font format panel when you are not editing any textblock in the scene)
Image Editing
Inpaint Tool
Image Editing Mode, Inpainting Tool
rect tool
Rect Tool
To 'erase' unwanted inpainted results, use the inpainting tool or rect tool with your right button pressed.
The result depends on how accurately the algorithm ("method 1" and "method 2" in the gif) extracts the text mask. It could perform worse on complex text & background.
Text editing
Text Editing Mode
Batch Text Formatting & Auto Layout
OCR & Translate Selected Area
Shortcuts
A/DorpageUp/Downto turn the pageCtrl+Z,Ctrl+Shift+Zto undo/redo most operations. (note the undo stack will be cleared after you turn the page)Tto text-editting mode (or the "T" button on the bottom toolbar).Wto activate text block creating mode, then drag the mouse on the canvas with the right button clicked to add a new text block. (see the text editing gif)Pto image-editting mode.- In the image editing mode, use the slider on the right bottom to control the original image transparency.
- Disable or enable any automatic modules via titlebar->run, run with all modules disabled will re-letter and re-render all text according to corresponding settings.
- Set parameters of automatic modules in the config panel.
Ctrl++/Ctrl+-(AlsoCtrl+Shift+=) to resize image.Ctrl+G/Ctrl+Fto search globally/in current page.0-9to adjust opacity of text layer- For text editing: bold -
Ctrl+B, underline -Ctrl+U, Italics -Ctrl+I - Set text shadow and transparency in the text style panel -> Effect.
Alt+Arrow KeysorAlt+WASD(pageDownorpageUpwhile in text editing mode) to switch between text blocks.
Headless mode (Run without GUI)
python -m ballontranslator --headless --exec_dirs "[DIR_1],[DIR_2]..."Note the configuration (source language, target language, inpaint model, etc) will load from config/config.json.
If the rendered font size is not right, specify logical DPI manually via --ldpi , typical values are 96 and 72.
Automation modules
This project is heavily dependent upon manga-image-translator, online service and model training is not cheap, please consider to donate the project:
- Ko-fi: https://ko-fi.com/voilelabs
- Patreon: https://www.patreon.com/voilelabs
- 爱发电: https://afdian.net/@voilelabs
Sugoi translator is created by mingshiba.
Text detection
Support English and Japanese text detection, training code and more details can be found at comic-text-detector
Support using text detection from Starriver Cloud (Tuanzi Manga OCR). Username and password need to be filled in, and automatic login will be performed each time the program is launched.
- For detailed instructions, see Tuanzi OCR Instructions: (Chinese & Brazilian Portuguese only)
YSGDetectormodels are trained by lhj5426, these models would filter out onomatopoeia in CGs/Manga, download checkpoints from YSGYoloDetector and put intodata/models.
OCR
- All mit* models are from manga-image-translator, support English, Japanese and Korean recognition and text color extraction.
- manga_ocr is from kha-white, text recognition for Japanese, with the main focus being Japanese manga.
- PaddleOCRVLManga finetuned on Japanese manga
- Support using OCR from Starriver Cloud (Tuanzi Manga OCR). Username and password need to be filled in, and automatic login will be performed each time the program is launched.
- The current implementation uses OCR on each textblock individually, resulting in slower speed and no significant improvement in accuracy. It is not recommended. If needed, please use the Tuanzi Detector instead.
- When using the Tuanzi Detector for text detection, it is recommended to set OCR to none_ocr to directly read the text, saving time and reducing the number of requests.
- For detailed instructions, see Tuanzi OCR Instructions: (Chinese & Brazilian Portuguese only)
- Added as an "optional" PaddleOCR module. In Debug mode you will see a message stating that it is not there. You can simply install it by following the instructions described there. If you don’t want to install the package yourself, just uncomment (remove the
#) the lines with paddlepaddle(gpu) and paddleocr. Bet everything at your own peril andrisk. For me (bropines) and two testers, everything was installed fine, you may have an error. Write about it in issue and tag me. - Added OneOCR. Local WINDOWS model taken from SnippingTOOL or Win.PHOTOS applications. To use it, you need to place the model and DLL files in the 'data/models/one-ocr' folder. Before running, it is better to throw the files at once. Read how to find and get DLL and model files here: https://github.com/dmMaze/BallonsTranslator/discussions/859#discussioncomment-12876757 . Thanks AuroraWright for the project OneOCR
- OCR setting: Font recognition. Download the Font Recognition Model (YuzuMarker.FontDetection) and place it in the data\models\YuzuMarker.FontDetection directory.
The three required files are:data\models\YuzuMarker.FontDetection\font_dataset,data\models\YuzuMarker.FontDetection\name=4x-epoch=18-step=368676.ckpt, anddata\font_demo_cache.bin
Font names with a recognition confidence rate greater than 60% will be saved in the_detected_font_namefield of the JSON file. Currently, no visual display is provided. When exporting LabelPlus txt using the script [scripts/BTjson_to_LPtxt.pyw], you can optionally include font and font size information for importing into other software (such as Photoshop/InDesign) for text embedding.
Inpainting
- AOT is from manga-image-translator.
- All lama* are finetuned using LaMa
- PatchMatch is an algorithm from PyPatchMatch, this program uses a modified version by me.
Translators
- You can find information about Translators modules here.
FAQ & Misc
- If your computer has an Nvidia GPU or Apple silicon, the program will enable hardware acceleration.
- Accelarate performance if you have a NVIDIA's CUDA or AMD's ROCm device as most modules uses PyTorch.
- Fonts are from your system's fonts.
- Thanks to bropines for the Russian localization.
- Added Export to photoshop JSX script by bropines. To read the instructions, improve the code and just poke around to see how it works, you can go to
scripts/export to photoshop->install_manual.md.
File: README_ID.md
BallonTranslator
简体中文 | English | Русский | 日本語 | Indonesia
Sebuah aplikasi penerjemahan komik/manga yang dibantu oleh deep learning.
pratinjau
Fitur
Terjemahan otomatis
- Mendukung pendeteksian, pengenalan, penghapusan, dan penerjemahan teks secara otomatis, performa keseluruhan bergantung pada modul-modul ini.
- Peletakkan kata-kata berdasarkan perkiraan letak teks aslinya.
- Mendukung format manga dan komik.
- Typesetting optimal untuk manga->bahasa Inggris, bahasa Inggris->Mandarin (berdasarkan ekstraksi daerah balon.).
Pengeditan gambar
- Mendukung pengeditan mask & inpainting (seperti alat content aware fill di PS)
- Mendukung gambar dengan rasio aspek ekstrim seperti webtoon
Pengeditan teks
- Mendukung format rich text dan style teks, teks yang diterjemahkan dapat diedit secara langsung.
- Mendukung pencarian & penggantian kata
- Mendukung ekspor/impor ke/dari dokumen word
Usage
Pengguna Windows dapat unduh Ballonstranslator-x.x.x-core.7z di MEGA atau Google Drive(catatan: Anda juga perlu mengunduh Ballonstranslator-1.3.xx terbaru di rilis GitHub mengekstraknya untuk menimpa Ballontranslator-1.3.0-core atau instalasi yang lebih lama agar aplikasi dapat diperbarui.)
Jalankan kode sumber
# Clone repo ini
$ git clone https://github.com/dmMaze/BallonsTranslator.git ; cd BallonsTranslator
# instal requirements_macOS.txt di macOS
$ pip install -r requirements.txtInstal pytorch-cuda untuk dapat akselerasi GPU jika Anda memiliki GPU NVIDIA.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu116Unduhlah folder data dari MEGA atau Google Drive dan pindahkan ke dalam BallonsTranslator/ballontranslator, akhirnya jalankan
# Untuk pengguna Linux atau MacOS, lihat [skrip ini] (https://github.com/dmMaze/BallonsTranslator/blob/master/ballontranslator/scripts/download_models.sh) dan jalankan untuk mengunduh SEMUA model
python ballontranslatorUntuk menggunakan Sugoi translator (hanya bahasa Jepang-Inggris), unduh offline model, pindahkan "sugoi_translator" ke dalam BallonsTranslator/ballontranslator/data/models.
Penerjemahan sepenuhnya otomatis
Disarankan untuk menjalankan program di terminal jika program ini mendadak berhenti dan tidak meninggalkan informasi, lihat gif berikut ini, Pilih penerjemah yang diinginkan dan atur bahasa sumber dan target saat pertama kali menjalankan aplikasi. Buka folder yang berisi gambar-gambar yang mau diterjemahkan, klik tombol "Run" dan tunggu hingga proses selesai.
Format font seperti ukuran font dan warna ditentukan oleh program secara otomatis dalam proses ini, Anda dapat menentukan format tersebut sebelum memulai proses dengan mengubah opsi yang sesuai dari "decide by program" menjadi "use global setting" di panel konfigurasi->Lettering. (pengaturan global adalah format yang ditampilkan oleh panel format font yang tepat ketika Anda tidak mengedit blok teks apa pun di adegan)
Image editing
inpaint tool
Mode pengeditan gambar, alat inpainting
rect tool
Alat rect
Untuk 'menghapus' hasil inpainting yang tidak diinginkan, gunakan alat inpainting atau alat rect dengan menekan tombol kanan.
Hasilnya tergantung pada seberapa akurat algoritme ("metode 1" dan "metode 2" dalam gif) mengekstrak mask dari teks. Ini berjalan lebih buruk pada teks & latar belakang yang kompleks.
Pengeditan teks
Mode Pengeditan teks
pemformatan kumpulan tata letak teks secara otomatis
pengenalan kata & menerjemahkan area yang dipilih
Shortcuts
A/DataupageUp/Downuntuk pindah halaman.Ctrl+Z,Ctrl+Shift+Zuntuk undo/redo.(catatan: sejarah undo akan dihapus setelah pindah halaman)Tuntuk masuk mode text-editting (atau tombol "T" di toolbar bagian bawah).
*W untuk masuk mode pembuatan text block, lalu seret mouse dengan diklik tombol kanan pada kanvas untuk menambahkan blok teks baru. (lihat gif pengeditan teks)
Puntuk mode edit gambar.- Di mode edit gambar, gunakan penggeser di bagian kanan bawah untuk mengontrol transparansi gambar asli.
- Tombol "OCR" dan "A" di toolbar bagian bawah dapat mengaktifkan OCR dan penerjemahan, jika Anda menonaktifkannya, program hanya akan melakukan deteksi dan penghapusan teks.
- Mengatur parameter modul otomatis di panel konfigurasi.
Ctrl++/Ctrl+-untuk mengubah ukuran gambarCtrl+G/Ctrl+Funtuk mencari secara global/dalam halaman saat ini.
Modul otomasi
Proyek ini sangat bergantung pada manga-image-translator, layanan online dan pelatihan model tidaklah murah, mohon pertimbangkan untuk menyumbangkan proyek ini:
- Ko-fi: https://ko-fi.com/voilelabs
- Patreon: https://www.patreon.com/voilelabs
- 爱发电: https://afdian.net/@voilelabs
Sugoi translator dibuat oleh mingshiba.
Deteksi teks
Deteksi teks bahasa Inggris dan Jepang, kode pelatihan, dan rincian lebih lanjut dapat ditemukan di comic-text-detector
OCR
- Model pengenalan teks mit_32px berasal dari manga-image-translator, mendukung pengenalan teks bahasa Inggris dan Jepang dan warna teks.
- Model pengenalan teks mit_48px berasal dari manga-image-translator, mendukung pengenalan teks bahasa Inggris, Jepang, dan Korea serta warna teks.
- [manga_ocr] (https://github.com/kha-white/manga-ocr) berasal dari [kha-white] (https://github.com/kha-white), pengenalan untuk teks bahasa Jepang, dengan fokus utama manga Jepang.
Inpainting
- AOT berasal dari manga-image-translator.
- patchmatch adalah sebuah algoritma dari PyPatchMatch, program ini menggunakan versi dimodifikasi dari saya.
Penerjemah
Harap ubah url penerjemah goolge dari *.cn ke *.com jika Anda tidak diblokir oleh GFW.Google mematikan layanan terjemahan di Cina, harap setel 'url' yang sesuai di panel konfigurasi ke *.com.- Penerjemah Caiyun perlu memerlukan [token] (https://dashboard.caiyunapp.com/).
- Papago.
- DeepL & Sugoi translator (dan konversi CT2 Translation-nya), terima kasih kepada Snowad14.
Untuk menambahkan penerjemah baru, silakan lihat how_to_add_new_translator, caranya mudah, cukup dengan membuat subclass dari BaseClass dan mengimplementasikan dua interface, kemudian Anda bisa menggunakannya di dalam aplikasi, Anda dipersilakan untuk berkontribusi pada proyek ini.
Hal lain
- Jika komputer Anda memiliki GPU Nvidia, program ini akan mengaktifkan akselerasi cuda untuk semua model secara default dan membutuhkan sekitar 6G memori GPU, Anda dapat menurunkan inpaint_size pada panel konfigurasi untuk menghindari OOM.
- Terima kasih kepada [bropines] (https://github.com/bropines) untuk lokalisasi bahasa Rusia.
- Menambahkan saladict (Kamus pop-up dan penerjemah halaman profesional lengkap) di menu mini ketika pilih teks. Panduan instalasi
Pratinjau hasil terjemahan otomatis penuh
| Asli | Terjemahan (CHS) | Terjemahan (ENG) |
|---|---|---|
File: README_JA.md
BallonTranslator
简体中文| English | Русский | 日本語 | Indonesia
ディープラーニングを活用したマンガ翻訳支援ツール。
プレビュー
特徴
完全自動翻訳
- 自動テキスト検出、認識、削除、翻訳をサポートし、全体的な性能はこれらのモジュールに依存します。
- 文字配置は、原文の書式推定に基づいています。
- 漫画やコミックでまともに動作します。
- マンガ->英語、英語->中国語の組版が改善されました(バルーン領域の抽出に基づく)。
画像編集
マスク編集とインペイントのサポート(PSのスポットヒーリングブラシツールのようなもの)テキストの編集
リッチテキストフォーマットをサポートし、翻訳されたテキストはインタラクティブに編集することができます。
使用方法
Windowsユーザーは、腾讯云またはMEGA or Google Drive(note: you also need to download latest Ballonstranslator-1.3.xx from GitHub release and extract it to overwrite Ballontranslator-1.3.0-core or older installation to get the app updated.)
ソースコードの実行
# このリポジトリのクローン
$ git clone https://github.com/dmMaze/BallonsTranslator.git ; cd BallonsTranslator
# macOSの場合、requirements_macOS.txtをインストール
$ pip install -r requirements.txtNVIDIA GPUをお持ちの場合、GPUアクセラレーションを有効にするためにpytorch-cudaをインストールします。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu116MEGA or Google Drive から data フォルダをダウンロードし、BallonsTranslator/ballontranslatorに移動して、最後に以下を実行します
python ballontranslatorSugoi Translator(日英のみ)を使用するには、オフラインモデルをダウンロードし、"sugoi_translator"をBallonsTranslator/ballontranslator/data/modelsに移動してください。
完全自動翻訳
**万が一、プログラムがクラッシュして情報が残らなかった場合に備えて、以下のgifを参考に、ターミナルで実行することをお勧めします。**また、初回実行時に希望するトランスレータを選択し、ソース言語とターゲット言語を設定してください。翻訳が必要な画像が入ったフォルダを開き、
「実行」ボタンをクリックして処理が完了するのを待ちます。
このとき、フォントサイズや色などのフォントフォーマットはプログラムによって自動的に決定されますが、panel->Letteringで、対応するオプションを"decide by program"から"use global setting"に変更すれば、これらのフォーマットを事前に決定できます(グローバル設定とは、シーン内の
テキストブロックを編集していないときに右フォントフォーマットパネルで表示されるフォーマットのことです)。
画像編集
修復ツール
画像編集モード、修復ツール
長方形ツール
長方形ツール
不要なインペイント結果を"消去"するには、右ボタンを押した状態でインペイントツールまたは矩形ツールを使用します。
結果はアルゴリズム(gifの"方法1"と"方法2")がどれだけ正確にテキストマスクを抽出するかに依存します。複雑なテキストと背景の場合、パフォーマンスが低下する可能性があります。
テキスト編集
テキスト編集モード
テキストの一括書式設定と自動レイアウト
ショートカット
- A/D または pageUp/Down でページをめくります。
- Ctrl+Z, Ctrl+Y でほとんどの操作を元に戻す/やり直すことができます。
- T でテキスト編集モード、(または下部のツールバーの「T」ボタン)W を押してテキストブロック作成モードを起動し、右ボタンをクリックしたままキャンバス上でマウスをドラッグすると、新しいテキストブロックが追加されます。(テキスト編集のgifを参照)。
- Pで画像編集モードへ。
- 画像編集モードでは、右下のスライダーでオリジナル画像の透明度を調整します。
- 下のツールバーの「OCR」と「A」ボタンは、OCRと翻訳を有効にするかどうかを制御し、それらを無効にした場合、プログラムはテキストの検出と削除を行いますだけです。
- 設定パネルで自動モジュールのパラメータを設定します。
- 画像のサイズを変更するには、Ctrl + +/。
Automation modules
このプロジェクトはmanga-image-translatorに大きく依存しており、オンラインサービスやモデルトレーニングは安くないので、プロジェクトの寄付を検討してください:
- Ko-fi: https://ko-fi.com/voilelabs
- Patreon: https://www.patreon.com/voilelabs
- 爱发电: https://afdian.net/@voilelabs
Sugoi translatorは、mingshibaによって作成されています。
文字検出
英語と日本語のテキスト検出をサポートし、学習コードと詳細はcomic-text-detectorに掲載されています
OCR
- mit_32pxのテキスト認識モデルは、manga-image-translatorのもので、英語と日本語の認識とテキスト色の抽出をサポートしています。
- mit_48pxのテキスト認識モデルは、manga-image-translatorのもので、英語、日本語、韓国語の認識とテキストカラーの抽出をサポートしています。
- manga_ocrはkha-whiteからです、
修復
- AOTは、manga-image-translatorからです
- patchmatchはPyPatchMatchのnondl algrithomで、このプログラムは私による修正版を使用しています。
翻訳者
- GFW によってブロックされていない場合は、goolge トランスレータの URL を *.cn から *.com に変更してください。
- Caiyunの翻訳者はtokenを必要とします
- papago
- DeepL & Sugoi translator(およびCT2変換)、Snowad14に感謝します
新しいトランスレータを追加するには、how_to_add_new_translatorを参照してください。これはBaseClassをサブクラスにして、2つのインターフェースを実装するだけでアプリケーションで使用できますので、プロジェクトへのコントリビュートは歓迎します。
その他
- あなたのコンピュータにNvidia GPUがある場合、プログラムはデフォルトですべてのモデルのcudaアクセラレーションを有効にし、およそ6G GPUメモリを必要とします。
- ロシア語のローカライズを担当したbropinesに感謝します。
完全自動翻訳結果のプレビュー
| オリジナル | 翻訳済み (中国語) | 翻訳済み (英語) |
|---|---|---|
File: README_RU.md
BallonTranslator
简体中文 | English | Русский | 日本語 | Indonesia
Еще один компьютерный инструмент для перевода комиксов/манги на основе глубокого обучения.
Пример интерфейса
Особенности
Полностью автоматизированный перевод
- Поддержка автоматического обнаружения, распознавания, удаления и перевода текста, общая производительность зависит от этих модулей.
- Начертание букв основано на оценке форматирования оригинального текста.
- Хорошо работает с мангой и комиксами.
- Улучшенная верстка манга->английский, английский->китайский (основана на выделении облачков текста).
Редактирование изображений
Поддержка редактирования масок и закраски (что-то вроде инструмента точечной лечебной кисти в PS)Редактирование текста
Поддержка богатого форматирования текста, переведенные тексты можно редактировать в интерактивном режиме.
Использование
Пользователи Windows могут загрузить Ballonstranslator-x.x.x-core.7z с сайта 腾讯云 или MEGA or Google Drive(note: you also need to download latest Ballonstranslator-1.3.xx from GitHub release and extract it to overwrite Ballontranslator-1.3.0-core or older installation to get the app updated.)
Запуск из исходного кода (работает слегка с ошибками)
# Клонируйте этот репозиторий
$ git clone https://github.com/dmMaze/BallonsTranslator.git ; cd BallonsTranslator
# Установка зависимостей
$ pip install -r requirements.txtУстановите pytorch-cuda, чтобы включить ускорение GPU, если у вас есть GPU NVIDIA.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu116Скачайте папку data с сайта MEGA or Google Drive и переместите ее в BallonsTranslator/ballontranslator, наконец, выполните команду
python ballontranslatorПолностью автоматизированный перевод
Рекомендуется запускать программу в терминале на случай, если она аварийно завершила работу и не оставила никакой информации, см. следующий gif.
Пожалуйста, выберите нужный переводчик и установите исходный и целевой языки при первом запуске приложения. Откройте папку с изображениями, которые необходимо перевести, нажмите кнопку "Run" и дождитесь завершения процесса.
Форматы шрифтов, такие как размер шрифта, цвет, определяются программой автоматически в этом процессе, вы можете предопределить эти форматы, изменив соответствующие опции с "определять программой" на "использовать глобальные настройки" в панели конфигурации-> Работа с текстом. (глобальные настройки - это те форматы, которые отображаются на правой панели формата шрифта, когда вы не редактируете какой-либо текстовый блок в сцене).
Редактирование изображений
Инструмент закраски
Режим редактирования изображений, инструмент закраски
Инструмент "прямоугольник"
Инструмент "прямоугольник"
Перетащите прямоугольник с нажатой левой кнопкой, чтобы стереть текст внутри поля, нажмите правую кнопку и перетащите, чтобы очистить закрашенный результат.
Результат зависит от того, насколько точно алгоритм ("метод 1" и "метод 2" на рисунке) извлекает маску текста. Он может работать хуже на сложном тексте и фоне.
Редактирование текста
Режим редактирования текста
Пакетное форматирование текста и авторазметка
Сочетания клавиш
- A/D сменить страницу
- Ctrl+Z, Ctrl+Y для отмены/повторения большинства операций, обратите внимание, что стек отмены будет очищен после того, как вы перевернете страницу.
- T в режиме редактирования текста (или кнопка "T" на нижней панели инструментов) нажмите W, чтобы активировать режим создания текстового блока, затем перетащите мышь по холсту с нажатой правой кнопкой, чтобы добавить новый текстовый блок. (см. GIF редактирования текста)
- P в режим редактирования изображений.
- В режиме редактирования изображения используйте ползунок справа внизу для управления прозрачностью исходного изображения.
- Кнопки "OCR" и "A" в нижней панели инструментов управляют включением OCR и перевода, если вы отключите их, программа будет выполнять только обнаружение и удаление текста.
- Установите параметры автоматических модулей в настройках
- Ctrl+ +/- или колесо прокрутки для масштабирования холста
- Ctrl+A для выделения всех текстовых блоков в интерфейсе
Модули автоматизации
Этот проект в значительной степени зависит от manga-image-translator, онлайн-сервис и обучение моделей стоит недешево, пожалуйста, рассмотрите возможность пожертвовать проект:
- Ko-fi: https://ko-fi.com/voilelabs
- Patreon: https://www.patreon.com/voilelabs
- 爱发电: https://afdian.net/@voilelabs
Обнаружение текста
Поддержка распознавания английского и японского текста, обучающий код и более подробную информацию можно найти на сайте comic-text-detector
OCR
- mit_32px модель распознавания текста из manga-image-translator, поддержка распознавания английского и японского языков и выделения цвета текста.
- mit_48px модель распознавания текста от manga-image-translator, поддерживает распознавание на английском, японском и корейском языках и выделение цвета текста.
- manga_ocr от kha-white,
Закрасчик
- AOT взято с сайта manga-image-translator
- patchmatch это не алгоритм глубокого обучения PyPatchMatch, эту программу использовал modified version для себя.
Переводчики
- Пожалуйста, измените url переводчика goolge с *.cn на *.com, если вы находитесь за пределами китая.
- Переводчику Caiyun требуется token
- Papago
Чтобы добавить новый переводчик, пожалуйста, обратитесь к Добавление других переводчиков, это просто как подкласс BaseClass и реализация двух интерфейсов, затем вы можете использовать его в приложении. Вы можете внести свой вклад в проект.
Разное
- Если ваш компьютер оснащен графическим процессором Nvidia, программа по умолчанию включает ускорение cuda для всех моделей, что требует около 6G памяти GPU, вы можете уменьшить размер inpaint_size в панели конфигурации, чтобы избежать перегрузки памяти.
Перевел на Русский bropines
Предварительный просмотр результатов полностью автоматизированного перевода
| Original | Translated (CHS) | Translated (ENG) |
|---|---|---|