NAV
shell python php javascript C#

API-ga Ka-saarista Gadaasha wuxuu kuu ogolaanayaa inaad ku darto ka saarista gadaasha ee ku shaqeysa AI-ga codsiyadaada. Ka saar gadaasha sawirada iyo fiidiyowyada barnaamij ahaan iyadoo la adeegsanayo wicitaanada REST API ee fudud.

Si aad u bilowdo, iska diiwaan geli furaha API-ga Bogga Horumariyaha

Authorization: <api_key>

Tixraaca Xariijinta API

Xuduudaha soo socda waxaa lagu dari karaa codsiyadaada API. Dhammaan soo gelinta faylasha waxay taageertaa faylal waaweyn oo aan lahayn xad cabbir oo wax ku ool ah.

Cabbiraadaha Habaynta Sawirka

HalbeeggaNoocaAsalkaSharaxaad
convert_tostringloo baahan yahayU deji meesha laga saaro sawirka-gadaal-ka-saarista
modelstringu2netQaabka AI: u2net (walxaha guud/aadanaha/waxyaabaha), u2net_human_seg (loo habeeyay dadka), u2netp (dhakhso/fudud)
alpha_mattingbooleanfalseDaar alpha matting si aad u hesho geeso fiiqan oo timaha ah iyo faahfaahin fiican
alpha_fgint240Heerka hore (0-255). Sare = ogaanshaha hore oo adag
alpha_bgint10Heerka asalka (0-255). Hoose = ogaanshaha asalka oo adag
alpha_erodeint10Cabbirka nabaad-guurka geeska (1-25). Waxay xakameysaa fiiqanka geeska
alpha_base_sizeint1000Cabbirka salka ee habka alfa matting. Sare = tayo ka wanaagsan laakiin gaabis ah
only_maskbooleanfalseSoo celi maaskaro madow/caddaan halkii aad ka isticmaali lahayd sawir hufan
bg_typestringtransparentNooca asalka: hufan, midab, ama sawir
bg_color_valuestring#ffffffMidabka asalka ah ee qaabka hex (marka bg_type=midab)

Cabbiraadaha Habaynta Fiidiyowga

HalbeeggaNoocaAsalkaSharaxaad
convert_tostringloo baahan yahayU deji meesha laga saaro muuqaalka asalka ah
modelstringu2netQaabka AI: u2net (guud), u2net_human_seg (dad), u2netp (dhakhso)
video_formatstringmovQaabka wax soo saarka: mov (daahfuran), mattekey (mp4 matte), gif (ka-ciyaaray), video_over_image, video_over_video, gif_with_bg, mp4_with_midab_leh
alpha_mattingbooleanfalseDaar alfa matting si aad u hesho geeso fiiqan
alpha_fgint240Xadka hore (0-255)
alpha_bgint10Heerka asalka ah (0-255)
alpha_erodeint10Cabbirka nabaad-guurka geeska (1-25)
alpha_base_sizeint1000Cabbirka salka ee farsamaynta alfa matte
video_bg_color_enabledbooleanfalseDaar asalka midabka adag (qaabka mp4_with_color)
video_bg_colorstring#00ff00Midabka asalka ah ee qaabka hex
framerateintautoHeerka qaab-dhismeedka wax soo saarka ee gaarka ah (1-60 FPS). Ka tag madhan si aad ula jaanqaado fiidiyowga gelinta
frame_limitintnoneKu xaddid habaynta qaababka N ee ugu horreeya. Waxay waxtar u leedahay tijaabinta ama abuurista muuqaallo

Ka saar asalka sawirka

Ka saar asalka sawirka

import requests
import time
import shutil
import json

headers = {'Authorization': 'YOUR_API_KEY'}
file_list = ['testfiles/image.jpeg']
params = {
    'lang': 'en',
    'convert_to': 'image-backgroundremover',
    'model': 'u2net',
    'alpha_matting': 'true',
    'alpha_fg': '240',
    'alpha_bg': '10',
    'alpha_erode': '10',
}
api_domain = "api.backgroundremoverai.com"
port = "https"
api_url = f"{port}://{api_domain}/v1/convert/"
results_url = f"{port}://{api_domain}/v1/results/"


def download_file(url, local_filename):
    with requests.get(f"{port}://{api_domain}{url}", stream=True) as r:
        with open(local_filename, 'wb') as f:
            shutil.copyfileobj(r.raw, f)
    return local_filename


