Files
CavinHuang-comfyui-nodes-docs/docs/ImageDrawRectangleByContainer.md
2024-07-04 08:39:03 +08:00

6.2 KiB

Documentation

  • Class name: ImageDrawRectangleByContainer
  • Category: image/draw
  • Output node: False

ImageDrawRectangleByContainer 节点用于在指定的容器内绘制矩形,可精确控制矩形的尺寸和样式。通过指定起始点和终点,以及颜色和样式属性,该节点能够在图像中创建图形元素。

Input types

Required

  • container
    • 用于绘制矩形的容器,定义了绘图操作的边界和上下文。
    • Comfy dtype: IMAGE
    • Python dtype: numpy.ndarray
  • start_x
    • 矩形的起始 x 坐标,标记矩形水平边界的起点。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • start_y
    • 矩形的起始 y 坐标,标记矩形垂直边界的起点。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • end_x
    • 矩形的结束 x 坐标,定义矩形水平边界的终点。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • end_y
    • 矩形的结束 y 坐标,定义矩形垂直边界的终点。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • outline_size
    • 指定矩形轮廓的粗细,用于自定义矩形边框。
    • Comfy dtype: INT
    • Python dtype: int
  • outline_red
    • 轮廓颜色的红色分量,contributes to 矩形边框的整体颜色。
    • Comfy dtype: INT
    • Python dtype: int
  • outline_green
    • 轮廓颜色的绿色分量,contributes to 矩形边框的整体颜色。
    • Comfy dtype: INT
    • Python dtype: int
  • outline_blue
    • 轮廓颜色的蓝色分量,contributes to 矩形边框的整体颜色。
    • Comfy dtype: INT
    • Python dtype: int
  • outline_alpha
    • 轮廓颜色的透明度分量,用于矩形边框的透明效果。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • fill_red
    • 矩形填充颜色的红色分量,决定矩形内部的主要颜色。
    • Comfy dtype: INT
    • Python dtype: int
  • fill_green
    • 矩形填充颜色的绿色分量,决定矩形内部的主要颜色。
    • Comfy dtype: INT
    • Python dtype: int
  • fill_blue
    • 矩形填充颜色的蓝色分量,决定矩形内部的主要颜色。
    • Comfy dtype: INT
    • Python dtype: int
  • fill_alpha
    • 矩形填充颜色的透明度分量,用于矩形内部的透明效果。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • SSAA
    • 指定超采样抗锯齿因子,通过减少锯齿效果来提高图像质量。
    • Comfy dtype: INT
    • Python dtype: int
  • method
    • 定义用于绘图操作的方法,影响渲染质量和性能。
    • Comfy dtype: COMBO[STRING]
    • Python dtype: str

Output types

  • image
    • Comfy dtype: IMAGE
    • 在指定容器内绘制了矩形的结果图像,反映了所有指定的样式和尺寸。
    • Python dtype: numpy.ndarray

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class ImageDrawRectangleByContainer:
    def __init__(self):
        pass

    @classmethod
    def INPUT_TYPES(cls):
        return {
            "required": {
                "container": ("IMAGE",),
                "start_x": ("FLOAT", {
                    "default": 0.1,
                    "max": 1.0,
                    "step": 0.01
                }),
                "start_y": ("FLOAT", {
                    "default": 0.2,
                    "max": 1.0,
                    "step": 0.01
                }),
                "end_x": ("FLOAT", {
                    "default": 0.9,
                    "max": 1.0,
                    "step": 0.01
                }),
                "end_y": ("FLOAT", {
                    "default": 0.8,
                    "max": 1.0,
                    "step": 0.01
                }),
                "outline_size": ("INT", {
                    "default": 1,
                    "step": 1
                }),
                "outline_red": ("INT", {
                    "default": 0,
                    "max": 255,
                    "step": 1
                }),
                "outline_green": ("INT", {
                    "default": 0,
                    "max": 255,
                    "step": 1
                }),
                "outline_blue": ("INT", {
                    "default": 0,
                    "max": 255,
                    "step": 1
                }),
                "outline_alpha": ("FLOAT", {
                    "default": 1.0,
                    "max": 1.0,
                    "step": 0.01
                }),
                "fill_red": ("INT", {
                    "default": 255,
                    "max": 255,
                    "step": 1
                }),
                "fill_green": ("INT", {
                    "default": 255,
                    "max": 255,
                    "step": 1
                }),
                "fill_blue": ("INT", {
                    "default": 255,
                    "max": 255,
                    "step": 1
                }),
                "fill_alpha": ("FLOAT", {
                    "default": 1.0,
                    "max": 1.0,
                    "step": 0.01
                }),
                "SSAA": ("INT", {
                    "default": 4,
                    "min": 1,
                    "max": 16,
                    "step": 1
                }),
                "method": (["lanczos", "bicubic", "hamming", "bilinear", "box", "nearest"],),
            },
        }

    RETURN_TYPES = ("IMAGE",)
    FUNCTION = "node"
    CATEGORY = "image/draw"

    # noinspection PyPep8Naming
    def node(
            self,
            container,
            start_x,
            start_y,
            end_x,
            end_y,
            outline_size,
            outline_red,
            outline_green,
            outline_blue,
            outline_alpha,
            fill_red,
            fill_green,
            fill_blue,
            fill_alpha,
            SSAA,
            method
    ):
        return ImageDrawRectangle().node(
            container[0, :, :, 0].shape[1],
            container[0, :, :, 0].shape[0],
            start_x,
            start_y,
            end_x,
            end_y,
            outline_size,
            outline_red,
            outline_green,
            outline_blue,
            outline_alpha,
            fill_red,
            fill_green,
            fill_blue,
            fill_alpha,
            SSAA,
            method
        )