HiAPI
Blog

Tutoriale

API di home staging virtuale: trasforma le foto di stanze vuote in annunci immobiliari arredati con l'IA

Un flusso di lavoro image-to-image riproducibile, con confronti reali prima/dopo generati, prompt esatti, script per l'elaborazione in batch e prezzi verificati

Sep 23, 2026
API di home staging virtuale: trasforma le foto di stanze vuote in annunci immobiliari arredati con l'IA

Le immagini di un immobile vuoto comunicano ai potenziali acquirenti meno di quelle di un immobile arredato. Lo staging fisico risolve il problema, ma ogni unità comporta costi reali e la pianificazione degli appuntamenti richiede giorni. Un'API image-to-image può svolgere lo stesso lavoro con una sola foto della stanza vuota: conserva la stanza reale — pareti, pavimento, finestre e angolazione della fotocamera — e vi aggiunge i mobili.

Questa guida illustra l'intero flusso di lavoro con l'ID modello canonico gpt-image-2/image-to-image, chiamato tramite POST https://api.hiapi.ai/v1/tasks. Include due confronti reali prima/dopo generati per questa guida (un soggiorno e una camera da letto), i loro prompt esatti, uno script per l'elaborazione in batch riutilizzabile e i prezzi verificati.

Come l'image-to-image mantiene reale la stanza

La generazione text-to-image crea stanze dal nulla in base a una descrizione. Non è adatta allo staging, perché l'output deve corrispondere all'unità reale in cui entreranno gli acquirenti. La generazione image-to-image usa la foto della stanza vuota come riferimento e la modifica, quindi la geometria reale della stanza viene preservata.

La richiesta contiene due parti: un prompt che descrive solo ciò che deve cambiare (i mobili e gli arredi da aggiungere), e un array input_urls contenente la foto di riferimento — la foto della stanza vuota ospitata su un URL pubblico. Il modello legge l'immagine di riferimento, mantiene invariati angolazione della fotocamera, pareti, pavimento e finestre, e inserisce i mobili nella scena come se fossero collocati in quella stanza esatta.

POST https://api.hiapi.ai/v1/tasks
{
  "model": "gpt-image-2/image-to-image",
  "input": {
    "prompt": "<furniture and decor to add, plus an instruction to keep the room unchanged>",
    "input_urls": ["<public URL of the empty-room photo>"],
    "aspect_ratio": "16:9",
    "resolution": "1K"
  }
}

Questa singola scelta progettuale — input di riferimento, output modificato — è ciò che distingue lo staging virtuale dalla generazione generica di stanze. I due esempi seguenti lo dimostrano su una foto reale di un soggiorno vuoto e non arredato e su una foto di una camera da letto vuota.

Prima e dopo: soggiorno

A professionally lit real estate photograph of a completely empty living room in
a modern apartment: light oak hardwood floors, plain white walls, one large
window with soft daylight, closed white door on the right wall, ceiling with a
single flush-mount light fixture, no furniture, no people, no text or
watermarks, wide-angle real estate listing photography style, sharp focus,
natural color grading.

La prima immagine è la foto di riferimento, generata con gpt-image-2/text-to-image, che sostituisce la foto dell'annuncio di un'unità reale vuota (proporzioni 16:9, risoluzione 1K, costo registrato $0,03, generata il 2026-09-23). In un flusso di lavoro reale, questa è in pratica la foto caricata dall'agente stesso: indipendentemente dalla provenienza della foto della stanza vuota, il passaggio di staging successivo funziona allo stesso modo.

Using the empty room in the reference photo, keep the exact room geometry,
floor, walls, window, and door unchanged, and add tasteful modern furniture to
stage it as a livable listing photo: a light gray fabric sofa with two throw
pillows, a round wooden coffee table, a neutral area rug, a floor lamp in the
corner, and a piece of abstract wall art above the sofa. Keep the camera angle
and lighting identical to the reference photo. No people, no text or
watermarks, real estate listing photography style.

Prova: modello gpt-image-2/image-to-image, input_urls impostato sulla foto della stanza vuota qui sopra, aspect_ratio: 16:9, resolution: 1K, costo registrato $0,03, generato il 2026-09-23. La posizione della finestra, la porta sulla parete destra e le tonalità di pavimento e pareti derivano dalla foto di riferimento: sono stati aggiunti solo i mobili.

