Files
CavinHuang-comfyui-nodes-docs/docs/Humans4DLoader.md
2024-07-04 08:39:03 +08:00

66 lines
2.4 KiB
Markdown

# Documentation
- Class name: Humans4DLoader
- Category: MotionDiff
- Output node: False
Humans4DLoader节点旨在加载和准备4D人体模型,以便进行后续处理或分析。它负责下载必要的模型和配置,设置模型以供执行,并确保这些模型可以用于诸如运动分析或3D重建等任务。
# Input types
## Required
- detector
- 指定用于识别图像中人体的检测器模型。检测器的选择可能会影响人体检测的准确性和性能。
- Comfy dtype: COMBO[STRING]
- Python dtype: str
- fp16
- 指示是否对模型使用半精度浮点格式(FP16),这可能会在兼容的硬件上提高性能。
- Comfy dtype: BOOLEAN
- Python dtype: bool
# Output types
- human4d_model
- 输出是一个结构化对象,包含加载的4D人体模型、其配置和检测器,可以进行进一步处理。
- Comfy dtype: HUMAN4D_MODEL
- Python dtype: SimpleNamespace
## Usage tips
- Infra type: `GPU`
- Common nodes: unknown
## Source code
```python
class Humans4DLoader:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"detector": (["person_yolov8m-seg.pt", "person_yolov8s-seg.pt", "yolov8x.pt", "yolov9c.pt", "yolov9e.pt"], {"default": "person_yolov8m-seg.pt"}),
"fp16": ("BOOLEAN", {"default": False})
}
}
RETURN_TYPES = ("HUMAN4D_MODEL", )
FUNCTION = "load"
CATEGORY = "MotionDiff"
def load(self, detector, fp16):
url_prefix = "https://github.com/ultralytics/assets/releases/latest/download/"
if "person" in detector:
url_prefix = "https://huggingface.co/Bingsu/adetailer/resolve/main/"
download_models({
detector: url_prefix+detector,
"model_config.yaml": "https://huggingface.co/spaces/brjathu/HMR2.0/raw/main/logs/train/multiruns/hmr2/0/model_config.yaml",
"epoch=35-step=1000000.ckpt": "https://huggingface.co/spaces/brjathu/HMR2.0/resolve/main/logs/train/multiruns/hmr2/0/checkpoints/epoch%3D35-step%3D1000000.ckpt",
})
model, model_cfg = load_hmr2(DEFAULT_CHECKPOINT)
device = get_torch_device()
model = model.to(device)
if fp16:
model = model.half()
detector = YOLO(str(Path(CACHE_DIR_4DHUMANS) / detector))
return (SimpleNamespace(human4d=model, model_cfg=model_cfg, detector=detector, fp16=fp16), )
```