From 1f651d34fd2857e212a4e1fdacdcdeb5959254f4 Mon Sep 17 00:00:00 2001 From: duhaifeng Date: Tue, 10 Dec 2024 14:59:58 +0800 Subject: [PATCH] feat: support onnx model and rename --- README.md | 52 ++++++-- README_CN.md | 46 +++++-- assets/demo2.png | Bin 0 -> 2158037 bytes assets/onnx.png | Bin 0 -> 156306 bytes nodes.py | 124 +++++++++++++++++- pyproject.toml | 8 +- rmbg/birefnet_cod.py | 52 ++++++++ rmbg/birefnet_dis.py | 52 ++++++++ rmbg/birefnet_general.py | 93 ++++++++++++++ rmbg/birefnet_general_lite.py | 52 ++++++++ rmbg/birefnet_hrsod.py | 52 ++++++++ rmbg/birefnet_massive.py | 52 ++++++++ rmbg/birefnet_portrait.py | 53 ++++++++ rmbg/session_factory.py | 46 +++++++ rmbg/sessions/__init__.py | 43 +++++++ rmbg/sessions/base.py | 94 ++++++++++++++ workflow/workflow-onnx.json | 231 ++++++++++++++++++++++++++++++++++ 17 files changed, 1026 insertions(+), 24 deletions(-) create mode 100644 assets/demo2.png create mode 100644 assets/onnx.png create mode 100644 rmbg/birefnet_cod.py create mode 100644 rmbg/birefnet_dis.py create mode 100644 rmbg/birefnet_general.py create mode 100644 rmbg/birefnet_general_lite.py create mode 100644 rmbg/birefnet_hrsod.py create mode 100644 rmbg/birefnet_massive.py create mode 100644 rmbg/birefnet_portrait.py create mode 100644 rmbg/session_factory.py create mode 100644 rmbg/sessions/__init__.py create mode 100644 rmbg/sessions/base.py create mode 100644 workflow/workflow-onnx.json diff --git a/README.md b/README.md index acb920f..cad4615 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

ComfyUI-BiRefNet-lite

+

ComfyUI-BiRefNet-Super


English | 中文 @@ -18,14 +18,17 @@ Supports putalpha, naive, and alpha_matting cropping methods. ![slot](./assets/feature2.png)
## News -- Nov 19, 2023: Add `mask_precision_threshold` parameter to control the accuracy threshold of the mask, default to 0.1
+- Nov 19, 2024: Add `mask_precision_threshold` parameter to control the accuracy threshold of the mask, default to 0.1
+- Dec 10, 2024: + - Add `BiRefNet_onnx` node to Support `onnx` model
+ - Modify the name of repository from `ComfyUI-BiRefNet-lite` to `ComfyUI-BiRefNet-Super`
## Installation #### Method 1: 1. Navigate to the node directory, `ComfyUI/custom_nodes/` -2. `git clone https://github.com/rubi-du/ComfyUI-BiRefNet-lite.git` -3. `cd ComfyUI-BiRefNet-lite` +2. `git clone https://github.com/rubi-du/ComfyUI-BiRefNet-Super.git` +3. `cd ComfyUI-BiRefNet-Super` 4. `pip install -r requirements.txt` 5. Restart ComfyUI @@ -33,11 +36,13 @@ Supports putalpha, naive, and alpha_matting cropping methods. Directly download the node source code package, unzip it into the `custom_nodes` directory, and then restart ComfyUI. #### Method 3: -Install via ComfyUI-Manager by searching for "ComfyUI-BiRefNet-lite". +Install via ComfyUI-Manager by searching for "ComfyUI-BiRefNet-Super". ## Usage + +### BiRefNet_Super | BiRefNet_Lite -Example workflows are placed in `ComfyUI-BiRefNet-lite/workflow`.
+Example workflows are placed in `ComfyUI-BiRefNet-Super/workflow`.
There are two options for loading models: one is to automatically download and load a remote model, and the other is to load a local model (in which case you need to set `load_local_model` to true and set `local_model_path` to the local model path under the models/birefnet directory, for example, the BiRefNet folder).
@@ -46,7 +51,7 @@ ___ ![](./assets/model_path.png) -Model download links:
+#### Model download links:
BiRefNet: https://huggingface.co/ZhengPeng7/BiRefNet/tree/main
BiRefNet_lite-2K: https://huggingface.co/ZhengPeng7/BiRefNet_lite-2K/tree/main
BiRefNet-portrait: https://huggingface.co/ZhengPeng7/BiRefNet-portrait/tree/main
@@ -60,10 +65,39 @@ Usage of workflow.json
___ Usage of video_workflow.json
-[Workflow Address](./workflow/video_workflow.json) +[Workflow Address](./workflow/video_workflow.json) + +### BiRefNet_onnx +Example workflows are placed in [workflow](./workflow/workflow-onnx.json).
+ +Place the model file in `ComfyUI/models/birefnet`.
+ +Model file name should be one of the following: +- birefnet-general.onnx +- birefnet-general-lite.onnx +- birefnet-portrait.onnx +- birefnet_massive.onnx +- birefnet-hrsod.onnx +- birefnet-dis.onnx +- birefnet-cod.onnx + + +![plot](./assets/demo2.png) + +#### Model download links:
+birefnet-genernal: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-general-epoch_244.onnx
+birefnet-genernal-lite: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-general-bb_swin_v1_tiny-epoch_232.onnx
+birefnet-portrait: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-portrait-epoch_150.onnx
+birefnet_massive: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-massive-TR_DIS5K_TR_TEs-epoch_420.onnx
+birefnet-hrsod: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-HRSOD_DHU-epoch_115.onnx
+birefnet-dis: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-DIS-epoch_590.onnx
+birefnet-cod: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-COD-epoch_125.onnx
+ ## Acknowledgments Thanks to all the authors of the BiRefNet repository [ZhengPeng7/BiRefNet](https://github.com/zhengpeng7/birefnet). -Some code was referenced from [MoonHugo/ComfyUI-BiRefNet-Hugo](https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo). Thank you! \ No newline at end of file +Some code was referenced from [MoonHugo/ComfyUI-BiRefNet-Hugo](https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo). Thank you! + +Some code was referenced from [danielgatis/rembg](https://github.com/danielgatis/rembg). Thank you! \ No newline at end of file diff --git a/README_CN.md b/README_CN.md index 2317fca..41b9a9d 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,4 +1,4 @@ -