Prima e dopo: camera da letto

A professionally lit real estate photograph of a completely empty bedroom in a
modern apartment: light oak hardwood floors, plain white walls, one window with
sheer curtains letting in soft daylight, a closet with sliding white doors on
one wall, ceiling with a single flush-mount light fixture, no furniture, no
people, no text or watermarks, wide-angle real estate listing photography
style, sharp focus, natural color grading.

Using the empty room in the reference photo, keep the exact room geometry,
floor, walls, window, and closet doors unchanged, and add tasteful modern
furniture to stage it as a livable listing photo: a queen-size bed with a light
gray upholstered headboard and neutral bedding, two matching nightstands with
small lamps, a folded throw blanket at the foot of the bed, and a framed piece
of wall art above the headboard. Keep the camera angle and lighting identical to
the reference photo. No people, no text or watermarks, real estate listing
photography style.

Prova: modello gpt-image-2/image-to-image, input_urls impostato sulla foto della camera da letto vuota qui sopra, aspect_ratio: 16:9, resolution: 1K, costo registrato $0,03, generato il 2026-09-23. La posizione delle ante scorrevoli dell'armadio e della finestra è rimasta invariata; il letto, i comodini e il quadro sono le uniche aggiunte.

Entrambi gli output di staging derivano da una struttura del prompt in tre parti usata ogni volta: l'istruzione di conservare la stanza di riferimento, l'elenco specifico dei mobili e le etichette di stile fotografico. Omettere l'istruzione di conservazione è l'errore più comune in questo tipo di attività: senza di essa, il modello tratta l'immagine di riferimento con maggiore libertà e può cambiare l'angolazione della fotocamera o le proporzioni della stanza.

Eseguire i task di staging in batch con l'API dei task

Un singolo annuncio spesso richiede lo staging di più di una stanza, e un'agenzia immobiliare deve gestire molti annunci. Lo script seguente riceve un dizionario di URL di foto di stanze vuote, invia un task di staging per ogni URL e attende fino a quando tutti gli output sono pronti.

import os
import time
import requests

API_URL = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
    "Authorization": f"Bearer {os.environ['HIAPI_TOKEN']}",
    "Content-Type": "application/json",
}

STAGING_BRIEF = (
    "keep the exact room geometry, floor, walls, and window unchanged, and add "
    "tasteful modern furniture to stage it as a livable listing photo, real "
    "estate listing photography style, no people, no text or watermarks"
)

# name -> public URL of the empty-room photo
ROOMS = {
    "unit-204-living-room": "https://your-storage.example.com/unit-204-living-room.jpg",
    "unit-204-bedroom": "https://your-storage.example.com/unit-204-bedroom.jpg",
}


def submit_staging_job(empty_room_url, aspect_ratio="16:9", resolution="1K"):
    response = requests.post(
        API_URL,
        headers=HEADERS,
        json={
            "model": "gpt-image-2/image-to-image",
            "input": {
                "prompt": STAGING_BRIEF,
                "input_urls": [empty_room_url],
                "aspect_ratio": aspect_ratio,
                "resolution": resolution,
            },
        },
        timeout=60,
    )
    response.raise_for_status()
    return response.json()["data"]["taskId"]


def wait_for_output(task_id, timeout_s=300, poll_interval=5):
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        r = requests.get(f"{API_URL}/{task_id}", headers=HEADERS, timeout=30)
        r.raise_for_status()
        task = r.json()["data"]
        if task["status"] == "success":
            return task["output"][0]["url"]  # expires — download immediately
        if task["status"] == "fail":
            raise RuntimeError(task["error"])
        time.sleep(poll_interval)
    raise TimeoutError(f"task {task_id} did not finish in {timeout_s}s")


task_ids = {name: submit_staging_job(url) for name, url in ROOMS.items()}
staged_urls = {name: wait_for_output(tid) for name, tid in task_ids.items()}
print(staged_urls)

Per un batch reale, due dettagli sono importanti. Primo, input_urls accetta una foto di riferimento per task: si esegue lo staging di una stanza per chiamata, invece di tentare di combinare più stanze in una sola richiesta. Secondo, ogni output[0].url nella risposta è un link a scadenza: scarica i byte e salvali immediatamente nel tuo bucket appena il task è completato, così come questa guida carica subito i propri output su uno storage permanente.

