NAV
ImageEditor.ai
shell python php javascript

Муқаддима

Хуш омадед ба API платформаи ImageEditor.ai!

Ҳар як хусусият барои кӯмак расонидан ба корбарони мо бо AI дар системаи ImageEditor.ai тасвирҳо осонтар сохтан ё таҳрир кардан пешбинӣ шудааст.

Барои гирифтани калиди API-и худ лутфан ба саҳифаи ҳисоб равед.

URL Асосии пешфарз

URL-и пешфарз барои API ImageEditor.ai ин аст: <b>https://api.imageeditor.ai/v1/</b>

Эзоҳ: бо сабабҳои амниятӣ, ҳама API-ҳои ImageEditor.ai танҳо тавассути HTTPS хидмат мекунанд.

Иҷозатнома

Барои истифодаи API ImageEditor.ai, ба шумо калиди API лозим аст, ки ба ҳисоби шумо пайваст аст.

Арзиши авторизатсия бояд дар дархости сарлавҳаҳо фиристода шавад.

Authorization: <api_key>

Эҷоди тасвирҳо

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
    "is_sfw": True,
    "negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
    "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": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
    "is_sfw": true,
    "negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
    "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'] = 'харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил';
    $post_data['is_sfw'] = true;
    $post_data['negative_terms'] = 'такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда';
    $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": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
        "is_sfw": true,
        "negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
        "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);

Ҷавоб

/path/to/local/result.jpg

Дархости HTTP

POST /create-image/

Параметрҳои дархост

Параметр Навъи Тавсифи Мисол
is_sfw Ихтиёрӣ Агар "шартҳо "true" -ро таъин кунед true ё false
terms Талаб карда мешавад Ба AI бигӯед, ки шумо кадом тасвирро эҷод кардан мехоҳед. харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил
negative_terms Ихтиёрӣ Ба АИ бигӯед, ки чӣ бояд истисно карда шавад. такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда
dimension Ихтиёрӣ Тасвирҳои портрет ё манзараро гиред, агар холӣ ё нул бошад, арзиши "портрет" пешфарз аст. portrait ё landscape
fix_faces Ихтиёрӣ Бигзор AI чеҳраҳоро дар тасвирҳои натиҷа ислоҳ кунад, агар фиристода нашавад, арзиши бардурӯғ пешфарз аст. true ё false
make_tile Ихтиёрӣ Агар шумо хоҳед, ки тасвире, ки ҳамчун намуна истифода шавад, true таъин кунед. true ё false
upscale Ихтиёрӣ AI тасвири калонтареро бармегардонад. true ё false
threesixty Ихтиёрӣ AI тасвири 360º-ро бармегардонад. true ё false

Тасвирҳоро таҳрир кунед

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Коса гурбачахо",
    "is_sfw": True,
    "replacing": "мева ва пояи мева",
    "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))
Тасвирҳоро таҳрир кунед

curl -X POST \
  https://api.imageeditor.ai/v1/edit-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Коса гурбачахо' \
  -F 'is_sfw=true' \
  -F 'replacing=мева ва пояи мева' \
  -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'] = 'харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил';
    $post_data['is_sfw'] = true;
    $post_data['replacing'] = 'мева ва пояи мева';
    $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": "харгӯш ба мактаб рафтан, санъати тату услуби ҷоҳил",
        "is_sfw": true,
        "negative_terms": "такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда",
        "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);

Ҷавоб

/path/to/local/result.jpg

Дархости HTTP

POST /edit-image/

Параметрҳои дархост

Параметр Навъи Тавсифи Мисол
is_sfw Ихтиёрӣ Агар "шартҳо "true" -ро таъин кунед true ё false
terms Талаб карда мешавад Ба AI бигӯед, ки шумо дар асоси тасвири худ чӣ мехоҳед. Коса гурбачахо
replacing Ихтиёрӣ Ба AI бигӯед, ки агар шумо мехоҳед чизеро дар тасвири худ дар асоси дархости дар боло овардаатон иваз кунед мева ва пояи мева
negative_terms Ихтиёрӣ Ба АИ бигӯед, ки чӣ бояд истисно карда шавад. такрорӣ, чеҳраи суст кашидашуда, бемор, ангуштони суст кашидашуда, зишт, норавшан, мультфилм, дисней, аз чаҳорчӯба, буридашуда
fix_faces Ихтиёрӣ Бигзор AI чеҳраҳоро дар тасвирҳои натиҷа ислоҳ кунад, агар фиристода нашавад, арзиши бардурӯғ пешфарз аст. true ё false
outpaint Ихтиёрӣ Бо назардошти тасвири ибтидоӣ, AI метавонад "муҳит" -и онро эҷод кунад true ё false
upscale Ихтиёрӣ AI тасвири калонтареро бармегардонад. true ё false