NAV
ImageEditor.ai
shell python php javascript

Sava lalana

Tongasoa eto amin'ny API sehatra ImageEditor.ai!

Ny endri-javatra tsirairay dia natao hanampiana ireo mpampiasa anay hamorona na hanova mora kokoa ny sary miaraka amin'ny AI amin'ny rafitra ImageEditor.ai.

Raha te hahazo ny lakilen'ny API-nao azafady, mandehana any amin'ny pejin'ny kaonty .

Default Base URL

Ny URL fototra ho an'ny ImageEditor.ai API dia: <b>https://api.imageeditor.ai/v1/</b>

Fanamarihana: noho ny antony fiarovana, ny API ImageEditor.ai rehetra dia ampiasaina amin'ny HTTPS ihany.

nahazo alalana

Raha hampiasa ny ImageEditor.ai API dia mila ny lakile API mifandray amin'ny kaontinao ianao.

Ny sandan'ny fanomezan-dàlana dia tokony halefa amin'ny fangatahana Lohateny.

Authorization: <api_key>

Mamorona sary

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
    "is_sfw": True,
    "negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
    "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": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
    "is_sfw": true,
    "negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
    "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'] = 'bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy';
    $post_data['is_sfw'] = true;
    $post_data['negative_terms'] = 'duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika';
    $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": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
        "is_sfw": true,
        "negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
        "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);

FAMALIANA

/path/to/local/result.jpg

HTTP Request

POST /create-image/

Mametraka fanontaniana

fikirana Type Description OHATRA
is_sfw tsy voatery Mametraha "true" raha natao ho an'ny atiny sary ho an'ny olon-dehibe ny "fepetra". true na false
terms ilaina Lazao amin'ny AI izay sary tianao hamboarina. bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy
negative_terms tsy voatery Lazao amin'ny AI izay tokony hanilihana. duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika
dimension tsy voatery Mahazoa sary sarintany na sarintany, ny sanda "portrait" dia tsy misy dikany raha tsy misy na tsy misy. portrait na landscape
fix_faces tsy voatery Avelao ny AI hanitsy tarehy amin'ny sarin'ny vokatra, False valeur no default raha tsy mandefa. true na false
make_tile tsy voatery Ataovy true raha mila sary azo ampiasaina ho lamina ianao. true na false
upscale tsy voatery Hamerina sary lehibe kokoa ny AI. true na false
threesixty tsy voatery Ny AI dia hamerina sary 360º. true na false

Ahitsio sary

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Lovia kittens",
    "is_sfw": True,
    "replacing": "voankazo sy voankazo",
    "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))
Ahitsio sary

curl -X POST \
  https://api.imageeditor.ai/v1/edit-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Lovia kittens' \
  -F 'is_sfw=true' \
  -F 'replacing=voankazo sy voankazo' \
  -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'] = 'bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy';
    $post_data['is_sfw'] = true;
    $post_data['replacing'] = 'voankazo sy voankazo';
    $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": "bitro mandeha any an-tsekoly, tsy mahalala fomba fanaovana tatoazy",
        "is_sfw": true,
        "negative_terms": "duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika",
        "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);

FAMALIANA

/path/to/local/result.jpg

HTTP Request

POST /edit-image/

Mametraka fanontaniana

fikirana Type Description OHATRA
is_sfw tsy voatery Mametraha "true" raha natao ho an'ny atiny sary ho an'ny olon-dehibe ny "fepetra". true na false
terms ilaina Lazao amin'ny AI izay tadiavinao mifototra amin'ny sarinao. Lovia kittens
replacing tsy voatery Lazao amin'ny AI raha te hanolo zavatra amin'ny sarinao ianao mifototra amin'ny bitsikao etsy ambony voankazo sy voankazo
negative_terms tsy voatery Lazao amin'ny AI izay tokony hanilihana. duplicate, tarehy ratsy sary, marary, rantsantanana ratsy voatsoaka, ratsy tarehy, manjavozavo, sariitatra, disney, tsy misy endrika, voatetika
fix_faces tsy voatery Avelao ny AI hanitsy tarehy amin'ny sarin'ny vokatra, False valeur no default raha tsy mandefa. true na false
outpaint tsy voatery Raha omena sary fanombohana, ny AI dia afaka mamorona ny "manodidina" azy true na false
upscale tsy voatery Hamerina sary lehibe kokoa ny AI. true na false