Кіріспе
ImageEditor.ai платформасының API интерфейсіне қош келдіңіз!
Әрбір мүмкіндік пайдаланушыларға ImageEditor.ai жүйесінде AI көмегімен кескіндерді оңай жасауға немесе өңдеуге көмектесу үшін жасалған.
API кілтін алу үшін тіркелгі бетіне өтіңіз.
Әдепкі негізгі URL
ImageEditor.ai API үшін әдепкі негізгі URL мекенжайы: <b>https://api.imageeditor.ai/v1/</b>
Ескертпе: қауіпсіздік мақсатында барлық ImageEditor.ai API интерфейстері тек HTTPS арқылы қызмет етеді.
Авторизация
ImageEditor.ai API пайдалану үшін тіркелгіңізге байланысты API кілті қажет болады.
Авторизация мәні тақырыптар сұрауында жіберілуі керек.
Authorization: <api_key>
Суреттер жасау
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "қоян мектепке барады, надан стильдегі тату өнері",
"is_sfw": True,
"negative_terms": "қайталанатын, нашар сызылған бет, ауру, нашар сызылған саусақтар, ұсқынсыз, бұлыңғыр, мультфильм, дисней, жақтаудан тыс, кесілген",
"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": "қоян мектепке барады, надан стильдегі тату өнері",
"is_sfw": true,
"negative_terms": "қайталанатын, нашар сызылған бет, ауру, нашар сызылған саусақтар, ұсқынсыз, бұлыңғыр, мультфильм, дисней, жақтаудан тыс, кесілген",
"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'] = 'қоян мектепке барады, надан стильдегі тату өнері';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'қайталанатын, нашар сызылған бет, ауру, нашар сызылған саусақтар, ұсқынсыз, бұлыңғыр, мультфильм, дисней, жақтаудан тыс, кесілген';
$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": "қоян мектепке барады, надан стильдегі тату өнері",
"is_sfw": true,
"negative_terms": "қайталанатын, нашар сызылған бет, ауру, нашар сызылған саусақтар, ұсқынсыз, бұлыңғыр, мультфильм, дисней, жақтаудан тыс, кесілген",
"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);
Жауап
/path/to/local/result.jpg
HTTP сұрауы
POST /create-image/
Сұрау параметрлері
Параметр | Түр | Сипаттама | Мысал |
---|---|---|---|
is_sfw | Қосымша | "Шарттар" ересектерге арналған кескін мазмұнына арналған болса, "true" мәнін орнатыңыз | true немесе false |
terms | Міндетті | AI-ға қандай кескін жасағыңыз келетінін айтыңыз. | қоян мектепке барады, надан стильдегі тату өнері |
negative_terms | Қосымша | AI-ға нені алып тастау керектігін айтыңыз. | қайталанатын, нашар сызылған бет, ауру, нашар сызылған саусақтар, ұсқынсыз, бұлыңғыр, мультфильм, дисней, жақтаудан тыс, кесілген |
dimension | Қосымша | Портреттік немесе альбомдық кескіндерді алыңыз, бос немесе бос болса, "портрет" мәні әдепкі болып табылады. | portrait немесе landscape |
fix_faces | Қосымша | AI нәтиже кескіндеріндегі беттерді түзетуге мүмкіндік беріңіз, егер жіберілмесе, False мәні әдепкі болып табылады. | true немесе false |
make_tile | Қосымша | Үлгі ретінде пайдалануға болатын кескін қажет болса, true орнатыңыз. | true немесе false |
upscale | Қосымша | AI үлкенірек масштабталған кескінді қайтарады. | true немесе false |
threesixty | Қосымша | AI 360º кескінді қайтарады. | true немесе false |
Суреттерді өңдеу
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Котенка ыдысы",
"is_sfw": True,
"replacing": "жемістер мен жеміс сабағы",
"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))
Суреттерді өңдеу
curl -X POST \
https://api.imageeditor.ai/v1/edit-image/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Котенка ыдысы' \
-F 'is_sfw=true' \
-F 'replacing=жемістер мен жеміс сабағы' \
-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'] = 'қоян мектепке барады, надан стильдегі тату өнері';
$post_data['is_sfw'] = true;
$post_data['replacing'] = 'жемістер мен жеміс сабағы';
$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": "қоян мектепке барады, надан стильдегі тату өнері",
"is_sfw": true,
"negative_terms": "қайталанатын, нашар сызылған бет, ауру, нашар сызылған саусақтар, ұсқынсыз, бұлыңғыр, мультфильм, дисней, жақтаудан тыс, кесілген",
"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);
Жауап
/path/to/local/result.jpg
HTTP сұрауы
POST /edit-image/
Сұрау параметрлері
Параметр | Түр | Сипаттама | Мысал |
---|---|---|---|
is_sfw | Қосымша | "Шарттар" ересектерге арналған кескін мазмұнына арналған болса, "true" мәнін орнатыңыз | true немесе false |
terms | Міндетті | Жасанды интеллектке суретіңіздің негізінде не қалайтыныңызды айтыңыз. | Котенка ыдысы |
replacing | Қосымша | Жоғарыдағы нұсқаудың негізінде суреттегі бір нәрсені ауыстырғыңыз келсе, AI-ға айтыңыз | жемістер мен жеміс сабағы |
negative_terms | Қосымша | AI-ға нені алып тастау керектігін айтыңыз. | қайталанатын, нашар сызылған бет, ауру, нашар сызылған саусақтар, ұсқынсыз, бұлыңғыр, мультфильм, дисней, жақтаудан тыс, кесілген |
fix_faces | Қосымша | AI нәтиже кескіндеріндегі беттерді түзетуге мүмкіндік беріңіз, егер жіберілмесе, False мәні әдепкі болып табылады. | true немесе false |
outpaint | Қосымша | Бастапқы кескінді ескере отырып, AI оның «айналасын» жасай алады | true немесе false |
upscale | Қосымша | AI үлкенірек масштабталған кескінді қайтарады. | true немесе false |