ADetailer for NSFW AI: Sharp Faces and Hands (2026)

15 min read

ADetailer (the !After Detailer extension) automatically detects faces, hands, and people in your generation, masks each one, and inpaints it at full resolution, so distant or small faces come out sharp without manual work. Install it from the A1111/Forge extensions list, pick a detection model like face_yolov8n.pt, set a modest inpaint denoise around 0.4, and it fixes faces and hands as part of the same generation.

What ADetailer does

When you generate an image, small faces and hands only occupy a handful of pixels, so the model cannot resolve them well and they come out blurry, asymmetric, or distorted. ADetailer solves this with an automated after-detail pass: once the main image is generated, it runs an object detector to find faces (or hands, or whole people), masks each detected region, crops to it, regenerates that crop at the full generation resolution, and stitches it back. The result is the same Only-masked inpainting trick you would do by hand, but automatic and applied to every detected region in one go.

For NSFW work this is essential. Bodies are often the focus, faces sit further from the camera, and a great body with a melted face is a wasted generation. ADetailer rescues those faces automatically, and with a second tab it fixes hands in the same pass. It runs in both txt2img (refining as you generate) and img2img (refining an existing image).

The key insight is resolution. A face that is 64 pixels tall in a full image is rendered by the model as a 64-pixel face, with all the ambiguity that implies. ADetailer crops that face, scales the crop up to your full generation resolution (say 512 or 1024 pixels), regenerates it there where the model has plenty of room to place eyes, nose, and mouth correctly, then scales it back down and pastes it in. The face you see in the final image is effectively a full-resolution face shrunk to fit, which is why it looks dramatically sharper than the rest of the scene at that size. Understanding this is what makes the settings make sense: everything in ADetailer is in service of giving each small region a full-resolution second chance. If you want to test how a checkpoint handles faces before building a local pipeline, our free NSFW AI image generator lets you generate base images you can later refine locally with ADetailer.

YOLO detection boxes on face and hand regions, abstract concept

Installing ADetailer

ADetailer is a standard extension. In Automatic1111, go to Extensions, Install from URL, and add the repository, then apply and restart. Forge users often have it preinstalled; if not, the same install path works.

# A1111: Extensions > Install from URL
https://github.com/Bing-su/adetailer
# Then: Installed > Apply and restart UI

After restarting you get an ADetailer panel below the prompt. The detection models download automatically on first use and live in the models/adetailer folder. You do not need to fetch them manually in most installs, though on a restricted network you can download the YOLO model files and drop them into that folder by hand. If a model fails to appear in the dropdown, refresh the list or restart the UI, and confirm the file landed in models/adetailer rather than a checkpoint folder. The panel exposes one or more tabs (1st, 2nd, and so on), and each tab runs an independent detection-and-fix pass with its own model and settings, which is how you combine face and hand fixing.

Detection models

ADetailer ships with several YOLO detection models, and each finds a different thing. Picking the right model per tab is most of the setup.

  • face_yolov8n.pt / face_yolov8s.pt: detect faces. The n (nano) version is faster, the s (small) version is slightly more accurate. This is the default and the one you will use most.
  • hand_yolov8n.pt / hand_yolov8s.pt: detect hands. Use this in a second tab to fix fingers, the most common NSFW anatomy failure.
  • person_yolov8n-seg.pt / person_yolov8s-seg.pt: segment whole people. Useful for full-body refinement or for masking a person to apply different settings, though it is heavier and less commonly needed than face and hand.
  • mediapipe_face models: an alternative face detector that can catch faces the YOLO models miss, sometimes better for stylized or anime faces.

For most NSFW images, a face model in the first tab and a hand model in the second covers the two parts that break most often. The detailed hand workflow is in the fix hands guide.

Per-model denoise and key settings

The most important ADetailer setting is inpaint denoising strength, which works exactly like denoise in normal inpainting: how much the detected region changes. The right value differs by model.

# Face tab (typical):
ADetailer model: face_yolov8n.pt
Detection model confidence: 0.3
Inpaint denoising strength: 0.4
Inpaint only masked: enabled
Inpaint only masked padding: 32
Mask blur: 4
ADetailer prompt: detailed face, looking at viewer

# Hand tab (typical):
ADetailer model: hand_yolov8n.pt
Detection model confidence: 0.3
Inpaint denoising strength: 0.45
ADetailer prompt: detailed hand, five fingers

For faces, 0.4 is a strong default. Higher (0.5 to 0.6) changes the face more, which can fix a badly distorted one but risks altering identity and breaking consistency across a set. Lower (0.25 to 0.35) is for gentle cleanup. For hands, 0.4 to 0.5 rebuilds fingers without inventing a new pose. The detection confidence threshold (0.3 default) decides how sure the detector must be; raise it if it grabs non-faces, lower it if it misses a face turned away from the camera.

