Ievads
Laipni lūdzam ImageEditor.ai platformas API!
Katra funkcija ir izstrādāta, lai palīdzētu mūsu lietotājiem vieglāk izveidot vai rediģēt attēlus, izmantojot AI ImageEditor.ai sistēmā.
Lai iegūtu API atslēgu, lūdzu, dodieties uz konta lapu .
Noklusējuma bāzes URL
ImageEditor.ai API noklusējuma bāzes URL ir: <b>https://api.imageeditor.ai/v1/</b>
Piezīme. Drošības apsvērumu dēļ visas ImageEditor.ai API tiek apkalpotas tikai, izmantojot HTTPS.
Autorizācija
Lai izmantotu ImageEditor.ai API, jums ir nepieciešama API atslēga, kas ir saistīta ar jūsu kontu .
Autorizācijas vērtība jānosūta galvenes pieprasījumā.
Authorization: <api_key>
Izveidojiet attēlus
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
"is_sfw": True,
"negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
"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": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
"is_sfw": true,
"negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
"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'] = 'zaķis iet uz skolu, nezinoša stila tetovējumu māksla';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts';
$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": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
"is_sfw": true,
"negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
"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);
Atbilde
/path/to/local/result.jpg
HTTP pieprasījums
POST /create-image/
Vaicājuma parametri
Parametrs | Tips | Apraksts | Piemērs |
---|---|---|---|
is_sfw | Neobligāti | Iestatiet "true" , ja “termi” attiecas uz pieaugušajiem paredzētu attēlu saturu | true vai false |
terms | Obligāti | Pastāstiet AI, kādu attēlu vēlaties izveidot. | zaķis iet uz skolu, nezinoša stila tetovējumu māksla |
negative_terms | Neobligāti | Pastāstiet AI, kas būtu jāizslēdz. | dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts |
dimension | Neobligāti | Iegūstiet portreta vai ainavas attēlus. Portreta vērtība ir noklusējuma vērtība, ja tā ir tukša vai nulle. | portrait vai landscape |
fix_faces | Neobligāti | Ļaujiet AI noteikt sejas rezultātu attēlos, viltus vērtība ir noklusējuma vērtība, ja tā netiek nosūtīta. | true vai false |
make_tile | Neobligāti | Iestatiet true , ja vēlaties attēlu, ko var izmantot kā modeli. | true vai false |
upscale | Neobligāti | AI atgriezīs lielāku, palielinātu attēlu. | true vai false |
threesixty | Neobligāti | AI atgriezīs 360º attēlu. | true vai false |
Rediģēt attēlus
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Kaķēnu bļoda",
"is_sfw": True,
"replacing": "augļi un augļu kāts",
"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))
Rediģēt attēlus
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Kaķēnu bļoda' \
-F 'is_sfw=true' \
-F 'replacing=augļi un augļu kāts' \
-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'] = 'zaķis iet uz skolu, nezinoša stila tetovējumu māksla';
$post_data['is_sfw'] = true;
$post_data['replacing'] = 'augļi un augļu kāts';
$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": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
"is_sfw": true,
"negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
"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);
Atbilde
/path/to/local/result.jpg
HTTP pieprasījums
POST /edit-image/
Vaicājuma parametri
Parametrs | Tips | Apraksts | Piemērs |
---|---|---|---|
is_sfw | Neobligāti | Iestatiet "true" , ja “termi” attiecas uz pieaugušajiem paredzētu attēlu saturu | true vai false |
terms | Obligāti | Pastāstiet AI, ko vēlaties, pamatojoties uz savu attēlu. | Kaķēnu bļoda |
replacing | Neobligāti | Pastāstiet AI, ja vēlaties kaut ko aizstāt savā attēlā, pamatojoties uz iepriekš sniegto uzvedni | augļi un augļu kāts |
negative_terms | Neobligāti | Pastāstiet AI, kas būtu jāizslēdz. | dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts |
fix_faces | Neobligāti | Ļaujiet AI noteikt sejas rezultātu attēlos, viltus vērtība ir noklusējuma vērtība, ja tā netiek nosūtīta. | true vai false |
outpaint | Neobligāti | Ņemot vērā sākuma attēlu, AI var ģenerēt tā "apkārtni" | true vai false |
upscale | Neobligāti | AI atgriezīs lielāku, palielinātu attēlu. | true vai false |