def convert_files(api_url, params, headers):
    files = [eval(f'("files", open("{file}", "rb"))') for file in file_list]
    r = requests.post(
        url=api_url,
        files=files,
        data=params,
        headers=headers
    )
    if r.status_code != 200:
        print(r.status_code)
        print(r.content)
        return

    return r.json()


def get_results(params):
    if params.get('error'):
        return params.get('error')

    r = requests.post(
        url=results_url,
        data=params
    )
    data = r.json()
    finished = data.get('finished')

    while not finished:
        if int(data.get('queue_count')) > 0:
            print('queue: %s' % data.get('queue_count'))

        time.sleep(5)
        results = get_results(params)
        results = json.dumps(results)

        if results:
            break
    if finished:
        for f in data.get('files'):
            download_file("%s" % f.get('url'), "%s" % f.get('filename'))
        return {"finished": "files downloaded"}

    return r.json()


resp = convert_files(api_url, params, headers)
get_results(resp)
curl -F "lang=en" -F "convert_to=image-backgroundremover" -F "files=@image.jpeg" -H "Authorization: YOUR_API_KEY" https://api.backgroundremoverai.com/v1/convert/

{"uuid": "conversion_uuid"}

curl -F "uuid=conversion_uuid" https://api.backgroundremoverai.com/v1/results/

{"files": [{"url": "/path/to/file.png", "filename": "file.png"}], "failed": [], "finished": true, "queue_count": 0, "errors": []}





<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ERROR | E_PARSE);

$headers = array("Authorization: YOUR_API_KEY");
$file_list = ['/path/to/files/image.jpeg'];
$api_url = "https://api.backgroundremoverai.com/v1/convert/";
$results_url = "https://api.backgroundremoverai.com/v1/results/";

function download_file($url, $filename){
    $curl = curl_init();
    $url = "https://api.backgroundremoverai.com" . $url;
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSLVERSION, 3);
    $data = curl_exec($curl);
    $error = curl_error($curl);
    curl_close ($curl);
    $destination_path = "/path/to/result/files/";
    $destination_file = fopen($destination_path . $filename, "w+");
    fwrite($destination_file, $data);
    fclose($destination_file);
}

function convert_files($file_list, $headers, $api_url) {
    $post_data['lang'] = 'en';
    $post_data['convert_to'] = 'image-backgroundremover';
    $post_data['model'] = 'u2net';
    $post_data['alpha_matting'] = 'true';

    foreach ($file_list as $index => $file) {
        $post_data['file[' . $index . ']'] = curl_file_create(
            realpath($file),
            mime_content_type($file),
            basename($file)
        );
    }

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $api_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $content = curl_exec($curl);
    curl_close($curl);

    return json_decode($content);
}

function get_results($params, $results_url, $headers) {
    if ($params->error) {
        print_r($params->error);
        return;
    }

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $results_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_decode(json_encode($params), true));
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $content = json_decode(curl_exec($curl));
    curl_close($curl);

    if ($content->finished == false) {
        if (intval($content->queue_count) > 0) {
            print_r("queue: $content->queue_count");
        }

        sleep(5);
        $results = get_results($params, $results_url, $headers);
        return;
    }

    foreach ($content->files as $f) {
        download_file($f->url, $f->filename);
    }
}

$resp = convert_files($file_list, $headers, $api_url);
get_results($resp, $results_url, $headers);
?>
const request = require('request');
const fs = require('fs');

let file_list = ['/testfiles/blah.jpeg']
const api_url = 'https://api.backgroundremoverai.com/v1/convert/'
const results_url = 'https://api.backgroundremoverai.com/v1/results/'

function convertFiles(file_list) {
    let formData = {
        'lang': 'en',
        'convert_to': 'image-backgroundremover',
        'model': 'u2net',
        'alpha_matting': 'true'
    };

    for (var i = 0; i < file_list.length; i ++) {
        formData['files'] = fs.createReadStream(file_list[i]);
    }

    request({
        url: api_url,
        method: 'post',
        formData: formData,
        headers: {
            "Authorization": "YOUR_API_KEY",
            "Content-Type": "multipart/form-data",
        }
    }, function(err, res, body) {
        if (err) {
            console.error(err);
            return err;
        }
        getResults(JSON.parse(body));
    });
}

function getResults(data) {
    if (data.error) {
        console.error(data);
        return data.error;
    }
    request({
        url: results_url,
        method: 'post',
        formData: data
    }, function(e, r, body) {
        response = JSON.parse(body);
        console.log(response);
        if (!response.finished) {
            setTimeout(
                function() {
                    getResults(data);
                }, 1000
            );
        }

        console.log(response);
    })
}

