NAV
ImageEditor.ai
shell python php javascript

소개

ImageEditor.ai 플랫폼 API에 오신 것을 환영합니다!

각 기능은 사용자가 ImageEditor.ai의 시스템에서 AI로 이미지를 보다 쉽게 생성하거나 편집할 수 있도록 설계되었습니다.

API 키를 얻으려면 계정 페이지 로 이동하십시오.

기본 기본 URL

ImageEditor.ai API의 기본 기본 URL은 <b>https://api.imageeditor.ai/v1/</b> 입니다.

참고: 보안상의 이유로 모든 ImageEditor.ai API는 HTTPS를 통해서만 제공됩니다.

권한 부여

ImageEditor.ai API를 사용하려면 계정 에 연결된 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 선택 과목 AI에게 제외해야 할 항목을 알려줍니다. 복제, 잘못 그린 얼굴, 병적, 잘못 그린 손가락, 못생긴, 흐릿한, 만화, 디즈니, 프레임 밖, 잘림
dimension 선택 과목 세로 또는 가로 이미지를 가져옵니다. 비어 있거나 null인 경우 "세로" 값이 기본값입니다. 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