The fastest fix for upscaling artifacts is to generate at the model’s native resolution first, then upscale, and set your tiled upscaler to tile overlap 64 or more with denoise between 0.2 and 0.35. Most seams, halos and repeated patterns come from pushing native res or a too-aggressive upscale pass, not from the base render itself.
Your image has glitches that are not grain and not bad anatomy: hard seams running through the frame, color halos glowing around edges, jpeg-like blocking in flat areas, faint ghosting, or the same texture repeating across the picture like wallpaper. These are corruption artifacts, and they are usually introduced by upscaling or by asking the model to generate far too large. They look alarming but they are very fixable once you identify the source, because unlike anatomy problems they come from the pipeline rather than from the model’s understanding of the scene.
This content is for adults 18+ and every example character is a fictional adult, not a real person or a real likeness.
It helps to separate artifacts from the two defects people confuse them with. Grain is undissolved noise, a fine speckle spread evenly across the frame. Deformed anatomy is a body-structure problem. Artifacts are neither: they are structural corruption of the image itself, things like seams, halos, blocking, ghosting, and repetition. Because the cause is mechanical rather than semantic, the fixes are mechanical too, and they are reliable.
Why artifacts happen
Artifacts are non-anatomical corruption. They come from how the image is enlarged, or from asking the model to render well beyond its comfortable resolution.
Tiled upscaling with no overlap or the wrong tile size. This is the classic Ultimate SD Upscale mistake. If the tiles do not overlap, their edges do not blend, and you get a visible grid of seams running through the image. Making the tiles too small multiplies the number of seams and makes the problem worse rather than better.
Denoise too high on the upscale. An upscale pass at 0.5 or higher hallucinates new detail independently in each tile, and because the tiles do not agree with each other you get halos, ghosting, and mismatched textures at their boundaries. Keeping denoise low keeps the enlarge faithful to the original.
Oversharpening. A strong sharpen filter, whether inside the upscaler or applied in post, rings every edge with a bright line and a dark line, the classic halo. This reads as a crunchy, artificial outline around everything and is one of the most common self-inflicted artifacts.
Generating far above native resolution. Ask an SDXL model for 2048×2048 in a single pass and it repeats bodies, doubles limbs, and tiles patterns, because it was trained near 1024 and has no coherent picture of anything larger. Render near native, then upscale, and the repetition disappears completely.
A broken or compressed source. If the base image is already jpeg-compressed or otherwise corrupted, upscaling only magnifies the blocking. It is garbage in, bigger garbage out, and no upscaler setting rescues a bad source.
The wrong upscaler model. Aggressive upscalers invent texture and add their own signature artifacts. A clean model such as 4x-UltraSharp or SUPIR enlarges without inventing, which keeps the image honest.
Overcooked LoRA or VAE tiling issues. A LoRA at too high a weight can burn a repeating pattern into the frame, and VAE tiling on low-VRAM setups can seam the decode itself if it is not configured properly.

