2.3 KiB
2.3 KiB
Documentation
- Class name: DensePosePreprocessor
- Category: ControlNet Preprocessors/Faces and Poses Estimators
- Output node: False
DensePosePreprocessor节点旨在从图像中估算出密集的人体姿态。它使用选定的DensePose模型和颜色映射对图像进行预处理,以生成详细的身体姿态估计。
Input types
Required
- image
- 需要进行处理以估算密集姿态的输入图像。这是进行姿态估计的主要输入图像。
- Comfy dtype: IMAGE
- Python dtype: torch.Tensor
Optional
- model
- 指定用于姿态估计的DensePose模型。模型的选择可能会影响姿态估计的准确性和性能。
- Comfy dtype: COMBO[STRING]
- Python dtype: List[str]
- cmap
- 决定用于可视化姿态估计结果的颜色映射。不同的颜色映射可以提供不同的视觉清晰度和美感。
- Comfy dtype: COMBO[STRING]
- Python dtype: List[str]
- resolution
- 处理前将输入图像调整到的分辨率。更高的分辨率可能会导致更详细的姿态估计,但可能会增加处理时间。
- Comfy dtype: INT
- Python dtype: int
Output types
- image
- 输出一个根据所选颜色映射可视化的密集姿态估计图像。
- Comfy dtype: IMAGE
- Python dtype: Tuple[torch.Tensor]
Usage tips
- Infra type:
GPU - Common nodes: unknown
Source code
class DensePose_Preprocessor:
@classmethod
def INPUT_TYPES(s):
return create_node_input_types(
model=(["densepose_r50_fpn_dl.torchscript", "densepose_r101_fpn_dl.torchscript"], {"default": "densepose_r50_fpn_dl.torchscript"}),
cmap=(["Viridis (MagicAnimate)", "Parula (CivitAI)"], {"default": "Viridis (MagicAnimate)"})
)
RETURN_TYPES = ("IMAGE",)
FUNCTION = "execute"
CATEGORY = "ControlNet Preprocessors/Faces and Poses Estimators"
def execute(self, image, model, cmap, resolution=512):
from controlnet_aux.densepose import DenseposeDetector
model = DenseposeDetector \
.from_pretrained(filename=model) \
.to(model_management.get_torch_device())
return (common_annotator_call(model, image, cmap="viridis" if "Viridis" in cmap else "parula", resolution=resolution), )