convertFiles(file_list);
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;

class Program
{
    static readonly HttpClient client = new HttpClient();

    static async Task Main()
    {
        client.DefaultRequestHeaders.Add("Authorization", "YOUR_API_KEY");
        var form = new MultipartFormDataContent();
        form.Add(new StringContent("en"), "lang");
        form.Add(new StringContent("image-backgroundremover"), "convert_to");
        form.Add(new StringContent("u2net"), "model");
        form.Add(new StringContent("true"), "alpha_matting");
        form.Add(new ByteArrayContent(File.ReadAllBytes("testfiles/image.jpeg")),
            "files", "image.jpeg");

        var response = await client.PostAsync(
            "https://api.backgroundremoverai.com/v1/convert/",
            form
        );
        var result = await response.Content.ReadAsStringAsync();
        var data = JsonConvert.DeserializeObject<dynamic>(result);

        while (!(bool)data.finished)
        {
            await Task.Delay(5000);
            var pollContent = new FormUrlEncodedContent(new[] {
                new KeyValuePair<string, string>("uuid", (string)data.uuid)
            });
            response = await client.PostAsync(
                "https://api.backgroundremoverai.com/v1/results/",
                pollContent
            );
            result = await response.Content.ReadAsStringAsync();
            data = JsonConvert.DeserializeObject<dynamic>(result);
        }

        foreach (var file in data.files)
        {
            Console.WriteLine(file.url);
        }
    }
}

API-gu wuxuu ku soo celin doonaa waddada faylka la farsameeyay.

/path/to/local/file_processed.png

Si aad u farsamayso faylal badan, ku dar faylal badan hal codsi. Fayl kasta si gaar ah ayaa loo farsamayn doonaa oo loo soo celin doonaa.

Ka saar asalka muuqaalka

Ka saar asalka muuqaalka

import requests
import time
import shutil
import json

headers = {'Authorization': 'YOUR_API_KEY'}
file_list = ['testfiles/video.mp4']
params = {
    'lang': 'en',
    'convert_to': 'video-backgroundremover',
    'model': 'u2net',
    'video_format': 'mov',
    'alpha_matting': 'true',
}
api_domain = "api.backgroundremoverai.com"
port = "https"
api_url = f"{port}://{api_domain}/v1/convert/"
results_url = f"{port}://{api_domain}/v1/results/"


def download_file(url, local_filename):
    with requests.get(f"{port}://{api_domain}{url}", stream=True) as r:
        with open(local_filename, 'wb') as f:
            shutil.copyfileobj(r.raw, f)
    return local_filename


def convert_files(api_url, params, headers):
    files = [eval(f'("files", open("{file}", "rb"))') for file in file_list]
    r = requests.post(
        url=api_url,
        files=files,
        data=params,
        headers=headers
    )
    if r.status_code != 200:
        print(r.status_code)
        print(r.content)
        return

    return r.json()


def get_results(params):
    if params.get('error'):
        return params.get('error')

    r = requests.post(
        url=results_url,
        data=params
    )
    data = r.json()
    finished = data.get('finished')

    while not finished:
        if int(data.get('queue_count')) > 0:
            print('queue: %s' % data.get('queue_count'))

        time.sleep(5)
        results = get_results(params)
        results = json.dumps(results)

        if results:
            break
    if finished:
        for f in data.get('files'):
            download_file("%s" % f.get('url'), "%s" % f.get('filename'))
        return {"finished": "files downloaded"}

    return r.json()


resp = convert_files(api_url, params, headers)
get_results(resp)
curl -F "lang=en" -F "convert_to=video-backgroundremover" \
     -F "files=@video.mp4" \
     -H "Authorization: YOUR_API_KEY" https://api.backgroundremoverai.com/v1/convert/

{"uuid": "conversion_uuid"}

curl -F "uuid=conversion_uuid" https://api.backgroundremoverai.com/v1/results/

{"files": [{"url": "/path/to/file.mov", "filename": "file.mov"}], "failed": [], "finished": true, "queue_count": 0, "errors": []}





<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ERROR | E_PARSE);

$headers = array("Authorization: api_key");
$file_list = ['/path/to/files/blah.mp4'];
$api_url = "https://api.backgroundremoverai.com/v1/convert/";
$results_url = "https://api.backgroundremoverai.com/v1/results/";

