NAV
ImageEditor.ai
shell python php javascript

Giới thiệu

Chào mừng bạn đến với API nền tảng ImageEditor.ai!

Mỗi tính năng được thiết kế để giúp người dùng của chúng tôi tạo hoặc chỉnh sửa hình ảnh dễ dàng hơn bằng AI trên hệ thống ImageEditor.ai".

Để lấy khóa API của bạn, vui lòng truy cập trang tài khoản .

URL cơ sở mặc định

URL cơ sở mặc định cho API ImageEditor.ai là: <b>https://api.imageeditor.ai/v1/</b>

Lưu ý: vì lý do bảo mật, tất cả API ImageEditor.ai chỉ được cung cấp qua HTTPS.

ủy quyền

Để sử dụng API ImageEditor.ai, bạn sẽ cần khóa API được liên kết với tài khoản của mình .

Giá trị ủy quyền phải được gửi trong yêu cầu Tiêu đề.

Authorization: <api_key>

Tạo hình ảnh

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "thỏ đi học nghệ thuật xăm phong cách ngu dốt",
    "is_sfw": True,
    "negative_terms": "bản sao, khuôn mặt vẽ xấu, bệnh tật, ngón tay vẽ kém, xấu xí, mờ, hoạt hình, disney, ngoài khung hình, cắt xén",
    "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": "thỏ đi học nghệ thuật xăm phong cách ngu dốt",
    "is_sfw": true,
    "negative_terms": "bản sao, khuôn mặt vẽ xấu, bệnh tật, ngón tay vẽ kém, xấu xí, mờ, hoạt hình, disney, ngoài khung hình, cắt xén",
    "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'] = 'thỏ đi học nghệ thuật xăm phong cách ngu dốt';
    $post_data['is_sfw'] = true;
    $post_data['negative_terms'] = 'bản sao, khuôn mặt vẽ xấu, bệnh tật, ngón tay vẽ kém, xấu xí, mờ, hoạt hình, disney, ngoài khung hình, cắt xén';
    $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": "thỏ đi học nghệ thuật xăm phong cách ngu dốt",
        "is_sfw": true,
        "negative_terms": "bản sao, khuôn mặt vẽ xấu, bệnh tật, ngón tay vẽ kém, xấu xí, mờ, hoạt hình, disney, ngoài khung hình, cắt xén",
        "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);

Phản ứng

/path/to/local/result.jpg

Yêu cầu HTTP

POST /create-image/

Tham số truy vấn

Tham số Kiểu Sự miêu tả Ví dụ
is_sfw Không bắt buộc Đặt "true" nếu "điều khoản" dành cho nội dung hình ảnh người lớn true hoặc false
terms Yêu cầu Cho AI biết bạn muốn tạo hình ảnh gì. thỏ đi học nghệ thuật xăm phong cách ngu dốt
negative_terms Không bắt buộc Nói với AI những gì nên được loại trừ. bản sao, khuôn mặt vẽ xấu, bệnh tật, ngón tay vẽ kém, xấu xí, mờ, hoạt hình, disney, ngoài khung hình, cắt xén
dimension Không bắt buộc Nhận hình ảnh dọc hoặc ngang, giá trị "dọc" là mặc định nếu trống hoặc rỗng. portrait hoặc landscape
fix_faces Không bắt buộc Hãy để AI sửa khuôn mặt trong ảnh kết quả, giá trị Sai là mặc định nếu không gửi. true hoặc false
make_tile Không bắt buộc Đặt true nếu bạn muốn một hình ảnh có thể được sử dụng làm mẫu. true hoặc false
upscale Không bắt buộc AI sẽ trả về một hình ảnh được phóng to hơn. true hoặc false
threesixty Không bắt buộc AI sẽ trả về hình ảnh 360º. true hoặc false

Chỉnh sửa hình ảnh

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Bát mèo con",
    "is_sfw": True,
    "replacing": "quả và cuống quả",
    "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))
Chỉnh sửa hình ảnh

curl -X POST \
  https://api.imageeditor.ai/v1/edit-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Bát mèo con' \
  -F 'is_sfw=true' \
  -F 'replacing=quả và cuống quả' \
  -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'] = 'thỏ đi học nghệ thuật xăm phong cách ngu dốt';
    $post_data['is_sfw'] = true;
    $post_data['replacing'] = 'quả và cuống quả';
    $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": "thỏ đi học nghệ thuật xăm phong cách ngu dốt",
        "is_sfw": true,
        "negative_terms": "bản sao, khuôn mặt vẽ xấu, bệnh tật, ngón tay vẽ kém, xấu xí, mờ, hoạt hình, disney, ngoài khung hình, cắt xén",
        "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);

Phản ứng

/path/to/local/result.jpg

Yêu cầu HTTP

POST /edit-image/

Tham số truy vấn

Tham số Kiểu Sự miêu tả Ví dụ
is_sfw Không bắt buộc Đặt "true" nếu "điều khoản" dành cho nội dung hình ảnh người lớn true hoặc false
terms Yêu cầu Cho AI biết bạn muốn gì dựa trên hình ảnh của bạn. Bát mèo con
replacing Không bắt buộc Nói với AI nếu bạn muốn thay thế thứ gì đó trong hình ảnh của mình dựa trên lời nhắc của bạn ở trên quả và cuống quả
negative_terms Không bắt buộc Nói với AI những gì nên được loại trừ. bản sao, khuôn mặt vẽ xấu, bệnh tật, ngón tay vẽ kém, xấu xí, mờ, hoạt hình, disney, ngoài khung hình, cắt xén
fix_faces Không bắt buộc Hãy để AI sửa khuôn mặt trong ảnh kết quả, giá trị Sai là mặc định nếu không gửi. true hoặc false
outpaint Không bắt buộc Đưa ra một hình ảnh bắt đầu, AI có thể tạo ra "xung quanh" của nó true hoặc false
upscale Không bắt buộc AI sẽ trả về một hình ảnh được phóng to hơn. true hoặc false