Skip to main content

Exterior Redesign API

roomix/exterior-redesign

Redesign a building facade from one photo — and show it finished, with the architecture and camera locked.

Starts from $0.039 /run
2 model optionspublicpublished

Wrapper Input

Input

External URL of the source photo of a building or house exterior to redesign.

How strongly to preserve the original versus reinterpret it.

Architectural exterior style. Uses the same enum values as the room-redesign wrapper but reinterpreted for building facades.

Primary facade material to emphasize in cladding and details.

Preferred color palette for the exterior color scheme.

Preferred lighting / time-of-day mood.

Seasonal atmosphere.

Preferred sky conditions. With auto, the original sky and weather are kept exactly.

Optional additional user instructions. Also the only way to request changes to the surroundings.

Min: 0.5 - Max: 1

Fine-grained creativity value (only meaningful when creativity is precise).

You need to be logged in to run this model and view results.
Log in

Wrapper Output

Output

Fill in the input form and click submit to see the output
Logs (1 lines)

Pricing

Base ModelPricing ModeEffective Cost
nano-banana-2/editdefaultmegapixel tieredTiered pricing
nano-bananaper output$0.039

Exterior Redesign API

Exterior Redesign is a image-to-image AI wrapper by roomix. On ModelRunner it runs through a REST API or via MCP from any AI assistant with pay-per-use pricing.

