Skip to content

Image Upscaler & Background Remover

Try for free

Upscale images 2x to 4x with Real-ESRGAN and remove backgrounds with BiRefNet: sharper photos and illustrations, transparent PNG cut-outs, white or coloured backgrounds, crop to subject and masks. Links, datasets or uploaded files; one row per image with a download link.

🔍 Image Upscaler & Background Remover

Make small, soft images 2x to 4x larger and sharper, cut the subject out of a photo, or do both in one run. Paste image links (or pick a dataset of scraped image links) and get one row per image with a download link: PNG, WebP or JPEG, transparent or on a colour of your choice. No login, no account anywhere else, and platform usage is included in the per-image price.

✨ Why use Image Upscaler & Background Remover?

  • 🔍 Real detail, not just bigger pixels: a Real-ESRGAN network rebuilds edges and texture and removes noise and JPEG blocks on the way up, with a separate model for drawings, anime and logos.
  • ✂️ Clean cut-outs: IS-Net finds the subject (people, pets, products and other objects) and an edge colour clean-up removes the old background's tint from soft edges such as hair; BiRefNet is there for the finest hair and fur.
  • 🎨 Ready-to-use results: transparent PNG or WebP, a white or coloured background for shop listings, crop to the subject with padding, and an optional black-and-white mask.
  • 📦 Bulk from anywhere: image links, Google Drive, Dropbox and GitHub share links, a dataset from any scraper run, files in a key-value store, or base64 text from the API.
  • 💸 Pay per image, failures free: broken links, web pages and unreadable files come back as free rows that say what went wrong.
  • 🔒 Private: the models run inside the actor; your images are not sent to any outside service.

🎯 Use cases

  • 🛍️ E-commerce: turn supplier photos into white-background product shots, or cut products out for banners and marketplace listings.
  • 🖼️ Rescue low-resolution images: enlarge thumbnails, old photos, scans and images scraped from the web for print, slides or a redesign.
  • 🎨 Artwork and anime: upscale illustrations, comics, game art and logos with crisp lines.
  • 👤 Profile and team photos: consistent cut-outs on one brand colour.
  • 🤖 Pipelines and agents: chain it after an image scraper (Instagram, Google Images, a shop scraper) through the dataset input, or call it from the API, n8n, Make or Zapier.

🚀 How to use

  1. Paste one or more image links into Image URLs (or choose a dataset or key-value store under More image sources).
  2. Pick What to do: Upscale, Remove background, or both.
  3. For upscaling choose 2x, 3x or 4x (or a target size in megapixels) and the image type: Photo or Illustration / anime.
  4. For background removal choose a transparent background or a new background colour, and turn on Crop to the subject if you want a tight frame.
  5. Pick the output format and click Start. Each row links to its file; export the table as JSON, CSV or Excel, or download the files from the links.

📥 Input

FieldWhat it does
imageUrlsImage links, one per line (JPEG, PNG, WebP, GIF first frame, AVIF, HEIC, TIFF, BMP; up to 60 MB and 50 MP each)
operationupscale (default), removeBackground or both (cut out first, then upscale the cut-out)
scale2 (default), 3 or 4
targetMegapixelsInstead of a factor: size each result to about this many megapixels, keeping the aspect ratio
upscaleModelphoto (default) or illustration for drawings, anime and logos (about twice as fast)
denoiselow, medium (default) or high: how strongly noise and JPEG artifacts are smoothed (photos)
backgroundModelstandard (default, IS-Net) or detailed (BiRefNet, needs 8 GB of run memory)
backgroundColorEmpty for transparent, or a colour such as white, #f5f5f5, rgb(240,240,240)
cropToSubject / cropPaddingCrop the cut-out to the subject, with this many pixels of padding
refineEdgesClean the old background's colour from soft edges (on by default)
outputMaskAlso save the subject mask as a PNG
outputFormat / qualitypng (default), webp or jpeg, and the WebP/JPEG quality (90)
datasetId / datasetUrlFieldTake image links from one of your datasets
keyValueStoreId / keyValueStoreKeysTake image files from one of your key-value stores
base64ImagesImages as base64 text or data:image/... URLs
{
  "imageUrls": [
    "https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/500px-YellowLabradorLooking_new.jpg"
  ],
  "operation": "both",
  "scale": "2",
  "backgroundColor": "white",
  "cropToSubject": true,
  "cropPadding": 20,
  "outputFormat": "jpeg"
}

📤 Output

One row per image. The files are saved in a store of the run and every link opens without an account for 7 days; download what you want to keep.

