GithubHelp home page GithubHelp logo

comfyui_essentials's Introduction

🔧 ComfyUI Essentials

Essential nodes that are weirdly missing from ComfyUI core. With few exceptions they are new features and not commodities. I hope this will be just a temporary repository until the nodes get included into ComfyUI.

Sponsorship

If you like my work and wish to see updates and new features please consider sponsoring my projects.

Not to mention the documentation and videos tutorials. Check my ComfyUI Advanced Understanding videos on YouTube for example, part 1 and part 2

The only way to keep the code open and free is by sponsoring its development. The more sponsorships the more time I can dedicate to my open source projects.

Please consider a Github Sponsorship or PayPal donation (Matteo "matt3o" Spinelli). For sponsorships of $50+, let me know if you'd like to be mentioned in this readme file, you can find me on Discord or matt3o 🐌 gmail.com.

Current sponsors

It's only thanks to generous sponsors that the whole community can enjoy open and free software. Please join me in thanking the following companies and individuals!

🏆 Gold sponsors

Kaiber.ai   Kaiber.ai

🎉 Silver sponsors

OperArt.ai   OperArt.ai

Companies supporting my projects

Esteemed individuals

One-time Extraordinaires

comfyui_essentials's People

Contributors

cubiq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

comfyui_essentials's Issues

Suggestion: Use Torch primitives for Gaussian blur to vastly speed it up

The torchvision Gaussian function runs on the CPU even if your tensor is on the GPU. Here's a blur function that guarantees the blur will run very quickly on the GPU. Some adaptation for the tensor shape may need to be made; this one works for the latent tensor format:

`def gaussian_blur(tensor, kernel_size=5, sigma=1.0):
if len(tensor.shape) == 4: # Batch of images
batch_size, channels, height, width = tensor.shape
else:
raise ValueError("Expected a 4D tensor [B, C, H, W]")

# Create Gaussian kernel
x = torch.arange(-kernel_size // 2 + 1, kernel_size // 2 + 1, device=tensor.device)
x = torch.exp(-x**2 / (2 * sigma**2))
x = x / x.sum()

# Create 2D Gaussian kernel by outer product
kernel = x[:, None] * x[None, :]

# Expand to match input tensor shape [out_channels, in_channels, kernel_height, kernel_width]
kernel = kernel.expand(channels, 1, kernel_size, kernel_size)

# Apply Gaussian blur
blurred = F.conv2d(tensor, kernel, groups=channels, padding=kernel_size // 2)

return blurred`

Error occurred when executing ImageResize+

Error occurred when executing ImageResize+:

'bool' object has no attribute 'startswith'

File "D:\SD\ComfyUI\execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "D:\SD\ComfyUI\execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "D:\SD\ComfyUI\execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "D:\SD\ComfyUI\custom_nodes\ComfyUI_essentials\image.py", line 288, in execute
elif method.startswith('fill'):

Pixelize node error

!!! Exception during processing!!! 'module' object is not callable
Traceback (most recent call last):
File "H:\Comfyui_2\ComfyUI\execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "H:\Comfyui_2\ComfyUI\execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "H:\Comfyui_2\ComfyUI\execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "H:\Comfyui_2\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 1660, in execute
img = pixelize(img,
TypeError: 'module' object is not callable

need to change from pixeloe import pixelize in essentials.py to from pixeloe.pixelize import pixelize to run

Request MaskSelector

There's an ImageSelector node which allows you to select images within a batch to output for processing, and a RepeatImageBatch, both of which are missing from this set of custom nodes. Currently, in order to do the same process with batch masks requires converting the masks to images. It would be nice to be able to do the same function within the mask context.

Ideally there would be a singular set of ComfyUI nodes that would do the same functions with both batch images and masks regardless. If you know where's the best place to suggest this, let me know and I'll bug them instead :)

231203-212701-chrome

No fonts

Clicking on font or trying to scroll left and right does not change from 'undefined'.

I have confirmed the normal 'CR Draw Text' node loads fonts that I place there however. What would cause this to not detect any fonts?
image

The only way I've been able to load a font is to convert the 'font' widget to an input, and then use the 'CR Select Font' node.

mask blur slow and resource intensive

mask blur node is slow, it takes several minutes to compute, depending on the blur amount, and while it's at work all cpu 20 threads are at 100% (i7-12700h).

Is that normal? This node is the only that blurs enough to be useful with differential diffusion inpainting.

Error occurred when executing PixelOEPixelize

Error occurred when executing PixelOEPixelize+:

No module named 'pixeloe'

