4.1 KiB
4.1 KiB
Documentation
- Class name: BboxDetectorForEach
- Category: ImpactPack/Detector
- Output node: False
- Repo Ref: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
BboxDetectorForEach节点旨在检测图像中每个段的边界框。它利用bbox_detector根据提供的阈值和其他参数识别和定位段,确保只检测到最相关的段。该节点在段检测工作流程中扮演着关键角色,通过自动化识别和隔离图像中的特定感兴趣区域来简化流程。
Input types
Required
- bbox_detector
- bbox_detector是节点的关键组件,负责在图像中实际检测边界框。它对节点的执行至关重要,因为它直接影响检测过程的准确性和效率。
- Comfy dtype: BBOX_DETECTOR
- Python dtype: torch.nn.Module
- image
- image参数是节点的输入数据,bbox_detector使用它来执行其检测任务。它是节点操作的基础,因为图像的质量和分辨率可以显著影响检测结果。
- Comfy dtype: IMAGE
- Python dtype: torch.Tensor
- threshold
- 阈值参数决定了bbox_detector在识别边界框时的灵敏度。它是一个重要的调整因素,可以影响检测到的段的数量和检测的精度。
- Comfy dtype: FLOAT
- Python dtype: float
- dilation
- 膨胀参数控制检测到的边界框的扩展。它在检测后处理中起着重要作用,可能增强检测到的段的覆盖范围。
- Comfy dtype: INT
- Python dtype: int
- crop_factor
- crop_factor参数用于调整检测后的裁剪段的大小。它对于微调分割过程以满足特定应用需求至关重要。
- Comfy dtype: FLOAT
- Python dtype: float
- drop_size
- drop_size参数指定在检测过程中要考虑的段的最小大小。它对于过滤掉噪声和无关数据至关重要,因此可以提高检测质量。
- Comfy dtype: INT
- Python dtype: int
Optional
- labels
- labels参数允许指定要检测的段类型。它是一个可选但有用的特性,用于集中检测特定的感兴趣的段。
- Comfy dtype: STRING
- Python dtype: str
- detailer_hook
- detailer_hook参数提供了一种机制,用于对检测到的边界框进行自定义后处理。它是一个高级特性,可用于将额外的处理步骤集成到检测工作流程中。
- Comfy dtype: DETAILER_HOOK
- Python dtype: Callable
Output types
- segs
- segs输出包含图像中检测到的段,每个段都带有其边界框信息。这是节点操作的主要结果,对于进一步的分析或处理至关重要。
- Comfy dtype: SEGS
- Python dtype: List[impact.core.SEG]
Usage tips
- Infra type: CPU
Source code
class BboxDetectorForEach:
@classmethod
def INPUT_TYPES(s):
return {'required': {'bbox_detector': ('BBOX_DETECTOR',), 'image': ('IMAGE',), 'threshold': ('FLOAT', {'default': 0.5, 'min': 0.0, 'max': 1.0, 'step': 0.01}), 'dilation': ('INT', {'default': 10, 'min': -512, 'max': 512, 'step': 1}), 'crop_factor': ('FLOAT', {'default': 3.0, 'min': 1.0, 'max': 100, 'step': 0.1}), 'drop_size': ('INT', {'min': 1, 'max': MAX_RESOLUTION, 'step': 1, 'default': 10}), 'labels': ('STRING', {'multiline': True, 'default': 'all', 'placeholder': 'List the types of segments to be allowed, separated by commas'})}, 'optional': {'detailer_hook': ('DETAILER_HOOK',)}}
RETURN_TYPES = ('SEGS',)
FUNCTION = 'doit'
CATEGORY = 'ImpactPack/Detector'
def doit(self, bbox_detector, image, threshold, dilation, crop_factor, drop_size, labels=None, detailer_hook=None):
if len(image) > 1:
raise Exception('[Impact Pack] ERROR: BboxDetectorForEach does not allow image batches.\nPlease refer to https://github.com/ltdrdata/ComfyUI-extension-tutorials/blob/Main/ComfyUI-Impact-Pack/tutorial/batching-detailer.md for more information.')
segs = bbox_detector.detect(image, threshold, dilation, crop_factor, drop_size, detailer_hook)
if labels is not None and labels != '':
labels = labels.split(',')
if len(labels) > 0:
(segs, _) = segs_nodes.SEGSLabelFilter.filter(segs, labels)
return (segs,)