NAV
ImageEditor.ai
shell python php javascript

Ievads

Laipni lūdzam ImageEditor.ai platformas API!

Katra funkcija ir izstrādāta, lai palīdzētu mūsu lietotājiem vieglāk izveidot vai rediģēt attēlus, izmantojot AI ImageEditor.ai sistēmā.

Lai iegūtu API atslēgu, lūdzu, dodieties uz konta lapu .

Noklusējuma bāzes URL

ImageEditor.ai API noklusējuma bāzes URL ir: <b>https://api.imageeditor.ai/v1/</b>

Piezīme. Drošības apsvērumu dēļ visas ImageEditor.ai API tiek apkalpotas tikai, izmantojot HTTPS.

Autorizācija

Lai izmantotu ImageEditor.ai API, jums ir nepieciešama API atslēga, kas ir saistīta ar jūsu kontu .

Autorizācijas vērtība jānosūta galvenes pieprasījumā.

Authorization: <api_key>

Izveidojiet attēlus

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
    "is_sfw": True,
    "negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
    "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": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
    "is_sfw": true,
    "negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
    "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'] = 'zaķis iet uz skolu, nezinoša stila tetovējumu māksla';
    $post_data['is_sfw'] = true;
    $post_data['negative_terms'] = 'dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts';
    $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": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
        "is_sfw": true,
        "negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
        "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);

Atbilde

/path/to/local/result.jpg

HTTP pieprasījums

POST /create-image/

Vaicājuma parametri

Parametrs Tips Apraksts Piemērs
is_sfw Neobligāti Iestatiet "true" , ja “termi” attiecas uz pieaugušajiem paredzētu attēlu saturu true vai false
terms Obligāti Pastāstiet AI, kādu attēlu vēlaties izveidot. zaķis iet uz skolu, nezinoša stila tetovējumu māksla
negative_terms Neobligāti Pastāstiet AI, kas būtu jāizslēdz. dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts
dimension Neobligāti Iegūstiet portreta vai ainavas attēlus. Portreta vērtība ir noklusējuma vērtība, ja tā ir tukša vai nulle. portrait vai landscape
fix_faces Neobligāti Ļaujiet AI noteikt sejas rezultātu attēlos, viltus vērtība ir noklusējuma vērtība, ja tā netiek nosūtīta. true vai false
make_tile Neobligāti Iestatiet true , ja vēlaties attēlu, ko var izmantot kā modeli. true vai false
upscale Neobligāti AI atgriezīs lielāku, palielinātu attēlu. true vai false
threesixty Neobligāti AI atgriezīs 360º attēlu. true vai false

Rediģēt attēlus

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Kaķēnu bļoda",
    "is_sfw": True,
    "replacing": "augļi un augļu kāts",
    "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))
Rediģēt attēlus

curl -X POST \
  https://api.imageeditor.ai/v1/edit-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Kaķēnu bļoda' \
  -F 'is_sfw=true' \
  -F 'replacing=augļi un augļu kāts' \
  -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'] = 'zaķis iet uz skolu, nezinoša stila tetovējumu māksla';
    $post_data['is_sfw'] = true;
    $post_data['replacing'] = 'augļi un augļu kāts';
    $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": "zaķis iet uz skolu, nezinoša stila tetovējumu māksla",
        "is_sfw": true,
        "negative_terms": "dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts",
        "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);

Atbilde

/path/to/local/result.jpg

HTTP pieprasījums

POST /edit-image/

Vaicājuma parametri

Parametrs Tips Apraksts Piemērs
is_sfw Neobligāti Iestatiet "true" , ja “termi” attiecas uz pieaugušajiem paredzētu attēlu saturu true vai false
terms Obligāti Pastāstiet AI, ko vēlaties, pamatojoties uz savu attēlu. Kaķēnu bļoda
replacing Neobligāti Pastāstiet AI, ja vēlaties kaut ko aizstāt savā attēlā, pamatojoties uz iepriekš sniegto uzvedni augļi un augļu kāts
negative_terms Neobligāti Pastāstiet AI, kas būtu jāizslēdz. dublikāts, slikti uzzīmēta seja, slimīgi, slikti novilkti pirksti, neglīts, izplūdis, multfilma, Disney, ārpus rāmja, apgriezts
fix_faces Neobligāti Ļaujiet AI noteikt sejas rezultātu attēlos, viltus vērtība ir noklusējuma vērtība, ja tā netiek nosūtīta. true vai false
outpaint Neobligāti Ņemot vērā sākuma attēlu, AI var ģenerēt tā "apkārtni" true vai false
upscale Neobligāti AI atgriezīs lielāku, palielinātu attēlu. true vai false