HiAPI
Blog

Tutorial

API de decoración virtual: convierte fotos de habitaciones vacías en anuncios inmobiliarios amueblados con IA

Un flujo de trabajo reproducible de imagen a imagen con comparativas reales antes y después, indicaciones precisas, un script de procesamiento por lotes y precios verificados

Sep 23, 2026
API de decoración virtual: convierte fotos de habitaciones vacías en anuncios inmobiliarios amueblados con IA

Las fotos de una vivienda vacía transmiten menos a los compradores que las de una vivienda amueblada. La decoración física resuelve esto, pero cada unidad requiere un gasto real y semanas de programación. Una API de imagen a imagen puede lograr lo mismo con una sola foto de una habitación vacía: conserva la habitación real —sus paredes, suelos, ventanas y ángulo de cámara— y añade muebles alrededor.

Esta guía recorre el flujo de trabajo completo con el ID de modelo canónico gpt-image-2/image-to-image, llamado mediante POST https://api.hiapi.ai/v1/tasks. Incluye dos pares reales de imágenes antes y después generados para esta guía (un salón y un dormitorio), sus indicaciones exactas, un script de procesamiento por lotes reutilizable y precios verificados.

Cómo la decoración de imagen a imagen mantiene real la habitación

La generación de texto a imagen crea habitaciones de la nada a partir de una descripción. Esto no sirve para la decoración, porque la salida debe coincidir con la unidad real que visitará el comprador. La generación de imagen a imagen toma la foto de la habitación vacía como referencia y la edita, por lo que se conserva la geometría real de la habitación.

La solicitud tiene dos partes: un prompt que solo describe lo que debe cambiarse (los muebles y la decoración que se añadirán) y un array input_urls que contiene la foto de referencia, es decir, la foto de la habitación vacía alojada en una URL pública. El modelo lee la imagen de referencia, mantiene intactos el ángulo de cámara, las paredes, el suelo y las ventanas, y renderiza los muebles en la escena como si estuvieran colocados en esa habitación exacta.

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"
  }
}

Esta única decisión de diseño —entrada de referencia, salida editada— es precisamente lo que distingue la decoración virtual de la generación genérica de habitaciones. Los dos ejemplos siguientes lo demuestran sobre una foto real de un salón vacío sin amueblar y sobre una foto de un dormitorio vacío.

Antes y después: salón

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 primera imagen es la foto de referencia, generada con gpt-image-2/text-to-image para sustituir a la foto de un anuncio de una unidad vacía real (relación de aspecto 16:9, resolución 1K, coste registrado de 0,03 $, generada el 2026-09-23). En un flujo de trabajo de producción, esta sería en realidad la foto subida por el propio agente: el paso de decoración siguiente funciona igual sin importar de dónde provenga la foto de la habitación vacía.

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.

Evidencia: modelo gpt-image-2/image-to-image, input_urls configurado con la foto del salón vacío anterior, aspect_ratio: 16:9, resolution: 1K, coste registrado de 0,03 $, generado el 2026-09-23. La posición de la ventana, la puerta de la pared derecha y los tonos del suelo y las paredes se conservan de la foto de referencia; solo los muebles son nuevos.

Antes y después: dormitorio

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.

Evidencia: modelo gpt-image-2/image-to-image, input_urls configurado con la foto del dormitorio vacío anterior, aspect_ratio: 16:9, resolution: 1K, coste registrado de 0,03 $, generado el 2026-09-23. Las puertas correderas del armario y la posición de la ventana se mantienen iguales; la cama, las mesitas de noche y el cuadro son las únicas incorporaciones.

Ambas salidas de decoración provienen de una estructura de indicación de tres partes en cada ejecución: la instrucción de conservar la habitación de referencia, la lista concreta de muebles y la etiqueta de estilo fotográfico. Omitir la instrucción de conservación es la forma más frecuente de error en este tipo de tarea: sin ella, el modelo trata la imagen de referencia con más libertad y puede alterar el ángulo de cámara o las proporciones de la habitación.

Ejecutar tareas de decoración por lotes con la API de tareas

Una sola vivienda suele necesitar la decoración de más de una habitación, y una agencia inmobiliaria tiene que gestionar muchas viviendas. El siguiente script recibe un diccionario de URLs de fotos de habitaciones vacías, envía una tarea de decoración por cada URL y consulta su estado hasta que todas las salidas están listas.

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)