Inpaint only masked should stay enabled, because it is what gives the crop full resolution. The padding setting controls how much context the crop includes; 32 is a good default, raise toward 64 if the refined region does not blend.

Settings reference table

Setting Typical value What it does
Detection model face_yolov8n.pt Which object to detect and fix
Detection confidence 0.3 How sure the detector must be
Inpaint denoise (face) 0.4 How much the face changes
Inpaint denoise (hand) 0.45 How much the hand changes
Inpaint only masked enabled Crops and refines at full resolution
Only masked padding 32 Context included around the region
Mask blur 4 Softens the blend edge

Per-tab prompts

Each ADetailer tab has its own prompt and negative prompt fields, and using them well is the difference between a good and a great result. If you leave them blank, ADetailer reuses your main prompt, which is usually too busy for a small region. A short, region-specific prompt focuses the refinement.

For a face tab, a prompt like detailed face, soft lighting, looking at viewer guides the refinement toward a clean face without the rest of the scene description competing. For a hand tab, detailed hand, five fingers, natural pose works. You can also use the per-tab prompt to set a consistent face across a set by adding the same descriptive tokens (or a character LoRA trigger) in every face tab, which is a lightweight consistency trick. For deeper character consistency techniques that pair well with ADetailer, see the character consistency guide.

The per-tab negative prompt is equally useful: put your hand-failure terms in the hand tab’s negative and your face-failure terms in the face tab’s negative, so each pass targets its own failure modes. A solid baseline lives in the negative prompt master list.

One subtle but powerful use of the per-tab prompt is expression and gaze control. Because the face pass regenerates the face region, the tokens you put there strongly influence the final expression, so adding smiling, parted lips, or eyes closed in the face tab reliably changes the expression even if your main prompt did not nail it. The same applies to eye direction with looking at viewer or looking away. This makes ADetailer not just a repair tool but a directing tool for faces, letting you adjust expression after the fact without rerolling the whole image, which is especially handy when the body and composition are already perfect.

Per-region denoise sliders on a dark detailing panel, glowing

Combining face and hand tabs

To fix both in one generation, enable the first tab with a face model and the second tab with a hand model, each with its own denoise and prompt. ADetailer runs them in order: it detects and fixes all faces, then detects and fixes all hands. Each tab is independent, so you can tune them separately, which matters because faces and hands want different denoise and different prompts.

A few practical notes. Running two tabs roughly doubles the after-detail time, but it is still far faster than fixing each by hand. If a tab finds multiple instances (two faces, four hands in a couple), it fixes each one, which is exactly what you want for multi-person NSFW scenes. If results drift, disable the second tab, confirm the first works alone, then re-enable. ADetailer pairs naturally with manual inpainting for the rare region it cannot fix and with ControlNet for hands that need a structural guide.

Using ADetailer with NSFW checkpoints

ADetailer is checkpoint-agnostic: it works with SD1.5, SDXL, Pony, and Illustrious alike, because it simply runs an inpainting pass with whatever model is loaded. One nuance matters for SDXL based NSFW checkpoints like Pony and Illustrious: those models rely on score and quality tags, so include the relevant quality tags in your ADetailer per-tab prompt too, or the refined face can come out lower quality than the body around it. Another nuance is VAE; the after-detail pass uses your loaded VAE, so a mismatched or missing VAE shows up as a color-shifted face patch.

ADetailer can also load a different checkpoint or model just for its pass in some versions, which lets you fix faces with a face-specialist model while generating the body with your main NSFW checkpoint, though for most users keeping one checkpoint is simpler and works well. When choosing a base model, the best Stable Diffusion checkpoints for NSFW roundup notes which render faces cleanly so ADetailer has less to do.

Common mistakes

The most common mistake is setting denoise too high, which makes ADetailer replace the face with a new one that no longer matches the body’s lighting or the character’s identity. Keep face denoise around 0.4 and only raise it for genuinely broken faces. The second mistake is leaving the per-tab prompt blank, so the busy main prompt floods a small region and produces odd results. The third is forgetting that ADetailer can fight character consistency: if every face gets a 0.6 denoise pass, your character’s face drifts shot to shot, so lower denoise or add a consistent descriptor when you need the same face across a set. The fourth is disabling Inpaint only masked, which throws away the resolution benefit and makes the whole feature pointless. A fifth mistake is generating at too low a base resolution and expecting ADetailer to compensate: it can sharpen a small face, but if the whole image is 512 wide the face crop still has limited source detail to work from, so generate at a sensible resolution first and let ADetailer polish rather than rescue. Finally, do not stack three or four tabs when two will do, since each adds time for diminishing returns. Tune two tabs well, save them as defaults, and ADetailer quietly fixes faces and hands on every generation from then on.

Soft blurry region refining into crisp detail, neon on dark

ADetailer in txt2img vs img2img