How to fix artifacts
Work in order. The first two steps remove the large majority of artifacts on their own.
1. Generate at native res, then upscale
Do not push the base render past what the model was trained for. Generate around 1024 on the long edge for SDXL, get a clean and coherent base image, and only then enlarge it. This single habit kills the repetition and duplication artifacts that come from oversized generation, and it is the most important change on this list. The ComfyUI guide shows clean base-then-upscale graphs you can copy directly.
2. Fix your tiled-upscale settings
In Ultimate SD Upscale or any tiled workflow, set tile overlap to 64 or higher, enable the seam-fix pass, and keep denoise between 0.2 and 0.35. Overlap lets neighboring tiles blend into each other so the seams vanish, and low denoise stops each tile from hallucinating detail that its neighbors do not share. These two settings together eliminate the great majority of seam and halo problems.
3. Stop oversharpening
Turn off or sharply reduce any sharpen filter, both in the upscaler and in post. If your edges have paired bright-dark halos, sharpening is almost certainly the cause. Let the upscaler model itself handle detail reconstruction rather than layering a sharpen pass on top of it.
4. Pick a clean upscaler model
Swap an aggressive upscaler for 4x-UltraSharp or SUPIR, which enlarge cleanly instead of inventing texture that clashes with the original. The best upscalers roundup and the upscaler models comparison both rank models by how few artifacts they add, which is the metric that matters when you are chasing corruption.
5. Lower overcooked LoRA weights
If a repeating pattern is baked into the image rather than added at upscale, drop the LoRA weight to 0.6 or 0.7. Overcooked LoRAs stamp their training texture across the whole frame as a repeating artifact, and easing the weight back removes it while keeping the LoRA’s intended effect.
6. Enable VAE tiling or regenerate a bad base
If low-VRAM VAE tiling is seaming the decode itself, enable proper VAE tiling in your UI so the decode stitches cleanly. And if the source is already compressed or broken, regenerate it rather than trying to rescue it, then run a clean detail pass on the fresh version. Note that soft blur is a different defect with its own fix in the blurry image guide: artifacts are corruption, blur is missing detail, and confusing the two sends you toward the wrong fix.
Cause and fix at a glance
| Cause | Symptom | The fix |
|---|---|---|
| No tile overlap | Grid seams across image | Overlap 64+, seam-fix on |
| Upscale denoise 0.5+ | Halos, ghosting, mismatched tiles | Drop to 0.2 to 0.35 |
| Oversharpening | Bright-dark edge halos | Reduce or disable sharpen |
| Above native res | Repeated bodies and patterns | Native then upscale |
| Aggressive upscaler | Invented texture artifacts | Use 4x-UltraSharp or SUPIR |
| Overcooked LoRA | Baked repeating pattern | Lower weight to 0.6 to 0.7 |
Copy-paste settings
Base generation:
Sampler: DPM++ 2M Karras
Steps: 28
CFG scale: 5
Resolution: 1024x1024 (stay near native, do not push large)
Ultimate SD Upscale (the key step):
Upscaler: 4x-UltraSharp (or SUPIR for photoreal)
Target: 2x
Tile width/height: 1024
Tile overlap: 64
Denoise: 0.3
Seam fix mode: Band pass
Seam fix width: 64
Sharpen: off
Positive add:
clean image, sharp focus, high quality, coherent detail, adult
Negative prompt (artifact-tuned):
seams, tiling artifacts, jpeg artifacts, compression artifacts,
color halo, chromatic aberration, ghosting, oversharpened, repeated pattern,
duplicate, warped geometry, child, minor, underage, loli, shota
How to diagnose which cause is yours
Artifacts look dramatic but they diagnose cleanly, because each type has a distinct visual fingerprint. Straight lines or a regular grid cutting through the image means tile seams, which points at overlap and seam-fix settings in your upscaler. Paired bright-dark outlines around every edge means oversharpening or too-high upscale denoise. The same body, limb, or texture repeating across the frame means you generated above native resolution and the model tiled its own output. Blocky, jpeg-like squares mean a compressed or broken source. Name the fingerprint first and you know exactly which fix to open.
Use a seed-locked test to confirm the mechanical causes. If you suspect oversized generation, keep the seed but drop the base resolution to native and upscale in a second step, then compare: if the duplicated bodies vanish, resolution was the cause. If you suspect tile seams, rerun the upscale with overlap raised to 64 and seam-fix enabled and watch the grid disappear. For suspected oversharpening, turn the sharpen filter off entirely and rerun, since halos that vanish confirm the filter was the culprit. Because artifacts are pipeline problems rather than model-understanding problems, these tests are fast and decisive, and you rarely need more than two or three to pin down the exact source.

