62 lines
2.6 KiB
Markdown
62 lines
2.6 KiB
Markdown
# Documentation
|
|
- Class name: SEGSPreviewCNet
|
|
- Category: ImpactPack/Util
|
|
- Output node: True
|
|
- Repo Ref: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
|
|
|
|
SEGSPreviewCNet 是一个用于处理和预览分割结果的节点。它接受分割数据作为输入,并生成一系列预览图像,增强了对分割工作的可视化检查和分析。该节点在提供分割工作的可视化摘要方面至关重要,允许快速评估并在需要时进行进一步操作。
|
|
|
|
# Input types
|
|
## Required
|
|
- segs
|
|
- 'ssegs' 参数对于节点的操作至关重要,因为它提供了节点将处理的分割数据。这是一个必需的输入,它通过确定生成的预览图像的内容直接影响节点的输出。
|
|
- Comfy dtype: SEGS
|
|
- Python dtype: List[Tuple[str, SEG]]
|
|
|
|
# Output types
|
|
- ui
|
|
- 输出中的 'ui' 参数非常重要,因为它包含了将显示给用户的用户界面元素。它包括代表分割预览的图像列表,这对于用户交互和视觉反馈至关重要。
|
|
- Comfy dtype: DICT
|
|
- Python dtype: Dict[str, Any]
|
|
- result
|
|
- 输出中的 'result' 参数是节点处理的图像集合。它是节点的主要输出,包含了分割数据的视觉表示,这是节点功能的主要目标。
|
|
- Comfy dtype: COMBO[IMAGE]
|
|
- Python dtype: Tuple[List[Image.Image], ...]
|
|
|
|
# Usage tips
|
|
- Infra type: CPU
|
|
|
|
# Source code
|
|
```
|
|
class SEGSPreviewCNet:
|
|
|
|
def __init__(self):
|
|
self.output_dir = folder_paths.get_temp_directory()
|
|
self.type = 'temp'
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {'required': {'segs': ('SEGS',)}}
|
|
RETURN_TYPES = ('IMAGE',)
|
|
OUTPUT_IS_LIST = (True,)
|
|
FUNCTION = 'doit'
|
|
CATEGORY = 'ImpactPack/Util'
|
|
OUTPUT_NODE = True
|
|
|
|
def doit(self, segs):
|
|
(full_output_folder, filename, counter, subfolder, filename_prefix) = folder_paths.get_save_image_path('impact_seg_preview', self.output_dir, segs[0][1], segs[0][0])
|
|
results = list()
|
|
result_image_list = []
|
|
for seg in segs[1]:
|
|
file = f'{filename}_{counter:05}_.webp'
|
|
if seg.control_net_wrapper is not None and seg.control_net_wrapper.control_image is not None:
|
|
cnet_image = seg.control_net_wrapper.control_image
|
|
result_image_list.append(cnet_image)
|
|
else:
|
|
cnet_image = empty_pil_tensor(64, 64)
|
|
cnet_pil = utils.tensor2pil(cnet_image)
|
|
cnet_pil.save(os.path.join(full_output_folder, file))
|
|
results.append({'filename': file, 'subfolder': subfolder, 'type': self.type})
|
|
counter += 1
|
|
return {'ui': {'images': results}, 'result': (result_image_list,)}
|
|
``` |