🏡 GharStage Real Estate Visuals Suite Tutorial
Learn how to automate property photo enhancement, decluttering, 3D layout extrusion, and simulated buyer notifications.
💡 Modern Indian & Vastu Aesthetics
Unlike global stagers that only output western designs, GharStage natively places Indian furniture decor (carved tables, pooja alcoves, specific curtains) and aligns rooms according to Vastu Shastra zone principles.
Overview
The GharStage suite provides 4 key capabilities for real estate listings:
- Virtual Staging — Fills empty room photos with styled furniture in 30 seconds.
- Photo Cleanup — Declutters rooms, replaces gray skies, fixes perspective lines, or turns day shots to dusk.
- Floorplan to 3D — Extrudes flat 2D layout drawings into interactive 3D GLB files.
- WhatsApp delivery — Webhook simulation delivering final listing links directly to WhatsApp.
1. Virtual Staging
Submit an empty room image and select a style. The model uses SDXL + ControlNet-Canny to generate high-fidelity, Vastu-compliant furniture overlays while keeping original windows, floors, and layouts intact.
Cost: 6.5 credits ($0.0065). 2x cheaper than Spacely AI ($0.013).
import requests
r = requests.post(
"https://api.pixelapi.dev/v1/real-estate/stage",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"room_image": open("noida_flat_empty.jpg", "rb")},
data={
"room_type": "living_room",
"design_style": "vastu_compliant",
"color_scheme": "warm gold and ivory"
}
)
print(r.json())
2. Property Photo Cleanup
GharStage supports 4 cleanup types for property photos. Cost is 5 credits per request (2x cheaper than Picsart's $0.0096):
declutter: Removes unwanted items (trash, old boxes) and inpaints high-fidelity room textures.sky_replace: Detects grey background skies in exterior photos and overlays a vibrant blue sky.day_to_dusk: Shifts daylight facades into high-end twilight shots with warm interior window glows.perspective_correct: Adjusts camera tilt to align vertical wall lines perpendicular to the ground.
r = requests.post(
"https://api.pixelapi.dev/v1/real-estate/cleanup",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"image": open("messy_apartment.jpg", "rb")},
data={"cleanup_type": "declutter"}
)
print(r.json())
3. Floorplan to 3D Extrusion
Convert 2D blueprint drawings into interactive, textured 3D rooms. The engine runs geometric extrusion on our high-performance CPUs and places Vastu-compliant 3D beds, dining sets, and couches. Output format is .glb (suitable for Three.js, Babylon, or HTML <model-viewer>).
Cost: 500 credits ($0.50). 2x cheaper than standard automated 3D tools ($1.00).
r = requests.post(
"https://api.pixelapi.dev/v1/real-estate/floorplan-render",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"image": open("builder_floorplan.png", "rb")},
data={"interiors": "true"}
)
print(r.json())
4. Simulated WhatsApp Delivery
Send a delivery request once a job is complete. The system compiles the final media link and delivers a simulated notification card to our developer test Telegram bot, `@lensorabot_bot` (used as our active bot for user testing):
r = requests.post(
"https://api.pixelapi.dev/v1/real-estate/whatsapp-deliver",
headers={"Authorization": "Bearer YOUR_API_KEY"},
data={
"generation_id": "completed-job-uuid-here",
"phone_number": "+919876543210"
}
)
print(r.json())
5. Full Python Pipeline Orchestration
Below is a complete, runnable script showing how to chain staging, status polling, and WhatsApp delivery in one unified flow:
import requests
import time
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1. Queue a Staging Job
print("Queuing virtual staging job...")
resp = requests.post(
"https://api.pixelapi.dev/v1/real-estate/stage",
headers=HEADERS,
files={"room_image": open("noida_flat_empty.jpg", "rb")},
data={"room_type": "bedroom", "design_style": "modern_indian"}
)
job = resp.json()
gen_id = job["generation_id"]
print(f"Queued! Job ID: {gen_id}")
# 2. Poll Status
while True:
status_resp = requests.get(f"https://api.pixelapi.dev/v1/image/{gen_id}", headers=HEADERS)
data = status_resp.json()
status = data.get("status")
print(f"Checking status: {status}...")
if status == "completed":
output_url = data["output_url"]
print(f"✅ Staged photo completed: {output_url}")
break
elif status == "failed":
print(f"❌ Job failed: {data.get('error_message')}")
exit(1)
time.sleep(5)
# 3. Trigger simulated WhatsApp delivery
print("Sending simulated notification to buyer via WhatsApp...")
delivery_resp = requests.post(
"https://api.pixelapi.dev/v1/real-estate/whatsapp-deliver",
headers=HEADERS,
data={"generation_id": gen_id, "phone_number": "+919998887766"}
)
print("Delivery Payload Sent:")
print(delivery_resp.json())
🚀 Start Staging Listings Now