NAV
ImageEditor.ai
shell python php javascript

ແນະນຳ

ຍິນດີຕ້ອນຮັບສູ່ 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