FieldMeaning
fileUrlDownload link of the result
width, height, megapixels, bytes, formatThe result
operation, scale, backgroundRemoved, croppedWhat was done (scale is the actual factor)
subjectFoundBackground removal found a clear subject
maskUrlLink to the mask PNG (with outputMask)
modelsModels used for the image
sourceUrl, sourceWidth, sourceHeight, sourceFormat, sourceBytesThe source image
processingSecsSeconds from download to saved result
chargedEventsWhat this row cost, in events
noteAnything worth knowing, e.g. a size limit that applied
error, errorCodeWhy an image could not be processed (these rows are free)

A real row (a 500x412 photo upscaled 4x):

{
  "fileUrl": "https://api.scrape.ly/v2/key-value-stores/5c0f.../records/500px-YellowLabradorLooking_new-4x.png?signature=...&attachment=1",
  "fileName": "500px-YellowLabradorLooking_new-4x.png",
  "format": "png",
  "contentType": "image/png",
  "width": 2000,
  "height": 1648,
  "megapixels": 3.3,
  "bytes": 5145556,
  "operation": "upscale",
  "scale": 4,
  "backgroundRemoved": false,
  "models": ["Real-ESRGAN general x4v3"],
  "sourceUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/500px-YellowLabradorLooking_new.jpg",
  "sourceFormat": "jpeg",
  "sourceWidth": 500,
  "sourceHeight": 412,
  "sourceBytes": 81024,
  "processingSecs": 8.97,
  "chargedEvents": {"image-upscaled": 1},
  "note": null,
  "error": null
}

The run's OUTPUT record has the totals, the errors by code and the events charged.

💰 Pricing

You pay per image, and platform usage is included: there is nothing else to pay.

EventFreeStarterScaleBusiness
Image upscaled (source up to 2 MP)$0.017$0.0153$0.01275$0.0102
Background removed$0.0085$0.00765$0.0068$0.00595
  • A source larger than 2 megapixels counts one more "image upscaled" per started 2 MP (a 3 MP photo counts 2), because the work grows with the source size. The output size (2x, 4x, a megapixel target) does not change the price.
  • "Remove background and upscale" charges both events: $0.0255 per image on Free, $0.01615 on Business.
  • Examples on Free: 1,000 product thumbnails upscaled 4x cost $17; 1,000 cut-outs on white cost $8.50.
  • Failed links, unreadable files and images that needed no change are free. Set Maximum cost per run in the run options to cap a run; it stops cleanly when the cap is reached.

❓ FAQ

Do I need an account, an API key or a GPU? No. The models run on the CPU inside the actor; you only need image links or files.

How fast is it? At the default 4 GB of memory a 500x412 photo took 9 to 13 seconds to upscale in our tests, and removing a background takes a few seconds. More memory gives more CPU: the same photo took 7 seconds at 8 GB, for the same price per image.

How large can images be? Sources up to 60 MB and 50 megapixels. Results stay within 32 megapixels each (about 6,500 x 4,900), the size a stored file and the run's memory can hold: a larger request is enlarged less and its note says so.

Which background model should I use? Standard handles people, animals, products and most photos well at the default memory. Detailed (BiRefNet) keeps finer hair, fur and thin parts; it needs 8 GB of memory (set Memory in the run options) and takes about 25 seconds per image there.

What if a result looks wrong? Try denoise: low for photos with fine texture, the illustration model for artwork, or the detailed background model for hair and fur. A row with subjectFound: false means no clear subject was found.

How many images can one run process? As many as you give it; images are processed one after another and saved as they finish. Keep the run timeout (default one hour) in mind for large batches and raise it in the run options if needed.

Can I schedule it or use the API? Yes: run it from the API, a schedule, an automation or the MCP server, and read the dataset or the file links.

⚠️ Limits

  • Results are capped at 32 megapixels per image and sources at 50 megapixels, for the reasons above.
  • Animated GIF and WebP files are processed as their first frame.
  • SVG, PDF and RAW camera files are not read; give a PNG, JPEG or WebP version.
  • Upscaling enlarges and restores; it cannot recover detail that is not in the image (tiny text or faces in a thumbnail come out smooth).
  • Background removal separates the main subject from its background; it does not pick a specific object among several, and transparent or glass objects can lose parts.
  • The edge colour clean-up runs on images up to 12 megapixels.
  • The detailed background model needs a run with 8 GB of memory; with less, the standard model is used and the row's note says so.
  • File links are valid for 7 days.

Related actors

//From the blog\\

Latest articles

All articles

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.