NAV
ImageEditor.ai
shell python php javascript

giriiş

ImageEditor.ai platform API'sine hoş geldiniz!

Her özellik, kullanıcılarımızın AI ile ImageEditor.ai'nin sisteminde görüntüleri daha kolay oluşturmasına veya düzenlemesine yardımcı olmak için tasarlanmıştır.

API anahtarınızı almak için lütfen hesap sayfasına gidin.

Varsayılan Temel URL

ImageEditor.ai API için varsayılan temel URL şudur: <b>https://api.imageeditor.ai/v1/</b>

Not: güvenlik nedeniyle, tüm ImageEditor.ai API'leri yalnızca HTTPS üzerinden sunulur.

yetki

ImageEditor.ai API'sini kullanmak için, hesabınıza bağlı API anahtarına ihtiyacınız olacak.

Yetkilendirme değeri, Başlık isteğinde gönderilmelidir.

Authorization: <api_key>

Görüntüler oluştur

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "okula giden tavşan cahil tarzı dövme sanatı",
    "is_sfw": True,
    "negative_terms": "yinelenen, kötü çizilmiş yüz, hastalıklı, kötü çizilmiş parmaklar, çirkin, bulanık, çizgi film, disney, çerçeve dışı, kırpılmış",
    "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": "okula giden tavşan cahil tarzı dövme sanatı",
    "is_sfw": true,
    "negative_terms": "yinelenen, kötü çizilmiş yüz, hastalıklı, kötü çizilmiş parmaklar, çirkin, bulanık, çizgi film, disney, çerçeve dışı, kırpılmış",
    "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'] = 'okula giden tavşan cahil tarzı dövme sanatı';
    $post_data['is_sfw'] = true;
    $post_data['negative_terms'] = 'yinelenen, kötü çizilmiş yüz, hastalıklı, kötü çizilmiş parmaklar, çirkin, bulanık, çizgi film, disney, çerçeve dışı, kırpılmış';
    $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": "okula giden tavşan cahil tarzı dövme sanatı",
        "is_sfw": true,
        "negative_terms": "yinelenen, kötü çizilmiş yüz, hastalıklı, kötü çizilmiş parmaklar, çirkin, bulanık, çizgi film, disney, çerçeve dışı, kırpılmış",
        "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);

Cevap

/path/to/local/result.jpg

HTTP İsteği

POST /create-image/

Sorgu parametreleri

Parametre Tip Tanım Örnek
is_sfw İsteğe bağlı "true" ayarlayın true veya false
terms Gerekli AI'ya hangi görüntüyü oluşturmak istediğinizi söyleyin. okula giden tavşan cahil tarzı dövme sanatı
negative_terms İsteğe bağlı AI'ya neyin hariç tutulması gerektiğini söyleyin. yinelenen, kötü çizilmiş yüz, hastalıklı, kötü çizilmiş parmaklar, çirkin, bulanık, çizgi film, disney, çerçeve dışı, kırpılmış
dimension İsteğe bağlı Dikey veya yatay resimler alın, boş veya boşsa "portre" değeri varsayılandır. portrait veya landscape
fix_faces İsteğe bağlı Yapay zekanın sonuç görüntülerdeki yüzleri düzeltmesine izin verin, gönderilmezse yanlış değer varsayılandır. true veya false
make_tile İsteğe bağlı Desen olarak kullanılabilecek bir görüntü istiyorsanız true ayarlayın. true veya false
upscale İsteğe bağlı AI, daha büyük ölçekli bir görüntü döndürür. true veya false
threesixty İsteğe bağlı AI, 360º bir görüntü döndürür. true veya false

Resimleri düzenle

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Bir kase yavru kedi",
    "is_sfw": True,
    "replacing": "meyve ve meyve sapı",
    "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))
Resimleri düzenle

curl -X POST \
  https://api.imageeditor.ai/v1/edit-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Bir kase yavru kedi' \
  -F 'is_sfw=true' \
  -F 'replacing=meyve ve meyve sapı' \
  -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'] = 'okula giden tavşan cahil tarzı dövme sanatı';
    $post_data['is_sfw'] = true;
    $post_data['replacing'] = 'meyve ve meyve sapı';
    $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": "okula giden tavşan cahil tarzı dövme sanatı",
        "is_sfw": true,
        "negative_terms": "yinelenen, kötü çizilmiş yüz, hastalıklı, kötü çizilmiş parmaklar, çirkin, bulanık, çizgi film, disney, çerçeve dışı, kırpılmış",
        "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);

Cevap

/path/to/local/result.jpg

HTTP İsteği

POST /edit-image/

Sorgu parametreleri

Parametre Tip Tanım Örnek
is_sfw İsteğe bağlı "true" ayarlayın true veya false
terms Gerekli AI'ya resminize göre ne istediğinizi söyleyin. Bir kase yavru kedi
replacing İsteğe bağlı Yukarıdaki isteminize göre görüntünüzdeki bir şeyi değiştirmek isteyip istemediğinizi AI'ya söyleyin. meyve ve meyve sapı
negative_terms İsteğe bağlı AI'ya neyin hariç tutulması gerektiğini söyleyin. yinelenen, kötü çizilmiş yüz, hastalıklı, kötü çizilmiş parmaklar, çirkin, bulanık, çizgi film, disney, çerçeve dışı, kırpılmış
fix_faces İsteğe bağlı Yapay zekanın sonuç görüntülerdeki yüzleri düzeltmesine izin verin, gönderilmezse yanlış değer varsayılandır. true veya false
outpaint İsteğe bağlı Bir başlangıç görüntüsü verildiğinde, AI "çevresini" oluşturabilir true veya false
upscale İsteğe bağlı AI, daha büyük ölçekli bir görüntü döndürür. true veya false