Giriş
ImageEditor.ai platforma API-yə xoş gəlmisiniz!
Hər bir xüsusiyyət istifadəçilərimizə ImageEditor.ai sistemində AI ilə şəkilləri daha asan yaratmaq və ya redaktə etməkdə kömək etmək üçün nəzərdə tutulmuşdur.
API açarınızı əldə etmək üçün hesab səhifəsinə keçin.
Defolt Əsas URL
ImageEditor.ai API üçün standart əsas URL: <b>https://api.imageeditor.ai/v1/</b>
Qeyd: təhlükəsizlik səbəbi ilə bütün ImageEditor.ai API-ləri yalnız HTTPS üzərindən xidmət göstərir.
Səlahiyyət
ImageEditor.ai API-dən istifadə etmək üçün sizə hesabınızla əlaqəli API açarı lazımdır.
Avtorizasiya dəyəri Başlıq sorğusunda göndərilməlidir.
Authorization: <api_key>
Şəkillər yaradın
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "dovşan məktəbə gedir, cahil üslubda döymə sənəti",
"is_sfw": True,
"negative_terms": "dublikat, zəif çəkilmiş üz, xəstə, zəif çəkilmiş barmaqlar, çirkin, bulanıq, cizgi filmi, disney, çərçivədən kənar, kəsilmiş",
"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": "dovşan məktəbə gedir, cahil üslubda döymə sənəti",
"is_sfw": true,
"negative_terms": "dublikat, zəif çəkilmiş üz, xəstə, zəif çəkilmiş barmaqlar, çirkin, bulanıq, cizgi filmi, disney, çərçivədən kənar, kəsilmiş",
"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'] = 'dovşan məktəbə gedir, cahil üslubda döymə sənəti';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'dublikat, zəif çəkilmiş üz, xəstə, zəif çəkilmiş barmaqlar, çirkin, bulanıq, cizgi filmi, disney, çərçivədən kənar, kəsilmiş';
$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": "dovşan məktəbə gedir, cahil üslubda döymə sənəti",
"is_sfw": true,
"negative_terms": "dublikat, zəif çəkilmiş üz, xəstə, zəif çəkilmiş barmaqlar, çirkin, bulanıq, cizgi filmi, disney, çərçivədən kənar, kəsilmiş",
"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);
Cavab
/path/to/local/result.jpg
HTTP sorğusu
POST /create-image/
Sorğu parametrləri
Parametr | Növ | Təsvir | Misal |
---|---|---|---|
is_sfw | Könüllü | "true" seçin | true və ya false |
terms | Tələb olunur | Süni intellektə hansı təsviri yaratmaq istədiyinizi deyin. | dovşan məktəbə gedir, cahil üslubda döymə sənəti |
negative_terms | Könüllü | Nəyin xaric edilməli olduğunu AI-ya deyin. | dublikat, zəif çəkilmiş üz, xəstə, zəif çəkilmiş barmaqlar, çirkin, bulanıq, cizgi filmi, disney, çərçivədən kənar, kəsilmiş |
dimension | Könüllü | Portret və ya landşaft şəkillərini əldə edin, boş və ya sıfır olduqda "portret" dəyəri standartdır. | portrait və ya landscape |
fix_faces | Könüllü | Nəticə şəkillərindəki üzləri düzəltməyə AI-ya icazə verin, göndərilməsə, yanlış dəyər standartdır. | true və ya false |
make_tile | Könüllü | Naxış kimi istifadə edilə bilən bir şəkil istəyirsinizsə, true seçin. | true və ya false |
upscale | Könüllü | Süni intellekt daha böyük ölçülü şəkil qaytaracaq. | true və ya false |
threesixty | Könüllü | Süni intellekt 360º təsviri qaytaracaq. | true və ya false |
Şəkilləri redaktə edin
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Pişik qabı",
"is_sfw": True,
"replacing": "meyvə və meyvə gövdəsi",
"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))
Şəkilləri redaktə edin
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Pişik qabı' \
-F 'is_sfw=true' \
-F 'replacing=meyvə və meyvə gövdəsi' \
-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'] = 'dovşan məktəbə gedir, cahil üslubda döymə sənəti';
$post_data['is_sfw'] = true;
$post_data['replacing'] = 'meyvə və meyvə gövdəsi';
$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": "dovşan məktəbə gedir, cahil üslubda döymə sənəti",
"is_sfw": true,
"negative_terms": "dublikat, zəif çəkilmiş üz, xəstə, zəif çəkilmiş barmaqlar, çirkin, bulanıq, cizgi filmi, disney, çərçivədən kənar, kəsilmiş",
"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);
Cavab
/path/to/local/result.jpg
HTTP sorğusu
POST /edit-image/
Sorğu parametrləri
Parametr | Növ | Təsvir | Misal |
---|---|---|---|
is_sfw | Könüllü | "true" seçin | true və ya false |
terms | Tələb olunur | Şəkilinizə əsaslanaraq AI-yə nə istədiyinizi deyin. | Pişik qabı |
replacing | Könüllü | Yuxarıdakı göstərişinizə əsasən şəklinizdə nəyisə əvəz etmək istəyirsinizsə, AI-yə bildirin | meyvə və meyvə gövdəsi |
negative_terms | Könüllü | Nəyin xaric edilməli olduğunu AI-ya deyin. | dublikat, zəif çəkilmiş üz, xəstə, zəif çəkilmiş barmaqlar, çirkin, bulanıq, cizgi filmi, disney, çərçivədən kənar, kəsilmiş |
fix_faces | Könüllü | Nəticə şəkillərindəki üzləri düzəltməyə AI-ya icazə verin, göndərilməsə, yanlış dəyər standartdır. | true və ya false |
outpaint | Könüllü | Başlanğıc təsviri nəzərə alaraq, AI onun "ətrafını" yarada bilər | true və ya false |
upscale | Könüllü | Süni intellekt daha böyük ölçülü şəkil qaytaracaq. | true və ya false |