Background Remover API сизге колдонмолоруңузга жасалма интеллект менен иштеген фонду алып салууну интеграциялоого мүмкүндүк берет. Жөнөкөй REST API чакыруулары менен сүрөттөрдөн жана видеолордон фондорду программалык түрдө алып салыңыз.
Баштоо үчүн, API ачкычына катталыңыз Иштеп чыгуучунун порталы
Authorization: <api_key>
API параметрлеринин шилтемеси
API сурамдарыңызга төмөнкү параметрлерди кошууга болот. Бардык файлдарды жүктөө практикалык өлчөмдөгү чектөөсүз чоң файлдарды колдойт.
Сүрөт иштетүү параметрлери
| Параметр | Түрү | Демейки | Сүрөттөмө |
|---|---|---|---|
convert_to | string | талап кылынат | Image-backgroundremover абалына коюлду |
model | string | u2net | Жасалма интеллект модели: u2net (жалпы объекттер/адамдар/нерселер), u2net_human_seg (адамдар үчүн оптималдаштырылган), u2netp (тез/жеңил) |
alpha_matting | boolean | false | Чачтын учтары курчураак жана майда-чүйдөсүнө чейин альфа төшөөнү иштетиңиз |
alpha_fg | int | 240 | Алдыңкы пландагы босого (0-255). Жогорку = алдыңкы пландагы аныктоону күчөтүү |
alpha_bg | int | 10 | Фондук босого (0-255). Төмөнкү = катуураак фонду аныктоо |
alpha_erode | int | 10 | Четтердин эрозиясынын өлчөмү (1-25). Четтердин курчтугун көзөмөлдөйт |
alpha_base_size | int | 1000 | Альфа төшөнчүсүн иштетүү үчүн базалык өлчөм. Жогорку = сапаттуураак, бирок жайыраак |
only_mask | boolean | false | Тунук сүрөттүн ордуна кара/ак масканы кайтарыңыз |
bg_type | string | transparent | Фон түрү: тунук, түстүү же сүрөт |
bg_color_value | string | #ffffff | Фондун түсү hex форматында (bg_type=color болгондо) |
Видео иштетүү параметрлери
| Параметр | Түрү | Демейки | Сүрөттөмө |
|---|---|---|---|
convert_to | string | талап кылынат | Видеонун фонду жок кылуучу режимге коюлду |
model | string | u2net | Жасалма интеллект модели: u2net (жалпы), u2net_human_seg (адамдар), u2netp (тез) |
video_format | string | mov | Чыгаруу форматы: mov (тунук), mattekey (mp4 matte), gif (анимацияланган), video_over_image, video_over_video, gif_with_bg, mp4_with_color |
alpha_matting | boolean | false | Курч четтери үчүн альфа төшөөнү иштетүү |
alpha_fg | int | 240 | Алдыңкы пландагы босого (0-255) |
alpha_bg | int | 10 | Фондук босого (0-255) |
alpha_erode | int | 10 | Четтин эрозиясынын өлчөмү (1-25) |
alpha_base_size | int | 1000 | Альфа төшөнчүлөрүн иштетүү үчүн базалык өлчөм |
video_bg_color_enabled | boolean | false | Бир түстүү фонду иштетүү (mp4_with_color форматы үчүн) |
video_bg_color | string | #00ff00 | Фондун түсү он алтылык форматта |
framerate | int | auto | Ыңгайлаштырылган чыгаруу кадр жыштыгы (1-60 FPS). Киргизилген видеого дал келүү үчүн бош калтырыңыз |
frame_limit | int | none | Иштетүүнү биринчи N кадрлар менен чектөө. Сыноо же клиптерди түзүү үчүн пайдалуу |
Сүрөттүн фонун алып салуу
Сүрөттүн фонун алып салуу
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 иштетилген файлга жолду кайтарып берет.
/path/to/local/file_processed.png
Бир нече файлды иштетүү үчүн, бир сурамга бир нече файлды кошуңуз. Ар бир файл өзүнчө иштетилип, кайтарылат.
Видеонун фонун алып салуу
Видеонун фонун алып салуу
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 иштетилген файлга жолду кайтарып берет.
/path/to/local/file_processed.mov
/path/to/local/file_processed.gif
Бир нече файлды иштетүү үчүн, бир сурамга бир нече файлды кошуңуз. Ар бир файл өзүнчө иштетилип, кайтарылат.
