diff --git a/README.md b/README.md deleted file mode 100644 index e159815..0000000 --- a/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# XYPlot: Comfy plugin - - -![Image](./workflows/preview_mini.png) -[Workflows](./workflows/xy_plot_mini.json) -![Image](./workflows/preview_base.png) -[Workflows](./workflows/xy_plot_base.json) - - -## How to use - -### Install - -``` -cd custom_nodes # From comfy path -git clone https://github.com/LEv145/XY-plot-comfy-plugin XYPlot -``` -### Update - -``` -cd custom_nodes/XYPlot -git pull -``` diff --git a/__init__.py b/__init__.py deleted file mode 100644 index 6f2ba5d..0000000 --- a/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .src import ImageSetAreaNode, FloatImageCombineNode, XYPlotNode - - -NODE_CLASS_MAPPINGS = { - "ImageSetArea": ImageSetAreaNode, - "FloatImageCombine": FloatImageCombineNode, - "XYPlot": XYPlotNode, -} diff --git a/__pycache__/__init__.cpython-310.pyc b/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 6afaaaa..0000000 Binary files a/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/src/__init__.py b/src/__init__.py deleted file mode 100644 index 5124cd7..0000000 --- a/src/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .nodes.image_set_area import ImageSetAreaNode -from .nodes.float_image_combine import FloatImageCombineNode -from .nodes.xy_plot import XYPlotNode diff --git a/src/__pycache__/__init__.cpython-310.pyc b/src/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index e8da184..0000000 Binary files a/src/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/src/__pycache__/base.cpython-310.pyc b/src/__pycache__/base.cpython-310.pyc deleted file mode 100644 index 4efa28f..0000000 Binary files a/src/__pycache__/base.cpython-310.pyc and /dev/null differ diff --git a/src/__pycache__/utils.cpython-310.pyc b/src/__pycache__/utils.cpython-310.pyc deleted file mode 100644 index 0a97c6d..0000000 Binary files a/src/__pycache__/utils.cpython-310.pyc and /dev/null differ diff --git a/src/base.py b/src/base.py deleted file mode 100644 index 2e35db6..0000000 --- a/src/base.py +++ /dev/null @@ -1,10 +0,0 @@ -import typing as t - - -class BasePlotNode(): - CATEGORY: str = "XYPlot" - FUNCTION: str = "execute" - - -Image = t.Any -FloatImage = list[Image] diff --git a/src/nodes/__pycache__/float_image_combine.cpython-310.pyc b/src/nodes/__pycache__/float_image_combine.cpython-310.pyc deleted file mode 100644 index 25a151f..0000000 Binary files a/src/nodes/__pycache__/float_image_combine.cpython-310.pyc and /dev/null differ diff --git a/src/nodes/__pycache__/image_set_area.cpython-310.pyc b/src/nodes/__pycache__/image_set_area.cpython-310.pyc deleted file mode 100644 index 00d979d..0000000 Binary files a/src/nodes/__pycache__/image_set_area.cpython-310.pyc and /dev/null differ diff --git a/src/nodes/__pycache__/xy_plot.cpython-310.pyc b/src/nodes/__pycache__/xy_plot.cpython-310.pyc deleted file mode 100644 index c731c32..0000000 Binary files a/src/nodes/__pycache__/xy_plot.cpython-310.pyc and /dev/null differ diff --git a/src/nodes/float_image_combine.py b/src/nodes/float_image_combine.py deleted file mode 100644 index 9eac417..0000000 --- a/src/nodes/float_image_combine.py +++ /dev/null @@ -1,19 +0,0 @@ -import typing as t - -from ..base import BasePlotNode, FloatImage - - -class FloatImageCombineNode(BasePlotNode): - RETURN_TYPES: t.Tuple[str] = ("FLOAT_IMAGE",) - - @classmethod - def INPUT_TYPES(cls) -> t.Dict[str, t.Any]: - return { - "required": { - "float_image_1": ("FLOAT_IMAGE",), - "float_image_2": ("FLOAT_IMAGE",), - }, - } - - def execute(self, float_image_1: FloatImage, float_image_2: FloatImage) -> tuple[FloatImage]: - return (float_image_1 + float_image_2,) diff --git a/src/nodes/image_set_area.py b/src/nodes/image_set_area.py deleted file mode 100644 index acb25a4..0000000 --- a/src/nodes/image_set_area.py +++ /dev/null @@ -1,21 +0,0 @@ -import typing as t - -from ..base import BasePlotNode, FloatImage, Image - - -class ImageSetAreaNode(BasePlotNode): - RETURN_TYPES: t.Tuple[str] = ("FLOAT_IMAGE",) - - def __init__(self): - pass - - @classmethod - def INPUT_TYPES(cls) -> t.Dict[str, t.Any]: - return { - "required": { - "image": ("IMAGE",), - }, - } - - def execute(self, image: Image) -> tuple[FloatImage]: - return ([image],) diff --git a/src/nodes/xy_plot.py b/src/nodes/xy_plot.py deleted file mode 100644 index ce5e722..0000000 --- a/src/nodes/xy_plot.py +++ /dev/null @@ -1,30 +0,0 @@ -import typing as t - -from ..base import BasePlotNode, FloatImage, Image -from ..utils import tensor_to_pillow, pillow_to_tensor, create_image_grid - - -class XYPlotNode(BasePlotNode): - RETURN_TYPES: t.Tuple[str] = ("IMAGE",) - - @classmethod - def INPUT_TYPES(cls) -> t.Dict[str, t.Any]: - return { - "required": { - "float_image": ("FLOAT_IMAGE",), - "gap": ("INT", {"default": 0, "min": 0}), - "nrow": ("INT", {"default": 1, "min": 1}), - }, - } - - def execute( - self, - float_image: FloatImage, - nrow: int, - gap: int - ) -> tuple[Image]: - pillow_images = [tensor_to_pillow(i) for i in float_image] - pillow_grid = create_image_grid(pillow_images, nrow=nrow, gap=gap) - tensor_grid = pillow_to_tensor(pillow_grid) - - return (tensor_grid,) diff --git a/src/utils.py b/src/utils.py deleted file mode 100644 index d9a07c3..0000000 --- a/src/utils.py +++ /dev/null @@ -1,47 +0,0 @@ -import typing as t - -import torch -import numpy as np -from PIL import Image - - -def tensor_to_pillow(image): - return Image.fromarray(np.clip(255. * image.cpu().numpy().squeeze(), 0, 255).astype(np.uint8)) - - -def pillow_to_tensor(image): - return torch.from_numpy(np.array(image).astype(np.float32) / 255.0).unsqueeze(0) - - -def create_image_grid(images, gap, nrow): - """ - Create a grid of images with a specified gap and number of rows. - - Args: - images (List[PIL.Image.Image]): List of images to be placed in the grid. - gap (int, optional): Gap between images in pixels. Defaults to 10. - nrow (int, optional): Number of rows in the grid. Defaults to 3. - - Returns: - PIL.Image.Image: The merged image grid. - """ - # Calculate number of columns based on number of rows and images - ncol = (len(images) + nrow - 1) // nrow - - # Get size of each image in pixels - image_width, image_height = images[0].size - - # Create new image to hold the grid - grid_width = ncol * image_width + (ncol - 1) * gap - grid_height = nrow * image_height + (nrow - 1) * gap - grid_image = Image.new("RGB", (grid_width, grid_height), color="white") - - # Paste images into grid - for i, image in enumerate(images): - row = i // ncol - col = i % ncol - x = col * (image_width + gap) - y = row * (image_height + gap) - grid_image.paste(image, (x, y)) - - return grid_image diff --git a/workflows/xy_plot_base.json b/workflows/xy_plot_base.json deleted file mode 100644 index 54f5291..0000000 --- a/workflows/xy_plot_base.json +++ /dev/null @@ -1,1136 +0,0 @@ -{ - "last_node_id": 40, - "last_link_id": 72, - "nodes": [ - { - "id": 15, - "type": "PreviewImage", - "pos": [ - 1435, - 325 - ], - "size": { - "0": 363.55511474609375, - "1": 290.6986999511719 - }, - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 20 - } - ], - "properties": { - "Node name for S&R": "PreviewImage" - } - }, - { - "id": 32, - "type": "VAEDecode", - "pos": [ - 188.6033769999996, - 306.84141700000043 - ], - "size": { - "0": 210, - "1": 46 - }, - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 49 - }, - { - "name": "vae", - "type": "VAE", - "link": 64 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 51 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - } - }, - { - "id": 34, - "type": "VAEDecode", - "pos": [ - 190.6033769999996, - 397.8414170000003 - ], - "size": { - "0": 210, - "1": 46 - }, - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 50 - }, - { - "name": "vae", - "type": "VAE", - "link": 65 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 53 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - } - }, - { - "id": 11, - "type": "ImageSetArea", - "pos": [ - 435, - 376 - ], - "size": { - "0": 216.59999084472656, - "1": 26 - }, - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 53, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 13 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ImageSetArea" - } - }, - { - "id": 25, - "type": "CLIPTextEncode", - "pos": [ - -728.3966230000002, - 324.8414170000003 - ], - "size": { - "0": 400, - "1": 200 - }, - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 35 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 41, - 48, - 54 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "masterpiece, best quality, 1girl, golden hair," - ] - }, - { - "id": 26, - "type": "CLIPTextEncode", - "pos": [ - -726.3966230000002, - 564.8414170000005 - ], - "size": { - "0": 400, - "1": 200 - }, - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 36 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 40, - 47, - 55 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "(worst quality, low quality:1.4), monochrome, zombie" - ] - }, - { - "id": 37, - "type": "VAEDecode", - "pos": [ - 195.60337699999963, - 489.8414170000004 - ], - "size": { - "0": 210, - "1": 46 - }, - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 58 - }, - { - "name": "vae", - "type": "VAE", - "link": 66 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 59 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - } - }, - { - "id": 24, - "type": "CheckpointLoaderSimple", - "pos": [ - -1129.3966229999999, - 302.84141700000043 - ], - "size": { - "0": 315, - "1": 98 - }, - "flags": {}, - "order": 0, - "mode": 0, - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 69 - ], - "slot_index": 0 - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 35, - 36 - ], - "slot_index": 1 - }, - { - "name": "VAE", - "type": "VAE", - "links": [ - 63 - ], - "slot_index": 2 - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimple" - }, - "widgets_values": [ - "Counterfeit-v2_5.safetensors" - ] - }, - { - "id": 28, - "type": "Reroute", - "pos": [ - -773.5473798359377, - 114.2723633500978 - ], - "size": [ - 75, - 26 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 69, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "MODEL", - "links": [ - 44 - ] - } - ], - "properties": { - "showOutputText": false, - "horizontal": false - } - }, - { - "id": 39, - "type": "Reroute", - "pos": [ - -770.3966230000002, - 78.84141700000006 - ], - "size": [ - 75, - 26 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 63 - } - ], - "outputs": [ - { - "name": "", - "type": "VAE", - "links": [ - 67 - ], - "slot_index": 0 - } - ], - "properties": { - "showOutputText": false, - "horizontal": false - } - }, - { - "id": 29, - "type": "Reroute", - "pos": [ - -361.39662299999907, - 113.84141700000015 - ], - "size": [ - 75, - 26 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 44, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "MODEL", - "links": [ - 70, - 71, - 72 - ], - "slot_index": 0 - } - ], - "properties": { - "showOutputText": false, - "horizontal": false - } - }, - { - "id": 40, - "type": "Reroute", - "pos": [ - 64.60337700000011, - 78.84141700000006 - ], - "size": [ - 75, - 26 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 67, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "VAE", - "links": [ - 64, - 65, - 66 - ], - "slot_index": 0 - } - ], - "properties": { - "showOutputText": false, - "horizontal": false - } - }, - { - "id": 27, - "type": "KSampler", - "pos": [ - -213.39662300000015, - 303.84141700000043 - ], - "size": { - "0": 315, - "1": 262 - }, - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 70 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 41 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 40 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 62 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 49 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 1, - false, - 20, - 8, - "dpmpp_sde", - "karras", - 1 - ] - }, - { - "id": 31, - "type": "KSampler", - "pos": [ - -216.3966230000001, - 606.8414170000007 - ], - "size": { - "0": 315, - "1": 262 - }, - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 71 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 48 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 47 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 61 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 50 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 1, - false, - 20, - 10, - "dpmpp_sde", - "karras", - 1 - ] - }, - { - "id": 38, - "type": "EmptyLatentImage", - "pos": [ - -647.3966230000001, - 808.8414170000001 - ], - "size": { - "0": 315, - "1": 106 - }, - "flags": {}, - "order": 1, - "mode": 0, - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 60, - 61, - 62 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "EmptyLatentImage" - }, - "widgets_values": [ - 512, - 512, - 1 - ] - }, - { - "id": 18, - "type": "ImageSetArea", - "pos": [ - 434, - 441 - ], - "size": { - "0": 216.59999084472656, - "1": 26 - }, - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 59 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 22 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ImageSetArea" - } - }, - { - "id": 10, - "type": "ImageSetArea", - "pos": [ - 437, - 307 - ], - "size": { - "0": 216.59999084472656, - "1": 26 - }, - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 51 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 12 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ImageSetArea" - } - }, - { - "id": 12, - "type": "FloatImageCombine", - "pos": [ - 711, - 301 - ], - "size": { - "0": 317.4000244140625, - "1": 46 - }, - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "name": "float_image_1", - "type": "FLOAT_IMAGE", - "link": 12 - }, - { - "name": "float_image_2", - "type": "FLOAT_IMAGE", - "link": 13 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 32 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "FloatImageCombine" - } - }, - { - "id": 19, - "type": "FloatImageCombine", - "pos": [ - 712, - 387 - ], - "size": { - "0": 317.4000244140625, - "1": 46 - }, - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "name": "float_image_1", - "type": "FLOAT_IMAGE", - "link": 32 - }, - { - "name": "float_image_2", - "type": "FLOAT_IMAGE", - "link": 22 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 24 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "FloatImageCombine" - } - }, - { - "id": 17, - "type": "XYPlot", - "pos": [ - 1075, - 326 - ], - "size": { - "0": 315, - "1": 82 - }, - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "float_image", - "type": "FLOAT_IMAGE", - "link": 24 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 20 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "XYPlot" - }, - "widgets_values": [ - 10, - 1 - ] - }, - { - "id": 36, - "type": "KSampler", - "pos": [ - -214, - 915 - ], - "size": { - "0": 315, - "1": 262 - }, - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 72 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 54 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 55 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 60 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 58 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 1, - false, - 20, - 12, - "dpmpp_sde", - "karras", - 1 - ] - } - ], - "links": [ - [ - 12, - 10, - 0, - 12, - 0, - "FLOAT_IMAGE" - ], - [ - 13, - 11, - 0, - 12, - 1, - "FLOAT_IMAGE" - ], - [ - 20, - 17, - 0, - 15, - 0, - "IMAGE" - ], - [ - 22, - 18, - 0, - 19, - 1, - "FLOAT_IMAGE" - ], - [ - 24, - 19, - 0, - 17, - 0, - "FLOAT_IMAGE" - ], - [ - 32, - 12, - 0, - 19, - 0, - "FLOAT_IMAGE" - ], - [ - 35, - 24, - 1, - 25, - 0, - "CLIP" - ], - [ - 36, - 24, - 1, - 26, - 0, - "CLIP" - ], - [ - 40, - 26, - 0, - 27, - 2, - "CONDITIONING" - ], - [ - 41, - 25, - 0, - 27, - 1, - "CONDITIONING" - ], - [ - 44, - 28, - 0, - 29, - 0, - "*" - ], - [ - 47, - 26, - 0, - 31, - 2, - "CONDITIONING" - ], - [ - 48, - 25, - 0, - 31, - 1, - "CONDITIONING" - ], - [ - 49, - 27, - 0, - 32, - 0, - "LATENT" - ], - [ - 50, - 31, - 0, - 34, - 0, - "LATENT" - ], - [ - 51, - 32, - 0, - 10, - 0, - "IMAGE" - ], - [ - 53, - 34, - 0, - 11, - 0, - "IMAGE" - ], - [ - 54, - 25, - 0, - 36, - 1, - "CONDITIONING" - ], - [ - 55, - 26, - 0, - 36, - 2, - "CONDITIONING" - ], - [ - 58, - 36, - 0, - 37, - 0, - "LATENT" - ], - [ - 59, - 37, - 0, - 18, - 0, - "IMAGE" - ], - [ - 60, - 38, - 0, - 36, - 3, - "LATENT" - ], - [ - 61, - 38, - 0, - 31, - 3, - "LATENT" - ], - [ - 62, - 38, - 0, - 27, - 3, - "LATENT" - ], - [ - 63, - 24, - 2, - 39, - 0, - "*" - ], - [ - 64, - 40, - 0, - 32, - 1, - "VAE" - ], - [ - 65, - 40, - 0, - 34, - 1, - "VAE" - ], - [ - 66, - 40, - 0, - 37, - 1, - "VAE" - ], - [ - 67, - 39, - 0, - 40, - 0, - "*" - ], - [ - 69, - 24, - 0, - 28, - 0, - "*" - ], - [ - 70, - 29, - 0, - 27, - 0, - "MODEL" - ], - [ - 71, - 29, - 0, - 31, - 0, - "MODEL" - ], - [ - 72, - 29, - 0, - 36, - 0, - "MODEL" - ] - ], - "groups": [], - "config": {}, - "extra": {}, - "version": 0.4 -} \ No newline at end of file diff --git a/workflows/xy_plot_base.png b/workflows/xy_plot_base.png deleted file mode 100644 index efc6398..0000000 Binary files a/workflows/xy_plot_base.png and /dev/null differ diff --git a/workflows/xy_plot_mini.json b/workflows/xy_plot_mini.json deleted file mode 100644 index 406dbd0..0000000 --- a/workflows/xy_plot_mini.json +++ /dev/null @@ -1,445 +0,0 @@ -{ - "last_node_id": 44, - "last_link_id": 75, - "nodes": [ - { - "id": 15, - "type": "PreviewImage", - "pos": [ - 1435, - 325 - ], - "size": { - "0": 363.55511474609375, - "1": 290.6986999511719 - }, - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 20 - } - ], - "properties": { - "Node name for S&R": "PreviewImage" - } - }, - { - "id": 10, - "type": "ImageSetArea", - "pos": [ - 437, - 307 - ], - "size": { - "0": 216.59999084472656, - "1": 26 - }, - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 73 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 12 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ImageSetArea" - } - }, - { - "id": 12, - "type": "FloatImageCombine", - "pos": [ - 711, - 301 - ], - "size": { - "0": 317.4000244140625, - "1": 46 - }, - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "float_image_1", - "type": "FLOAT_IMAGE", - "link": 12 - }, - { - "name": "float_image_2", - "type": "FLOAT_IMAGE", - "link": 13 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 32 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "FloatImageCombine" - } - }, - { - "id": 19, - "type": "FloatImageCombine", - "pos": [ - 712, - 387 - ], - "size": { - "0": 317.4000244140625, - "1": 46 - }, - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "float_image_1", - "type": "FLOAT_IMAGE", - "link": 32 - }, - { - "name": "float_image_2", - "type": "FLOAT_IMAGE", - "link": 22 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 24 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "FloatImageCombine" - } - }, - { - "id": 11, - "type": "ImageSetArea", - "pos": [ - 441, - 372 - ], - "size": { - "0": 216.59999084472656, - "1": 26 - }, - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 74, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 13 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ImageSetArea" - } - }, - { - "id": 18, - "type": "ImageSetArea", - "pos": [ - 439, - 439 - ], - "size": { - "0": 216.59999084472656, - "1": 26 - }, - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 75 - } - ], - "outputs": [ - { - "name": "FLOAT_IMAGE", - "type": "FLOAT_IMAGE", - "links": [ - 22 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ImageSetArea" - } - }, - { - "id": 41, - "type": "LoadImage", - "pos": [ - 69, - 307 - ], - "size": { - "0": 315, - "1": 102 - }, - "flags": {}, - "order": 0, - "mode": 0, - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 73 - ], - "slot_index": 0 - }, - { - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "ComfyUI_00171_.png", - "image" - ] - }, - { - "id": 43, - "type": "LoadImage", - "pos": [ - 68, - 592 - ], - "size": { - "0": 315, - "1": 102 - }, - "flags": {}, - "order": 2, - "mode": 0, - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 75 - ], - "slot_index": 0 - }, - { - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "ComfyUI_00116_.png", - "image" - ] - }, - { - "id": 17, - "type": "XYPlot", - "pos": [ - 1075, - 326 - ], - "size": { - "0": 315, - "1": 82 - }, - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "float_image", - "type": "FLOAT_IMAGE", - "link": 24 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 20 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "XYPlot" - }, - "widgets_values": [ - 10, - 2 - ] - }, - { - "id": 42, - "type": "LoadImage", - "pos": [ - 69, - 449 - ], - "size": { - "0": 315, - "1": 102 - }, - "flags": {}, - "order": 1, - "mode": 0, - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 74 - ], - "slot_index": 0 - }, - { - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "ComfyUI_00153_.png", - "image" - ] - } - ], - "links": [ - [ - 12, - 10, - 0, - 12, - 0, - "FLOAT_IMAGE" - ], - [ - 13, - 11, - 0, - 12, - 1, - "FLOAT_IMAGE" - ], - [ - 20, - 17, - 0, - 15, - 0, - "IMAGE" - ], - [ - 22, - 18, - 0, - 19, - 1, - "FLOAT_IMAGE" - ], - [ - 24, - 19, - 0, - 17, - 0, - "FLOAT_IMAGE" - ], - [ - 32, - 12, - 0, - 19, - 0, - "FLOAT_IMAGE" - ], - [ - 73, - 41, - 0, - 10, - 0, - "IMAGE" - ], - [ - 74, - 42, - 0, - 11, - 0, - "IMAGE" - ], - [ - 75, - 43, - 0, - 18, - 0, - "IMAGE" - ] - ], - "groups": [], - "config": {}, - "extra": {}, - "version": 0.4 -} \ No newline at end of file diff --git a/workflows/xy_plot_mini.png b/workflows/xy_plot_mini.png deleted file mode 100644 index 2832dff..0000000 Binary files a/workflows/xy_plot_mini.png and /dev/null differ