File "F:\ComfyUI_windows_portable\ComfyUI\execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\ComfyUI_windows_portable\ComfyUI\execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\ComfyUI_windows_portable\ComfyUI\execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 1655, in execute
from pixeloe.pixelize import pixelize

ComfyUI Manager can't update this repo

Hi, I just pulled an update from ComfyUI Manager and this is the only repo it can't upgrade.

I also used the "try update" button, but it gave me this error:

update_error

(I'm also worried about that error because there's my full name twice under those red lines... How did it get that!? 😟)

Error occurred when executing ImageApplyLUT+: No module named 'colour'

Error occurred when executing ImageApplyLUT+:

No module named 'colour'

File "/mnt/drive0/AIGC/ComfyUI/execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/drive0/AIGC/ComfyUI/execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj. FUNCTION, allow_interrupt=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/drive0/AIGC/ComfyUI/execution.py", line 74, in map_node_over_list
results. append(getattr(obj, func)(**slice_dict(input_data_all, i)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/drive0/AIGC/ComfyUI/custom_nodes/ComfyUI_essentials/essentials.py", line 1242, in execute
from colour.io.luts. iridas_cube import read_LUT_IridasCube

Import Failed

Hello! This was working fine until recently. I've tried moving all nodes out of my custom nodes folder except Essentials and it still won't import after restarting.

I've even deleted and tried reinstalling from scratch. Please help! Thanks in advance! :-)

Screenshot 2023-12-28 at 3 23 43 PM

Ksampler with noise injection is broken

Hi Matteo

Everything was fine with the ksampler with noise injection. The next day nothing worked, it gives black images for the same setting. There's no error message in the terminal and all updates do nothing. It only works for a batch size of 1 over we have black image. Moreover, for the same seed and the same parameters, the image with batch size 1 doesn't give the same image as before.
What could be the problem?

Just for your information before updating I have time to time in the terminal this error. Now it has disappeared, I don't know if it is related to your ksampler.
'## sdxl-ksample [3c7e70]' is broken. Maybe there are missing nodes. (INFO: ### [ERROR] "Multiply" node is not installed. Please install that node through ComfyUI-Mananger. ###)

Thank you

Import Failed

I tried both manual installation and Git pulling. Comfyui and dependencies are upto date. Please help with installation
Screenshot_3

K采样器差异化噪波错误

当我运行K采样器差异化噪波的时候提示Error occurred when executing KSamplerVariationsWithNoise+:

'BaseModel' object has no attribute 'get_model_object'

ModuleNotFoundError: No module named 'comfy_extras.nodes_stable3d

This node pack is currently not working for me when downloaded through the manager.

"(IMPORT FAILED) ComfyUI Essentials"

File "C:\Program Files\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 730, in
from comfy_extras.nodes_stable3d import camera_embeddings
ModuleNotFoundError: No module named 'comfy_extras.nodes_stable3d'

Cannot import C:\Program Files\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_essentials module for custom nodes: No module named 'comfy_extras.nodes_stable3d'

The issue gets resolved if I delete the part about StableZero123_Increments from essentials.py

Import failed / comfy ui / mac pinokio

Trying to use "Product Photography Relight v3 " workflow, missing two nodes included in the essentials: ImageResize+ and MaskFromColor+. Tried to install Essentials few times through manager and through git url, restarted, updated comfy. Installed anaconda (someone on another thread wrote it could be useful). import failed every time.

Tensor Debug Missing

Watching your videos, I was hoping to be able to use the Tenser debug to view the sizes of my clip inputs. Do you have a new improved method for viewing those?

LUTs location

I have a bunch of CUBE files that I use with the LUTs node from the Bilbox collection and they are detected and work just fine there. I placed them in the luts folder in ComfyUI Essentials because I want to reduce the number of extensions with overlapping functions I have. UNfortunately I have refreshed and restarted multiple times but the files fail to be recognised by the ComfyUI Essentials LUTs node. Am I missing something. On a side note, I really appreciate your work and your content on YT. Thank you for the tremendous value you provide to the community.

StableZero123_Increments: The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 1

When I try to input a generated image which background has been removed to StableZero123_Increments node, I am get this error:

Error occurred when executing StableZero123_Increments:

The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 1

File "/workspace/ComfyUI/execution.py", line 153, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "/workspace/ComfyUI/execution.py", line 83, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "/workspace/ComfyUI/execution.py", line 76, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "/workspace/ComfyUI/custom_nodes/ComfyUI_essentials/essentials.py", line 753, in encode
output = clip_vision.encode_image(init_image)
File "/workspace/ComfyUI/comfy/clip_vision.py", line 49, in encode_image
pixel_values = clip_preprocess(image.to(self.load_device)).float()
File "/workspace/ComfyUI/comfy/clip_vision.py", line 30, in clip_preprocess
return (image - mean.view([3,1,1])) / std.view([3,1,1])

I used https://github.com/Jcd1230/rembg-comfyui-node to remove background

But if I give it direct from "VAE Decode" then it is working. Why?

Please help me

My workflow image:
workflow

Workflow JSON in attachment:
sd_3d_bg_rem_steps.json

msak preview :No preview properties are displayed

Hello blogger, as shown in the picture, I used the MASK preview node and the prompt was no preview property. I updated comfyui and the system, but couldn't fix the problem. I downloaded a new node (ComfyUI_essentials) to upload the same error. Can you help me see what went wrong? Thank you very much. Puzzled me for a long time.
下载

Mask Preview error

ERROR:root:!!! Exception during processing !!!
ERROR:root:Traceback (most recent call last):
  File "E:\ComfyUI\ComfyUI\execution.py", line 153, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
  File "E:\ComfyUI\ComfyUI\execution.py", line 83, in get_output_data
    return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
  File "E:\ComfyUI\ComfyUI\execution.py", line 76, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
  File "E:\ComfyUI\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 318, in execute
    results = self.save_images(preview, filename_prefix, prompt, extra_pnginfo)
  File "E:\ComfyUI\ComfyUI\nodes.py", line 1374, in save_images
    img.save(os.path.join(full_output_folder, file), pnginfo=metadata, compress_level=self.compress_level)
AttributeError: 'MaskPreview' object has no attribute 'compress_level'

ModuleNotFoundError: No module named 'rembg'

!!! Exception during processing !!!
Traceback (most recent call last):
File "/src/ComfyUI/execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "/src/ComfyUI/execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "/src/ComfyUI/execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "/src/ComfyUI/custom_nodes/ComfyUI_essentials/essentials.py", line 1604, in execute
from rembg import new_session as rembg_new_session
ModuleNotFoundError: No module named 'rembg'

Cool nodes. Thank you very much.

Thank you Cubiq for all your nodes, especially Image Enhance Difference.
How about a node for Image Histogram please? Almost all photo editing softwares have that tool to check color, tonal range, and identifies under/overexposed photos, among other things.

Moreover, I can also use the MEAN value with the output image of Image Enhance Difference node to quickly gauge the difference between the original and edited images. The larger the Mean number, the more different they are, while a value of 0 (black output image) means both images are identical.

2023-11-17 16_49_57-Window

2023-11-17 17_01_51-Window

CLIPSeg tuple index out of range

I got the following error when trying to run the PuLID_refiner workflow on comfyui deployed on a lightning.ai workspace. The CLIPSeg values were: prompt=face, threshold=0.40, smooth=21, dilate=2, blur=23.

Error occurred when executing ApplyCLIPSeg+:

tuple index out of range

File "/teamspace/studios/this_studio/ComfyUI/execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "/teamspace/studios/this_studio/ComfyUI/execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "/teamspace/studios/this_studio/ComfyUI/execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "/teamspace/studios/this_studio/ComfyUI/custom_nodes/ComfyUI_essentials/segmentation.py", line 64, in execute
outputs = T.functional.gaussian_blur(outputs, smooth)
File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/torchvision/transforms/v2/functional/_misc.py", line 81, in gaussian_blur
return kernel(inpt, kernel_size=kernel_size, sigma=sigma)
File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/torchvision/transforms/v2/functional/_misc.py", line 146, in gaussian_blur_image
kernel = kernel.expand(shape[-3], 1, kernel.shape[0], kernel.shape[1])

When I tried the same job locally it worked fine. I know this might be a problem with the environment, but if you have any ideas or suggestions I'd greatly appreciate it.

ImageRandomTransform error

i follow your youtube video and got this error

Error occurred when executing ImageRandomTransform+:

Argument interpolation should be an InterpolationMode or a corresponding Pillow integer constant, but got InterpolationMode.BILINEAR.

File "D:\ai\ComfyUI\execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "D:\ai\ComfyUI\execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "D:\ai\ComfyUI\execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "D:\ai\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 419, in execute
out.append(tramsforms(i.unsqueeze(0)))
File "D:\ai\ComfyUI\python\lib\site-packages\torch\nn\modules\module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "D:\ai\ComfyUI\python\lib\site-packages\torch\nn\modules\module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "D:\ai\ComfyUI\python\lib\site-packages\torchvision\transforms\v2_container.py", line 51, in forward
outputs = transform(*inputs)
File "D:\ai\ComfyUI\python\lib\site-packages\torch\nn\modules\module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "D:\ai\ComfyUI\python\lib\site-packages\torch\nn\modules\module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "D:\ai\ComfyUI\python\lib\site-packages\torchvision\transforms\v2_transform.py", line 171, in forward
flat_outputs = [
File "D:\ai\ComfyUI\python\lib\site-packages\torchvision\transforms\v2_transform.py", line 172, in
self._transform(inpt, params) if needs_transform else inpt
File "D:\ai\ComfyUI\python\lib\site-packages\torchvision\transforms\v2_geometry.py", line 972, in _transform
return self._call_kernel(
File "D:\ai\ComfyUI\python\lib\site-packages\torchvision\transforms\v2_transform.py", line 35, in _call_kernel
return kernel(inpt, *args, **kwargs)
File "D:\ai\ComfyUI\python\lib\site-packages\torchvision\transforms\v2\functional_geometry.py", line 1502, in perspective_image
interpolation = _check_interpolation(interpolation)
File "D:\ai\ComfyUI\python\lib\site-packages\torchvision\transforms\v2\functional_geometry.py", line 34, in _check_interpolation
raise ValueError(

差异噪波报错

Error occurred when executing KSamplerVariationsWithNoise+:

'SDXL' object has no attribute 'get_model_object' 当我运行差异噪波节点的时候弹出以上报错,以前的版本并不会,但是当我更新到最新的版本的时候就出现了错误

Request Slider on Desaturate.

Is it possible to have a slider/weight on how much desaturating there is on the image? I don't want it completely remove the color and make the image black and white, but let's say 10% or 20% desaturation.

Thank you in advance.

Mask Blur changes

Mask blur used to blur the outer regions of the mask, but now it blurs the entire mask.
While this change was probably intended, I prefer the old behaviour. Maybe we can get a new node that works like before?

feat: ImageResize: total number of pixels as alternative to size

The first thing I would like to say is: Thank you very much for your work, the nodes are very useful

Is it possible to add the total number of pixels to the ImageResize node as an alternative to width and height?

The situation is as follows: we have an upscaler workflow on Suprim, we need to downscale if the image is larger than a certain size.

Using width and height in this case is less convenient than the total number of pixels - it greatly cuts images in 16:9 format, when based on the total number of pixels such images would pass without resizing.

Mask preview+ error

This error message appear wen trying to extract a mask from a video with ImageBatch2imageList > BBox detector > Masks to masl list > Mask Preview+
Screenshot 2024-02-02 023200

mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
mask len: 1080
2024-02-02 02:17:21,281 - root - ERROR - !!! Exception during processing !!!
2024-02-02 02:17:21,282 - root - ERROR - Traceback (most recent call last):
File "K:\ComfyUI\ComfyUI\execution.py", line 152, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "K:\ComfyUI\ComfyUI\execution.py", line 82, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "K:\ComfyUI\ComfyUI\execution.py", line 75, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "K:\ComfyUI\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 397, in execute
preview = mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])).movedim(1, -1).expand(-1, -1, -1, 3)
~~~~~~~~~~^^^^
IndexError: tuple index out of range

Prompt executed in 70.46 seconds
got prompt
2024-02-02 02:23:19,623 - root - ERROR - Failed to validate prompt for output 79:
2024-02-02 02:23:19,624 - root - ERROR - * (prompt):
2024-02-02 02:23:19,624 - root - ERROR - - Required input is missing: images
2024-02-02 02:23:19,624 - root - ERROR - * VHS_VideoCombine 79:
2024-02-02 02:23:19,624 - root - ERROR - - Required input is missing: images
2024-02-02 02:23:19,624 - root - ERROR - Output will be ignored
2024-02-02 02:23:19,629 - root - ERROR - Failed to validate prompt for output 71:
2024-02-02 02:23:19,630 - root - ERROR - * (prompt):
2024-02-02 02:23:19,630 - root - ERROR - - Required input is missing: images
2024-02-02 02:23:19,630 - root - ERROR - * PreviewImage 71:
2024-02-02 02:23:19,630 - root - ERROR - - Required input is missing: images
2024-02-02 02:23:19,630 - root - ERROR - Output will be ignored
2024-02-02 02:23:19,634 - root - ERROR - Failed to validate prompt for output 60:
2024-02-02 02:23:19,634 - root - ERROR - * (prompt):
2024-02-02 02:23:19,634 - root - ERROR - - Required input is missing: images
2024-02-02 02:23:19,634 - root - ERROR - * VHS_VideoCombine 60:
2024-02-02 02:23:19,634 - root - ERROR - - Required input is missing: images
2024-02-02 02:23:19,634 - root - ERROR - Output will be ignored
2024-02-02 02:24:37,807 - root - ERROR - !!! Exception during processing !!!
2024-02-02 02:24:37,808 - root - ERROR - Traceback (most recent call last):
File "K:\ComfyUI\ComfyUI\execution.py", line 152, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "K:\ComfyUI\ComfyUI\execution.py", line 82, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "K:\ComfyUI\ComfyUI\execution.py", line 75, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "K:\ComfyUI\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 397, in execute
preview = mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])).movedim(1, -1).expand(-1, -1, -1, 3)
~~~~~~~~~~^^^^
IndexError: tuple index out of range

