Background Remover API нь танд хиймэл оюун ухаанаар ажилладаг дэвсгэр арилгах функцийг аппликейшнууддаа нэгтгэх боломжийг олгоно. Энгийн REST API дуудлагуудыг ашиглан зураг болон видеоноос дэвсгэрийг програмын дагуу устгана уу.
Эхлэхийн тулд API түлхүүрт бүртгүүлнэ үү Хөгжүүлэгчийн портал
Authorization: <api_key>
API параметрийн лавлагаа
Дараах параметрүүдийг таны API хүсэлтэд оруулж болно. Бүх файл байршуулалт нь бодит хэмжээний хязгаарлалтгүйгээр том файлуудыг дэмждэг.
Зураг боловсруулах параметрүүд
| Параметр | Төрөл | Үндсэн | Тайлбар |
|---|---|---|---|
convert_to | string | шаардлагатай | Зургийн дэвсгэр арилгагчийг тохируулах |
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);
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);
API нь боловсруулсан файл руу замыг буцаана.
/path/to/local/file_processed.mov
/path/to/local/file_processed.gif
Олон файл боловсруулахын тулд нэг хүсэлтэд олон файл оруулна уу. Файл бүрийг тусад нь боловсруулж, буцаана.