Preventing artifacts next time
The core prevention rule is simple and worth making a habit: always generate near native resolution, then upscale in a separate pass. Never ask the model for a huge image in one shot, because that is the source of the worst repetition and duplication artifacts and it is entirely avoidable. Build a two-stage graph or preset, a native-resolution base followed by a tiled upscale, and use it as your default so oversized single-pass generation never happens by accident.
Lock down your upscale settings once and reuse them. Save a known-good tiled-upscale preset with tile overlap at 64, seam-fix on, denoise around 0.3, sharpen off, and a clean upscaler such as 4x-UltraSharp or SUPIR, so every enlarge you run starts from settings that do not create seams or halos. Keep your LoRA weights in a sane range, generally at or below 0.8, so no LoRA burns a repeating pattern into the frame, and cap them lower in your templates if you have been pushing them high. On low-VRAM hardware, configure VAE tiling properly so the decode itself does not seam. And treat a compressed or broken source as unrecoverable: regenerate a clean base rather than upscaling damage. With a native-then-upscale habit, a saved safe upscale preset, and disciplined LoRA weights, artifacts stop appearing in the first place instead of needing a rescue.
A worked example
Suppose you upscaled a portrait of a fictional adult subject and the result has a hard vertical line down the middle plus a faint second copy of the shoulder. Two different artifacts are present, and each has its own fix, so name them before acting. The straight line is a tile seam from your upscaler, and the duplicated shoulder is a repetition artifact from generating too large. Handle the repetition first, at the source. Keep the seed but set the base generation to native resolution, around 1024 on the long edge, and move the enlarge into a separate upscale step. Rerun the base and the duplicated shoulder disappears, because the model is no longer being asked to imagine content beyond the scale it understands.
Now fix the seam in the upscale pass. Open your tiled upscaler, raise tile overlap to 64, enable the band-pass seam-fix, and set denoise to 0.3. Overlap lets the tiles blend so the vertical line vanishes, and the low denoise stops each tile from inventing detail its neighbors do not share. Rerun the upscale and the seam is gone while the detail stays faithful to the clean native base.
If a different image instead shows bright-dark halos around every edge, that is oversharpening, not seams, so turn off the sharpen filter in both the upscaler and any post step and rerun. And if you see blocky jpeg-like squares, the source itself is compressed and no upscale setting will save it, so regenerate a clean base at native resolution before enlarging. Keep the artifact-tuned negative attached on every attempt as a backstop, and if a repeating texture is baked into the base rather than added at upscale, drop the offending LoRA to 0.7 and rerun. Worked in this order, fix repetition at native resolution first, then seams with overlap and seam-fix, then halos by disabling sharpen, and treat a compressed source as unrecoverable, a badly corrupted upscale becomes a clean enlarge in two or three passes, and you adopt the native-then-upscale habit that prevents the worst of it next time.
A note on when to regenerate versus rescue
Part of getting good at artifacts is knowing when a rescue is not worth it. Seams, halos, and repetition are all fixable in place because the underlying image is sound and only the enlarge went wrong, so those are worth repairing with better upscale settings. But a base that is already jpeg-compressed, heavily overcooked by an extreme LoRA stack, or corrupted in the latent is usually faster to regenerate than to salvage, because every upscale pass only magnifies the damage that is already baked in. As a rule of thumb, if the artifact appears at the base resolution before any upscaling, regenerate; if it only appears after enlarging, fix the upscale settings. That single distinction saves a lot of wasted passes and keeps you from polishing an image that was never going to come clean. Building the habit of checking your base at native resolution before you ever hit the upscaler pays off here too, because catching a baked-in problem early means you regenerate one cheap base instead of discovering the corruption only after a slow upscale has already magnified it across the whole frame. A quick glance at the native render at full zoom, before any enlarging, is the cheapest quality check in the entire pipeline and it consistently saves the most time over a long session.

Common mistakes
The most common mistake is generating huge in a single pass to “get more detail,” which produces duplicated bodies and tiling patterns instead of a bigger clean image. Render near native and upscale in a second step. Another is running the upscale at high denoise hoping for sharper output, which hallucinates halos and mismatched seams between tiles rather than sharpening anything. People also stack a sharpen filter on top of an already-sharp upscaler and get ringing halos everywhere, then blame the upscaler. And trying to rescue a heavily compressed base is a lost cause, the blocking only grows when enlarged, so regenerate it clean before you spend time upscaling.
Verdict
Artifacts are an upscaling and resolution problem, not a flaw baked into the base model. Render near native, then upscale with 64-plus tile overlap and denoise around 0.3, turn off oversharpening, and use a clean upscaler such as 4x-UltraSharp or SUPIR. That combination removes seams, halos, and repetition on nearly every corrupted render. When a repeating pattern is baked in rather than added at upscale, drop the LoRA weight, and when the source itself is already broken, start over with a fresh base rather than magnifying the damage you already have.
Frequently asked questions
What causes seams in upscaled AI images?
Tiled upscaling with no overlap. When tiles do not overlap, their edges do not blend and you see a grid of seams. Set tile overlap to 64 or higher and enable the seam-fix pass.
Why does upscaling add halos and ghosting?
Denoise is too high on the upscale pass. At 0.5 or more each tile hallucinates new detail and mismatches its neighbors. Keep upscale denoise between 0.2 and 0.35 for a faithful enlarge.
Why do I get duplicated bodies or repeated patterns?
You are generating far above the model’s native resolution. SDXL trained near 1024 repeats content when pushed to 2048 in one pass. Render near native, then upscale, and the repetition stops.
Which upscaler adds the fewest artifacts?
Clean models like 4x-UltraSharp and SUPIR enlarge without inventing texture. Aggressive upscalers stamp their own artifacts into the image, so switch to a clean model for photoreal work.
How is an artifact different from grain?
Grain is undissolved noise, a speckle over the whole frame. Artifacts are structural corruption: seams, halos, jpeg blocking, ghosting and repeated patterns. They have different causes and different fixes.
What tile settings avoid corruption?
In Ultimate SD Upscale, use a 1024 tile, overlap 64, denoise 0.3, and turn on band-pass seam fix. That blends tiles cleanly and prevents both seams and per-tile hallucination.
Can a LoRA cause artifacts?
Yes. An overcooked LoRA at too high a weight can bake a repeating pattern across the frame. Drop the LoRA to 0.6 or 0.7 to remove the stamped texture.
Should I rescue a compressed source image?
No. Upscaling a jpeg-compressed or broken base just magnifies the blocking. Regenerate a clean base at native resolution, then upscale that instead.