Para el procesamiento por lotes real hay dos detalles importantes. En primer lugar, input_urls recibe una foto de referencia por tarea: se decora una habitación por llamada, en lugar de intentar combinar varias habitaciones en una sola solicitud. En segundo lugar, cada output[0].url de la respuesta es un enlace temporal: descarga los bytes y guárdalos en tu propio bucket inmediatamente después de que la tarea se complete correctamente, tal como esta guía subió de inmediato sus propias salidas a un almacenamiento permanente.

Precios para un lote de tareas de decoración

gpt-image-2/image-to-image se factura según la resolución de salida, verificado el 2026-09-23 con el endpoint de precios en tiempo real de HiAPI:

Resolución Precio por imagen decorada
1K $0.03
2K $0.04
4K $0.06

La fórmula de planificación es:

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

Usando el precio de 1K de la tabla:

Lote de viviendas Habitaciones por unidad Imágenes decoradas Coste del lote
1 unidad 3 3 $0.09
10 unidades 3 30 $0.90
50 unidades 4 200 $6.00
200 unidades 4 800 $24.00

Los precios cambian, así que antes de comprometerte con un lote grande consulta la página de precios en tiempo real y añade un margen para regeneraciones según tu propia tasa de aprobación; los dos ejemplos de esta guía no representan una tasa de aprobación genérica en el primer intento.

Lo que la decoración virtual no puede hacer

La decoración de imagen a imagen edita píxeles, no la unidad real. Antes de incorporarla a tu flujo de trabajo de anuncios, ten en cuenta tres limitaciones:

  • No puede arreglar la habitación. Los daños, el moho o los problemas estructurales de la foto de referencia no deben eliminarse con edición, y una foto decorada nunca debe distorsionar el estado real de la unidad.
  • No garantiza una geometría perfecta a nivel de píxel. La indicación pide al modelo que conserve la habitación y los dos ejemplos anteriores mantuvieron la distribución, pero una persona debe seguir comparando cada foto decorada con su foto de origen antes de publicarla en un anuncio.
  • Las normas de divulgación siguen aplicándose. Muchos sistemas MLS y normativas inmobiliarias locales exigen que el anuncio indique qué fotos están decoradas virtualmente; consulta las normas aplicables a tu mercado antes de publicar.

Preguntas frecuentes

¿Qué modelo debería usar para la decoración virtual con IA?

Usa gpt-image-2/image-to-image con una llamada a POST /v1/tasks, pasa la URL pública de la foto de la habitación vacía en input_urls y especifica en la indicación los muebles que quieres añadir. Consulta la documentación del modelo para ver el esquema de entrada completo.

¿La foto decorada coincide realmente con la habitación real?

Debería coincidir, pero hay que verificarlo. La estructura de indicación de esta guía —conservar primero la imagen de referencia y luego enumerar solo los muebles que se añaden— mantuvo la coherencia de ventanas, puertas, suelo y tonos de pared en los dos ejemplos. Aun así, revisa cada salida comparándola con la foto de origen antes de publicar, porque la calidad de la generación puede variar según la habitación y la iluminación.

¿Cuánto cuesta decorar una vivienda completa?

Con el precio de 1K de 0,03 $ por imagen, decorar tres habitaciones de una unidad cuesta 0,09 $. Multiplica el número de habitaciones por unidad y el número de unidades del lote para planificar tareas más grandes, y confirma primero los precios actuales, ya que la resolución y los futuros cambios de precio afectan al coste total.

¿Tengo que indicar que la foto está decorada virtualmente?

Consulta las normas de tu mercado. Muchos sistemas MLS y normativas locales exigen añadir una etiqueta de divulgación en las fotos decoradas virtualmente, independientemente de cualquier requisito general de exactitud de las imágenes de un anuncio.

¿Este método de imagen a imagen sirve para algo más que la decoración?

Sí: conservar la imagen de referencia mientras se cambian los elementos descritos es un patrón general. El flujo de trabajo de comercio electrónico de GPT Image 2 utiliza la misma API de tareas subyacente para el procesamiento por lotes de fotografía de producto, con indicaciones y estructura de precios similares.

Empieza subiendo una foto de una unidad vacía desde la página del modelo GPT Image 2 de imagen a imagen, confirma que la habitación decorada coincide con la unidad real y luego traslada las mismas llamadas con input_urls al script de procesamiento por lotes anterior para gestionar el resto del anuncio.

Artículos relacionados

Ver todos los artículos →

Empieza a crear con artefactos de IA persistentes

Consigue tu API key y llama a modelos de imagen, vídeo y audio a través de una única API basada en tasks.

Leer la documentación de la API