ແນະນຳ
ຍິນດີຕ້ອນຮັບສູ່ ImageEditor.ai platform API!
ແຕ່ລະຄຸນສົມບັດຖືກອອກແບບເພື່ອຊ່ວຍໃຫ້ຜູ້ໃຊ້ຂອງພວກເຮົາສ້າງ ຫຼືແກ້ໄຂຮູບພາບໄດ້ງ່າຍຂຶ້ນດ້ວຍ AI ໃນລະບົບ ImageEditor.ai.
ເພື່ອຮັບເອົາລະຫັດ API ຂອງທ່ານ, ກະລຸນາໄປທີ່ ໜ້າບັນຊີ .
URL ພື້ນຖານເລີ່ມຕົ້ນ
URL ພື້ນຖານເລີ່ມຕົ້ນສໍາລັບ API ImageEditor.ai ແມ່ນ: <b>https://api.imageeditor.ai/v1/</b>
ຫມາຍເຫດ: ສໍາລັບເຫດຜົນດ້ານຄວາມປອດໄພ, APIs ImageEditor.ai ທັງຫມົດແມ່ນໃຫ້ບໍລິການຜ່ານ HTTPS ເທົ່ານັ້ນ.
ການອະນຸຍາດ
ເພື່ອໃຊ້ API ImageEditor.ai, ທ່ານຈະຕ້ອງໃຊ້ລະຫັດ API ທີ່ເຊື່ອມຕໍ່ກັບ ບັນຊີ ຂອງທ່ານ .
ມູນຄ່າການອະນຸຍາດຄວນຈະຖືກສົ່ງໃນຄໍາຮ້ອງຂໍ headers.
Authorization: <api_key>
ສ້າງຮູບພາບ
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "rabbit ໄປໂຮງຮຽນ, ສິນລະປະ tattoo ແບບ ignorant",
"is_sfw": True,
"negative_terms": "ຊໍ້າກັນ, ແຕ້ມໜ້າບໍ່ດີ, ເຈັບ, ນິ້ວມືແຕ້ມບໍ່ດີ, ຂີ້ຮ້າຍ, ມົວ, ກາຕູນ, disney, ອອກຈາກກອບ, ຕັດອອກ",
"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": "rabbit ໄປໂຮງຮຽນ, ສິນລະປະ tattoo ແບບ ignorant",
"is_sfw": true,
"negative_terms": "ຊໍ້າກັນ, ແຕ້ມໜ້າບໍ່ດີ, ເຈັບ, ນິ້ວມືແຕ້ມບໍ່ດີ, ຂີ້ຮ້າຍ, ມົວ, ກາຕູນ, disney, ອອກຈາກກອບ, ຕັດອອກ",
"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'] = 'rabbit ໄປໂຮງຮຽນ, ສິນລະປະ tattoo ແບບ ignorant';
$post_data['is_sfw'] = true;
$post_data['negative_terms'] = 'ຊໍ້າກັນ, ແຕ້ມໜ້າບໍ່ດີ, ເຈັບ, ນິ້ວມືແຕ້ມບໍ່ດີ, ຂີ້ຮ້າຍ, ມົວ, ກາຕູນ, disney, ອອກຈາກກອບ, ຕັດອອກ';
$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": "rabbit ໄປໂຮງຮຽນ, ສິນລະປະ tattoo ແບບ ignorant",
"is_sfw": true,
"negative_terms": "ຊໍ້າກັນ, ແຕ້ມໜ້າບໍ່ດີ, ເຈັບ, ນິ້ວມືແຕ້ມບໍ່ດີ, ຂີ້ຮ້າຍ, ມົວ, ກາຕູນ, disney, ອອກຈາກກອບ, ຕັດອອກ",
"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 ວ່າທ່ານຕ້ອງການສ້າງຮູບພາບໃດ. | rabbit ໄປໂຮງຮຽນ, ສິນລະປະ tattoo ແບບ ignorant |
negative_terms | ທາງເລືອກ | ບອກ AI ສິ່ງທີ່ຄວນຖືກຍົກເວັ້ນ. | ຊໍ້າກັນ, ແຕ້ມໜ້າບໍ່ດີ, ເຈັບ, ນິ້ວມືແຕ້ມບໍ່ດີ, ຂີ້ຮ້າຍ, ມົວ, ກາຕູນ, disney, ອອກຈາກກອບ, ຕັດອອກ |
dimension | ທາງເລືອກ | ເອົາຮູບຄົນ ຫຼືຮູບລວງນອນ, ຄ່າ "ຮູບຄົນ" ແມ່ນຄ່າເລີ່ມຕົ້ນຖ້າຫວ່າງເປົ່າ ຫຼື null. | portrait ຫຼື landscape |
fix_faces | ທາງເລືອກ | ໃຫ້ AI ແກ້ໄຂໃບຫນ້າໃນຮູບພາບຜົນໄດ້ຮັບ, ຄ່າທີ່ບໍ່ຖືກຕ້ອງແມ່ນຄ່າເລີ່ມຕົ້ນຖ້າບໍ່ສົ່ງ. | 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": "ໂຖປັດສະວະຂອງ kittens",
"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=ໂຖປັດສະວະຂອງ kittens' \
-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'] = 'rabbit ໄປໂຮງຮຽນ, ສິນລະປະ tattoo ແບບ ignorant';
$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": "rabbit ໄປໂຮງຮຽນ, ສິນລະປະ tattoo ແບບ ignorant",
"is_sfw": true,
"negative_terms": "ຊໍ້າກັນ, ແຕ້ມໜ້າບໍ່ດີ, ເຈັບ, ນິ້ວມືແຕ້ມບໍ່ດີ, ຂີ້ຮ້າຍ, ມົວ, ກາຕູນ, disney, ອອກຈາກກອບ, ຕັດອອກ",
"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 | ຕ້ອງການ | ບອກ AI ສິ່ງທີ່ທ່ານຕ້ອງການໂດຍອີງໃສ່ຮູບພາບຂອງທ່ານ. | ໂຖປັດສະວະຂອງ kittens |
replacing | ທາງເລືອກ | ບອກ AI ຖ້າທ່ານຕ້ອງການປ່ຽນບາງສິ່ງບາງຢ່າງໃນຮູບພາບຂອງທ່ານໂດຍອີງໃສ່ການເຕືອນຂອງທ່ານຂ້າງເທິງ | ໝາກ ແລະ ລຳ ຕົ້ນ |
negative_terms | ທາງເລືອກ | ບອກ AI ສິ່ງທີ່ຄວນຖືກຍົກເວັ້ນ. | ຊໍ້າກັນ, ແຕ້ມໜ້າບໍ່ດີ, ເຈັບ, ນິ້ວມືແຕ້ມບໍ່ດີ, ຂີ້ຮ້າຍ, ມົວ, ກາຕູນ, disney, ອອກຈາກກອບ, ຕັດອອກ |
fix_faces | ທາງເລືອກ | ໃຫ້ AI ແກ້ໄຂໃບຫນ້າໃນຮູບພາບຜົນໄດ້ຮັບ, ຄ່າທີ່ບໍ່ຖືກຕ້ອງແມ່ນຄ່າເລີ່ມຕົ້ນຖ້າບໍ່ສົ່ງ. | true ຫຼື false |
outpaint | ທາງເລືອກ | ເນື່ອງຈາກຮູບພາບເລີ່ມຕົ້ນ, AI ສາມາດສ້າງ "ສິ່ງອ້ອມຂ້າງ" ຂອງມັນ. | true ຫຼື false |
upscale | ທາງເລືອກ | AI ຈະສົ່ງຄືນຮູບພາບທີ່ມີຂະໜາດໃຫຍ່ຂຶ້ນ. | true ຫຼື false |