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
| Halbeegga | Nooca | Asalka | Sharaxaad |
|---|---|---|---|
convert_to | string | loo baahan yahay | U deji meesha laga saaro sawirka-gadaal-ka-saarista |
model | string | u2net | Qaabka AI: u2net (walxaha guud/aadanaha/waxyaabaha), u2net_human_seg (loo habeeyay dadka), u2netp (dhakhso/fudud) |
alpha_matting | boolean | false | Daar alpha matting si aad u hesho geeso fiiqan oo timaha ah iyo faahfaahin fiican |
alpha_fg | int | 240 | Heerka hore (0-255). Sare = ogaanshaha hore oo adag |
alpha_bg | int | 10 | Heerka asalka (0-255). Hoose = ogaanshaha asalka oo adag |
alpha_erode | int | 10 | Cabbirka nabaad-guurka geeska (1-25). Waxay xakameysaa fiiqanka geeska |
alpha_base_size | int | 1000 | Cabbirka salka ee habka alfa matting. Sare = tayo ka wanaagsan laakiin gaabis ah |
only_mask | boolean | false | Soo celi maaskaro madow/caddaan halkii aad ka isticmaali lahayd sawir hufan |
bg_type | string | transparent | Nooca asalka: hufan, midab, ama sawir |
bg_color_value | string | #ffffff | Midabka asalka ah ee qaabka hex (marka bg_type=midab) |
Cabbiraadaha Habaynta Fiidiyowga
| Halbeegga | Nooca | Asalka | Sharaxaad |
|---|---|---|---|
convert_to | string | loo baahan yahay | U deji meesha laga saaro muuqaalka asalka ah |
model | string | u2net | Qaabka AI: u2net (guud), u2net_human_seg (dad), u2netp (dhakhso) |
video_format | string | mov | Qaabka 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_matting | boolean | false | Daar alfa matting si aad u hesho geeso fiiqan |
alpha_fg | int | 240 | Xadka hore (0-255) |
alpha_bg | int | 10 | Heerka asalka ah (0-255) |
alpha_erode | int | 10 | Cabbirka nabaad-guurka geeska (1-25) |
alpha_base_size | int | 1000 | Cabbirka salka ee farsamaynta alfa matte |
video_bg_color_enabled | boolean | false | Daar asalka midabka adag (qaabka mp4_with_color) |
video_bg_color | string | #00ff00 | Midabka asalka ah ee qaabka hex |
framerate | int | auto | Heerka qaab-dhismeedka wax soo saarka ee gaarka ah (1-60 FPS). Ka tag madhan si aad ula jaanqaado fiidiyowga gelinta |
frame_limit | int | none | Ku 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.
