NAV
ImageEditor.ai
shell python php javascript

შესავალი

კეთილი იყოს თქვენი მობრძანება ImageEditor.ai პლატფორმის API-ში!

თითოეული ფუნქცია შექმნილია იმისთვის, რომ დაეხმაროს ჩვენს მომხმარებლებს უფრო ადვილად შექმნან ან დაარედაქტირონ სურათები AI-ით ImageEditor.ai-ს სისტემაში.

თქვენი API გასაღების მისაღებად გთხოვთ გადადით ანგარიშის გვერდზე .

ნაგულისხმევი საბაზისო URL

ImageEditor.ai API-ს ნაგულისხმევი საბაზისო URL არის: <b>https://api.imageeditor.ai/v1/</b>

შენიშვნა: უსაფრთხოების მიზეზების გამო, ყველა ImageEditor.ai API ემსახურება მხოლოდ HTTPS-ით.

ავტორიზაცია

ImageEditor.ai API-ის გამოსაყენებლად, დაგჭირდებათ API გასაღები, რომელიც დაკავშირებულია თქვენს ანგარიშთან .

ავტორიზაციის მნიშვნელობა უნდა გაიგზავნოს Headers მოთხოვნაში.

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 სურვილისამებრ უთხარით AI-ს, რა უნდა გამოირიცხოს. დუბლიკატი, ცუდად დახატული სახე, ავადმყოფური, ცუდად დახატული თითები, მახინჯი, ბუნდოვანი, მულტფილმი, დისნეი, ჩარჩოს გარეთ, ამოჭრილი
dimension სურვილისამებრ მიიღეთ პორტრეტული ან ლანდშაფტის სურათები, "პორტრეტის" მნიშვნელობა ნაგულისხმევია, თუ ცარიელია ან ნულოვანი. portrait ან landscape
fix_faces სურვილისამებრ მიეცით საშუალება AI-მ დააფიქსიროს სახეები შედეგის სურათებში, False მნიშვნელობა არის ნაგულისხმევი, თუ არ არის გაგზავნილი. 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 სურვილისამებრ უთხარით AI-ს, რა უნდა გამოირიცხოს. დუბლიკატი, ცუდად დახატული სახე, ავადმყოფური, ცუდად დახატული თითები, მახინჯი, ბუნდოვანი, მულტფილმი, დისნეი, ჩარჩოს გარეთ, ამოჭრილი
fix_faces სურვილისამებრ მიეცით საშუალება AI-მ დააფიქსიროს სახეები შედეგის სურათებში, False მნიშვნელობა არის ნაგულისხმევი, თუ არ არის გაგზავნილი. true ან false
outpaint სურვილისამებრ საწყისი სურათის გათვალისწინებით, AI-ს შეუძლია შექმნას მისი "გარდამო" true ან false
upscale სურვილისამებრ AI დააბრუნებს უფრო მასშტაბურ სურათს. true ან false