# I Built an AI Upscaler with 6 Specialist Models — Here's What I Learned

> Source: <https://dev.to/auroracapital/i-built-an-ai-upscaler-with-6-specialist-models-heres-what-i-learned-16dm>
> Published: 2026-09-22 21:06:42+00:00

When I started building an AI upscaling service, I thought I'd just wrap Real-ESRGAN and call it done. Wrong.

A model trained on photographs produces blurry edges on digital art. A model trained on anime smears skin textures in portraits. And video? Completely different challenge.

After testing dozens of models, I picked 6 that each excel at a specific image type:

| Model | Best for | Why | 
|---|---|---|
| Flare | Photos | Natural textures, minimal artifacts | 
| Prism | AI art | Preserves synthetic textures from SD/DALL-E | 
| Lumen | Portraits | Skin tones, fine hair detail | 
| Mirage | Illustrations | Clean edges, flat colors | 
| Motion | Video | Frame interpolation, temporal consistency | 
| Motion X | Video (enhanced) | Higher quality, slower | 

UpRes runs on a single API endpoint. You submit a job with an image URL, pick a model and scale factor, and poll for the result:

```
curl -X POST https://api.upres.ai/v1/jobs \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"image_url":"https://example.com/photo.jpg","model":"flare","scale":4}'
```

The backend queues the job, runs it on GPU, and returns the output URL when done. Most jobs finish in 15-25 seconds.

**Model selection matters more than scale factor.** A 2x upscale with the right model beats a 4x with the wrong one.

**Free tier converts.** People who try the free tier and see good results upgrade. Watermarks kill conversion.

**Video is 10x harder than images.** Temporal consistency across frames is the hardest engineering problem. Motion X took 3 months to get right.

**MCP is a sleeper feature.** Being able to say "Claude, upscale this image" and have it just work is magical for developers.

`npm install -g upres-cli`
I'd love to hear what you're upscaling and which models work best for your use case.