POST https://queue.modelrunner.run/roomix/exterior-redesign

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/roomix/exterior-redesign \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file_url": "https://example.com/input.jpg",
    "creativity": "balanced",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/roomix/exterior-redesign/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/roomix/exterior-redesign/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("roomix/exterior-redesign", {
  input: {
    "file_url": "https://example.com/input.jpg",
    "creativity": "balanced"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/roomix/exterior-redesign",
    headers=headers,
    json={
      "file_url": "https://example.com/input.jpg",
      "creativity": "balanced"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of Exterior Redesign
NameTypeRequiredDescription
file_urlstring (uri)yesExternal URL of the source photo of a building or house exterior to redesign.
creativityenumyesHow strongly to preserve the original versus reinterpret it. One of: precise, balanced, creative. Default: "balanced".
styleenumnoArchitectural exterior style. Uses the same enum values as the room-redesign wrapper but reinterpreted for building facades. One of: no-style, minimalist-haven, modern-fusion, contemporary-elegance, industrial-loft, bohemian-oasis, coastal-breeze, desert-retreat, mountain-escape, victorian-elegance, art-deco-glamour, mid-century-modern, french-country-charm, colonial-classic, scandinavian-sanctuary, japanese-zen, moroccan-mystique, mediterranean-retreat, indian-exuberance, travelers-trove, cyber-eclectic-fusion, neon-noir, techno-wonderland, retro-futurism, digital-zen, rustic, vintage, shabby-chic. Default: "no-style".
architectural_materialenumnoPrimary facade material to emphasize in cladding and details. One of: concrete, steel, glass, wood, stone, brick, bamboo, clay, gypsum, plastic, auto. Default: "auto".
colorenumnoPreferred color palette for the exterior color scheme. One of: warm-earth-tones, historical-romance, laid-back-blues, palm-springs-modern, sweet-pastels, rich-jewel-tones, desert-chic, forest-inspired, high-contrast-neutrals, airy-neutrals, coastal-neutrals, ecletic-boho, auto. Default: "auto".
daylightenumnoPreferred lighting / time-of-day mood. One of: midday, night, sunset, sunrise, auto. Default: "auto".
seasonenumnoSeasonal atmosphere. One of: spring, summer, autumn, winter, auto. Default: "auto".
skyenumnoPreferred sky conditions. With auto, the original sky and weather are kept exactly. One of: clear, cloudy, rainy, snowy, misty, auto. Default: "auto".
promptstringnoOptional additional user instructions. Also the only way to request changes to the surroundings.
creativity_levelnumbernoFine-grained creativity value (only meaningful when creativity is precise). Default: 0.7.

Machine-readable: OpenAPI schema · llms.txt

Use Exterior Redesign from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Exterior Redesign becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this wrapper with the run_model tool using the endpoint roomix/exterior-redesign.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run roomix/exterior-redesign on ModelRunner to generate image”. MCP setup guide.

Wrapper Details

Model Details

**Restyle a building's exterior from a single photo — the architecture stays, the look changes, and an unfinished building comes back finished.**

Give it a photo of a house or building and it redesigns the facade in your chosen style: cladding and materials, colour scheme, trim, roof appearance, door and window styling, and exterior lighting. The photograph is treated as a locked plate — the camera, the frame, and the position of everything in it are preserved, and only the building's surfaces are repainted.

## Unfinished and neglected buildings

The wrapper detects a building that is under construction, mid-renovation, derelict or simply neglected, and renders **that same structure completed and in good repair**:

- bare blockwork, unrendered concrete and unpainted plaster → the finished cladding or render of the chosen style, on **every** visible facade - an opening with no window or door → a properly glazed window or a real door in that same opening, at the same size and position (an existing grille or shutter is kept, restyled) - a roof frame with no covering → a finished roof on that same frame, following its existing pitch, ridge and eave lines - a balcony, terrace or stair with no railing → a railing on that same edge - rebar stubs, exposed conduit, scaffolding, formwork, props, temporary fencing, and every pile of sand, gravel, rubble, cement or stacked timber and steel → removed - churned mud and construction spoil → clean, plain, finished ground - peeling paint, staining, cracks, rust, graffiti, broken glass → repaired

Completion never invents architecture: no new storeys, wings, extensions, balconies, dormers, porches, steps or openings. Everyday site objects — firewood, tree stumps, tools, vehicles, satellite dishes, air-conditioning units, water tanks — are **not** treated as construction debris and stay exactly where they are.

## Structural fidelity

Hard rules keep the storey count, footprint, massing, wall planes, corners, floor lines, overall height, roof type and slope, and the number, position, size and alignment of every opening. The camera cannot pan, orbit, zoom, re-crop, straighten or mirror, and the building keeps its exact size, distance and position in the frame — a small, distant or half-hidden building stays that way. Vegetation is never cleared to show the building better, and no landscaping or outdoor decor is added.

## Inputs

- `file_url` — photo of the building or house exterior (required). - `creativity` — `precise` | `balanced` | `creative` (required). With `precise`, tune `creativity_level` (0.5 = closest to the original, 1.0 = most reinterpretation). - `style` — same enum values as `roomix/room-redesign`, reinterpreted architecturally (e.g. `scandinavian-sanctuary` becomes pale timber cladding with black window frames). - `architectural_material` — primary facade material to emphasize in cladding and details (`wood`, `brick`, `stone`, …). `auto` lets the model choose. - `color` — palette for the exterior colour scheme; `auto` keeps it model-chosen. - `daylight`, `season`, `sky` — atmosphere controls; `auto` preserves what the source photo shows (with `sky: auto` the original sky and weather are kept exactly). - `prompt` — optional free-text guidance. This is also the **only** way to request changes to the surroundings — by default the environment is left untouched apart from the construction clean-up above.

## How to use

1. Upload the exterior photo and pass its URL as `file_url`. 2. Pick a `style` and optionally an `architectural_material` and `color` to steer the facade. 3. Start with `creativity: balanced`; use `precise` for a light refresh or `creative` for a bold rework. 4. To present several options for the same house, run each variant from the **same** source `file_url` — do not chain one output into the next run, or the building will drift away from the real structure.

## Feed it a plain photograph

Best results come from an ordinary photo of the building. If you pass a **screen capture** (phone status bar, chat or social-media UI, letterbox bars), the wrapper confines its edits to the photograph embedded inside the capture and leaves the surrounding interface untouched — it will not crop the chrome away, because the base model edits at the upload's aspect ratio and forcing a crop makes it fabricate content. Crop the screenshot down to the photo before uploading.

Subjects that are small, distant and heavily occluded — a building behind an orchard, filling a fraction of the frame, with another finished house also in shot — remain the hardest case: the model may still pull the subject forward. Frame the building as the clear subject of the shot.