NAV
ImageEditor.ai
shell python php javascript

Kirish

ImageEditor.ai platformasi API ga xush kelibsiz!

Har bir xususiyat foydalanuvchilarga ImageEditor.ai tizimida AI yordamida tasvirlarni osonroq yaratish yoki tahrirlashda yordam berish uchun mo'ljallangan.

API kalitingizni olish uchun hisob sahifasiga o'ting.

Standart asosiy URL

ImageEditor.ai API uchun standart asosiy URL: <b>https://api.imageeditor.ai/v1/</b>

Eslatma: xavfsizlik nuqtai nazaridan barcha ImageEditor.ai API’lari faqat HTTPS orqali taqdim etiladi.

Ruxsat

ImageEditor.ai API-dan foydalanish uchun sizga hisobingizga bog‘langan API kaliti kerak bo‘ladi.

Avtorizatsiya qiymati sarlavhalar so'rovida yuborilishi kerak.

Authorization: <api_key>

Tasvirlar yaratish

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
    "is_sfw": True,
    "negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
    "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": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
    "is_sfw": true,
    "negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
    "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'] = 'maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati';
    $post_data['is_sfw'] = true;
    $post_data['negative_terms'] = 'dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan';
    $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": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
        "is_sfw": true,
        "negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
        "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);

Javob

/path/to/local/result.jpg

HTTP so'rovi

POST /create-image/

So'rov parametrlari

Parametr Turi Tavsif Misol
is_sfw Ixtiyoriy Agar “shartlar” kattalar uchun rasm kontenti uchun boʻlsa "true" ni belgilang true yoki false
terms Majburiy AIga qanday tasvir yaratmoqchi ekanligingizni ayting. maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati
negative_terms Ixtiyoriy AIga nimani istisno qilish kerakligini ayting. dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan
dimension Ixtiyoriy Portret yoki landshaft tasvirlarini oling, agar bo'sh yoki null bo'lsa, "portret" qiymati standart hisoblanadi. portrait yoki landscape
fix_faces Ixtiyoriy AIga natija tasvirlaridagi yuzlarni tuzatishga ruxsat bering, agar yuborilmasa, noto'g'ri qiymat sukut bo'ladi. true yoki false
make_tile Ixtiyoriy Naqsh sifatida ishlatilishi mumkin bo'lgan rasmni istasangiz, true o'rnating. true yoki false
upscale Ixtiyoriy AI kattaroq o'lchamdagi tasvirni qaytaradi. true yoki false
threesixty Ixtiyoriy AI 360º tasvirni qaytaradi. true yoki false

Tasvirlarni tahrirlash

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Bir piyola mushukchalar",
    "is_sfw": True,
    "replacing": "meva va meva poyasi",
    "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))
Tasvirlarni tahrirlash

curl -X POST \
  https://api.imageeditor.ai/v1/edit-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Bir piyola mushukchalar' \
  -F 'is_sfw=true' \
  -F 'replacing=meva va meva poyasi' \
  -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'] = 'maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati';
    $post_data['is_sfw'] = true;
    $post_data['replacing'] = 'meva va meva poyasi';
    $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": "maktabga boradigan quyon, johil uslubdagi tatuirovka san'ati",
        "is_sfw": true,
        "negative_terms": "dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan",
        "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);

Javob

/path/to/local/result.jpg

HTTP so'rovi

POST /edit-image/

So'rov parametrlari

Parametr Turi Tavsif Misol
is_sfw Ixtiyoriy Agar “shartlar” kattalar uchun rasm kontenti uchun boʻlsa "true" ni belgilang true yoki false
terms Majburiy Tasviringiz asosida AIga nima istayotganingizni ayting. Bir piyola mushukchalar
replacing Ixtiyoriy Yuqoridagi ko'rsatma asosida tasviringizdagi biror narsani almashtirmoqchi bo'lsangiz, AIga ayting meva va meva poyasi
negative_terms Ixtiyoriy AIga nimani istisno qilish kerakligini ayting. dublikat, yomon chizilgan yuz, kasal, yomon chizilgan barmoqlar, xunuk, loyqa, multfilm, disney, ramkadan tashqari, kesilgan
fix_faces Ixtiyoriy AIga natija tasvirlaridagi yuzlarni tuzatishga ruxsat bering, agar yuborilmasa, noto'g'ri qiymat sukut bo'ladi. true yoki false
outpaint Ixtiyoriy Boshlang'ich tasvirni hisobga olgan holda, AI uning "atrofini" yaratishi mumkin true yoki false
upscale Ixtiyoriy AI kattaroq o'lchamdagi tasvirni qaytaradi. true yoki false