The single biggest fix for bad AI eyes is an ADetailer face pass: enable ADetailer with the face_yolov8n model at denoise 0.4, inpaint only masked, and let it re-render the eyes at full resolution. Add detailed symmetrical eyes to the positive and crossed eyes, deformed pupils to the negative. A polished hosted option like AI Nudez handles eyes automatically.
You get a great composition and then the face falls apart: eyes point in two different directions, one iris melts into a smear, the pupils are different sizes, or the whole gaze looks dead and glassy. Bad eyes ruin an otherwise strong render because viewers look at the eyes first, before they register the pose, the lighting, or anything else. A single crossed eye can sink an image that is perfect everywhere else. The encouraging news is that eyes are one of the most reliably fixable defects, and the fix is almost always about resolution and a cleanup pass rather than luck or rerolling the seed a hundred times.
This content is for adults 18+ and every example character is a fictional adult, never a real person or a real likeness.
It is worth naming the failure modes so you know which one you have. The common ones are crossed or misaligned eyes, one eye lower or larger than the other, a melted or smeared iris, mismatched pupil sizes, extra pupils, and the flat “dead eye” with no catchlight or depth. Almost all of them share the same root: the eyes did not get enough pixels, and nothing came along afterward to repair them.
Why bad eyes happen
Eyes are tiny, high-detail structures packed with symmetry the brain checks instantly. The model has to spend a lot of pixels to get them right, and several things starve them of exactly that.
The face is too small in the frame. This is the number one cause by a wide margin. In a full-body shot the head might be only 80 pixels tall, which leaves maybe 6 pixels per eye. No model, however good, can draw a clean iris and a matched pair of pupils in 6 pixels. The eyes come out as smudges, or they cross because the model cannot resolve where each one should point. The wider your shot, the worse your eyes get.
No ADetailer or face-restore pass. Without a dedicated second pass, whatever the base render produced is final. Base renders rarely nail eyes on the first try, so skipping cleanup means accepting whatever the low-resolution first attempt happened to make.
CFG too high. High guidance melts irises and fuses pupils, the same over-cooking that plastics skin. Eyes are especially fragile to it because they contain fine circular structure that high CFG tends to smear into a blob.
Wrong checkpoint. Some anime or heavily stylized merges draw exaggerated, asymmetric, or oversized eyes by design. If you want realistic, symmetrical eyes, a photoreal base is far more forgiving and starts you much closer to correct.
Hires-fix never run. If you skip the upscale pass, the face stays low-detail and the eyes never get the pixels they need to resolve properly, even before any detailer is considered.
Missing gaze and eye tags. If you never specify where the eyes should look, the model guesses, and its guesses drift and cross. Naming the gaze anchors both eyes to the same target.