ComfyUI-BiRefNet-lite

+

ComfyUI-BiRefNet-Super


English | 中文 @@ -26,8 +26,8 @@ #### 方法1: 1. 进入节点目录, `ComfyUI/custom_nodes/` -2. `git clone https://github.com/rubi-du/ComfyUI-BiRefNet-lite.git` -3. `cd ComfyUI-BiRefNet-lite` +2. `git clone https://github.com/rubi-du/ComfyUI-BiRefNet-Super.git` +3. `cd ComfyUI-BiRefNet-Super` 4. `pip install -r requirements.txt` 5. 重启ComfyUI @@ -35,11 +35,13 @@ 直接下载节点源码包,然后解压到custom_nodes目录下,最后重启ComfyUI #### 方法3: -通过ComfyUI-Manager安装,搜索“ComfyUI-BiRefNet-lite”进行安装 +通过ComfyUI-Manager安装,搜索“ComfyUI-BiRefNet-Super”进行安装 ## 使用 -示例工作流放置在`ComfyUI-BiRefNet-lite/workflow`中
+### BiRefNet_Super | BiRefNet_Lite + +示例工作流放置在`ComfyUI-BiRefNet-Super/workflow`中
加载模型有两种方式可选:一是自动下载并加载远程模型,二是加载本地模型(此时需将`load_local_model`设为true,并将`local_model_path`设置为指向models/birefnet目录下的本地模型路径,例如BiRefNet文件夹)
@@ -49,7 +51,7 @@ ___ ![](./assets/model_path.png) -模型下载地址:
+#### 模型下载地址:
BiRefNet: https://huggingface.co/ZhengPeng7/BiRefNet/tree/main
BiRefNet_lite-2K: https://huggingface.co/ZhengPeng7/BiRefNet_lite-2K/tree/main
BiRefNet-portrait: https://huggingface.co/ZhengPeng7/BiRefNet-portrait/tree/main
@@ -65,8 +67,38 @@ ___ 工作流video_workflow.json的使用
[workflow地址](./workflow/video_workflow.json) + + +### BiRefNet_onnx +示例工作流放置在 [workflow](./workflow/workflow-onnx.json)中
+ +模型下载完放置在 `ComfyUI/models/birefnet` 目录下.
+ +模型名称如下: +- birefnet-general.onnx +- birefnet-general-lite.onnx +- birefnet-portrait.onnx +- birefnet_massive.onnx +- birefnet-hrsod.onnx +- birefnet-dis.onnx +- birefnet-cod.onnx + + +![plot](./assets/demo2.png) + +#### 模型下载地址:
+birefnet-genernal: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-general-epoch_244.onnx
+birefnet-genernal-lite: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-general-bb_swin_v1_tiny-epoch_232.onnx
+birefnet-portrait: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-portrait-epoch_150.onnx
+birefnet_massive: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-massive-TR_DIS5K_TR_TEs-epoch_420.onnx
+birefnet-hrsod: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-HRSOD_DHU-epoch_115.onnx
+birefnet-dis: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-DIS-epoch_590.onnx
+birefnet-cod: https://github.com/danielgatis/rembg/releases/download/v0.0.0/BiRefNet-COD-epoch_125.onnx
+ ## 感谢 感谢BiRefNet仓库的所有作者 [ZhengPeng7/BiRefNet](https://github.com/zhengpeng7/birefnet) -部分代码参考了 [MoonHugo/ComfyUI-BiRefNet-Hugo](https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo) 感谢! \ No newline at end of file +部分代码参考了 [MoonHugo/ComfyUI-BiRefNet-Hugo](https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo) 感谢! + +部分代码参考了 [danielgatis/rembg](https://github.com/danielgatis/rembg). 感谢! \ No newline at end of file diff --git a/assets/demo2.png b/assets/demo2.png new file mode 100644 index 0000000000000000000000000000000000000000..06fb36ad3dbbc5bf6ccc2f0eeea38a2b8e60679b GIT binary patch literal 2158037 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