NAV
ImageEditor.ai
shell python php javascript

مقدمة

مرحبًا بك في واجهة برمجة تطبيقات منصة ImageEditor.ai!

تم تصميم كل ميزة لمساعدة مستخدمينا بسهولة أكبر في إنشاء الصور أو تحريرها باستخدام AI على نظام ImageEditor.ai.

للحصول على مفتاح API الخاص بك يرجى الذهاب إلى صفحة الحساب .

URL الأساسي الافتراضي

عنوان URL الأساسي الافتراضي لـ ImageEditor.ai API هو: <b>https://api.imageeditor.ai/v1/</b>

ملاحظة: لأسباب أمنية ، يتم تقديم جميع واجهات برمجة تطبيقات ImageEditor.ai عبر HTTPS فقط.

تفويض

لاستخدام 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 مطلوب أخبر الذكاء الاصطناعي بالصورة التي تريد إنشاءها. أرنب يذهب إلى المدرسة فن الوشم على غرار الجاهل
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