Prevedere i costi di un batch di staging

gpt-image-2/image-to-image ha un prezzo basato sulla risoluzione dell'output, verificato il 2026-09-23 rispetto all'endpoint dei prezzi in tempo reale di HiAPI:

Risoluzione Prezzo per immagine di staging
1K $0,03
2K $0,04
4K $0,06

La formula di pianificazione è:

batch cost = units × rooms staged per unit × price per image

Usando il prezzo 1K della tabella:

Batch di immobili Stanze per unità Immagini di staging Costo del batch
1 unità 3 3 $0,09
10 unità 3 30 $0,90
50 unità 4 200 $6,00
200 unità 4 800 $24,00

I prezzi cambiano, quindi prima di impegnarti su lotti consistenti consulta la pagina dei prezzi in tempo reale e aggiungi un margine per le rigenerazioni in base al tuo tasso di approvazione: i due esempi di questa guida non rappresentano un tasso di successo al primo tentativo valido in generale.

Cosa lo staging virtuale non può fare

Lo staging image-to-image modifica i pixel, non l'unità reale. Prima di inserirlo nel flusso di lavoro degli annunci, tieni presente tre limiti:

  • Non può riparare la stanza. Danni, muffa o problemi strutturali presenti nella foto di riferimento non devono essere eliminati con il fotoritocco, e una foto con staging non deve mai distorcere le condizioni reali dell'unità.
  • Non garantisce una geometria perfetta a livello di pixel. Il prompt chiede al modello di conservare la stanza e i due esempi qui sopra mantengono la disposizione, ma prima della pubblicazione sull'annuncio una persona deve comunque confrontare ogni foto con staging con quella di origine.
  • Le norme sulla divulgazione restano valide. Molti sistemi MLS e normative immobiliari locali richiedono che gli annunci indichino quali foto sono state sottoposte a staging virtuale: controlla le regole applicabili al tuo mercato prima di pubblicare.

Domande frequenti

Quale modello usare per lo staging virtuale con IA?

Usa gpt-image-2/image-to-image e chiama POST /v1/tasks, passando l'URL pubblico della foto della stanza vuota in input_urls e specificando nel prompt i mobili da aggiungere. Per lo schema completo degli input, consulta la documentazione del modello.

Le foto con staging corrispondono davvero alla stanza reale?

Dovrebbero corrispondere, ma vanno verificate. La struttura del prompt di questa guida — prima conservare l'immagine di riferimento, poi elencare solo i mobili da aggiungere — ha mantenuto la coerenza di finestre, porte, pavimento e tonalità delle pareti in entrambi gli esempi qui presentati. Tuttavia, prima della pubblicazione, controlla ogni output rispetto alla foto di origine, perché la qualità della generazione può variare in base alla stanza e all'illuminazione.

Quanto costa fare lo staging di un intero immobile?

Al prezzo 1K di $0,03 per immagine, fare lo staging di tre stanze per un'unità costa $0,09. Moltiplica il numero di stanze per unità per il numero di unità del batch per pianificare operazioni più grandi, e verifica prima i prezzi attuali, perché la risoluzione e le future variazioni di prezzo influiscono sul costo totale.

Devo dichiarare che le foto sono state sottoposte a staging virtuale?

Controlla le regole del tuo mercato. Molti sistemi MLS e normative locali richiedono un'etichetta di divulgazione sulle foto con staging virtuale, separatamente da qualsiasi requisito generale di accuratezza delle immagini dell'annuncio.

Questo approccio image-to-image può fare più dello staging?

Sì: conservare l'immagine di riferimento modificando solo gli elementi descritti è un pattern generico. Il flusso di lavoro e-commerce con GPT Image 2 usa la stessa API dei task di base per l'elaborazione in batch di fotografie di prodotto, con prompt e struttura di prezzo simili.

Inizia caricando una foto di un'unità vuota dalla pagina del modello image-to-image di GPT Image 2, verifica che la stanza con staging corrisponda all'unità reale, poi sposta la stessa chiamata con input_urls nello script per l'elaborazione in batch qui sopra, per gestire il resto dell'immobile.

Inizia a creare con artefatti IA persistenti

Ottieni la tua chiave API e chiama modelli di immagini, video e audio tramite un'unica API basata sui task.

Leggi la documentazione API