--- license: apache-2.0 library_name: onnx tags: - image-segmentation - face-parsing - portrait-segmentation - onnx - comfyui --- # EasyPortrait ONNX ONNX exports of the pretrained EasyPortrait portrait segmentation and face parsing checkpoints. The original checkpoints and training code were published by the EasyPortrait authors in [hukenovs/easyportrait](https://github.com/hukenovs/easyportrait). This repository exists to make the models easier to use in modern runtimes, especially ComfyUI environments where installing the old `mmsegmentation` / `mmcv-full` stack can be slow or fragile. ## Files This repository contains 26 validated ONNX models and a `manifest.json`. Model families: - Portrait segmentation: - BiSeNet-V2 - DANet - DeepLabV3 - FastSCNN - FCN + MobileNetV2 - FPN + ResNet50 at 224, 384, 512, and 1024 - SegFormer-B0 at 224, 384, 512, and 1024 - Face parsing: - BiSeNet-V2 - DANet - DeepLabV3 - FastSCNN - FCN + MobileNetV2 - FPN + ResNet50 at 224, 384, 512, and 1024 - SegFormer-B0 at 224, 384, 512, and 1024 Three upstream README-only checkpoints are not included because they do not include enough model config metadata for reliable conversion: `extremec3net_ps`, `sinet_ps`, and `ehanet_fp`. ## Input And Output Each model expects a normalized tensor: - Input name: `image` - Input shape: `[batch, 3, model_size, model_size]` - Input dtype: `float32` - Channel order before normalization: BGR - Mean: `[143.55267075, 132.96705975, 126.94924335]` - Std: `[60.2625333, 60.32740275, 59.30988645]` Each model returns logits: - Output name: `logits` - Output shape: `[batch, classes, model_size, model_size]` - Output dtype: `float32` Use `argmax(axis=1)` to get the segmentation class map. Labels: - Portrait segmentation: `background`, `person` - Face parsing: `background`, `skin`, `left brow`, `right brow`, `left eye`, `right eye`, `lips`, `teeth` ## Validation The ONNX models were exported from the original PyTorch/mmseg checkpoints and validated with ONNX Runtime against the PyTorch/mmseg output. The validation compares logits and verifies that the final `argmax` segmentation agrees. See `manifest.json` for per-model metadata and validation values. ## ComfyUI These files are used by the ComfyUI custom node: [ComfyUI-EasyPortrait](https://github.com/sadzip/ComfyUI-EasyPortrait) The node downloads models from this repository on first use. ## Credits Thanks to the EasyPortrait authors for training and releasing the original models: - Original repository: [hukenovs/easyportrait](https://github.com/hukenovs/easyportrait) Co-authors of this ONNX conversion and ComfyUI integration: - sadzip - OpenAI Codex