diff --git a/README.md b/README.md index 58f3ea42..3aede9cb 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,39 @@ # BizyAir + +- [2024/07/11] 🌩️ We release new nodes, featuring removing image background, photo-quality image generation, and animation super-resolution capabilities. +- [2024/07/10] 🌩️ We release nodes that support Kolors and LLM(large language models). + BizyAir is a collection of [ComfyUI](https://github.com/comfyanonymous/ComfyUI) nodes that help you overcome environmental and hardware limitations, allowing you to more easily generate high-quality content with ComfyUI. -![](./docs/docs/kolors/imgs/bizyair_kolors_img2img.png) +![](./docs/docs/getting-started/imgs/text2img.gif) -![](./docs/docs/getting-started/imgs/llm_api_node.png) +![](./docs/docs/getting-started/imgs/llmnode.gif) ## Table of Contents - [Features](#features) - [Installation](#installation) +- [Examples](#examples) - [Usage](#usage) + ## Features Run ComfyUI anywhere, anytime, without worrying about the environment or hardware requirements. ## Installation +You can install BizyAir through several methods: using the ComfyUI Manager, the Comfy CLI, downloading the standalone package for Windows, or by cloning the BizyAir repository into the custom_nodes subdirectory of ComfyUI. + +### Method 1: Install via ComfyUI Manager + +Assuming your ComfyUI already has the ComfyUI Manager installed, search for BizyAir as shown in the image below. Click "Install" to complete the installation. +![ComfyUI_Manager_BizyAir_Search_Screenshot](./docs/docs/getting-started/imgs/ComfyUI_Manager_BizyAir_Search_Screenshot.png) + + +### Method 2: Install via git clone + You can install BizyAir by downloading the BizyAir repository to the custom_nodes subdirectory of ComfyUI by using git clone. ```bash @@ -25,7 +41,35 @@ cd /path/to/ComfyUI/custom_nodes && \ git clone https://github.com/siliconflow/BizyAir.git ``` -Then, restart ComfyUI. There are some workflow examples in the [examples](./examples) directory. +Then, restart ComfyUI. + +### Method 3: Install via Comfy CLI + +- Prerequisites + - Ensure `pip install comfy-cli` is installed. + - Installing ComfyUI `comfy install` + +To install the `BizyAir`, use the following command: + +```shell +comfy node install bizyair +``` + + +### Method 4: Download windows portable ComfyUI + +For NA/EU users: + +https://github.com/siliconflow/ComfyUI/releases/tag/latest + +For CN users: + +https://bizy-air.oss-cn-beijing.aliyuncs.com/new_ComfyUI_windows_portable_nvidia_cu121_or_cpu.7z + + +## Examples + +There are some workflow examples in the [examples](./examples) directory. ## Usage diff --git a/__init__.py b/__init__.py index f0236644..2317b780 100644 --- a/__init__.py +++ b/__init__.py @@ -10,10 +10,10 @@ WEB_DIRECTORY = "./js" -# from . import supernode +from . import supernode -# NODE_CLASS_MAPPINGS.update(**supernode.NODE_CLASS_MAPPINGS) -# NODE_DISPLAY_NAME_MAPPINGS.update(**supernode.NODE_DISPLAY_NAME_MAPPINGS) +NODE_CLASS_MAPPINGS.update(**supernode.NODE_CLASS_MAPPINGS) +NODE_DISPLAY_NAME_MAPPINGS.update(**supernode.NODE_DISPLAY_NAME_MAPPINGS) from . import llm diff --git a/docs/docs/getting-started/imgs/how-to-set-key.gif b/docs/docs/getting-started/imgs/how-to-set-key.gif new file mode 100644 index 00000000..c4a19b97 Binary files /dev/null and b/docs/docs/getting-started/imgs/how-to-set-key.gif differ diff --git a/docs/docs/getting-started/imgs/howtosetkey.png b/docs/docs/getting-started/imgs/howtosetkey.png deleted file mode 100644 index 6888cb94..00000000 Binary files a/docs/docs/getting-started/imgs/howtosetkey.png and /dev/null differ diff --git a/docs/docs/getting-started/imgs/llm_api_node.png b/docs/docs/getting-started/imgs/llm_api_node.png deleted file mode 100644 index 8441bec6..00000000 Binary files a/docs/docs/getting-started/imgs/llm_api_node.png and /dev/null differ diff --git a/docs/docs/getting-started/imgs/llmnode.gif b/docs/docs/getting-started/imgs/llmnode.gif new file mode 100644 index 00000000..93614cab Binary files /dev/null and b/docs/docs/getting-started/imgs/llmnode.gif differ diff --git a/docs/docs/getting-started/imgs/text2img.gif b/docs/docs/getting-started/imgs/text2img.gif new file mode 100644 index 00000000..91c37686 Binary files /dev/null and b/docs/docs/getting-started/imgs/text2img.gif differ diff --git a/docs/docs/getting-started/installation.md b/docs/docs/getting-started/installation.md index bee2fcd1..dccc3264 100644 --- a/docs/docs/getting-started/installation.md +++ b/docs/docs/getting-started/installation.md @@ -2,20 +2,20 @@ BizyAir is a set of ComfyUI nodes that allows you to skip the time-consuming process of downloading models and setting up requirements, enabling you to run ComfyUI workflows directly without being constrained by environmental limitations. - You can choose any of the following methods to install BizyAir +You can choose any of the following methods to install BizyAir -## Method 1: Install via ComfyUI Manager +### Method 1: Install via ComfyUI Manager Assuming your ComfyUI already has the ComfyUI Manager installed, search for BizyAir as shown in the image below. Click "Install" to complete the installation. ![ComfyUI_Manager_BizyAir_Search_Screenshot](./imgs/ComfyUI_Manager_BizyAir_Search_Screenshot.png) -## Method 2: Install via git clone +### Method 2: Install via git clone You can install BizyAir by downloading the BizyAir repository to the custom_nodes subdirectory of ComfyUI by using git clone. ```bash -cd /path/to/ComfyUI && \ +cd /path/to/ComfyUI/custom_nodes && \ git clone https://github.com/siliconflow/BizyAir.git ``` @@ -26,7 +26,7 @@ Then, restart ComfyUI. - Prerequisites - Ensure `pip install comfy-cli` is installed. - Installing ComfyUI `comfy install` - + To install the `BizyAir`, use the following command: ```shell diff --git a/docs/docs/getting-started/quick-start.md b/docs/docs/getting-started/quick-start.md index 56559ed7..4af35fe7 100644 --- a/docs/docs/getting-started/quick-start.md +++ b/docs/docs/getting-started/quick-start.md @@ -4,17 +4,18 @@ For the first use, you need to set your API key using "Set SiliconCloud API Key". Add the "Set SiliconCloud API Key" node and run it(click "Queue Prompt" button). The key changes to "**********", indicating successful operation. -![](./imgs/howtosetkey.png) +![](./imgs/how-to-set-key.gif) You **should** then remove this node. ## 2. Using BizyAir Nodes -All BizyAir nodes are under the "☁️BizyAir" category. Taking "☁️BizyAir SiliconCloud LLM API" node as an example, it can assist you by leveraging a LLM (large language model) to refine prompts, translate, or perform any other tasks you want it to do. +All BizyAir nodes are under the "☁️BizyAir" category. +Here is a simple example of using the Kolors nodes. -![](./imgs/llm_api_node.png) +![](./imgs/text2img.gif) -or you can use [Kolors](../kolors/introduce.md) nodes to generate images. +or you can use LLM to refine your prompt. -![](../kolors/imgs/bizyair_kolors_txt2img.png) +![](./imgs/llmnode.gif) diff --git a/docs/docs/others/imgs/remove-background.png b/docs/docs/others/imgs/remove-background.png new file mode 100644 index 00000000..6e720dce Binary files /dev/null and b/docs/docs/others/imgs/remove-background.png differ diff --git a/docs/docs/others/index.md b/docs/docs/others/index.md new file mode 100644 index 00000000..36c50982 --- /dev/null +++ b/docs/docs/others/index.md @@ -0,0 +1,15 @@ +## ☁️BizyAir Anime Image Super Resolution + +This node helps you enhance the resolution of your input cartoon images. You can choose to upscale them by 2x or 4x. + +## ☁️BizyAir Remove Image Background + +This node helps you remove the background, resulting in a transparent-background image. + +![](./imgs/remove-background.png) + +## ☁️BizyAir Generate Photorealistic Images + +This node can help you generate photo-style images with very simple prompts. + + diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 2f000ae8..dce8ee94 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -103,6 +103,7 @@ nav: - Installation: getting-started/installation.md - Quick Start: getting-started/quick-start.md - Kolors: kolors/introduce.md + - Others: others/index.md # - Controlnet Preprocessing: # - Line Extraction: controlnet-preprocessing/line-extraction.md # - T2I Adapter: controlnet-preprocessing/t2i-adapter.md diff --git a/examples/bizyair_anime_image_super_resolution_workflow.json b/examples/bizyair_anime_image_super_resolution_workflow.json new file mode 100644 index 00000000..0b23a694 --- /dev/null +++ b/examples/bizyair_anime_image_super_resolution_workflow.json @@ -0,0 +1,139 @@ +{ + "last_node_id": 35, + "last_link_id": 47, + "nodes": [ + { + "id": 34, + "type": "BizyAirSuperResolution", + "pos": [ + 2158, + 623 + ], + "size": { + "0": 315, + "1": 58 + }, + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 46 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 47 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "BizyAirSuperResolution" + }, + "widgets_values": [ + "2x" + ] + }, + { + "id": 33, + "type": "LoadImage", + "pos": [ + 1830, + 614 + ], + "size": [ + 315, + 314 + ], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 46 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "葫芦娃吐火.webp", + "image" + ] + }, + { + "id": 35, + "type": "PreviewImage", + "pos": [ + 2165, + 721 + ], + "size": [ + 321.3333740234375, + 364.0000305175781 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 47 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + } + } + ], + "links": [ + [ + 46, + 33, + 0, + 34, + 0, + "IMAGE" + ], + [ + 47, + 34, + 0, + 35, + 0, + "IMAGE" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": { + "0": -918, + "1": -317.33331298828125 + } + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/examples/bizyair_generate_photorealistic_images_workflow.json b/examples/bizyair_generate_photorealistic_images_workflow.json new file mode 100644 index 00000000..58a3e02b --- /dev/null +++ b/examples/bizyair_generate_photorealistic_images_workflow.json @@ -0,0 +1,91 @@ +{ + "last_node_id": 2, + "last_link_id": 1, + "nodes": [ + { + "id": 1, + "type": "BizyAirGenerateLightningImage", + "pos": [ + 788.6666870117188, + 186 + ], + "size": { + "0": 400, + "1": 220 + }, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 1 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "BizyAirGenerateLightningImage" + }, + "widgets_values": [ + "a dog", + 803769021953232, + "randomize", + 1024, + 1024, + 1.5, + 1 + ] + }, + { + "id": 2, + "type": "PreviewImage", + "pos": [ + 1205, + 192 + ], + "size": [ + 210, + 246 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 1 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + } + } + ], + "links": [ + [ + 1, + 1, + 0, + 2, + 0, + "IMAGE" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": [ + 0, + 0 + ] + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/examples/bizyair_remove_background_workflow.json b/examples/bizyair_remove_background_workflow.json new file mode 100644 index 00000000..92d31528 --- /dev/null +++ b/examples/bizyair_remove_background_workflow.json @@ -0,0 +1,142 @@ +{ + "last_node_id": 37, + "last_link_id": 50, + "nodes": [ + { + "id": 33, + "type": "LoadImage", + "pos": [ + 1830, + 614 + ], + "size": [ + 315, + 314 + ], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 49 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "ComfyUI_00018_.png", + "image" + ] + }, + { + "id": 36, + "type": "BizyAirRemoveBackground", + "pos": [ + 2167, + 619 + ], + "size": { + "0": 210, + "1": 46 + }, + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 49 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 50 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "BizyAirRemoveBackground" + } + }, + { + "id": 37, + "type": "PreviewImage", + "pos": [ + 2416, + 627 + ], + "size": [ + 210, + 246 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 50 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + } + } + ], + "links": [ + [ + 49, + 33, + 0, + 36, + 0, + "IMAGE" + ], + [ + 50, + 36, + 0, + 37, + 0, + "IMAGE" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": { + "0": -918, + "1": -317.33331298828125 + } + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/supernode.py b/supernode.py index 5d95313b..daf4baaa 100644 --- a/supernode.py +++ b/supernode.py @@ -109,7 +109,10 @@ class GenerateLightningImage: def INPUT_TYPES(s): return { "required": { - "prompt": ("STRING", {"multiline": True, "dynamicPrompts": True, "default":"a dog"}), + "prompt": ( + "STRING", + {"multiline": True, "dynamicPrompts": True, "default": "a dog"}, + ), "seed": ("INT", {"default": 1, "min": 0, "max": 0xFFFFFFFFFFFFFFFF}), "width": ("INT", {"default": 1024, "min": 16, "max": 1024, "step": 8}), "height": ("INT", {"default": 1024, "min": 16, "max": 1024, "step": 8}), @@ -162,12 +165,12 @@ def generate_image(self, prompt, seed, width, height, cfg, batch_size): NODE_CLASS_MAPPINGS = { - #"BizyAirSuperResolution": SuperResolution, + "BizyAirSuperResolution": SuperResolution, "BizyAirRemoveBackground": RemoveBackground, "BizyAirGenerateLightningImage": GenerateLightningImage, } NODE_DISPLAY_NAME_MAPPINGS = { - #"BizyAirSuperResolution": "BizyAir Anime Image Super Resolution", - "BizyAirRemoveBackground": "BizyAir Remove Background", - "BizyAirGenerateLightningImage": "BizyAir Generate Image", + "BizyAirSuperResolution": "☁️BizyAir Anime Image Super Resolution", + "BizyAirRemoveBackground": "☁️BizyAir Remove Image Background", + "BizyAirGenerateLightningImage": "☁️BizyAir Generate Photorealistic Images", }