NAV
ImageEditor.ai
shell python php javascript

ভূমিকা

ImageEditor.ai প্ল্যাটফর্ম API এ স্বাগতম!

প্রতিটি বৈশিষ্ট্য আমাদের ব্যবহারকারীদের ImageEditor.ai's সিস্টেমে 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 ঐচ্ছিক এআই-কে বলুন কী বাদ দেওয়া উচিত। সদৃশ, খারাপভাবে আঁকা মুখ, অসুস্থ, খারাপভাবে আঁকা আঙ্গুল, কুশ্রী, ঝাপসা, কার্টুন, ডিজনি, ফ্রেমের বাইরে, ক্রপ করা
dimension ঐচ্ছিক পোর্ট্রেট বা ল্যান্ডস্কেপ ছবি পান, "পোর্ট্রেট" মান খালি বা শূন্য হলে ডিফল্ট। portrait বা landscape
fix_faces ঐচ্ছিক AI কে ফলাফলের চিত্রগুলিতে মুখগুলি ঠিক করতে দিন, না পাঠালে মিথ্যা মান ডিফল্ট। 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 ঐচ্ছিক এআই-কে বলুন কী বাদ দেওয়া উচিত। সদৃশ, খারাপভাবে আঁকা মুখ, অসুস্থ, খারাপভাবে আঁকা আঙ্গুল, কুশ্রী, ঝাপসা, কার্টুন, ডিজনি, ফ্রেমের বাইরে, ক্রপ করা
fix_faces ঐচ্ছিক AI কে ফলাফলের চিত্রগুলিতে মুখগুলি ঠিক করতে দিন, না পাঠালে মিথ্যা মান ডিফল্ট। true বা false
outpaint ঐচ্ছিক একটি প্রারম্ভিক চিত্র দেওয়া হলে, এআই এটির "পরিবেশ" তৈরি করতে পারে true বা false
upscale ঐচ্ছিক AI একটি বড় আকারের চিত্র ফিরিয়ে দেবে। true বা false