diff --git a/comfy_extras/nodes_images.py b/comfy_extras/nodes_images.py index 1ac740d1d..8bcb84c1a 100644 --- a/comfy_extras/nodes_images.py +++ b/comfy_extras/nodes_images.py @@ -136,7 +136,7 @@ class ImageFromBatch(IO.ComfyNode): category="image/batch", inputs=[ IO.Image.Input("image"), - IO.Int.Input("batch_index", default=0, min=0, max=4095), + IO.Int.Input("batch_index", default=0, min=-MAX_RESOLUTION, max=MAX_RESOLUTION), IO.Int.Input("length", default=1, min=1, max=4096), ], outputs=[IO.Image.Output()], @@ -145,6 +145,8 @@ class ImageFromBatch(IO.ComfyNode): @classmethod def execute(cls, image, batch_index, length) -> IO.NodeOutput: s_in = image + if batch_index < 0: + batch_index += s_in.shape[0] batch_index = min(s_in.shape[0] - 1, batch_index) length = min(s_in.shape[0] - batch_index, length) s = s_in[batch_index:batch_index + length].clone() diff --git a/nodes.py b/nodes.py index 78aaaef74..510048d9c 100644 --- a/nodes.py +++ b/nodes.py @@ -1221,7 +1221,7 @@ class LatentFromBatch: @classmethod def INPUT_TYPES(s): return {"required": { "samples": ("LATENT",), - "batch_index": ("INT", {"default": 0, "min": 0, "max": 63}), + "batch_index": ("INT", {"default": 0, "min": -MAX_RESOLUTION, "max": MAX_RESOLUTION}), "length": ("INT", {"default": 1, "min": 1, "max": 64}), }} RETURN_TYPES = ("LATENT",) @@ -1232,6 +1232,8 @@ class LatentFromBatch: def frombatch(self, samples, batch_index, length): s = samples.copy() s_in = samples["samples"] + if batch_index < 0: + batch_index += s_in.shape[0] batch_index = min(s_in.shape[0] - 1, batch_index) length = min(s_in.shape[0] - batch_index, length) s["samples"] = s_in[batch_index:batch_index + length].clone()