NAV

InteriorDecorator.ai
shell python php javascript

پیژندنه

د InteriorDecorator.ai پلیټ فارم API ته ښه راغلاست!

هر فیچر د دې لپاره ډیزاین شوی چې زموږ کاروونکو سره مرسته وکړي په اسانۍ سره د داخلي ډیزاین عکسونه د AI سره د InteriorDecorator.ai په سیسټم کې رامینځته کړي ، ایډیټ کړي یا ترلاسه کړي.

د خپل API کلید ترلاسه کولو لپاره مهرباني وکړئ د حساب پاڼې ته لاړ شئ.

د اصلي اساس URL

د InteriorDecorator.ai API لپاره د اصلي اساس URL دا دی: https://api.interiordecorator.ai/v1/

یادونه: د امنیتي دلایلو لپاره، ټول InteriorDecorator.ai APIs یوازې په HTTPS کې خدمت کیږي.

واک ورکول

د InteriorDecorator.ai API کارولو لپاره، تاسو به د API کیلي ته اړتیا ولرئ چې ستاسو حساب سره تړلی وي.

د اجازې ارزښت باید د سرلیکونو په غوښتنه کې واستول شي.

Authorization: <api_key>

د داخلي ډیزاین نظریات

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "room_type": "Living room",
    "style": "Modern",
    "upscale": False,
    "model": sd15,
}
file_path = "test_files/sala.png"
base_api_url = "https://api.interiordecorator.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}/interior-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.interiordecorator.ai/v1/interior-image/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/sala.png' \
  -F 'room_type=Living room' \
  -F 'style=Modern' \
  -F 'upscale=false' \
  -F 'model=sd15'


پایله ترلاسه کړئ

curl -X POST \
  https://api.interiordecorator.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/sala.png'];
$api_url = "https://api.interiordecorator.ai/v1/interior-image/";
$results_url = "https://api.interiordecorator.ai/v1/results/";

function download_file($url, $filename){
    $curl = curl_init();
    $url = "https://api.interiordecorator.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['room_type'] = 'Living room';
    $post_data['style'] = 'Modern';
    $post_data['upscale'] = false;
    $post_data['model'] = sd15;

    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.interiordecorator.ai/v1/interior-image/'
const results_url = 'https://api.interiordecorator.ai/v1/results/'

function convertFiles(file_list) {
    let formData = {
        "room_type": "Living room",
        "style": "Modern",
        "upscale": false,
        "model": sd15,
    };

    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 /interior-image/

د پوښتنې پیرامیټونه

پیرامیټر ډول تفصیل بېلګه
file اړین دی هغه عکس غوره کړئ چې AI به د اساس په توګه واخلي.
room_type اړین دی غوره کړئ چې عکس ستاسو د کور کومې برخې څخه دی. Living room, Bedroom, Bath room... بشپړ لیست لاندې
style اړین دی هغه سټایل غوره کړئ چې تاسو غواړئ AI ستاسو عکس ورکړئ Eastern, Modern, Minimalist... بشپړ لیست لاندې
upscale اختیاري AI به یو لوی پیمانه عکس بیرته راولي. true یا false
model اختیاري د ډیزاین نظرونو رامینځته کولو لپاره د AI ماډل غوره کړئ. موږ مستحکم ډیفیوژن 1.5 او خلاص سفر v4 لرو sd15 یا openjourney-v4

room_type لپاره احتمالي ارزښتونه دي:
Living room, Bedroom, Bath room, Attic, Kitchen, Dining room, Study room, Home office, Gaming room, House exterior, Outdoor pool area, Outdoor patio, Outdoor garden, Meeting room, Workshop, Fitness gym, Coffee shop, Clothing store, Walk in closet, Toilet, Restaurant, Office, Coworking space, Hotel lobby, Hotel room, Hotel bathroom, Exhibition space, یا Mudroom

style لپاره احتمالي ارزښتونه دي:
Eastern, Modern, Minimalist, Contemporary, Scandinavian, Zen, Midcentury modern, Tropical, Art deco, Farmhouse, Japanese design, Rustic, Bohemian, Coastal, Cottagecore, Vintage, French country, Gaming room, Baroque, Ski chalet, Christmas, Tribal, Medieval, Chinese New Year, Halloween یا Neoclassic