API-и Background Remover ба шумо имкон медиҳад, ки несткунии заминаро, ки аз ҷониби зеҳни сунъӣ кор мекунад, ба барномаҳои худ ворид кунед. Бо истифода аз зангҳои оддии REST API, заминаҳоро аз тасвирҳо ва видеоҳо ба таври барномавӣ тоза кунед.
Барои оғоз кардан, барои калиди API дар ... сабти ном кунед Портали таҳиягар
Authorization: <api_key>
Истиноди параметрҳои API
Параметрҳои зеринро метавон дар дархостҳои API-и худ дохил кард. Ҳама боргузориҳои файл файлҳои калонро бидуни маҳдудияти андозаи амалӣ дастгирӣ мекунанд.
Параметрҳои коркарди тасвир
| Параметр | Навъ | Пешфарз | Тавсиф |
|---|---|---|---|
convert_to | string | зарурӣ | Ба тасвир-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);
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
Барои коркарди якчанд файл, якчанд файлро дар як дархост дохил кунед. Ҳар як файл алоҳида коркард ва баргардонида мешавад.
