kwaroran/abg-comfyui

comfyUi run more than 1 batch size at a time

Opened this issue · 3 comments

it works great if the batch size is one, but it will break if the batch size is more than one. This prevents it being used for cleaning up the final output of an animatediff flow. That would be AWESOME.

Here is the error message:

Error occurred when executing Remove Image Background (abg):

too many values to unpack (expected 2)

File "/Users/ross/apps/ComfyUI/execution.py", line 152, in recursive_execute
File "/Users/ross/apps/ComfyUI/execution.py", line 82, in get_output_data
uis = []

File "/Users/ross/apps/ComfyUI/execution.py", line 75, in map_node_over_list
nodes.before_node_execution()
^^^^^^^^^^^^^^^^^^^
File "/Users/ross/apps/ComfyUI/custom_nodes/abg-comfyui/init.py", line 57, in abg_remover
rmb = rmbg_fn(npa)
^^^^^^^^^^^^
File "/Users/ross/apps/ComfyUI/custom_nodes/abg-comfyui/init.py", line 31, in rmbg_fn
mask = get_mask(img)
^^^^^^^^^^^^^
File "/Users/ross/apps/ComfyUI/custom_nodes/abg-comfyui/init.py", line 9, in get_mask
h, w = h0, w0 = img.shape[:-1]
^^^^

@arroyoDev Thanks for raising the issue. Have you found an alternative to work with animediff?

Go find abg-comfyui folder in customNode, Then change RemoveImageBackgroundabg class in the init.py to

class RemoveImageBackgroundabg:
    def __init__(self):
        pass
    
    @classmethod
    def INPUT_TYPES(s):
        return {
            "required": {
                "images": ("IMAGE",),
            },
        }

    RETURN_TYPES = ("IMAGE",)
    FUNCTION = "abg_remover"
    CATEGORY = "image"

    def abg_remover(self, images):
        batch_tensor = []
        for image in images:
            npa = image2nparray(image)
            print(npa.ndim)
            rmb = rmbg_fn(npa)
            image = nparray2image(rmb)
            batch_tensor.append(image)
        
        batch_tensor = torch.cat(batch_tensor, dim=0)
        return (batch_tensor,)

Then you will be fine.

LyazS commented

I fork one to do this, check this repo