# AI Background Remover: Transparent PNG, No GPU (`digitalni.produkty.pro.zivot/background-remover`) Actor

Remove the background from product photos, portraits and logos with BiRefNet AI. Bulk image URLs, transparent PNG/WebP or any background color, masks and auto-crop to the subject. Pay per image, a cheap remove.bg alternative.

- **URL**: https://apify.com/digitalni.produkty.pro.zivot/background-remover.md
- **Developed by:** [Digitální produkty pro život](https://apify.com/digitalni.produkty.pro.zivot) (community)
- **Categories:** AI, For creators
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 background removeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AI Background Remover: Transparent PNG, No GPU

Remove the background from **product photos, portraits, logos and any other images** in bulk. Get a **transparent PNG/WebP cut-out**, the subject on **any solid color** (e.g. white for Amazon or Shopify listings), or just the **mask**. Optionally **crop to the subject** with padding.

Powered by **ISNet (DIS, Dichotomous Image Segmentation)**, an open-source high-accuracy segmentation model (Apache-2.0), running on CPU in the cloud. About **3–4 seconds per image**. No GPU, no software, no subscription. **Pay per image, failed images are never charged.**

### Examples

Real results from this Actor (the checkerboard shows the transparent area):

![Camera on a table: original vs. transparent cut-out](https://api.apify.com/v2/key-value-stores/uxnNYX56a3qdadmXf/records/remover-camera.jpg)

![Product photo: original vs. background removed](https://api.apify.com/v2/key-value-stores/uxnNYX56a3qdadmXf/records/remover-shoes.jpg)

<sub>Example photos: Wikimedia Commons, CC0 (“Nikon camera on a table”, “Four Small Canvas Dog Shoes” by ELTORO.VET).</sub>

**Works best** when the subject clearly stands out from the background, which is typical for product, catalogue and object photos. **Harder cases:** a dark product on a dark background (e.g. a black strap on a black stand) or a strongly blurred background in similar colours can leave parts of the subject missing or semi-transparent. Test a few of your own images first. The run costs only $0.005 per image.

### Features

- **Bulk processing**: paste any number of image URLs (JPEG, PNG, WebP, GIF, TIFF, AVIF).
- **Three outputs**: transparent cut-out, cut-out on a solid color, or black-and-white mask.
- **Crop to subject** with adjustable padding, which is great for consistent product thumbnails.
- **Full resolution**: the result has the same size as your original (up to 100 MP).
- **Fine edges**: hair, fur and product edges are kept as soft alpha, not jagged.
- Phone photos are auto-rotated (EXIF), and existing transparency is preserved.

### Output

Each image becomes one dataset row, and the result file is stored in the run's key-value store with a public link:

```json
{
  "sourceUrl": "https://example.com/shoe.jpg",
  "imageUrl": "https://api.apify.com/v2/key-value-stores/.../records/cutout-0001.png",
  "output": "transparent",
  "backgroundColor": "transparent",
  "width": 1200,
  "height": 900,
  "croppedToSubject": false,
  "format": "png",
  "processingMs": 3400
}
```

### Use cases

- **E-commerce**: white-background product photos for Amazon, eBay, Shopify, Etsy and Google Shopping.
- **Marketing**: cut-outs for banners, social posts and ads.
- **Catalogs**: consistent, cropped product thumbnails for thousands of SKUs.
- **Profile photos and ID-style portraits** on a solid color.
- **Design pipelines**: masks for compositing or further AI editing.

Combine it with our [AI Image Upscaler](https://apify.com/digitalni.produkty.pro.zivot/ai-image-upscaler) to first sharpen small supplier photos and then cut them out.

### Pricing

**$0.005 per processed image**, any resolution. 1,000 product photos cost $5. Images that fail to download or process are not charged.

### Switching from the remove.bg API?

remove.bg has announced that **starting December 1, 2026, its background removal moves to Leonardo.Ai** (part of Canva). If you have scripts, Zapier/Make/n8n scenarios or apps calling the remove.bg API, this Actor is a pay-per-image replacement with **full-resolution output included** (no separate "HD" credits) and no monthly plan.

| remove.bg API parameter | This Actor |
|---|---|
| `image_url` | `imageUrls` (a list, so you can send many images in one run) |
| `bg_color=ffffff` | `output: "color"`, `backgroundColor: "#ffffff"` |
| `channels=alpha` (mask only) | `output: "mask"` |
| `crop=true`, `crop_margin` | `cropToSubject: true`, `paddingPercent` |
| `format=png / jpg / webp` | `outputFormat: "png" / "jpeg" / "webp"` |
| `size=full` | always full resolution (up to 100 MP) |

**Want to keep your code unchanged?** Use the sister Actor [remove.bg API Alternative](https://apify.com/digitalni.produkty.pro.zivot/removebg-api-dropin): the same `/v1.0/removebg` endpoint, form fields, file uploads and response headers. You only change the base URL and the auth header. This Actor is better for bulk jobs from URL lists or datasets.

Not supported (yet): `image_file` uploads (host the file and pass a URL), `bg_image_url`, shadows and the `type` hint. Need one of them? Open an issue and tell us.

### Chain it after any product scraper

Already scraping products on Apify (Shopify, Amazon, WooCommerce, Google Shopping, marketplaces…)? Remove the backgrounds of the product images straight from the scraper's results, with no copying of URLs:

1. Open your scraper's **Integrations** tab and add **Run Actor**, then choose this Actor.
2. Use this input:

```json
{
  "datasetId": "{{resource.defaultDatasetId}}",
  "imageUrlField": "images",
  "maxImagesPerItem": 1
}
```

3. Every result row keeps `itemUrl`, `itemId`, `itemTitle` and `datasetItemIndex` from the source item, so you can join the new images back to your products.

You can also pick any existing dataset in the **Images from a dataset** field in the Console. Leave **Image field in dataset** empty and common fields (`imageUrl`, `image`, `images`, `thumbnail`, …) are detected automatically. Dot paths such as `product.images.0.src` and protocol-relative Shopify CDN links (`//cdn.shopify.com/...`) work too.

### How to use it via API

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("digitalni.produkty.pro.zivot/background-remover").call(run_input={
    "imageUrls": ["https://example.com/product.jpg"],
    "output": "color",
    "backgroundColor": "#ffffff",
    "cropToSubject": True
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["imageUrl"])
```

**JavaScript / Node.js**

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('digitalni.produkty.pro.zivot/background-remover').call({
    imageUrls: ['https://example.com/product.jpg'],
    output: 'transparent',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((i) => i.imageUrl));
```

### Integrations and AI agents

- Export results as **JSON, CSV or Excel**, or send them to **Google Drive, Dropbox, Make, Zapier, n8n** or any **webhook**.
- Use it from **AI agents** (Claude, ChatGPT, Cursor…) via the **Apify MCP server**: "remove the background from these product photos".
- **Schedule** runs to process new product images automatically.

### FAQ

**How much does it cost?**
$0.005 per image. 1,000 images cost $5, roughly 20–40× cheaper than per-image pricing of popular web apps.

**Do I need a GPU or any software?**
No. Everything runs in the cloud; just provide image URLs.

**What image sizes are supported?**
Up to 100 megapixels and 30 MB per file by default (configurable). The output keeps the original resolution.

**Can I get a white background instead of transparent?**
Yes. Set Output to "Solid background color" and choose any hex color, or pick JPEG output, which uses white automatically.

**How fast is it?**
About 3–4 seconds per image after a short start-up, so 1,000 images take roughly an hour in one run. Split very large batches into several parallel runs to go faster.

**Which model is used?**
ISNet general-use from the DIS project (Xuebin Qin et al., Apache-2.0), in the ONNX export from the rembg project. It handles products, people, animals and objects; very thin hair or transparent glass may be less precise than with paid GPU services.

**Are my images stored?**
Only in your own Apify storage for the run, under your account's data retention settings.

### More tools from the same developer

All tools with code examples: [github.com/Phenixik/apify-actors](https://github.com/Phenixik/apify-actors)

- [remove.bg API Alternative](https://apify.com/digitalni.produkty.pro.zivot/removebg-api-dropin): drop-in replacement for the remove.bg API, change one URL
- [Product Photo Prep](https://apify.com/digitalni.produkty.pro.zivot/product-photo-prep): white-background, square photos for Shopify, Amazon and Etsy
- [AI Image Upscaler](https://apify.com/digitalni.produkty.pro.zivot/ai-image-upscaler): 2x / 4x Real-ESRGAN upscaling, no GPU
- [App Icon & Screenshot Generator](https://apify.com/digitalni.produkty.pro.zivot/app-icon-generator): every iOS, Android and PWA icon size from one image
- [Website Screenshot](https://apify.com/digitalni.produkty.pro.zivot/website-screenshot): full-page, mobile and PDF screenshots
- [Sitemap URL Extractor](https://apify.com/digitalni.produkty.pro.zivot/sitemap-url-extractor): every URL from a website's sitemaps
- [Broken Link Checker](https://apify.com/digitalni.produkty.pro.zivot/broken-link-checker): find 404s and dead links on your site
- [PageSpeed & Lighthouse Audit](https://apify.com/digitalni.produkty.pro.zivot/pagespeed-audit): bulk Core Web Vitals and SEO scores
- [Domain WHOIS & DNS Lookup](https://apify.com/digitalni.produkty.pro.zivot/domain-whois-lookup): expiry, DNS, SPF/DMARC and SSL for many domains
- [PDF Text Extractor](https://apify.com/digitalni.produkty.pro.zivot/pdf-text-extractor): text, Markdown and RAG chunks from PDFs
- [E-book Converter](https://apify.com/digitalni.produkty.pro.zivot/ebook-converter): Word, Google Docs or Markdown to PDF and EPUB
- [RSS Feed Reader & Monitor](https://apify.com/digitalni.produkty.pro.zivot/rss-feed-reader): only-new-items feed monitoring
- [Career Site Jobs API](https://apify.com/digitalni.produkty.pro.zivot/ats-jobs): search 400,000+ jobs from 11,000+ company career sites
- [App Store Reviews](https://apify.com/digitalni.produkty.pro.zivot/app-store-reviews): iOS reviews from 50+ countries

**Need a custom tool?** I build custom Apify Actors, scrapers, data feeds and automations, and adapt existing Actors to your workflow. Write to digitalniproduktyprozivot@email.cz or open an issue on the Issues tab.

### Credits

ISNet / DIS: Copyright (c) Xuebin Qin, licensed under Apache-2.0 (https://github.com/xuebinqin/DIS). ONNX export by the rembg project (MIT).

### Questions or ideas?

Open an issue on the Issues tab. I usually reply and fix things within a day.

# Actor input Schema

## `imageUrls` (type: `array`):

Direct links to images (JPEG, PNG, WebP, GIF, TIFF, AVIF). One result per image. Or use a dataset below.

## `datasetId` (type: `string`):

Process the images found in the results of another Actor run, for example a Shopify, Amazon, e-shop or Google Shopping product scraper. Pick the dataset here, or in an integration pass {{resource.defaultDatasetId}}. Can be combined with image URLs above.

## `imageUrlField` (type: `string`):

Field that holds the image URL or a list of image URLs, dot paths allowed (e.g. images, product.mainImage, media.0.src). Leave empty to detect common fields automatically (imageUrl, image, images, thumbnail, …).

## `maxImagesPerItem` (type: `integer`):

How many images to take from each dataset item (1 = main image only). Each image is billed separately.

## `maxDatasetItems` (type: `integer`):

Safety limit on how many dataset items are read.

## `output` (type: `string`):

Transparent cut-out, cut-out on a solid color, or just the black-and-white mask.

## `backgroundColor` (type: `string`):

Used when Output is "Solid background color", e.g. #ffffff for white e-shop photos.

## `cropToSubject` (type: `boolean`):

Trim empty space around the subject.

## `paddingPercent` (type: `integer`):

Extra space around the subject when cropping, in % of its size.

## `outputFormat` (type: `string`):

PNG and WebP keep transparency. JPEG always gets a background color (white by default).

## `quality` (type: `integer`):

Compression quality for WebP and JPEG output (PNG is lossless).

## `maxFileSizeMb` (type: `integer`):

Images larger than this are skipped (not charged).

## Actor input object example

```json
{
  "imageUrls": [
    "https://api.apify.com/v2/key-value-stores/uxnNYX56a3qdadmXf/records/sample-shoes-cc0.jpg"
  ],
  "maxImagesPerItem": 1,
  "maxDatasetItems": 1000,
  "output": "transparent",
  "backgroundColor": "#ffffff",
  "cropToSubject": false,
  "paddingPercent": 5,
  "outputFormat": "png",
  "quality": 92,
  "maxFileSizeMb": 30
}
```

# Actor output Schema

## `images` (type: `string`):

Download link, size, background color, format and processing time.

## `summary` (type: `string`):

Counts of processed and failed images with reasons.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "imageUrls": [
        "https://api.apify.com/v2/key-value-stores/uxnNYX56a3qdadmXf/records/sample-shoes-cc0.jpg"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("digitalni.produkty.pro.zivot/background-remover").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "imageUrls": ["https://api.apify.com/v2/key-value-stores/uxnNYX56a3qdadmXf/records/sample-shoes-cc0.jpg"] }

# Run the Actor and wait for it to finish
run = client.actor("digitalni.produkty.pro.zivot/background-remover").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "imageUrls": [
    "https://api.apify.com/v2/key-value-stores/uxnNYX56a3qdadmXf/records/sample-shoes-cc0.jpg"
  ]
}' |
apify call digitalni.produkty.pro.zivot/background-remover --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,digitalni.produkty.pro.zivot/background-remover"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Z92Kp4yYGdtybI9qJ/builds/Xt2ISyXfyRpbSc08k/openapi.json
