Вовед
Добре дојдовте во API на платформата ImageEditor.ai!
Секоја функција е дизајнирана да им помогне на нашите корисници полесно да креираат или уредуваат слики со вештачка интелигенција на системот на ImageEditor.ai.
За да го добиете вашиот API клуч, одете на страницата за сметката .
Стандардна основна URL адреса
Стандардната основна URL адреса за ImageEditor.ai API е: <b>https://api.imageeditor.ai/v1/</b>
Забелешка: од безбедносни причини, сите API на ImageEditor.ai се сервираат само преку HTTPS.
Овластување
За да го користите ImageEditor.ai API, ќе ви треба клучот 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 | Задолжително | Кажете му на вештачката интелигенција каква слика сакате да создадете. | зајак што оди на училиште, уметност за тетоважи во неук стил |
negative_terms | Изборен | Кажете ѝ на вештачката интелигенција што треба да се исклучи. | дупликат, лошо нацртано лице, морбидно, лошо нацртани прсти, грди, матно, цртан филм, Дизни, надвор од рамката, исечен |
dimension | Изборен | Добијте слики со портрет или пејзаж, вредноста „портрет“ е стандардна ако е празна или нула. | portrait или landscape |
fix_faces | Изборен | Оставете ја вештачката интелигенција да ги поправа лицата на сликите со резултат, Лажна вредност е стандардна ако не се испрати. | true или false |
make_tile | Изборен | Поставете true ако сакате слика што може да се користи како шема. | true или false |
upscale | Изборен | Вештачката интелигенција ќе врати поголема намалена слика. | true или false |
threesixty | Изборен | Вештачката интелигенција ќе врати слика од 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 | Задолжително | Кажете му на вештачката интелигенција што сакате врз основа на вашата слика. | Чаша со мачиња |
replacing | Изборен | Кажете ѝ на вештачката интелигенција ако сакате да замените нешто на вашата слика врз основа на горенаведеното барање | овошје и овошно стебло |
negative_terms | Изборен | Кажете ѝ на вештачката интелигенција што треба да се исклучи. | дупликат, лошо нацртано лице, морбидно, лошо нацртани прсти, грди, матно, цртан филм, Дизни, надвор од рамката, исечен |
fix_faces | Изборен | Оставете ја вештачката интелигенција да ги поправа лицата на сликите со резултат, Лажна вредност е стандардна ако не се испрати. | true или false |
outpaint | Изборен | Со оглед на почетната слика, вештачката интелигенција може да ја генерира нејзината „околина“ | true или false |
upscale | Изборен | Вештачката интелигенција ќе врати поголема намалена слика. | true или false |