function download_file($url, $filename){
    $curl = curl_init();
    $url = "https://api.backgroundremoverai.com" . $url;
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSLVERSION, 3);
    $data = curl_exec($curl);
    $error = curl_error($curl);
    curl_close ($curl);
    $destination_path = "/path/to/result/files/";
    $destination_file = fopen($destination_path . $filename, "w+");
    fwrite($destination_file, $data);
    fclose($destination_file);
}

function convert_files($file_list, $headers, $api_url) {
    $post_data['lang'] = 'en';
    $post_data['convert_to'] = 'video-backgroundremover';

    foreach ($file_list as $index => $file) {
        $post_data['file[' . $index . ']'] = curl_file_create(
            realpath($file),
            mime_content_type($file),
            basename($file)
        );
    }

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $api_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $content = curl_exec($curl);
    curl_close($curl);

    return json_decode($content);
}

function get_results($params, $results_url, $headers) {
    if ($params->error) {
        print_r($params->error);
        return;
    }

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $results_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_decode(json_encode($params), true));
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $content = json_decode(curl_exec($curl));
    curl_close($curl);

    if ($content->finished == false) {
        if (intval($content->queue_count) > 0) {
            print_r("queue: $content->queue_count");
        }

        sleep(5);
        $results = get_results($params, $results_url, $headers);
        return;
    }

    foreach ($content->files as $f) {
        download_file($f->url, $f->filename);
    }
}

$resp = convert_files($file_list, $headers, $api_url);
get_results($resp, $results_url, $headers);
?>
const request = require('request');
const fs = require('fs');

let file_list = ['/testfiles/blah.mp4']
const api_url = 'https://api.backgroundremoverai.com/v1/convert/'
const results_url = 'https://api.backgroundremoverai.com/v1/results/'

function convertFiles(file_list) {
    let formData = {
        'lang': 'en',
        'convert_to': 'video-backgroundremover'
    };

    for (var i = 0; i < file_list.length; i ++) {
        formData['files'] = fs.createReadStream(file_list[i]);
    }

    request({
        url: api_url,
        method: 'post',
        formData: formData,
        headers: {
            "Authorization": "YOUR_API_KEY",
            "Content-Type": "multipart/form-data",
        }
    }, function(err, res, body) {
        if (err) {
            console.error(err);
            return err;
        }
        getResults(JSON.parse(body));
    });
}

function getResults(data) {
    if (data.error) {
        console.error(data);
        return data.error;
    }
    request({
        url: results_url,
        method: 'post',
        formData: data
    }, function(e, r, body) {
        response = JSON.parse(body);
        console.log(response);
        if (!response.finished) {
            setTimeout(
                function() {
                    getResults(data);
                }, 1000
            );
        }

        console.log(response);
    })
}

convertFiles(file_list);
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;

class Program
{
    static readonly HttpClient client = new HttpClient();

    static async Task Main()
    {
        client.DefaultRequestHeaders.Add("Authorization", "YOUR_API_KEY");
        var form = new MultipartFormDataContent();
        form.Add(new StringContent("en"), "lang");
        form.Add(new StringContent("video-backgroundremover"), "convert_to");
        form.Add(new StringContent("u2net"), "model");
        form.Add(new StringContent("mov"), "video_format");
        form.Add(new StringContent("true"), "alpha_matting");
        form.Add(new ByteArrayContent(File.ReadAllBytes("testfiles/video.mp4")),
            "files", "video.mp4");

        var response = await client.PostAsync(
            "https://api.backgroundremoverai.com/v1/convert/",
            form
        );
        var result = await response.Content.ReadAsStringAsync();
        var data = JsonConvert.DeserializeObject<dynamic>(result);

        while (!(bool)data.finished)
        {
            await Task.Delay(5000);
            var pollContent = new FormUrlEncodedContent(new[] {
                new KeyValuePair<string, string>("uuid", (string)data.uuid)
            });
            response = await client.PostAsync(
                "https://api.backgroundremoverai.com/v1/results/",
                pollContent
            );
            result = await response.Content.ReadAsStringAsync();
            data = JsonConvert.DeserializeObject<dynamic>(result);
        }

        foreach (var file in data.files)
        {
            Console.WriteLine(file.url);
        }
    }
}

API-gu wuxuu ku soo celin doonaa waddada faylka la farsameeyay.

/path/to/local/file_processed.mov
/path/to/local/file_processed.gif

Si aad u farsamayso faylal badan, ku dar faylal badan hal codsi. Fayl kasta si gaar ah ayaa loo farsamayn doonaa oo loo soo celin doonaa.