Background Removal Tool

Accurately remove the background from images using the Pre-Trained Model

The platform is the place for a background removal AI, with a degree of accuracy. 

Background removal tools extract the main subject of the image, and subsequently eliminate the unwanted background elements of the image. 

There are many use cases for background removal (link to blog), across sectors including:

  • Retail
  • Web Design
  • Medical Imaging
  • Data Annotation
  • Agriculture

Improved accuracy and speed with background removal AI 

Our pre-trained model speeds up the process of removing the background from a large volume of images. The advanced Image Recognition used for the tool ensures the results are accurate and precise.’s intuitive and easy-to-use interface allows everyone, regardless of technical expertise, to use our powerful background removal pre-trained model.

Using the AI Background Remover Tool in Three Easy Steps

Using the web interface is the quickest way to use the background removal tool. Once you have logged in to your account, simply:

Three different ways to use the Background Removal Pre Trained Model

You can use the background removal pre-trained model in a number of ways, depending on your requirements and set-up.

Web interface

Web Interface

Using the Web Interface is the quickest and most straightforward way to use the background removal pre-trained model.
Rest API


Using the REST API to use the background removal tool gives you a greater degree of flexibility and efficiency without the need for expensive hardware such as GPUs.
Sentisight on mobile

Mobile app

The mobile app enables users to easily make object detection predictions from their phone, as well as uploading images to their project.

Using the Background Removal Pre-Trained Model via REST API currently offers eight pre-trained models, including the Background Removal tool. To use one of these models via REST API, you will need the following details:

  • API token

This is available under the ‘Wallet information’ tab of the online dashboard

Use this endpoint for predictions:

The REST API query will return a JSON response containing base64 encoded PNG image data that can be converted into PNG image files with a variety of apps and online services.

If you want to trim the empty space from the image after removing the background, you can add the “?crop=true” parameter to the request URL. 

Below you will find image upload samples for background removal. You can adapt other pre-trained models' samples using URL or Base64 image to use with background removal. 

MODEL="your_model_name" # "General-classification", "Places-classification", "NSFW-classification" or "Object-detection"
curl -H "X-Auth-token: $TOKEN" --data-binary @"$IMAGE_FILENAME" \
  -H "Content-Type: application/octet-stream" \
import java.nio.file.Files;

public class App
   public static void main( String[] args ) throws IOException
       if (args.length < 4) {
           System.out.println("Usage: java -jar sample.jar api_token file");
       String token = args[0];
       String imageFilename = args[1];
       String modelName = "General-classification"; // Change to "General-classification", "Places-classification", "NSFW-classification", "Object-detection" or "Instance-segmentation"
       byte[] bytes = Files.readAllBytes(new File(imageFilename).toPath());
       URL url = new URL("" + modelName);
       HttpURLConnection connection = (HttpURLConnection)url.openConnection();        
       connection.setRequestProperty("Content-Type", "application/octet-stream");
       connection.setRequestProperty("X-Auth-token", token);
       DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String output;
        StringBuffer response = new StringBuffer();

        while ((output = in.readLine()) != null) {

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <meta charset="utf-8">
    <script type="text/javascript">
        const baseApiURL = '';
        let token = '';
        let predictionId;
        let results;
        let resultOutput;

        function predict() {
            token = document.getElementById('tokenfield').value;
            const modelName = "General-classification"; // Change to "General-classification", "Places-classification", "NSFW-classification" or "Object-detection"
            const input = document.getElementById('upload');
            resultOutput = document.getElementById('output');
            const file = input.files[0];
            const fr = new FileReader();
            fr.onload = function() {
                results = apiPostRequest('pm-predict/' + modelName, fr.result);
                let parsedResults = JSON.parse(results);
                resultOutput.innerText = results;

        function apiPostRequest(request, body) {
            const xmlHttp = new XMLHttpRequest();
  "POST", baseApiURL + request, false);
            xmlHttp.setRequestHeader('Content-Type', 'application/octet-stream');
            xmlHttp.setRequestHeader('X-Auth-token', token);
            return xmlHttp.responseText;
Token: <input id="tokenfield" type="text" name="" value="">
Upload image: <input id="upload" type="file" name="" value="">
<button type="button" onclick="predict()">Predict</button>
<p id="output">Your results will go here!</p>
import requests

token = "your_token"
model = "your_model_name" # "General-classification", "Places-classification", "NSFW-classification" or "Object-detection"
image_filename = "your_image_path"

headers = {"X-Auth-token": token, "Content-Type": "application/octet-stream"}

with open(image_filename, 'rb') as handle:
    r ='{}/'.format(model), headers=headers, data=handle)

if r.status_code == 200:
    print('Error occured with REST API.')
    print('Status code: {}'.format(r.status_code))
    print('Error message: ' + r.text)
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;

namespace Sample
    class Program
        static void Main(string[] args)
            if (args.Length < 3)
                Console.WriteLine("Expected arguments: api_token model_name file");
            var token = args[0];
            var modelName = args[1];
            var imageFilename  = args[2];

            var bytes = File.ReadAllBytes(imageFilename);
            var data = new ByteArrayContent(bytes);
            data.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");

            var uri = new Uri($"{modelName}");
            var client = new HttpClient();
            client.DefaultRequestHeaders.Add("X-Auth-token", token);

            var response = client.PostAsync(uri, data);
            var result = response.Result.Content.ReadAsStringAsync().Result;

Pricing is supported by a pay-as-you-go wallet based system that allows users to pay for only what they use, maximizing flexibility and value for money. 

New users get €20 of free credits when you sign up for a account. 

Every user receives €5 a month of free credits for use on the platform. 

There is no need to enter your billing information to receive these free credits. Therefore, the platform can be completely free to use if you do exceed the €5 monthly free credit buffer.

The cost to train and use the Pre-trained models are as follows;

  Pricing Range 1-10,000 Predictions 10,001-100,000 predictions 100,000+ predictions
Prediction 0.0008-0.001 EUR 0.001 eur/prediction 0.0009 eur/prediction 0.0008 eur/prediction

For full details of’s pricing model, including project management features and extra disk space, please visit the Pricing Page.