Муқаддима
Хуш омадед ба API платформаи ImageEditor.ai!
Ҳар як хусусият барои кӯмак расонидан ба корбарони мо бо AI дар системаи ImageEditor.ai тасвирҳо осонтар сохтан ё таҳрир кардан пешбинӣ шудааст.
Барои гирифтани калиди API-и худ лутфан ба саҳифаи ҳисоб равед.
URL Асосии пешфарз
URL-и пешфарз барои API ImageEditor.ai ин аст: <b>https://api.imageeditor.ai/v1/</b>
Эзоҳ: бо сабабҳои амниятӣ, ҳама API-ҳои ImageEditor.ai танҳо тавассути HTTPS хидмат мекунанд.
Иҷозатнома
Барои истифодаи API ImageEditor.ai, ба шумо калиди API лозим аст, ки ба ҳисоби шумо пайваст аст.
Арзиши авторизатсия бояд дар дархости сарлавҳаҳо фиристода шавад.
Authorization: <api_key>
Эҷоди тасвирҳо
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
"is_sfw": True,
"negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
"dimension": "landscape",
"fix_faces": True,
"make_tile": False,
"upscale": False,
"threesixty": False,
}
base_api_url = "https://api.imageeditor.ai"
api_url = f"{base_api_url}/v1"
def download_file(url, local_filename):
url = f"{base_api_url}/{url}"
with requests.get(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):
r = requests.post(
url=f"{api_url}/create-image/",
json=params,
headers=headers
)
return r.json()
def get_results(params):
if params.get("error"):
print(params)
return
r = requests.post(
url=f"{api_url}/results/",
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"):
print(f.get("url"))
download_file("%s" % f.get("url"), "%s" % f.get("filename"))
return {"finished": "files downloaded"}
return r.json()
get_results(convert_files(api_url, params, headers))
Create image
curl -X POST \
https://api.imageeditor.ai/v1/create-image/ \
-H 'Authorization: api_key' \
-H 'Content-Type: application/json' \
-d '{
"terms": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
"is_sfw": true,
"negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
"dimension": "landscape",
"fix_faces": true,
"make_tile": false,
"upscale": false,
"threesixty": false
}'
Get created image URL
curl -X POST \
https://api.imageeditor.ai/v1/results/ \
-F 'uuid=response_uuid'
<?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 = ['/test_files/test.jpeg'];
$api_url = "https://api.imageeditor.ai/v1/edit-image/";
$results_url = "https://api.imageeditor.ai/v1/results/";
function download_file($url, $filename){
$curl = curl_init();
$url = "https://api.imageeditor.ai" . $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);
# Make sure destionation path exists
$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['terms'] = 'харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда';
$post_data['dimension'] = 'landscape';
$post_data['fix_faces'] = true;
$post_data['make_tile'] = false;
$post_data['upscale'] = false;
$post_data['threesixty'] = false;
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 = ['/test_files/sala.png']
const api_url = 'https://api.imageeditor.ai/v1/create-image/'
const results_url = 'https://api.imageeditor.ai/v1/results/'
function convertFiles(file_list) {
let data = {
"terms": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
"is_sfw": true,
"negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
"dimension": "landscape",
"fix_faces": true,
"make_tile": false,
"upscale": false,
"threesixty": false,
};
for (var i = 0; i < file_list.length; i++) {
formData['files'] = fs.createReadStream(file_list[i]);
}
request({
url: api_url,
method: 'post',
json: data,
headers: {
"Authorization": "api_key",
"Content-Type": "application/json",
}
}, 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);
Ҷавоб
/path/to/local/result.jpg
Дархости HTTP
POST /create-image/
Параметрҳои дархост
Параметр | Навъи | Тавсифи | Мисол |
---|---|---|---|
is_sfw | Ихтиёрӣ | Агар "шартҳо "true" -ро таъин кунед | true ё false |
terms | Талаб карда мешавад | Ба AI бигӯед, ки шумо кадом тасвирро эҷод кардан мехоҳед. | харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил |
negative_terms | Ихтиёрӣ | Ба АИ бигӯед, ки чӣ бояд истисно карда шавад. | такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда |
dimension | Ихтиёрӣ | Тасвирҳои портрет ё манзараро гиред, агар холӣ ё нул бошад, арзиши "портрет" пешфарз аст. | portrait ё landscape |
fix_faces | Ихтиёрӣ | Бигзор AI чеҳраҳоро дар тасвирҳои натиҷа ислоҳ кунад, агар фиристода нашавад, арзиши бардурӯғ пешфарз аст. | true ё false |
make_tile | Ихтиёрӣ | Агар шумо хоҳед, ки тасвире, ки ҳамчун намуна истифода шавад, true таъин кунед. | true ё false |
upscale | Ихтиёрӣ | AI тасвири калонтареро бармегардонад. | true ё false |
threesixty | Ихтиёрӣ | AI тасвири 360º-ро бармегардонад. | true ё false |
Тасвирҳоро таҳрир кунед
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Коса гурбачахо",
"is_sfw": True,
"replacing": "мева ва пояи мева",
"negative_terms": "",
"fix_faces": True,
"outpaint": False,
"upscale": False,
}
file_path = "path/to/test.jpeg"
base_api_url = "https://api.imageeditor.ai"
api_url = f"{base_api_url}/v1"
def download_file(url, local_filename):
url = f"{base_api_url}/{url}"
with requests.get(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_path}", "rb"))')]
r = requests.post(
url=f"{api_url}/edit-image/",
files=files,
data=params,
headers=headers
)
return r.json()
def get_results(params):
if params.get("error"):
print(params)
return
r = requests.post(
url=f"{api_url}/results/",
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"):
print(f.get("url"))
download_file("%s" % f.get("url"), "%s" % f.get("filename"))
return {"finished": "files downloaded"}
return r.json()
get_results(convert_files(api_url, params, headers))
Тасвирҳоро таҳрир кунед
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Коса гурбачахо' \
-F 'is_sfw=true' \
-F 'replacing=мева ва пояи мева' \
-F 'negative_terms=' \
-F 'fix_faces=true' \
-F 'outpaint=false' \
-F 'upscale=false'
Get result image
curl -X POST \
https://api.imageeditor.ai/v1/results/ \
-F 'uuid=response_uuid'
<?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 = ['/test_files/test.jpeg'];
$api_url = "https://api.imageeditor.ai/v1/edit-image/";
$results_url = "https://api.imageeditor.ai/v1/results/";
function download_file($url, $filename){
$curl = curl_init();
$url = "https://api.imageeditor.ai" . $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);
# Make sure destionation path exists
$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['terms'] = 'харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил';
$post_data['is_sfw'] = true;
$post_data['replacing'] = 'мева ва пояи мева';
$post_data['negative_terms'] = '';
$post_data['fix_faces'] = true;
$post_data['outpaint'] = false;
$post_data['upscale'] = false;
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 = ['/test_files/test.jpeg']
const api_url = 'https://api.imageeditor.ai/v1/edit-image/'
const results_url = 'https://api.imageeditor.ai/v1/results/'
function convertFiles(file_list) {
let formData = {
"terms": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
"is_sfw": true,
"negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
"dimension": "landscape",
"fix_faces": true,
"make_tile": false,
"upscale": false,
"threesixty": false,
};
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": "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);
Ҷавоб
/path/to/local/result.jpg
Дархости HTTP
POST /edit-image/
Параметрҳои дархост
Параметр | Навъи | Тавсифи | Мисол |
---|---|---|---|
is_sfw | Ихтиёрӣ | Агар "шартҳо "true" -ро таъин кунед | true ё false |
terms | Талаб карда мешавад | Ба AI бигӯед, ки шумо дар асоси тасвири худ чӣ мехоҳед. | Коса гурбачахо |
replacing | Ихтиёрӣ | Ба AI бигӯед, ки агар шумо мехоҳед чизеро дар тасвири худ дар асоси дархости дар боло овардаатон иваз кунед | мева ва пояи мева |
negative_terms | Ихтиёрӣ | Ба АИ бигӯед, ки чӣ бояд истисно карда шавад. | такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда |
fix_faces | Ихтиёрӣ | Бигзор AI чеҳраҳоро дар тасвирҳои натиҷа ислоҳ кунад, агар фиристода нашавад, арзиши бардурӯғ пешфарз аст. | true ё false |
outpaint | Ихтиёрӣ | Бо назардошти тасвири ибтидоӣ, AI метавонад "муҳит" -и онро эҷод кунад | true ё false |
upscale | Ихтиёрӣ | AI тасвири калонтареро бармегардонад. | true ё false |