Το 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 matting για πιο ευκρινείς άκρες στα μαλλιά και λεπτές λεπτομέρειες |
alpha_fg | int | 240 | Όριο πρώτου πλάνου (0-255). Υψηλότερο = αυστηρότερη ανίχνευση πρώτου πλάνου |
alpha_bg | int | 10 | Όριο φόντου (0-255). Χαμηλότερο = αυστηρότερη ανίχνευση φόντου |
alpha_erode | int | 10 | Μέγεθος διάβρωσης ακμής (1-25). Ελέγχει την ευκρίνεια της ακμής |
alpha_base_size | int | 1000 | Μέγεθος βάσης για επεξεργασία alpha matting. Υψηλότερο = καλύτερη ποιότητα αλλά πιο αργό |
only_mask | boolean | false | Επιστροφή ασπρόμαυρης μάσκας αντί για διαφανή εικόνα |
bg_type | string | transparent | Τύπος φόντου: διαφανές, έγχρωμο ή εικόνας |
bg_color_value | string | #ffffff | Χρώμα φόντου σε δεκαεξαδική μορφή (όταν 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 | Ενεργοποίηση άλφα matting για πιο ευκρινείς άκρες |
alpha_fg | int | 240 | Όριο πρώτου πλάνου (0-255) |
alpha_bg | int | 10 | Όριο φόντου (0-255) |
alpha_erode | int | 10 | Μέγεθος διάβρωσης ακμής (1-25) |
alpha_base_size | int | 1000 | Μέγεθος βάσης για επεξεργασία άλφα matting |
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
Για να επεξεργαστείτε πολλά αρχεία, συμπεριλάβετε πολλά αρχεία σε ένα μόνο αίτημα. Κάθε αρχείο θα υποβάλλεται σε επεξεργασία και θα επιστρέφεται ξεχωριστά.
