Files
2026-04-01 18:45:42 +08:00

76 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IMGLAB_ComfyUI
IMGLAB custom nodes for ComfyUI.
---
## Auto Mask (IMGLAB)
![Auto Mask (IMGLAB)](assets/IMGLAB%20Auto%20Mask%20Node.jpg)
## Example
![Example](assets/Example1.jpg)
A ComfyUI custom node that accepts one image and up to 8 mask inputs, compares dimensions, and outputs the first matching mask — with configurable edge-case handling and an optional fallback (else) mask.
## Installation
Drop the `IMGLAB_ComfyUI/` folder into `ComfyUI/custom_nodes/` and restart ComfyUI.
```
ComfyUI/
└── custom_nodes/
└── IMGLAB_ComfyUI/
├── __init__.py
├── nodes.py
├── README.md
├── pyproject.toml
└── js/
└── auto_mask.js
```
Or install via ComfyUI Manager — search for `IMGLAB_ComfyUI`.
## Inputs
| Input | Type | Description |
|---|---|---|
| `image` | IMAGE | Source image — defines the target resolution |
| `multi_match` | combo | Behaviour when multiple masks match the image size |
| `no_match` | combo | Behaviour when no mask matches the image size |
| `mask_1` … `mask_8` | MASK | Dynamic slots — next slot appears as each one is connected |
| `else` | MASK | Fallback mask — only visible when `no_match = Use Else Mask` |
## Outputs
| Output | Type | Description |
|---|---|---|
| `image` | IMAGE | Direct passthrough of the input image |
| `mask` | MASK | First mask whose dimensions match the image (or fallback) |
| `rgba` | IMAGE | Input image with matched mask as alpha channel `[B,H,W,4]` |
## Edge Case Options
### multi_match — when 2+ masks share the image's exact dimensions:
| Option | Behaviour |
|---|---|
| `Use First Match` | Silently picks the lowest-numbered slot |
| `Raise Error` | Halts the queue listing the conflicting slot numbers |
### no_match — when no connected mask matches the image size:
| Option | Behaviour |
|---|---|
| `Output Empty Mask` | Outputs a zeroed mask (RGBA will be fully transparent) |
| `Use Else Mask` | Reveals an `else` input slot; uses it as the fallback output |
| `Raise Error` | Halts the queue listing the sizes that were connected |
> **Note:** If `Use Else Mask` is selected but `else` is not connected, the node will raise an error rather than silently fail.
## Node UI
- **Image slot** — shows resolution (`W×H`) in grey after execution
- **Mask slots** — show resolution coloured green (match) or red (mismatch); unconnected slots show a faint grey dot
- **Else slot** — only visible when `no_match = Use Else Mask`
- Mask slots expand automatically as you connect them (up to 8), and collapse when disconnected