Hair & fine-strand cutout

Fine hair is where every cutout tool is actually tested.

A solid silhouette looks finished no matter how it was made. Loose strands give the game away instantly. Here's why hair defeats background removal, and which controls bring the detail back — all computed on your iPhone, with nothing uploaded.

The technical truth

Why hair is the hard case

A clean subject against a plain wall is easy: one side is "in", the other is "out", and a divider between them can be drawn. Hair throws that model away, and understanding exactly why is what lets you fix the result.

A strand is a few pixels wide

Individual flyaways are often two or three pixels across. At that width a single pixel of error is not a small mistake — it is the entire strand. There is barely anything for an edge to lock onto.

It sits at an angle and lets light through

A strand is rarely perpendicular to the sensor, and the gaps between strands show the background straight through. So the pixels along the edge are neither pure hair nor pure backdrop — they are a blend of both.

The honest answer is a partial value

Because those edge pixels mix subject and background, the correct output for them is a semi-transparent alpha value, not a hard in-or-out decision. A model forced to decide "hair" or "not hair" has to guess.

When the model keeps everything

  • It holds onto the blended edge pixels
  • Those pixels still carry the old background colour
  • Result: a grey or coloured halo around the head

When the model decides cleanly

  • It discards the ambiguous pixels to be safe
  • That throws away the strands they represented
  • Result: a chopped, solid-looking outline

Both failures come from the same forced binary choice. That's why Cutano runs on-device Core ML segmentation with Metal GPU mask refinement and exposes the edge as something you can tune, rather than handing you one fixed decision and walking away.

Two visible failure modes

Chopped silhouette versus coloured fringe

Once you can name the failure, the fix stops being guesswork. The two problems look opposite, share one root cause, and each points to a different control.

What you seeWhat happenedWhat to reach for
Chopped, cakey outlineStrands were judged "not hair" and deleted along with the background, so the edge reads as one solid shape.Feather to soften the boundary, then restore brush the lost strands back.
Coloured or grey fringeThe blended edge pixels were kept, and the old backdrop is baked into their semi-transparent colour.Contract inward to eat the fringe, then re-matte if the colour is strong.
Soft but floating strandsFlyaways survived as faint wisps but never settle into the new background.Add a touch of feather and re-check at export resolution, not preview.

The point of naming them separately is simple: contraction and feathering pull in opposite directions, so the same slider move that rescues one failure creates the other. Diagnosing first saves a round trip.

The actual remedies

Edge contraction and feathering

These are live, on-device controls sitting on top of the mask, so you see the change as you move them. They are not a re-run of the model — they refine the decision the model already made.

Contraction eats the fringe

When a coloured halo clings to the outline, nudge the edge inward. Contraction reclaims those contaminated pixels and pulls the boundary back onto the strand, which is the fastest way to kill baked-in backdrop colour.

Feathering blends the boundary

When the outline looks pasted and hard, feather softens the transition across a few pixels. Retained strands then meet the new background on a gradient instead of a cliff, so they read as hair rather than a sticker edge.

Which one, and when

Colour halo you can't get rid of — contract. Sharp, cut-out look — feather. Most finished results need a little of both, applied live and judged by eye at the edge rather than zoomed out.

Cutano editing canvas showing a hair cutout on a transparent checkerboard with Edit Cutout, Switch Model and Layers tools
The editing canvas: the hair cutout sits on transparency, with Edit Cutout, Switch Model and Layers one tap away.
Second opinion

Re-matte with a different model

Different models excel at different subjects — hair, hard product edges, complex backgrounds. When the edge is the whole argument, the model behind it matters, and you shouldn't be locked to the first one that ran.

Why switching helps on hair

  • Portrait, general and edge-refined models draw the boundary differently
  • The one that suits a face is not always the one that suits loose strands
  • Re-matte the same subject in place and compare the two edges directly
  • Keep whichever result holds more of the flyaways — a workflow advantage, not a coin flip

How it behaves on the device

  • The engine is BiRefNet-class on-device segmentation with several quality tiers
  • Smart device tiering matches the run to your iPhone's headroom
  • A graceful timeout fallback keeps a heavy pass from hanging
  • No uploads and no waiting on a queue — every attempt is local

Fine-strand work is where a second model earns its keep most often. Two good attempts you can compare beat one blind result, and because the whole thing is local you can flip between them as many times as you like.

The last five percent

Brushes and undo

No model, however good, gets every strand on the first pass. What separates a finished cutout from an almost one is the ability to fix the few it missed without starting over.

Restore what was discarded

On a chopped outline, paint with the restore brush to bring back the specific flyaways the model gave up on, instead of re-running the whole image hoping for a better guess.

Erase what was left behind

On a stubborn patch of leftover backdrop, erase just that region. Local corrections mean you never lose the good edges you already have.

Non-destructive, with full undo

Brushes sit on top of the mask rather than cutting into your photo, and every step is reversible, so experimenting with the edge can't permanently damage the image.

