55 lines
1.6 KiB
Markdown
55 lines
1.6 KiB
Markdown
|
|
# Documentation
|
|
- Class name: SAMPreprocessor
|
|
- Category: ControlNet Preprocessors/others
|
|
- Output node: False
|
|
- Repo Ref: https://github.com/comfyanonymous/ComfyUI
|
|
|
|
SAMPreprocessor节点的设计目的是使用SAM(Segment Anything Model)方法对图像进行分割。它预处理图像以增强其效果,为进一步的处理或分析做准备,特别聚焦于分割任务。
|
|
|
|
# Input types
|
|
## Required
|
|
- image
|
|
- 需要进行分割的输入图像。这是SAMPreprocessor操作的主要数据,旨在识别和分割图像中的各种元素。
|
|
- Comfy dtype: IMAGE
|
|
- Python dtype: torch.Tensor
|
|
## Optional
|
|
- resolution
|
|
- 指定在处理前将输入图像调整至的分辨率。此参数可能会影响分割的精度和性能。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
|
|
# Output types
|
|
- image
|
|
- 输出是输入图像的分割版本,其中不同的分割部分被识别和分离。
|
|
- Comfy dtype: IMAGE
|
|
- Python dtype: torch.Tensor
|
|
|
|
|
|
## Usage tips
|
|
- Infra type: `GPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class SAM_Preprocessor:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return create_node_input_types()
|
|
|
|
RETURN_TYPES = ("IMAGE",)
|
|
FUNCTION = "execute"
|
|
|
|
CATEGORY = "ControlNet Preprocessors/others"
|
|
|
|
def execute(self, image, resolution=512, **kwargs):
|
|
from controlnet_aux.sam import SamDetector
|
|
|
|
mobile_sam = SamDetector.from_pretrained().to(model_management.get_torch_device())
|
|
out = common_annotator_call(mobile_sam, image, resolution=resolution)
|
|
del mobile_sam
|
|
return (out, )
|
|
|
|
```
|