ADetailer works in both tabs but the use case differs. In txt2img, it refines faces and hands as part of generating a fresh image, so every output is already cleaned up before you ever see it. This is the set-and-forget mode most people want: enable your two tabs once, leave them on, and stop seeing melted distant faces. In img2img, ADetailer refines an existing image you load in, which is useful when you have a finished picture from an earlier session, an upscaled image whose face softened during the upscale, or an image generated elsewhere that you want to repair locally. The settings behave identically; only the input differs.

A practical pattern is to run ADetailer in txt2img to get a clean base, upscale the image (which can soften faces again), then run a second ADetailer pass in img2img at a low face denoise of around 0.3 to re-crisp the face after upscaling. This two-stage approach keeps faces sharp through the whole pipeline rather than letting the upscale undo the first pass. If you generated your base image with our free NSFW AI image generator or any other tool, the img2img ADetailer pass is the way to repair its faces and hands without regenerating from scratch.

Order of operations and interaction with other tools

ADetailer runs after the main image and after most other steps, which matters when you stack tools. If you use a high-res fix or upscale in the same generation, ADetailer typically runs on the upscaled result, so it fixes faces at the larger resolution, which is ideal. When you also run ControlNet, the control applies to the main generation, and ADetailer’s inpaint pass then refines the detected regions on top, so a pose held by OpenPose stays intact while the face is sharpened. For hands that ADetailer alone cannot rescue, the fallback is manual inpainting with a depth ControlNet, and keeping ADetailer enabled costs nothing for the cases it does handle. Think of ADetailer as the automatic first line of defense: it catches the large majority of face and hand problems with zero manual effort, and you only reach for inpainting and ControlNet on the stubborn minority it leaves behind. Once your two tabs are dialed in and saved as your default, the feature becomes invisible infrastructure that quietly raises the quality floor of every image you make.

Frequently asked questions

What inpaint denoise should I use for faces in ADetailer?

Around 0.4 is the strong default for faces. Higher values of 0.5 to 0.6 change the face more, which can rescue a badly distorted face but risks altering identity and breaking consistency across a set. Lower values of 0.25 to 0.35 are for gentle cleanup of an already decent face. Start at 0.4, and only raise it when a face is genuinely broken rather than just soft.

What is the difference between the ADetailer detection models?

face_yolov8n and face_yolov8s detect faces, with the s version slightly more accurate and slower. Hand_yolov8n and hand_yolov8s detect hands for finger fixing. Person_yolov8-seg segments whole people for full-body work. Mediapipe_face models are an alternative face detector that can catch faces YOLO misses, sometimes better for anime or stylized faces. For most NSFW images, a face model plus a hand model in separate tabs covers what breaks most.

How do I fix both faces and hands with ADetailer?

Enable two tabs. Put a face model like face_yolov8n in the first tab and a hand model like hand_yolov8n in the second, each with its own denoise and prompt. ADetailer runs them in order, fixing all faces then all hands in the same generation. Tune them separately because faces and hands want different denoise. This roughly doubles after-detail time but is far faster than fixing each region by hand.

Why are my ADetailer faces changing the character’s identity?

Your inpaint denoise is too high, so ADetailer regenerates the face rather than refining it, producing a new face each time. Lower face denoise to around 0.4 or below for consistency. You can also add the same descriptive tokens or a character LoRA trigger in every face tab so the refined face stays on-model. High-denoise passes are the main reason a character drifts shot to shot across a set.

Do I need to fill in the per-tab prompt in ADetailer?

It is strongly recommended. If you leave the per-tab prompt blank, ADetailer reuses your full main prompt, which is too busy for a small face or hand region and produces odd results. A short, region-specific prompt like detailed face, looking at viewer or detailed hand, five fingers focuses the refinement. Use the per-tab negative prompt the same way, targeting face failures in the face tab and hand failures in the hand tab.

Does ADetailer work with Pony and Illustrious checkpoints?

Yes, ADetailer is checkpoint-agnostic and works with SD1.5, SDXL, Pony, and Illustrious. One nuance: Pony and Illustrious rely on score and quality tags, so include the relevant quality tags in your ADetailer per-tab prompt, or the refined face can come out lower quality than the body. Also keep your VAE loaded, since the after-detail pass uses it and a mismatched VAE shows as a color-shifted face patch.

What does Inpaint only masked do in ADetailer and should I keep it on?

Keep it on. Inpaint only masked crops to the detected region, regenerates it at full generation resolution, and stitches it back, which is what makes a small face sharp. Disabling it refines the region at the low effective resolution it had in the full image, throwing away the entire benefit of the feature. The padding setting around 32 pixels controls how much surrounding context the crop includes for clean blending.

Why does ADetailer sometimes miss a face or hand?

The detection confidence threshold may be too high, so the detector ignores a face turned away from the camera or a partly hidden hand. Lower the confidence from 0.3 toward 0.2 to catch more. Conversely, if it grabs non-faces or background objects, raise the threshold. For stylized or anime faces that YOLO misses, switch to a mediapipe_face detection model, which often catches faces the standard YOLO models skip.