NAV
ImageEditor.ai
shell python php javascript

معرفی

به API پلتفرم ImageEditor.ai خوش آمدید!

هر ویژگی برای کمک به کاربران ما طراحی شده است که به راحتی تصاویر را با هوش مصنوعی در سیستم ImageEditor.ai ایجاد یا ویرایش کنند.

برای دریافت کلید API خود لطفاً به صفحه حساب بروید.

URL پایه پیش فرض

URL پایه پیش فرض برای ImageEditor.ai API این است: <b>https://api.imageeditor.ai/v1/</b>

توجه: به دلایل امنیتی، همه API های ImageEditor.ai فقط از طریق 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 ضروری به هوش مصنوعی بگویید می‌خواهید چه تصویری ایجاد کنید. خرگوش رفتن به مدرسه، هنر خال کوبی به سبک نادان
negative_terms اختیاری به هوش مصنوعی بگویید چه چیزی باید حذف شود. تکراری، چهره ضعیف، بیمار، انگشتان ضعیف، زشت، تار، کارتونی، دیزنی، خارج از کادر، برش خورده
dimension اختیاری تصاویر عمودی یا منظره را دریافت کنید، مقدار "عمودی" در صورت خالی یا خالی بودن پیش‌فرض است. portrait یا landscape
fix_faces اختیاری به هوش مصنوعی اجازه دهید تا چهره‌ها را در تصاویر نتیجه تصحیح کند، اگر ارسال نشود مقدار False پیش‌فرض است. true یا false
make_tile اختیاری اگر تصویری را می‌خواهید که بتوان از آن به عنوان الگو استفاده کرد true تنظیم کنید. true یا false
upscale اختیاری هوش مصنوعی یک تصویر بزرگ‌تر را نشان می‌دهد. true یا false
threesixty اختیاری هوش مصنوعی یک تصویر 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 ضروری بر اساس تصویر خود به هوش مصنوعی بگویید چه می خواهید. کاسه بچه گربه
replacing اختیاری به هوش مصنوعی بگویید اگر می‌خواهید چیزی را در تصویرتان بر اساس دستور بالا جایگزین کنید میوه ها و ساقه میوه
negative_terms اختیاری به هوش مصنوعی بگویید چه چیزی باید حذف شود. تکراری، چهره ضعیف، بیمار، انگشتان ضعیف، زشت، تار، کارتونی، دیزنی، خارج از کادر، برش خورده
fix_faces اختیاری به هوش مصنوعی اجازه دهید تا چهره‌ها را در تصاویر نتیجه تصحیح کند، اگر ارسال نشود مقدار False پیش‌فرض است. true یا false
outpaint اختیاری با توجه به یک تصویر شروع، هوش مصنوعی می تواند "اطراف" آن را ایجاد کند. true یا false
upscale اختیاری هوش مصنوعی یک تصویر بزرگ‌تر را نشان می‌دهد. true یا false