Before you shoot

Background choice matters more than you'd think

This part isn't a product claim — it's how separation works. A matting model finds the boundary by spotting where the subject stops and the backdrop starts, so the harder those two look alike, the harder the edge is to place.

Dark hair on a dark background

  • Similar tone means the model has no tonal step to lock onto
  • Gaps between strands show more dark, not contrast
  • Better: give the head a lighter or brighter area behind it

Blonde hair on a white background

  • Light strands against light backdrop blur into one value
  • Fine wisps vanish before the mask is ever drawn
  • Better: a mid-tone or softly coloured wall restores separation

A busy backdrop is harder for the same reason: texture and colour variety give the model lots of false edges to choose from around the head. Tonal separation between you and the background is worth more than any post-processing step.

Finishing at full size

Why full-resolution export matters here specifically

This follows straight from the physics at the top of the page. A soft alpha edge is only convincing if there are enough pixels spread across the boundary to hold the transition.

If a strand is a couple of pixels wide, a preview that's been scaled down to fit the screen throws those pixels away before you ever look — which hides edge problems until you zoom in on the real file. Judging the refinement on the actual output, not a shrunken preview, is the only honest way to know it worked.

Original resolution, up to 8192px (Pro)

On Pro, Cutano exports at your photo's original resolution, so the contraction and feathering you set are carried through to the file you ship; the free tier exports at a reduced resolution.

Format is your choice too

Transparent PNG to keep the soft alpha, JPG, or — on Pro — a layered PSD that survives into a design tool. The edge you tuned is the edge that lands.

Crop and canvas around it

Size the canvas and place the subject once the outline is clean, so fine detail survives framing instead of getting trimmed by a careless crop.

None of this is a claim that a bigger file invents detail that was never there. It simply means a hair edge refined at full resolution stays refined in the export — the thing a preview-time downscale would otherwise conceal.

Same mechanism, longer strands

Fur, coats and pets

A pet portrait fails for exactly the reasons a person's hair does — only more so. Fur throws longer flyaways, denser gaps that show the background through, and far more individual edges per subject.

Why a coat is the harder test

  • Long guard hairs reach further into the backdrop
  • Undercoat is translucent at the edges, so more pixels are blends
  • The same forced binary choice now affects a much wider zone

Why model switching earns its keep

  • A model tuned for human hair is not automatically best for an animal coat
  • Re-matte with another and compare the outline directly
  • Feather the long wisps, restore the patches any pass dropped

Batch helps here too: when you're matting a whole album of a single pet, tiered scheduling with per-item retry means one tricky coat doesn't stall the rest, and you can revisit the individual frames that need another pass.

FAQ

Hair cutout, asked plainly

Why does background removal keep cutting off my hair?
Because the model has to make a yes-or-no call on pixels that aren't really either. A flyaway edge is a blend of hair and background, so when it's forced to choose, the "safe" answer is often to delete the ambiguous pixels — which removes the strands along with them. The remedies are the ones that stop treating the edge as binary: feathering to soften a chopped outline, the restore brush to bring back specific lost wisps, and re-matting with a different model that draws that boundary more generously.
How do I fix the white or grey halo around hair?
A halo is the opposite failure — the model kept the blended edge pixels, and they still carry the colour of the old background. Pull the edge inward with contraction to eat those contaminated pixels, then add a little feather so the reclaimed boundary doesn't turn harsh. If the tint is strong, re-matte with another model before refining; a cleaner first mask is far easier to finish than a heavy manual cleanup.
Is hair cutout accurate on curly or afro-textured hair?
Tight curls and coily textures are the most demanding case, because there are far more strand-and-gap transitions packed into the outline. What decides whether they survive is partial-alpha edges plus model choice, which is exactly why Cutano exposes contraction and feathering, lets you re-matte with another model, and keeps a restore brush for whatever any single pass misses. The honest version: no matting model gets a dense textured edge perfect every time, so the value is in the controls that let you recover the detail rather than a promise that it will never need touching up.
Does a busy background really make hair matting worse?
Yes. The model finds the edge by spotting where the subject stops and the backdrop starts, and a cluttered or high-contrast background gives it lots of false edges near the head to choose between. Low contrast between hair and backdrop is even harder — dark hair on a dark wall, or blonde on white, are the two worst cases. A plain area with some tonal separation behind the subject does more for the result than any setting you can change afterwards.
Do I need a newer iPhone to get good hair detail?
The app tiers its work to your device and has a graceful timeout fallback, so older iPhones stay responsive rather than freezing on a heavy pass. Newer hardware generally has more headroom for the higher quality tiers, but the edge controls — contraction, feathering, model switching and the brushes — are the same regardless of phone, and everything runs on-device, so nothing depends on connection speed.

Keep the strands the others throw away

Free on the App Store. Hair-level matting with live edge control, swappable models, restore brushes and full-resolution export on Pro — all computed on your iPhone.

Download Cutano
More

Related guides