How to fix bad eyes
Easiest and highest-impact first. Most images are solved by the first step alone.
1. Turn on ADetailer with a face model
This is the fix that solves the majority of cases by itself, so start here. ADetailer detects the face, masks it, and re-renders it at full resolution with its own prompt, which means the eyes suddenly get hundreds of pixels instead of six. Use the face_yolov8n model, denoise 0.4, and enable inpaint only masked so it touches nothing but the detected face. The ADetailer faces guide walks through every field in order, and the full ADetailer guide covers installation if you do not have it yet.
2. Run hires-fix or an upscale so the face has pixels
Even before ADetailer runs, giving the whole image more resolution helps enormously. Run hires-fix at 1.5x so the base face is physically larger in pixels and the detailer has more real information to work from. A larger base face plus a detailer pass is far stronger than either alone. This pairs with the same logic used to add detail to images, where resolution is the raw material every enhancement depends on.
3. Inpaint just the eyes when a pass is not enough
For stubborn cases where ADetailer improves the face but one eye is still off, mask only the eyes and inpaint at denoise 0.35 to 0.5 with an eye-focused prompt. This surgical pass fixes a single melted iris or a mismatched pupil without disturbing the rest of the face you already like. It is slower than a full pass but gives you precise control over the one thing that is wrong.
4. Add eye tags to the positive
Include detailed symmetrical eyes, clear sharp eyes, both eyes aligned, looking at viewer. Naming the gaze and the symmetry stops the drift that causes crossing, because the model now has an explicit target to point both eyes toward rather than inventing one per eye.
5. Strengthen the negative
Add crossed eyes, asymmetric eyes, deformed pupils, extra pupils, lazy eye, misaligned eyes, cross-eyed to the negative. This targeted approach mirrors the way the negative prompt master list handles other defects: name the exact failure so the sampler steers around it instead of stumbling into it.
6. Lower CFG and frame tighter
Drop CFG to 4 or 5 so irises stop melting, and for eye-critical shots use a portrait or upper-body crop instead of a full-body composition. A tighter frame gives the eyes more native pixels before any pass even runs, which stacks with every other fix above. If you would rather not manage passes and crops at all, a polished hosted option like AI Nudez renders eyes cleanly by default. Bad eyes and the same-face problem often travel together, and the same detailer workflow helps both, much as it does for fixing hands, which are the other classic low-pixel failure.
Cause and fix at a glance
| Cause | Symptom | The fix |
|---|---|---|
| Face tiny in frame | Smudged or crossed eyes | Portrait crop plus hires-fix |
| No second pass | Whatever base drew is final | ADetailer face_yolov8n |
| CFG too high | Melted or fused pupils | Drop to CFG 4 to 5 |
| One iris broken | Single melted eye | Inpaint eyes at 0.4 |
| No gaze tag | Eyes drift and cross | Add looking at viewer |
| Stylized checkpoint | Exaggerated eyes | Switch to photoreal base |
Copy-paste settings
Base gen:
Sampler: DPM++ 2M Karras
Steps: 30
CFG scale: 4.5
Resolution: 832x1216 (portrait crop for eye-critical shots)
Hires fix: 4x-UltraSharp, denoise 0.4, upscale 1.5x
ADetailer (the key step):
Model: face_yolov8n
Denoise: 0.4
Inpaint only masked: yes
Mask blur: 8
ADetailer prompt: detailed symmetrical eyes, clear sharp eyes,
looking at viewer, sharp focus, adult face
Positive add:
detailed symmetrical eyes, clear sharp eyes, both eyes aligned,
natural gaze, looking at viewer
Negative prompt (eye-tuned):
crossed eyes, asymmetric eyes, deformed pupils, extra pupils, lazy eye,
misaligned eyes, cross-eyed, dead eyes, glowing eyes, heterochromia,
child, minor, underage, loli, shota
How to diagnose which cause is yours
Narrow the cause before you start fixing, because the fix depends heavily on which failure you have. Start by measuring the face in your image, roughly, in your head: how tall is the head as a fraction of the frame? If the head is a small part of a full-body composition, the eyes were never going to survive the base render and resolution is your problem, full stop. No prompt tweak changes that, so go straight to hires-fix and ADetailer. If instead the face is already large and the eyes are still crossed or melted, the cause is more likely high CFG or a stylized checkpoint, so test a lower CFG on the same seed and, if that fails, try a photoreal base.
The seed-locked test applies here just as it does elsewhere. Fix the seed, enable ADetailer alone with nothing else changed, and rerun. If the eyes snap into place, you have confirmed that the base simply lacked pixels and the detailer supplied them. If ADetailer helps but leaves one eye off, the fix is a targeted eye-only inpaint rather than more face passes. And if even a full ADetailer pass at moderate denoise produces a subtly different face each time, your denoise is too high and is regenerating identity instead of repairing detail, so pull it down toward 0.35. Reading the result of each single change teaches you which lever your particular setup responds to.

