Auto detecting, masking and inpainting with detection model.
Python
25
712 commits
updated May 2, 2026
A small fork with new features and modifications, verified to work with up-to-date ReForge only. (It can potentially work with other webUIs, but i am not promising to maintain them for anything other than ReForge)
Fix for newer Ultralytics included.
Current additional features:
Potential future features:
ADetailer is an extension for the stable diffusion webui that does automatic masking and inpainting. It is similar to the Detection Detailer.
You can install it directly from the Extensions tab.
download this repo and put it in your expensions(replace original adetailer)
| Model, Prompts | ||
|---|---|---|
| ADetailer model | Determine what to detect. | None = disable |
| ADetailer model classes | Comma separated class names to detect. only available when using YOLO World models | If blank, use default values. default = COCO 80 classes |
| ADetailer prompt, negative prompt | Prompts and negative prompts to apply | If left blank, it will use the same as the input. |
| Skip img2img | Skip img2img. In practice, this works by changing the step count of img2img to 1. | img2img only |
| Apply only on hires.fix | Skips lowres images, saving a lot of time. Applies only on hires pass. | |
| Append main prompt LoRAs | Append loras to adetailer prompt automatically. | |
| Append LoRA triggers | Also add triggers, if any are present in lora name. | Loras must follow this naming convention for trigger to work: <lora:lora name (trigger) blah blah:1> |
| Autotagging | |
|---|---|
| Enable Autotagging | Extend prompt by adding tags detected by WDv3 large tagger. |
| Detection | ||
|---|---|---|
| Detection model confidence threshold | Only objects with a detection model confidence above this threshold are used for inpainting. | |
| Mask min/max ratio | Only use masks whose area is between those ratios for the area of the entire image. | |
| Mask only the top k largest | Only use the k objects with the largest area of the bbox. | 0 to disable |
If you want to exclude objects in the background, try setting the min ratio to around 0.01.
| Mask Preprocessing | ||
|---|---|---|
| Mask x, y offset | Moves the mask horizontally and vertically by | |
| Mask erosion (-) / dilation (+) | Enlarge or reduce the detected mask. | opencv example |
| Mask merge mode | None: Inpaint each maskMerge: Merge all masks and inpaintMerge and Invert: Merge all masks and Invert, then inpaint |
Applied in this order: x, y offset → erosion/dilation → merge/invert.
Each option corresponds to a corresponding option on the inpaint tab. Therefore, please refer to the inpaint tab for usage details on how to use each option.
You can use the ControlNet extension if you have ControlNet installed and ControlNet models.
Support inpaint, scribble, lineart, openpose, tile, depth controlnet models. Once you choose a model, the preprocessor is set automatically. It works separately from the model set by the Controlnet extension.
If you select Passthrough, the controlnet settings you set outside of ADetailer will be used.
API request example: wiki/REST-API
[SEP], [SKIP], [PROMPT] tokens: wiki/Advanced
🎥 どこよりも詳しい After Detailer (adetailer)の使い方 ① 【Stable Diffusion】
🎥 どこよりも詳しい After Detailer (adetailer)の使い方 ② 【Stable Diffusion】
| Model | Target | mAP 50 | mAP 50-95 |
|---|---|---|---|
| face_yolov8n.pt | 2D / realistic face | 0.660 | 0.366 |
| face_yolov8s.pt | 2D / realistic face | 0.713 | 0.404 |
| hand_yolov8n.pt | 2D / realistic hand | 0.767 | 0.505 |
| person_yolov8n-seg.pt | 2D / realistic person | 0.782 (bbox) 0.761 (mask) | 0.555 (bbox) 0.460 (mask) |
| person_yolov8s-seg.pt | 2D / realistic person | 0.824 (bbox) 0.809 (mask) | 0.605 (bbox) 0.508 (mask) |
| mediapipe_face_full | realistic face | - | - |
| mediapipe_face_short | realistic face | - | - |
| mediapipe_face_mesh | realistic face | - | - |
The YOLO models can be found on huggingface Bingsu/adetailer and Anzhc/Anzhcs_YOLOs
For a detailed description of the YOLO8 model, see: https://docs.ultralytics.com/models/yolov8/#overview
YOLO World model: https://docs.ultralytics.com/models/yolo-world/
Put your ultralytics yolo model in models/adetailer. The model name should end with .pt.
It must be a bbox detection or segment model and use all label.
ADetailer works in three simple steps.
AADetailer is developed and tested using the SDXL model, for the latest version of ReForge repository only.
ADetailer is a derivative work that uses two AGPL-licensed works (stable-diffusion-webui, ultralytics) and is therefore distributed under the AGPL license.
Python
100.0%
Auto detecting, masking and inpainting with detection model.
Python
25
712 commits
updated May 2, 2026
A small fork with new features and modifications, verified to work with up-to-date ReForge only. (It can potentially work with other webUIs, but i am not promising to maintain them for anything other than ReForge)
Fix for newer Ultralytics included.
Current additional features:
Potential future features:
ADetailer is an extension for the stable diffusion webui that does automatic masking and inpainting. It is similar to the Detection Detailer.
You can install it directly from the Extensions tab.
download this repo and put it in your expensions(replace original adetailer)
| Model, Prompts | ||
|---|---|---|
| ADetailer model | Determine what to detect. | None = disable |
| ADetailer model classes | Comma separated class names to detect. only available when using YOLO World models | If blank, use default values. default = COCO 80 classes |
| ADetailer prompt, negative prompt | Prompts and negative prompts to apply | If left blank, it will use the same as the input. |
| Skip img2img | Skip img2img. In practice, this works by changing the step count of img2img to 1. | img2img only |
| Apply only on hires.fix | Skips lowres images, saving a lot of time. Applies only on hires pass. | |
| Append main prompt LoRAs | Append loras to adetailer prompt automatically. | |
| Append LoRA triggers | Also add triggers, if any are present in lora name. | Loras must follow this naming convention for trigger to work: <lora:lora name (trigger) blah blah:1> |
| Autotagging | |
|---|---|
| Enable Autotagging | Extend prompt by adding tags detected by WDv3 large tagger. |
| Detection | ||
|---|---|---|
| Detection model confidence threshold | Only objects with a detection model confidence above this threshold are used for inpainting. | |
| Mask min/max ratio | Only use masks whose area is between those ratios for the area of the entire image. | |
| Mask only the top k largest | Only use the k objects with the largest area of the bbox. | 0 to disable |
If you want to exclude objects in the background, try setting the min ratio to around 0.01.
| Mask Preprocessing | ||
|---|---|---|
| Mask x, y offset | Moves the mask horizontally and vertically by | |
| Mask erosion (-) / dilation (+) | Enlarge or reduce the detected mask. | opencv example |
| Mask merge mode | None: Inpaint each maskMerge: Merge all masks and inpaintMerge and Invert: Merge all masks and Invert, then inpaint |
Applied in this order: x, y offset → erosion/dilation → merge/invert.
Each option corresponds to a corresponding option on the inpaint tab. Therefore, please refer to the inpaint tab for usage details on how to use each option.
You can use the ControlNet extension if you have ControlNet installed and ControlNet models.
Support inpaint, scribble, lineart, openpose, tile, depth controlnet models. Once you choose a model, the preprocessor is set automatically. It works separately from the model set by the Controlnet extension.
If you select Passthrough, the controlnet settings you set outside of ADetailer will be used.
API request example: wiki/REST-API
[SEP], [SKIP], [PROMPT] tokens: wiki/Advanced
🎥 どこよりも詳しい After Detailer (adetailer)の使い方 ① 【Stable Diffusion】
🎥 どこよりも詳しい After Detailer (adetailer)の使い方 ② 【Stable Diffusion】
| Model | Target | mAP 50 | mAP 50-95 |
|---|---|---|---|
| face_yolov8n.pt | 2D / realistic face | 0.660 | 0.366 |
| face_yolov8s.pt | 2D / realistic face | 0.713 | 0.404 |
| hand_yolov8n.pt | 2D / realistic hand | 0.767 | 0.505 |
| person_yolov8n-seg.pt | 2D / realistic person | 0.782 (bbox) 0.761 (mask) | 0.555 (bbox) 0.460 (mask) |
| person_yolov8s-seg.pt | 2D / realistic person | 0.824 (bbox) 0.809 (mask) | 0.605 (bbox) 0.508 (mask) |
| mediapipe_face_full | realistic face | - | - |
| mediapipe_face_short | realistic face | - | - |
| mediapipe_face_mesh | realistic face | - | - |
The YOLO models can be found on huggingface Bingsu/adetailer and Anzhc/Anzhcs_YOLOs
For a detailed description of the YOLO8 model, see: https://docs.ultralytics.com/models/yolov8/#overview
YOLO World model: https://docs.ultralytics.com/models/yolo-world/
Put your ultralytics yolo model in models/adetailer. The model name should end with .pt.
It must be a bbox detection or segment model and use all label.
ADetailer works in three simple steps.
AADetailer is developed and tested using the SDXL model, for the latest version of ReForge repository only.
ADetailer is a derivative work that uses two AGPL-licensed works (stable-diffusion-webui, ultralytics) and is therefore distributed under the AGPL license.
Python
100.0%