Spaces:
Running
Running
import nodes | |
MAX_RESOLUTION = nodes.MAX_RESOLUTION | |
class ImageCrop: | |
def INPUT_TYPES(s): | |
return {"required": { "image": ("IMAGE",), | |
"width": ("INT", {"default": 512, "min": 1, "max": MAX_RESOLUTION, "step": 1}), | |
"height": ("INT", {"default": 512, "min": 1, "max": MAX_RESOLUTION, "step": 1}), | |
"x": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION, "step": 1}), | |
"y": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION, "step": 1}), | |
}} | |
RETURN_TYPES = ("IMAGE",) | |
FUNCTION = "crop" | |
CATEGORY = "image/transform" | |
def crop(self, image, width, height, x, y): | |
x = min(x, image.shape[2] - 1) | |
y = min(y, image.shape[1] - 1) | |
to_x = width + x | |
to_y = height + y | |
img = image[:,y:to_y, x:to_x, :] | |
return (img,) | |
class RepeatImageBatch: | |
def INPUT_TYPES(s): | |
return {"required": { "image": ("IMAGE",), | |
"amount": ("INT", {"default": 1, "min": 1, "max": 64}), | |
}} | |
RETURN_TYPES = ("IMAGE",) | |
FUNCTION = "repeat" | |
CATEGORY = "image/batch" | |
def repeat(self, image, amount): | |
s = image.repeat((amount, 1,1,1)) | |
return (s,) | |
NODE_CLASS_MAPPINGS = { | |
"ImageCrop": ImageCrop, | |
"RepeatImageBatch": RepeatImageBatch, | |
} | |