Panimula
Maligayang pagdating sa InteriorDecorator.ai platform API!
Idinisenyo ang bawat feature para tulungan ang aming mga user na mas madaling gumawa, mag-edit o makakuha ng mga interior design na larawan gamit ang AI sa InteriorDecorator.ai's system.
Upang makuha ang iyong API key mangyaring pumunta sa pahina ng account .
Default na Base URL
Ang default na base URL para sa InteriorDecorator.ai API ay: https://api.interiordecorator.ai/v1/
Tandaan: para sa mga kadahilanang pangseguridad, lahat ng InteriorDecorator.ai API ay inihahatid sa HTTPS lamang.
Awtorisasyon
Upang magamit ang InteriorDecorator.ai API, kakailanganin mo ang API key na naka-link sa iyong account .
Ang halaga ng pahintulot ay dapat ipadala sa kahilingan ng Mga Header.
Authorization: <api_key>
Mga ideya sa panloob na disenyo
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'
Kunin ang resulta
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);
Tugon
/path/to/local/result.jpg
Kahilingan sa HTTP
POST /interior-image/
Mga parameter ng query
| Parameter | Uri | Paglalarawan | Halimbawa |
|---|---|---|---|
| file | Kailangan | Piliin ang larawang kukunin ng AI bilang batayan. | |
| room_type | Kailangan | Piliin kung saang bahagi ng iyong bahay galing ang larawan. | Living room, Bedroom, Bath room... kumpletong listahan sa ibaba
|
| style | Kailangan | Piliin kung anong istilo ang gusto mong ibigay ng AI sa iyong larawan | Eastern, Modern, Minimalist... kumpletong listahan sa ibaba |
| upscale | Opsyonal | Magbabalik ang AI ng mas malaking pinalaki na imahe. | true o false |
| model | Opsyonal | Piliin ang modelo ng AI upang makabuo ng mga ideya sa disenyo. Mayroon kaming Stable Diffusion 1.5 at Openjourney v4 | sd15 o openjourney-v4 |
Ang mga posibleng value para sa room_type ay:
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, o Mudroom
Posibleng mga halaga para sa style ay:
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 o Neoclassic