Skip to content
OMNI Labs
WorkLookbookMusicJournal
TalentMethodCertificationWardrobe
BuildAutomationEmbodimentAutonomyPen
Contact
Creative AI Production Studio
OMNI Labs
01Home02Work03Lookbook04Music05Journal
StudioTalentMethodCertificationWardrobe
LabBuildAutomationEmbodimentPen
06Contact
hello@omnilabs.studioIstanbul · Global

Start a project →

© OMNI Labs · Creative AI Production Studio

← Journal
  1. Home
  2. Journal
AI Video Production

Upscaling AI Video Without Plastic Skin

The upscaler with the best sharpness score was the one a producer rejected. Here is what we tested, what each one did to faces and products, and how to check an upscale properly.

OMNI Labs25 Oct 2026

Beauty close-up of synthetic model Milena Lindqvist: pale skin with freckles and fine texture, side-lit

On this page

  1. The short answer
  2. Why sharpness scores pick the wrong winner
  3. What each upscaler did
  4. Colour problems that dimension checks miss
  5. Blending the upscale with the source
  6. Frame interpolation and hard cuts
  7. How to check an upscale

Key takeaways

  • A sharpness score picked the wrong winner: the sharpest upscale scored about three times the reference, and a producer called it too sharp.
  • The 'quality' mode over-processed organic footage — skin read as plastic — but won on hard-edge product graphics. A/B both.
  • Correct dimensions prove nothing: a 2160×3840 output with red colour smears passed every dimension check.
  • Verify an upscale by extracting the same frame before and after and comparing at 1:1.
  • No upscaler fixes what the generator invented. Morphing hands and identity drift are generation problems.

The short answer

Match the upscaler to the texture. Organic footage — faces, skin, hair — gets a light-touch upscale. Hard-edge graphics — wordmarks, logos, line work — get the heavier quality mode. Then check the result with your eyes on the same frame, never with a score.

Every verdict below rests on a small number of clips, often one per case. Treat the rankings as directional, and run your own A/B on your own footage.

Why sharpness scores pick the wrong winner

We scored four upscales of the same clip with a Laplacian sharpness metric. FlashVSR v1.1 scored highest — 54 and 102 — against 31 and 32 for ArtPlayer's paid tier. A professional producer reviewing the same clips called FlashVSR "too sharp" and the paid tier "very clear".

Looking closer explained why. FlashVSR v1.1 erased real skin micro-texture — under-eye lines and cheek texture present in the source — and then hardened lash and brow edges. That is fake sharpness on top of lost detail, and a sharpness metric rewards it.

Our rule since then: a score around three times the reference means over-sharpening, not a better result.

What each upscaler did

Upscalers we tested on AI video · measured 24 Oct 2026
UpscalerFaces / skinProducts / textSpeed
ArtPlayer Fast (browser, free)Most natural on organic footageFine~2 min for a 5 s clip
ArtPlayer QualitySkin reads processedBest on wordmarks and logo line-workSlower
FlashVSR v1.1Over-sharpened, erased skin texture, shifted skin pink—~40 s per second of footage
FlashVSR+ TurboKept texture and colour on a wide shotTurned a debossed letter into a blob~1 min per second of footage
SeedVR2Resolved lash strands and iris fibres; invented freckles on another face—~8× slower than ArtPlayer Fast
Real-ESRGAN family (open source)Invented colour fringes and speckles—Fast
Mostly one clip per case; speeds on a 16 GB RTX 5060 Ti or in-browser on the same machine.

The surprise was the "quality" mode. On a real-car clip and on a persona close-up, the faster mode looked most natural and Quality went plastic. On a studio product shot with a wordmark, the order flipped: Quality held letterforms cleanly with no plastic look.

FlashVSR+ Turbo is the opposite case. It does not over-sharpen the way v1.1 does — on a 12-second wide shot, hair strands resolved and skin kept its texture — but on a leather bag it turned the accent of a debossed word into a round blob. Any product with a wordmark, deboss or label goes to the quality mode instead.

Colour problems that dimension checks miss

Two open-source upscale models hallucinated colour. One invented red and orange fringes on high-contrast moving edges — the share of fire-coloured pixels rose about twenty-fold. The other put green and cyan speckle in the eye catchlights.

Both outputs had exactly the right dimensions and frame counts. A 2160×3840, 151-frame file with red smears passed every automated check.

FlashVSR v1.1 also shifted skin slightly pink. Per-channel correction brought it back, but the gains were clip-specific and had to be measured again for every clip.

Blending the upscale with the source

For faces we blend the upscaled output with a plain Lanczos upscale of the source. On one face the sharpness at different blend strengths was 105 at 60%, 136 at 70%, 167 at 80% and 251 at 100%. At 80% hair and earring edges started to harden, so 70% became our default for faces.

Blending does not restore texture that the upscaler already erased, and neither did adding light film grain. It only tones down the hardening.

warning

Blend weights must add up to one. A broken expression once set the source weight to zero and delivered a video 40% darker — with the correct frame count and audio. Check brightness on a still before delivery.

Frame interpolation and hard cuts

Interpolation is fast — 16 to 48 fps on a 161-frame clip took 7.2 seconds — but interpolating across a hard cut creates a ghost frame that blends two shots.

Find cuts first with a scene-change filter, then look at the flagged frames: in our case a score of 0.34 was a real cut, while 0.19 was a motion-blurred whip pan that should stay in one segment. Split at each cut, interpolate each segment separately, then join them and put the original audio back.

Going from 24 to 30 fps is not a whole-number factor. Interpolate by five to 120 fps and decimate to 30.

How to check an upscale

Our check is deliberately boring:

  1. Extract the same frame from the source and the upscale.
  2. Compare them at 1:1, with no resampling, on the face and on any text.
  3. Look for erased texture, hardened edges, invented colour and changed letterforms.
  4. Check brightness and colour on a still from the encoded file, not from an intermediate image.

And remember the limit of finishing: an upscaler cannot remove a highlight baked into the source, fix a morphing hand, or bring back a drifting face. Those are fixed at generation, not in post.

OMNI Labs is a creative AI production studio.Everything in the Journal comes from our own productions and tests.Start a project

Related

  • Talk-show desk with a vintage microphone and a rotary telephone in a wood-panelled 1970s studio

    test25 Oct 2026

    Local Voice Acting Speed Is Set by Layers, Not VRAM

    Eight expert layers ran at 2.5 frames per second; twenty ran at 22.1. VRAM sat near 16 GB at every setting, so memory was never the speed knob in our AI voice acting TTS runs.

  • Split-diopter still from OMNI Dramas episode 1: a woman in a satin slip in the foreground and a man in a tuxedo behind her, both in focus

    guide25 Oct 2026

    How to Prompt Seedance 2.5 for Dialogue Scenes

    Two synthetic characters, two voices, two lines — and the right mouth moved for each on the first try. The structure that made it work, and the failures that taught us each rule.

  • Keyframe from the OMNI Labs ÉTAT film made with Kling 4.0: a model in a black top and white trousers walks a greyhound through a sunlit living room

    test23 Oct 2026

    Kling 4.0 vs Seedance 2.5: Cost per Second and What Each Gets Wrong

    Kling 4.0 really is less than half the price of Seedance 2.5 on the same platform. What the price comparison leaves out is the three default behaviours you have to prompt against, and the question nobody has answered yet: faces.