Prompt executed in 78.46 seconds

error when i use sam model : !!! Exception during processing!!! '{}' is not of type 'array'

Snipaste_2024-04-30_05-00-32
my workflow :
workflow

Error occurred when executing ImageRemoveBackground+:

'{}' is not of type 'array'

Failed validating 'type' in schema:
{'items': {'properties': {'data': {'items': {'type': 'number'},
'type': 'array'},
'label': {'type': 'integer'},
'type': {'type': 'string'}},
'type': 'object'},
'type': 'array'}

On instance:
'{}'

File "D:\AI-Starter\ComfyUI_windows\ComfyUI\execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI-Starter\ComfyUI_windows\ComfyUI\execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI-Starter\ComfyUI_windows\ComfyUI\execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI-Starter\ComfyUI_windows\ComfyUI\custom_nodes\ComfyUI_essentials\essentials.py", line 1637, in execute
img = rembg(img, session=rembg_session)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI-Starter\ComfyUI_windows\ComfyUI\python\Lib\site-packages\rembg\bg.py", line 260, in remove
masks = session.predict(img, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI-Starter\ComfyUI_windows\ComfyUI\python\Lib\site-packages\rembg\sessions\sam.py", line 169, in predict
validate(instance=prompt, schema=schema)
File "D:\AI-Starter\ComfyUI_windows\ComfyUI\python\Lib\site-packages\jsonschema\validators.py", line 1312, in validate
raise error

How about updating README to showcase this plugin

I'm about to try this plugin since it was suggested by the IPAdapter author here, and surely I'm not the only one interested in it. However, the README leaves a lot to be desired.

There's no need to convert it to Mozilla Developer Network article either, a few screenshots to showcase the plugin provided nodes would be enough and relatively easy to add. Thanks.

Feature: Add cropping menu to 🔧 Image Resize node

Hello,

If "keep_proportion" is set to true and "multiple_of" is set to not 0, the image will not keep its proportions.

My suggestion is to add the cropping position menu (from ImageCrop+) to the 🔧 Image Resize node so the image can be cropped when both keep_proportion and multiple_of are required.

This is my work around at the moment but if it could be combined into a single node that would be a great quality of life.
Thanks
image

Request/Suggestion: resolution and ratio choices

image

Modified some resolution and it works with sd15.
This is my presets:
image

    def INPUT_TYPES(s):
        return {"required": {
            "resolution": (["512x768 (2:3 portrait)","576x1024 (9:16 portrait)","640x1536 (9:21 portrait)","704x1408 (1:2 portrait)","768x1024 (3:4 portrait)","768x1216 (2:3 portrait)","768x1152 (2:3 portrait)","768x1344 (9:16 portrait)","768x1280 (3:5 portrait)","832x1216 (2:3 portrait)","840x1176 (5:7 portrait)","896x1152 (3:4 portrait)","512x512 (1:1 square)","1024x1024 (1:1 square)","768x512 (3:2 landscape)","1024x576 (16:9 landscape)","1024x768 (4:3 landscape)","1152x768 (3:2 landscape)","1152x896 (4:3 landscape)","1216x768 (8:5 landscape)","1216x832 (3:2 landscape)","1280x768 (5:3 landscape)","1344x768 (16:9 landscape)","1472x704 (19:9 landscape)","1536x640 (21:9 landscape)",], {"default": "1024x1024 (1:1 square)"}),
            "batch_size": ("INT", {"default": 1, "min": 1, "max": 4096}),
            }}

Original idea from mikey nodes, but mikey nodes do not output image resolution for control.
image

Subdirectories in the LUTS directory

When .cube files are stored in subdirectories of the ComfyUI_essentials/luts/ directory, they are not available for selection in the Image Apply LUT node.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.