Kirish
ImageEditor.ai platformasi API ga xush kelibsiz!
Har bir xususiyat foydalanuvchilarga ImageEditor.ai tizimida AI yordamida tasvirlarni osonroq yaratish yoki tahrirlashda yordam berish uchun mo'ljallangan.
API kalitingizni olish uchun hisob sahifasiga o'ting.
Standart asosiy URL
ImageEditor.ai API uchun standart asosiy URL: <b>https://api.imageeditor.ai/v1/</b>
Eslatma: xavfsizlik nuqtai nazaridan barcha ImageEditor.ai API’lari faqat HTTPS orqali taqdim etiladi.
Ruxsat
ImageEditor.ai API-dan foydalanish uchun sizga hisobingizga bog‘langan API kaliti kerak bo‘ladi.
Avtorizatsiya qiymati sarlavhalar so'rovida yuborilishi kerak.
Authorization: <api_key>
Tasvirlar yaratish
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
"is_sfw": True,
"negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
"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": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
"is_sfw": true,
"negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
"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'] = 'maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan';
$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": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
"is_sfw": true,
"negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
"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);
Javob
/path/to/local/result.jpg
HTTP so'rovi
POST /create-image/
So'rov parametrlari
Parametr | Turi | Tavsif | Misol |
---|---|---|---|
is_sfw | Ixtiyoriy | Agar “shartlar” kattalar uchun rasm kontenti uchun boʻlsa "true" ni belgilang | true yoki false |
terms | Majburiy | AIga qanday tasvir yaratmoqchi ekanligingizni ayting. | maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati |
negative_terms | Ixtiyoriy | AIga nimani istisno qilish kerakligini ayting. | dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan |
dimension | Ixtiyoriy | Portret yoki landshaft tasvirlarini oling, agar bo'sh yoki null bo'lsa, "portret" qiymati standart hisoblanadi. | portrait yoki landscape |
fix_faces | Ixtiyoriy | AIga natija tasvirlaridagi yuzlarni tuzatishga ruxsat bering, agar yuborilmasa, noto'g'ri qiymat sukut bo'ladi. | true yoki false |
make_tile | Ixtiyoriy | Naqsh sifatida ishlatilishi mumkin bo'lgan rasmni istasangiz, true o'rnating. | true yoki false |
upscale | Ixtiyoriy | AI kattaroq o'lchamdagi tasvirni qaytaradi. | true yoki false |
threesixty | Ixtiyoriy | AI 360º tasvirni qaytaradi. | true yoki false |
Tasvirlarni tahrirlash
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Bir piyola mushukchalar",
"is_sfw": True,
"replacing": "meva va meva poyasi",
"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))
Tasvirlarni tahrirlash
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Bir piyola mushukchalar' \
-F 'is_sfw=true' \
-F 'replacing=meva va meva poyasi' \
-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'] = 'maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati';
$post_data['is_sfw'] = true;
$post_data['replacing'] = 'meva va meva poyasi';
$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": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
"is_sfw": true,
"negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
"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);
Javob
/path/to/local/result.jpg
HTTP so'rovi
POST /edit-image/
So'rov parametrlari
Parametr | Turi | Tavsif | Misol |
---|---|---|---|
is_sfw | Ixtiyoriy | Agar “shartlar” kattalar uchun rasm kontenti uchun boʻlsa "true" ni belgilang | true yoki false |
terms | Majburiy | Tasviringiz asosida AIga nima istayotganingizni ayting. | Bir piyola mushukchalar |
replacing | Ixtiyoriy | Yuqoridagi ko'rsatma asosida tasviringizdagi biror narsani almashtirmoqchi bo'lsangiz, AIga ayting | meva va meva poyasi |
negative_terms | Ixtiyoriy | AIga nimani istisno qilish kerakligini ayting. | dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan |
fix_faces | Ixtiyoriy | AIga natija tasvirlaridagi yuzlarni tuzatishga ruxsat bering, agar yuborilmasa, noto'g'ri qiymat sukut bo'ladi. | true yoki false |
outpaint | Ixtiyoriy | Boshlang'ich tasvirni hisobga olgan holda, AI uning "atrofini" yaratishi mumkin | true yoki false |
upscale | Ixtiyoriy | AI kattaroq o'lchamdagi tasvirni qaytaradi. | true yoki false |