Utangulizi
Karibu kwenye API ya jukwaa la ImageEditor.ai!
Kila kipengele kimeundwa ili kusaidia watumiaji wetu kuunda au kuhariri picha kwa urahisi zaidi na AI kwenye mfumo wa ImageEditor.ai.
Ili kupata ufunguo wako wa API tafadhali nenda kwenye ukurasa wa akaunti .
URL Msingi ya Msingi
URL msingi msingi kwa ImageEditor.ai API ni: <b>https://api.imageeditor.ai/v1/</b>
Kumbuka: kwa sababu za usalama, API zote za ImageEditor.ai zinatolewa kupitia HTTPS pekee.
Uidhinishaji
Ili kutumia ImageEditor.ai API, utahitaji ufunguo wa API ambao umeunganishwa kwenye akaunti yako.
Thamani ya uidhinishaji inapaswa kutumwa kwa ombi la Vichwa.
Authorization: <api_key>
Unda picha
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "sungura kwenda shule, ujinga style tattoo sanaa",
"is_sfw": True,
"negative_terms": "nakala, uso uliochorwa vibaya, vidole vilivyoharibika, vidole vilivyochorwa vibaya, mbaya, ukungu, katuni, disney, nje ya fremu, iliyopunguzwa",
"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": "sungura kwenda shule, ujinga style tattoo sanaa",
"is_sfw": true,
"negative_terms": "nakala, uso uliochorwa vibaya, vidole vilivyoharibika, vidole vilivyochorwa vibaya, mbaya, ukungu, katuni, disney, nje ya fremu, iliyopunguzwa",
"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'] = 'sungura kwenda shule, ujinga style tattoo sanaa';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'nakala, uso uliochorwa vibaya, vidole vilivyoharibika, vidole vilivyochorwa vibaya, mbaya, ukungu, katuni, disney, nje ya fremu, iliyopunguzwa';
$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": "sungura kwenda shule, ujinga style tattoo sanaa",
"is_sfw": true,
"negative_terms": "nakala, uso uliochorwa vibaya, vidole vilivyoharibika, vidole vilivyochorwa vibaya, mbaya, ukungu, katuni, disney, nje ya fremu, iliyopunguzwa",
"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);
Jibu
/path/to/local/result.jpg
Ombi la HTTP
POST /create-image/
Vigezo vya hoja
Kigezo | Aina | Maelezo | Mfano |
---|---|---|---|
is_sfw | Hiari | Weka "true" ikiwa "masharti" ni ya maudhui ya picha ya watu wazima | true au false |
terms | Inahitajika | Iambie AI ni picha gani unataka kuunda. | sungura kwenda shule, ujinga style tattoo sanaa |
negative_terms | Hiari | Waambie AI ni nini kinapaswa kutengwa. | nakala, uso uliochorwa vibaya, vidole vilivyoharibika, vidole vilivyochorwa vibaya, mbaya, ukungu, katuni, disney, nje ya fremu, iliyopunguzwa |
dimension | Hiari | Pata picha za wima au mlalo, thamani ya "picha" ni chaguomsingi ikiwa tupu au batili. | portrait au landscape |
fix_faces | Hiari | Ruhusu AI irekebishe nyuso katika matokeo ya picha, Thamani ya Uongo ni chaguomsingi ikiwa haijatumwa. | true au false |
make_tile | Hiari | Weka true ikiwa unataka picha inayoweza kutumika kama mchoro. | true au false |
upscale | Hiari | AI itarudisha picha kubwa iliyokuzwa. | true au false |
threesixty | Hiari | AI itarudisha picha ya 360ยบ. | true au false |
Hariri picha
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Bakuli la kittens",
"is_sfw": True,
"replacing": "matunda na shina la matunda",
"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))
Hariri picha
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Bakuli la kittens' \
-F 'is_sfw=true' \
-F 'replacing=matunda na shina la matunda' \
-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'] = 'sungura kwenda shule, ujinga style tattoo sanaa';
$post_data['is_sfw'] = true;
$post_data['replacing'] = 'matunda na shina la matunda';
$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": "sungura kwenda shule, ujinga style tattoo sanaa",
"is_sfw": true,
"negative_terms": "nakala, uso uliochorwa vibaya, vidole vilivyoharibika, vidole vilivyochorwa vibaya, mbaya, ukungu, katuni, disney, nje ya fremu, iliyopunguzwa",
"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);
Jibu
/path/to/local/result.jpg
Ombi la HTTP
POST /edit-image/
Vigezo vya hoja
Kigezo | Aina | Maelezo | Mfano |
---|---|---|---|
is_sfw | Hiari | Weka "true" ikiwa "masharti" ni ya maudhui ya picha ya watu wazima | true au false |
terms | Inahitajika | Waambie AI unataka nini kulingana na picha yako. | Bakuli la kittens |
replacing | Hiari | Iambie AI ikiwa unataka kubadilisha kitu kwenye picha yako kulingana na kidokezo chako hapo juu | matunda na shina la matunda |
negative_terms | Hiari | Waambie AI ni nini kinapaswa kutengwa. | nakala, uso uliochorwa vibaya, vidole vilivyoharibika, vidole vilivyochorwa vibaya, mbaya, ukungu, katuni, disney, nje ya fremu, iliyopunguzwa |
fix_faces | Hiari | Ruhusu AI irekebishe nyuso katika matokeo ya picha, Thamani ya Uongo ni chaguomsingi ikiwa haijatumwa. | true au false |
outpaint | Hiari | Kwa kuzingatia picha ya kuanzia, AI inaweza kutoa "mazingira" yake. | true au false |
upscale | Hiari | AI itarudisha picha kubwa iliyokuzwa. | true au false |