Gabatarwa
Barka da zuwa dandalin ImageEditor.ai API!
An ƙera kowane fasali don taimakawa masu amfani da mu cikin sauƙi ƙirƙira ko gyara hotuna tare da AI akan tsarin ImageEditor.ai.
Don samun maɓallin API ɗinku don Allah je zuwa shafin asusun .
Tsohuwar Tushen URL
Tsohuwar tushe URL na ImageEditor.ai API shine: <b>https://api.imageeditor.ai/v1/</b>
Lura: saboda dalilai na tsaro, duk ImageEditor.ai APIs ana yin su akan HTTPS kawai.
Izini
Don amfani da ImageEditor.ai API, kuna buƙatar maɓallin API wanda ke da alaƙa da asusun ku.
Ya kamata a aika ƙimar izini a cikin buƙatar masu kai.
Authorization: <api_key>
Ƙirƙiri hotuna
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "zomo zuwa makaranta, jahilci style tattoo art",
"is_sfw": True,
"negative_terms": "kwafi, fuska mara kyau, rashin lafiya, yatsu mara kyau, mummuna, blurry, zane mai ban dariya, Disney, daga firam, yanke",
"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": "zomo zuwa makaranta, jahilci style tattoo art",
"is_sfw": true,
"negative_terms": "kwafi, fuska mara kyau, rashin lafiya, yatsu mara kyau, mummuna, blurry, zane mai ban dariya, Disney, daga firam, yanke",
"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'] = 'zomo zuwa makaranta, jahilci style tattoo art';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'kwafi, fuska mara kyau, rashin lafiya, yatsu mara kyau, mummuna, blurry, zane mai ban dariya, Disney, daga firam, yanke';
$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": "zomo zuwa makaranta, jahilci style tattoo art",
"is_sfw": true,
"negative_terms": "kwafi, fuska mara kyau, rashin lafiya, yatsu mara kyau, mummuna, blurry, zane mai ban dariya, Disney, daga firam, yanke",
"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);
Martani
/path/to/local/result.jpg
Neman HTTP
POST /create-image/
Siffofin tambaya
Siga | Nau'in | Bayani | Misali |
---|---|---|---|
is_sfw | Na zaɓi | Saita "true" idan "sharuɗɗan" na abun ciki na hoton manya ne | true ko false |
terms | Da ake bukata | Faɗa wa AI wane hoton kuke son ƙirƙira. | zomo zuwa makaranta, jahilci style tattoo art |
negative_terms | Na zaɓi | Faɗa wa AI abin da ya kamata a cire. | kwafi, fuska mara kyau, rashin lafiya, yatsu mara kyau, mummuna, blurry, zane mai ban dariya, Disney, daga firam, yanke |
dimension | Na zaɓi | Samun hotunan hoto ko shimfidar wuri, ƙimar "hotuna" tsoho ne idan fanko ko mara kyau. | portrait ko landscape |
fix_faces | Na zaɓi | Bari AI ta gyara fuskoki a cikin hotunan sakamakon, Ƙimar ƙarya ta zama tsoho idan ba a aika ba. | true ko false |
make_tile | Na zaɓi | Saita true idan kuna son hoton da za'a iya amfani dashi azaman tsari. | true ko false |
upscale | Na zaɓi | AI za ta dawo da babban sikelin hoto. | true ko false |
threesixty | Na zaɓi | AI za ta dawo da hoto 360º. | true ko false |
Gyara hotuna
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Kwanon kittens",
"is_sfw": True,
"replacing": "'ya'yan itatuwa da 'ya'yan itace tushe",
"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))
Gyara hotuna
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Kwanon kittens' \
-F 'is_sfw=true' \
-F 'replacing='ya'yan itatuwa da 'ya'yan itace tushe' \
-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'] = 'zomo zuwa makaranta, jahilci style tattoo art';
$post_data['is_sfw'] = true;
$post_data['replacing'] = ''ya'yan itatuwa da 'ya'yan itace tushe';
$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": "zomo zuwa makaranta, jahilci style tattoo art",
"is_sfw": true,
"negative_terms": "kwafi, fuska mara kyau, rashin lafiya, yatsu mara kyau, mummuna, blurry, zane mai ban dariya, Disney, daga firam, yanke",
"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);
Martani
/path/to/local/result.jpg
Neman HTTP
POST /edit-image/
Siffofin tambaya
Siga | Nau'in | Bayani | Misali |
---|---|---|---|
is_sfw | Na zaɓi | Saita "true" idan "sharuɗɗan" na abun ciki na hoton manya ne | true ko false |
terms | Da ake bukata | Faɗa wa AI abin da kuke so dangane da hotonku. | Kwanon kittens |
replacing | Na zaɓi | Faɗa wa AI idan kuna son maye gurbin wani abu a cikin hotonku dangane da faɗakarwar ku a sama | 'ya'yan itatuwa da 'ya'yan itace tushe |
negative_terms | Na zaɓi | Faɗa wa AI abin da ya kamata a cire. | kwafi, fuska mara kyau, rashin lafiya, yatsu mara kyau, mummuna, blurry, zane mai ban dariya, Disney, daga firam, yanke |
fix_faces | Na zaɓi | Bari AI ta gyara fuskoki a cikin hotunan sakamakon, Ƙimar ƙarya ta zama tsoho idan ba a aika ba. | true ko false |
outpaint | Na zaɓi | Idan aka ba da hoton farawa, AI na iya haifar da "kewaye" ta | true ko false |
upscale | Na zaɓi | AI za ta dawo da babban sikelin hoto. | true ko false |