From ecd596e871f625a65f764455916c9f719c2f36c9 Mon Sep 17 00:00:00 2001 From: 70399 <7039986@qq.com> Date: Sat, 11 May 2024 02:02:39 +0800 Subject: [PATCH] first commit --- .gitignore | 18 ++++ README.MD | 44 ++++++++ __init__.py | 2 + example/workflow.png | Bin 0 -> 81141 bytes nodes.py | 238 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 302 insertions(+) create mode 100644 .gitignore create mode 100644 README.MD create mode 100644 __init__.py create mode 100644 example/workflow.png create mode 100644 nodes.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f03892 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +__pycache__/ +*.py[cod] +/output/ +/input/ +!/input/example.png +/models/ +/temp/ +/custom_nodes/ +!custom_nodes/example_node.py.example +extra_model_paths.yaml +/.vs +.idea/ +venv/ +/web/extensions/* +!/web/extensions/logging.js.example +!/web/extensions/core/ +/tests-ui/data/object_info.json +/user/ \ No newline at end of file diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..d23c6ec --- /dev/null +++ b/README.MD @@ -0,0 +1,44 @@ +# ComfyUI Light Gradient + +A set of nodes for ComfyUI Light Gradient. + + +![image](example/workflow.png) +*this workflow (workflow.png) is in the example directory.
+ + +## How to install + +* Recommended use ComfyUI Manager for installation. + +* Or open the cmd window in the plugin directory of ComfyUI, like ```ComfyUI\custom_nodes```,type +``` +git clone https://github.com/huagetai/ComfyUI_LightGradient.git +``` +* Or download the zip file and extracted, copy the resulting folder to ```ComfyUI\custom_ Nodes``` + +* Restart ComfyUI. + + +## Nodes + +1. **Image Gradient Node** +* input + * width - width of Mask + * height - height of Mask + * light_position - position of Light + * multiplier - strength of Light + * start_color - start color of gradient + * end_color - end color of gradient +* output + * IMAGE + +2. **Mask Gradient Node** +* input + * width - width of Mask + * height - height of Mask + * light_position - position of Light + * multiplier - strength of Light + +* output + * Mask \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..b0dbf9b --- /dev/null +++ b/__init__.py @@ -0,0 +1,2 @@ +from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS +__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"] \ No newline at end of file diff --git a/example/workflow.png b/example/workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..a63667601e02e3befcd0040f0d61dc17cb4b4a04 GIT binary patch literal 81141 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

H9r4i@O#+>!a70AbB^0X^8b@X$_~Go7c$h^R+Lk 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 torch.Tensor: + """Convert a numpy array to a tensor and scale its values from 0-255 to 0-1.""" + array = array.astype(np.float32) / 255.0 + return torch.from_numpy(array)[None,] + + +class ImageGradient: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "light_position": ([member.value for member in LightPosition],), + "multiplier": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.001}), + "start_color": ("STRING", {"default": "#FFFFFF"}), + "end_color": ("STRING", {"default": "#000000"}), + "width": ("INT", { "default": 512, "min": 0, "max": MAX_RESOLUTION, "step": 8, }), + "height": ("INT", { "default": 512, "min": 0, "max": MAX_RESOLUTION, "step": 8, }) + } + } + + RETURN_TYPES = ("IMAGE",) + FUNCTION = "execute" + CATEGORY = "LightGradient" + DESCRIPTION = """Simple Light Gradient""" + + def execute(self, light_position, multiplier, start_color, end_color, width, height): + lightPosition = LightPosition(light_position) + start_color_rgb = toRgb(start_color) + end_color_rgb = toRgb(end_color) + + image = generate_gradient_image(width, height, start_color_rgb, end_color_rgb, multiplier, lightPosition) + image = numpy_to_tensor(image) + + mask = generate_gradient_image(width, height, multiplier=multiplier, lightPosition=lightPosition) + mask = numpy_to_tensor(mask) + mask = mask[:, :, :, 0] + + return (image,mask,) + +class MaskGradient: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "light_position": ([member.value for member in LightPosition],), + "multiplier": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.001}), + "width": ("INT", { "default": 512, "min": 0, "max": MAX_RESOLUTION, "step": 8, }), + "height": ("INT", { "default": 512, "min": 0, "max": MAX_RESOLUTION, "step": 8, }) + } + } + + RETURN_TYPES = ("MASK",) + FUNCTION = "execute" + CATEGORY = "LightGradient" + DESCRIPTION = """Mask Gradient""" + + def execute(self, light_position, multiplier, width, height): + lightPosition = LightPosition(light_position) + + mask = generate_gradient_image(width, height, multiplier=multiplier, lightPosition=lightPosition) + mask = numpy_to_tensor(mask) + mask = mask[:, :, :, 0] + + return (mask,) + + +NODE_CLASS_MAPPINGS = { + "ImageGradient": ImageGradient, + "MaskGradient": MaskGradient +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "ImageGradient": "Image Gradient", + "MaskGradient": "Mask Gradient" +}