NAV
ImageEditor.ai
shell python php javascript

Įvadas

Sveiki atvykę į ImageEditor.ai platformos API!

Kiekviena funkcija skirta padėti mūsų vartotojams lengviau kurti arba redaguoti vaizdus naudojant AI ImageEditor.ai sistemoje.

Norėdami gauti API raktą, eikite į paskyros puslapį .

Numatytasis bazinis URL

Numatytasis pagrindinis ImageEditor.ai API URL yra: <b>https://api.imageeditor.ai/v1/</b>

Pastaba: saugumo sumetimais visos ImageEditor.ai API teikiamos tik per HTTPS.

Autorizacija

Norėdami naudoti ImageEditor.ai API, jums reikės API rakto, susieto su jūsų paskyra .

Prieigos vertė turėtų būti išsiųsta antraštės užklausoje.

Authorization: <api_key>

Kurti vaizdus

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "triušis eina į mokyklą, nemokšiško stiliaus tatuiruotės menas",
    "is_sfw": True,
    "negative_terms": "dublikatas, prastai nupieštas veidas, liguistas, prastai nupiešti pirštai, bjaurus, neryškus, animacinis filmas, Disney, iš kadro, apkarpytas",
    "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": "triušis eina į mokyklą, nemokšiško stiliaus tatuiruotės menas",
    "is_sfw": true,
    "negative_terms": "dublikatas, prastai nupieštas veidas, liguistas, prastai nupiešti pirštai, bjaurus, neryškus, animacinis filmas, Disney, iš kadro, apkarpytas",
    "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'] = 'triušis eina į mokyklą, nemokšiško stiliaus tatuiruotės menas';
    $post_data['is_sfw'] = true;
    $post_data['negative_terms'] = 'dublikatas, prastai nupieštas veidas, liguistas, prastai nupiešti pirštai, bjaurus, neryškus, animacinis filmas, Disney, iš kadro, apkarpytas';
    $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": "triušis eina į mokyklą, nemokšiško stiliaus tatuiruotės menas",
        "is_sfw": true,
        "negative_terms": "dublikatas, prastai nupieštas veidas, liguistas, prastai nupiešti pirštai, bjaurus, neryškus, animacinis filmas, Disney, iš kadro, apkarpytas",
        "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);

Atsakymas

/path/to/local/result.jpg

HTTP užklausa

POST /create-image/

Užklausos parametrai

Parametras Tipas apibūdinimas Pavyzdys
is_sfw Neprivaloma Nustatykite "true" , jei „sąlygos“ yra skirtos suaugusiesiems skirto vaizdo turiniui true arba false
terms Reikalingas Pasakykite AI, kokį vaizdą norite sukurti. triušis eina į mokyklą, nemokšiško stiliaus tatuiruotės menas
negative_terms Neprivaloma Pasakykite AI, kas turėtų būti neįtraukta. dublikatas, prastai nupieštas veidas, liguistas, prastai nupiešti pirštai, bjaurus, neryškus, animacinis filmas, Disney, iš kadro, apkarpytas
dimension Neprivaloma Gaukite stačius arba gulsčius vaizdus, „stačias“ reikšmė yra numatytoji, jei tuščia arba nulinė. portrait arba landscape
fix_faces Neprivaloma Leiskite AI pataisyti veidus rezultatų vaizduose. Numatytoji reikšmė yra klaidinga, jei nesiunčiama. true arba false
make_tile Neprivaloma Nustatykite true , jei norite, kad vaizdas būtų naudojamas kaip raštas. true arba false
upscale Neprivaloma AI pateiks didesnį padidintą vaizdą. true arba false
threesixty Neprivaloma AI pateiks 360º vaizdą. true arba false

Redaguoti vaizdus

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Dubuo kačiukams",
    "is_sfw": True,
    "replacing": "vaisiai ir vaisiaus stiebas",
    "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))
Redaguoti vaizdus

curl -X POST \
  https://api.imageeditor.ai/v1/edit-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Dubuo kačiukams' \
  -F 'is_sfw=true' \
  -F 'replacing=vaisiai ir vaisiaus stiebas' \
  -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'] = 'triušis eina į mokyklą, nemokšiško stiliaus tatuiruotės menas';
    $post_data['is_sfw'] = true;
    $post_data['replacing'] = 'vaisiai ir vaisiaus stiebas';
    $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": "triušis eina į mokyklą, nemokšiško stiliaus tatuiruotės menas",
        "is_sfw": true,
        "negative_terms": "dublikatas, prastai nupieštas veidas, liguistas, prastai nupiešti pirštai, bjaurus, neryškus, animacinis filmas, Disney, iš kadro, apkarpytas",
        "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);

Atsakymas

/path/to/local/result.jpg

HTTP užklausa

POST /edit-image/

Užklausos parametrai

Parametras Tipas apibūdinimas Pavyzdys
is_sfw Neprivaloma Nustatykite "true" , jei „sąlygos“ yra skirtos suaugusiesiems skirto vaizdo turiniui true arba false
terms Reikalingas Remdamiesi savo įvaizdžiu, pasakykite AI, ko norite. Dubuo kačiukams
replacing Neprivaloma Pasakykite AI, jei norite ką nors pakeisti savo vaizde pagal anksčiau pateiktą raginimą vaisiai ir vaisiaus stiebas
negative_terms Neprivaloma Pasakykite AI, kas turėtų būti neįtraukta. dublikatas, prastai nupieštas veidas, liguistas, prastai nupiešti pirštai, bjaurus, neryškus, animacinis filmas, Disney, iš kadro, apkarpytas
fix_faces Neprivaloma Leiskite AI pataisyti veidus rezultatų vaizduose. Numatytoji reikšmė yra klaidinga, jei nesiunčiama. true arba false
outpaint Neprivaloma Turėdamas pradinį vaizdą, AI gali sukurti jo „aplinką“ true arba false
upscale Neprivaloma AI pateiks didesnį padidintą vaizdą. true arba false