Preventing bad eyes next time
The best prevention is a workflow habit: for any image where the face matters, compose tighter and let a detailer run automatically. Make ADetailer with a face model part of your default generation setup rather than something you enable after seeing a bad result, since the cost is trivial and it quietly fixes eyes on the vast majority of portraits before you ever notice a problem. Pair that with a standing hires-fix pass at 1.5x so the base face always has enough resolution for the detailer to build on.
Frame with the eyes in mind from the start. If you know an image needs strong eye contact, choose a portrait or upper-body crop instead of a full-body shot, because native pixels on the face are worth more than any amount of post-processing. Keep a saved gaze block, detailed symmetrical eyes, clear sharp eyes, looking at viewer, in your default positive, and keep the eye-tuned negative saved next to it. Standardize on a photoreal base for realistic work so you are not fighting a stylized model’s exaggerated eye shapes on every render. With those defaults in place, tight framing, automatic hires-fix, automatic ADetailer, a saved gaze block, bad eyes stop being a per-image lottery and become a rare exception you handle with a quick eye-only inpaint.
A worked example
Picture a three-quarter body shot of a fictional adult character where the composition is lovely but the eyes are crossed and one iris looks smeared. Resist the urge to reroll seeds, because that wastes time on a problem that is mechanical, not random. First, judge the face size: in a three-quarter shot the head is small enough that the eyes had very few pixels, so resolution is your starting point. Keep the seed and enable hires-fix at 1.5x, which enlarges the whole image and gives the face real pixels to work with, then add an ADetailer pass with face_yolov8n at denoise 0.4 and inpaint only masked. Rerun. In most cases the eyes now point the same direction and the smeared iris resolves, because the detailer re-rendered the face at full resolution instead of leaving the tiny base version.
Suppose the pass fixes the alignment but one pupil is still slightly off. This is where a surgical eye-only inpaint earns its place. Mask just the two eyes, prompt detailed symmetrical eyes, clear sharp eyes, looking at viewer, set denoise to 0.4, and run it. Because you are only touching the eyes, the rest of the face you already liked stays untouched, and the one remaining defect gets a dedicated pass at high effective resolution.
If instead the very first ADetailer pass produced a subtly different face each time, your denoise was too high and was regenerating identity rather than repairing detail, so lower it to 0.35 and rerun. And if the eyes still look exaggerated or stylized after all this, the checkpoint itself may be drawing them that way by design, so switch to a photoreal base and repeat. Add the gaze block to your positive and the eye-tuned negative on every attempt so the model has an explicit target and a clear list of failures to avoid. Worked in this order, resolution first, face pass second, eye-only inpaint third, base model last, a crossed-eye render becomes a clean portrait in two or three passes, and you build the reflex of composing tighter next time so the eyes start with the pixels they need.
When to reach for ControlNet
For the hardest eye cases, where the gaze direction itself keeps coming out wrong across many seeds, a reference-guided approach can lock things down that prompting cannot. A ControlNet reference or an openpose-style face guide can anchor the head orientation and rough eye position so the base render starts far closer to correct, which then gives your ADetailer pass a much better foundation to refine. This is overkill for a normal portrait, where hires-fix plus a face pass is plenty, but it is worth knowing about when a specific gaze or head angle is non-negotiable and the model keeps drifting off it. Reserve it for those stubborn shots rather than making it part of every render, since the simpler resolution-and-detailer routine handles the vast majority of eye failures on its own and adds far less friction to your workflow.

Common mistakes
The classic mistake is trying to fix eyes with prompt words alone on a full-body shot. If the face is 80 pixels tall, no tag can save it, because the model physically does not have the pixels to draw an iris. You need resolution and a pass first, then the tags help. Another frequent error is running ADetailer at denoise 0.8, which invents a brand-new face and often a new identity instead of repairing the eyes you have, so keep it around 0.4. People also forget to enable inpaint only masked, which lets ADetailer alter the whole crop and sometimes changes the expression. And stacking a strong eye LoRA on top of ADetailer tends to backfire, the two fight each other and the pupils can end up worse than before.
Verdict
Bad eyes come from too few pixels and no cleanup pass, so give the eyes both. Enable ADetailer with a face model at 0.4 denoise, run hires-fix so the face is large enough to resolve, and for hard cases inpaint the eyes directly. Add gaze and symmetry tags, negate the crossing terms, and keep CFG moderate so irises stay crisp. That routine fixes the overwhelming majority of eye failures on the first or second try, and a polished hosted option like AI Nudez is a solid shortcut whenever you do not feel like running the passes yourself.
Frequently asked questions
What is the single best fix for bad AI eyes?
An ADetailer face pass. It masks the face and re-renders it at full resolution, so the eyes get hundreds of pixels instead of a handful. Use face_yolov8n at denoise 0.4 with inpaint only masked.
Why do eyes break in full-body shots?
Because the face is tiny in the frame. If the head is only 80 pixels tall, each eye gets about 6 pixels, which is not enough to draw a clean iris. Crop tighter or run hires-fix and a detailer pass.
What denoise should I use for ADetailer eyes?
Around 0.4 for a full face pass. If you inpaint only the eyes, 0.35 to 0.5 works. Going as high as 0.8 invents a new face instead of repairing the eyes.
Which negative tags help with eyes?
Crossed eyes, asymmetric eyes, deformed pupils, extra pupils, lazy eye and misaligned eyes all steer away from common eye failures. Pair them with detailed symmetrical eyes in the positive.
Does high CFG hurt eyes?
Yes. High guidance melts irises and fuses pupils. Drop CFG to 4 or 5 so the eyes stay crisp, then let ADetailer handle the fine detail.
Can I fix just one bad eye?
Yes. Mask only the broken eye and inpaint at denoise 0.35 to 0.5 with an eye-focused prompt. This repairs a single melted iris without disturbing the rest of the face.
Do I need hires-fix for good eyes?
It helps a lot. Running hires-fix enlarges the face so both the base render and any ADetailer pass have more pixels to work with, which is exactly what eyes need.
Why do my eyes look dead or blank?
Missing gaze tags and low resolution. Add looking at viewer and clear sharp eyes to the prompt, run a detailer pass, and the eyes gain focus and life.



