+现已添加的翻译语言:中文(zh)、英文(en)。
-### 在 [StableSwarmUI](https://github.com/Stability-AI/StableSwarmUI) 中使用 ComfyUI 作为后端的效果如下:
+更多翻译平台请见 [Translators](https://github.com/UlionTse/translators)。其他的 翻译平台、翻译语言 等 需要自行添加,下文会给出其操作方法。
-
+## 注意:
+1、更新前 需要将2024年05月19日前使用的老项目删除,当前项目与老项目完全不兼容。
-## 说明
-- 该节点采用了[腾讯翻译API](https://cloud.tencent.com/product/tmt)进行文本翻译。
-- 可能会许多人需要使用这种类型的节点,但我目前尚未找到相关的开放资源,所以把这个分享给大家。
-- 鉴于当前为个人使用的节点,暂时仅支持一个翻译API。如果将来有更多用户使用,可以考虑添加更多API支持。
-- 因为日常并不经常使用Python,且刚刚接触了这个语言和ComfyUI自定义节点,所以可能存在一些未知的BUG。但目前为止,自己使用过程中尚未遇到过BUG。
-- 随着使用这个节点,我将会对它进行修改、新增以及完善。
-- 如果这对你有所帮助,可以给一个小星星呀~
+2、该项目之前的项目名为 `ComfyUI_Text_Translation_zh_CN` 现修改为 `ComfyUI_Text_Translation`。
-## 开始正文
-### 1、节点介绍
-(1)节点有两个文本输入和一个翻译启用开关
+## 1、节点如下:
+### 文本翻译
+
-
+默认使用必应翻译平台,自动识别语言翻译成英文。
-翻译开关:开启(enabled);关闭(disabled)
+### 文本翻译 V2
+
-(2)开启翻译后,如果在 “需翻译文本” 位置输入的内容不含有汉字,则不会调用 翻译API(避免浪费资源)。
+默认隐藏多余选项,点击 `Show / Hide button` 显示或隐藏更多选项。
-(3)如果想不显示“不需要翻译文本”的输入框,在该节点上点击鼠标右键,把将 text_normal 转换成输入模式即可,并不会影响功能。
+### 文本联接
+
-`text_trans 为需要翻译的文本` `text_normal 为无需翻译的文本`
+
-
+自动根据连接的数量增加/减少 输入端,将输入端的值拼接成一个字符串。
+### 文本
+
-(4)添加该节点,可以在 utils 中选择,也可以双击鼠标左键搜索 `TencentTextTranslation`。
+文本输入框。
-
+### 文本开关
+
+文本开关,关闭则输出空字符串。
-(5)如果想要查看翻译后的文本,你可以在打开ComfyUI时弹出来的终端上查看。
+### 获取翻译平台列表
+
-
+获取翻译平台列表,同时会在终端上显示。
-当然你也可以选择在 .node/tencent_translation.py 文件中,把输出语句前加 “#” 注释掉。
+
-
+想要在ComfyUI上显示输出文本可以使用,如 [ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts) 中的 `ShowText` 或其他节点
-(不显示它,用处不大。建议保留,可用于检查文本翻译是否正常。)
+## 2、安装
-如果在有这个输出语句的前提下,终端上没有显示,那么会是这个翻译API或代码有问题,可以向我反馈。当然请求翻译API时有问题也会在终端上显示。
+### (1)添加该节点到 ComfyUI
-(6)如果你想修改翻译后的语言类型等功能,可在代码里修改。想要达到 WebUI 中可实时翻译或点击翻译的效果,该节点目前做不到,因为我不了解js脚本。
-
-(7)代码里有注释,便于理解。
-
-### 2、安装
-(1)获取 [腾讯翻译API](https://cloud.tencent.com/product/tmt) 密钥(API接口说明:[腾讯翻译API文档](https://cloud.tencent.com/document/api/551/15619))
-
-在浏览器搜索 “腾讯机器翻译” 或点击 [腾讯翻译](https://cloud.tencent.com/product/tmt) 前往,
-
-登录自己的账号后依次点击 头像 >> 访问管理 >> API密钥管理 >> 创建密钥 >> 复制密钥
-
-
-
-(2) 安装 腾讯翻译SDK (更多安装介绍:[腾讯翻译SDK文档](https://cloud.tencent.com/document/sdk/Python))。
-
-请先确定你使用的 ComfyUI 的 Python 目录在哪里,在终端中切换到该目录下,输入以下命令:
-
- ```
- pip install --upgrade tencentcloud-sdk-python
- ```
-或者使用国内镜像
- ```
- pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python
- ```
-
-(勿将SDK添加错位置,否则无效)
-
-(3)添加该节点到 ComfyUI
-
- 1) 克隆本项目
+#### 1) 方式一:克隆本项目
```
cd custom_nodes
```
```
- git clone https://github.com/TFL-TFL/ComfyUI_Text_Translation_zh_CN.git
+ git clone https://github.com/TFL-TFL/ComfyUI_Text_Translation.git
```
- 2) 直接下载ZIP
+#### 2) 方式二:直接下载ZIP
下载解压后放入`custom_nodes`内
+### (2)配置环境
+ ```
+ cd ComfyUI_Text_Translation
+ ```
-(4)配置密钥
+如果你下载的是 ComfyUI 的 便携版本,可直接执行下面代码,否则请将 `requirements.txt` 内的依赖安装到对应位置。
+ ```
+ ..\..\..\python_embeded\python.exe -s -m pip install -r requirements.txt
+ ```
+#### (3)更改 翻译平台、翻译语言
+截止 [Translators](https://github.com/UlionTse/translators) 版本:v5.9.1 支持如下翻译平台:
- 1) 直接写在代码里,在 .custom_nodes/ComfyUI_Text_Translation_zh_CN/node/tencent_translation.py 文件里,
-找到`cred = credential.Credential("secretId", "secretKey")`这里填上你的密钥( "secretId" 和 "secretKey" )该方式有泄露密钥的风险,不推荐,但简单。
+```
+alibaba -- 阿里巴巴(Alibaba)
+apertium -- Apertium
+argos -- Argos
+baidu -- 百度(Baidu)
+bing -- 必应(Bing)
+caiyun -- 彩云(Caiyun)
+cloudTranslation -- 云翻译(CloudTranslation)
+deepl -- DeepL
+elia -- Elia
+google -- 谷歌(Google)
+hujiang -- 沪江(Hujiang)
+iciba -- 金山词霸(ICIBA)
+iflytek -- 讯飞(iFlytek)
+iflyrec -- 讯飞语音识别(iFlyrec)
+itranslate -- iTranslate
+judic -- Judic
+languageWire -- LanguageWire
+lingvanex -- Lingvanex
+niutrans -- 牛翻译(Niutrans)
+mglip -- Mglip
+mirai -- Mirai
+modernMt -- ModernMT
+myMemory -- MyMemory
+papago -- Papago
+qqFanyi -- QQ翻译(QQFanyi)
+qqTranSmart -- QQ智能翻译(QQTranSmart)
+reverso -- Reverso
+sogou -- 搜狗(Sogou)
+sysTran -- Systran
+tilde -- Tilde
+translateCom -- Translate.com
+translateMe -- TranslateMe
+utibet -- UTibet
+volcEngine -- VolcEngine
+yandex -- Yandex
+yeekit -- Yeekit
+youdao -- 有道(Youdao)
+```
+ 直接写在代码里,在 .custom_nodes/ComfyUI_Text_Translation/nodes/text.py 文件的如下位置修改:
+
-
+#### (4)修改节点显示的语言
+直接写在代码里,在 .custom_nodes/ComfyUI_Text_Translation/nodes/text.py 文件的 开头和 结尾 位置修改:
- 2) 放在环境变量里,添加`TENCENTCLOUD_SECRET_ID`和`TENCENTCLOUD_SECRET_KEY`,稍微多些步骤,但安全。(请在启动ComfyUI前设置好,若已启动
-需要重启 ComfyUI)
+修改节点类别:
-
+
-可在终端使用 `echo %环境变量名称%` 查看环境变量是否设置正确。
+修改节点名称:
-(5)重启ComfyUI
+
+
+#### (5)重启ComfyUI
所有的步骤都操作完啦,可以愉快的创作呦!
### 4、更新日志
-2023-8-27
+#### 2024-05-19
+1、弃用腾讯翻译API,简化配置,使用 [Translators](https://github.com/UlionTse/translators) 提供的方式进行翻译,无需申请密钥了。
+
+2、完全重写节点、新增或修改 “文本翻译”、“文本翻译 V2”、 “获取翻译平台列表”、“文本”、“文本开关”、“文本联接”节点。
+2、完全重写节点、新增或修改 “文本翻译”、“文本翻译 V2”、 “获取翻译平台列表”、“文本”、“文本开关”、“文本联接”节点。
+
+#### 2023-08-27
去除“翻译开关”的默认值,以便适配 [StableSwarmUI](https://github.com/Stability-AI/StableSwarmUI) ,不然该开关的值会由“可选择类型”变成“要输入类型的文字”。
-2023-8-22
+#### 2023-08-22
初始提交,节点采用了[腾讯翻译API](https://cloud.tencent.com/product/tmt)进行文本翻译。
-### 5、其他
-我对比了阿里、百度、有道、腾讯这些翻译API,其中腾讯每月免费可用的量是最大的,所以选择用它。
-
-至于为什么没有选择免费的API,只是觉得这些API稳定性稍差,便没有考虑。
-
-
-
-
-
\ No newline at end of file
diff --git a/__init__.py b/__init__.py
index 0eae08a..32db998 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,14 +1,19 @@
-from .node.tencent_translation import *
+import os
+import glob
+import importlib
-__version__ = "1.0.0"
+node_list = [os.path.splitext(os.path.basename(f))[0] for f in glob.glob(os.path.join(os.path.dirname(__file__), "nodes", "*.py"))]
-NODE_CLASS_MAPPINGS = {
- "TencentTextTranslation": TencentTextTranslation,
-}
+NODE_CLASS_MAPPINGS = {}
+NODE_DISPLAY_NAME_MAPPINGS = {}
-NODE_DISPLAY_NAME_MAPPINGS = {
- "TencentTextTranslation": "文本翻译",
-}
+for module_name in node_list:
+ if module_name != "__init__":
+ imported_module = importlib.import_module(".nodes.{}".format(module_name), __name__)
+ NODE_CLASS_MAPPINGS = {**NODE_CLASS_MAPPINGS, **imported_module.NODE_CLASS_MAPPINGS}
+ NODE_DISPLAY_NAME_MAPPINGS = {**NODE_DISPLAY_NAME_MAPPINGS, **imported_module.NODE_DISPLAY_NAME_MAPPINGS}
-__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
+
+WEB_DIRECTORY = "./js"
+__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS","WEB_DIRECTORY"]
diff --git a/images/Get_Translator.png b/images/Get_Translator.png
new file mode 100644
index 0000000000000000000000000000000000000000..7bc2ca14f7f0d87ec075fe75a0ea0bf5bbe23fa7
GIT binary patch
literal 2375
zcmV-N3Apx&P)#%
z!WlLsv=kBLysYc_^|cFH*p oSp$mWJGZ4cwAU+PkGG){^e~-GJ+Z$x0JmrF^?Wlanf>kL4a;-OFX OT$9n5K351>|Jk$qyZCl~(xyTENk9@h_A;JC*6otj;fwTVk@trXIUQ6DL{t#;~)-
z%VkPjj{(R66G3PQ9iIH|$K1g55wJgd38n1S@1JL{G)d3ZiA(s={
|9)a
z5)l!Tkk}6ZfPsMt9-q!vMO1WOZEbCKc6MoL>G|{Llai8rd_pJ`N>~_PN=jNtNJvCP
zbno81`}XZS_Te>3KtL$M+3uKE0-G~&*?<51uD;c_ze{AyT)F0EBjG#h;0V@e-Ux<<0^*1(x`P&n_9u;-K$$74c
z(H!~4-9y@%Ln4%DaFhS=M5;_FhP~o~h0wpM`DDNP7!qF<02lTP_!w^i)#M+lqdL{v
zRJok40&msK`d7GAH)+5|8ZGeIT}J-(CN}iiMk(7f?Q8d2W(=L^zccKB8AmBpSyBzD
z348eNC_O
z+X=DfKY{#*?FT8rubyW)>0-!P)^Xvh#Kssw%?!B}+DFJM-3GcWD+L|}ZvETc|L;#~
zZ<%>UX9twyL}o5NdI)A0&5s6FJ9mo(pSj6ed;~J_&;cI76;&jwm-_HH3ZySqb>VCfd~EH-%L0SL!*3K8FieUO;UmHnV*mu&d^1c-YQ0u9
zTGQIcBK;Z6nnmRu+om#>jSU&?Qh=h}W%piyhW=9ulN*Df^TFvjavSw32l