Sava lalana
Tongasoa eto amin'ny API sehatra ImageEditor.ai!
Ny endri-javatra tsirairay dia natao hanampiana ireo mpampiasa anay hamorona na hanova mora kokoa ny sary miaraka amin'ny AI amin'ny rafitra ImageEditor.ai.
Raha te hahazo ny lakilen'ny API-nao azafady, mandehana any amin'ny pejin'ny kaonty .
Default Base URL
Ny URL fototra ho an'ny ImageEditor.ai API dia: <b>https://api.imageeditor.ai/v1/</b>
Fanamarihana: noho ny antony fiarovana, ny API ImageEditor.ai rehetra dia ampiasaina amin'ny HTTPS ihany.
nahazo alalana
Raha hampiasa ny ImageEditor.ai API dia mila ny lakile API mifandray amin'ny kaontinao ianao.
Ny sandan'ny fanomezan-dàlana dia tokony halefa amin'ny fangatahana Lohateny.
Authorization: <api_key>
Mamorona sary
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
"is_sfw": True,
"negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
"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": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
"is_sfw": true,
"negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
"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'] = 'bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika';
$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": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
"is_sfw": true,
"negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
"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);
FAMALIANA
/path/to/local/result.jpg
HTTP Request
POST /create-image/
Mametraka fanontaniana
fikirana | Type | Description | OHATRA |
---|---|---|---|
is_sfw | tsy voatery | Mametraha "true" raha natao ho an'ny atiny sary ho an'ny olon-dehibe ny "fepetra". | true na false |
terms | ilaina | Lazao amin'ny AI izay sary tianao hamboarina. | bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy |
negative_terms | tsy voatery | Lazao amin'ny AI izay tokony hanilihana. | duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika |
dimension | tsy voatery | Mahazoa sary sarintany na sarintany, ny sanda "portrait" dia tsy misy dikany raha tsy misy na tsy misy. | portrait na landscape |
fix_faces | tsy voatery | Avelao ny AI hanitsy tarehy amin'ny sarin'ny vokatra, False valeur no default raha tsy mandefa. | true na false |
make_tile | tsy voatery | Ataovy true raha mila sary azo ampiasaina ho lamina ianao. | true na false |
upscale | tsy voatery | Hamerina sary lehibe kokoa ny AI. | true na false |
threesixty | tsy voatery | Ny AI dia hamerina sary 360º. | true na false |
Ahitsio sary
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Lovia kittens",
"is_sfw": True,
"replacing": "voankazo sy voankazo",
"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))
Ahitsio sary
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Lovia kittens' \
-F 'is_sfw=true' \
-F 'replacing=voankazo sy voankazo' \
-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'] = 'bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy';
$post_data['is_sfw'] = true;
$post_data['replacing'] = 'voankazo sy voankazo';
$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": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
"is_sfw": true,
"negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
"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);
FAMALIANA
/path/to/local/result.jpg
HTTP Request
POST /edit-image/
Mametraka fanontaniana
fikirana | Type | Description | OHATRA |
---|---|---|---|
is_sfw | tsy voatery | Mametraha "true" raha natao ho an'ny atiny sary ho an'ny olon-dehibe ny "fepetra". | true na false |
terms | ilaina | Lazao amin'ny AI izay tadiavinao mifototra amin'ny sarinao. | Lovia kittens |
replacing | tsy voatery | Lazao amin'ny AI raha te hanolo zavatra amin'ny sarinao ianao mifototra amin'ny bitsikao etsy ambony | voankazo sy voankazo |
negative_terms | tsy voatery | Lazao amin'ny AI izay tokony hanilihana. | duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika |
fix_faces | tsy voatery | Avelao ny AI hanitsy tarehy amin'ny sarin'ny vokatra, False valeur no default raha tsy mandefa. | true na false |
outpaint | tsy voatery | Raha omena sary fanombohana, ny AI dia afaka mamorona ny "manodidina" azy | true na false |
upscale | tsy voatery | Hamerina sary lehibe kokoa ny AI. | true na false |