Skip to main content

Room Redesign API

roomix/room-redesign

Redesign interior spaces from an uploaded image with controllable type, style, palette, lighting, material, and creativity.

Starts from $0.03 /run
4 model optionspublicpublished

Wrapper Input

Input

External URL of the uploaded interior space image.

The type of interior space to create.

The desired visual design style for the redesigned space.

Preferred lighting or time-of-day mood.

Seasonal atmosphere to influence the overall interior mood and the view treatment when relevant.

Preferred color palette for the redesign.

Primary architectural or decorative material to emphasize.

Additional user instructions for the redesign.

When true, preserve the existing wall colors, finishes, and textures exactly (no repaint). When false, walls may be repainted or refinished to suit the chosen style.

When true, preserve the existing flooring exactly — material, pattern, color, and finish (no restyle). When false, the floor may be restyled to suit the chosen style.

When true, also preserve the frame style, material, color, and finish of every window and door. Their position, size, and count are always preserved regardless of this flag; this flag only governs their visual style.

When true, preserve the existing light fixtures (ceiling lights, pendants, sconces, lamps) in their original positions and styles. When false, fixtures may be replaced or restyled. Does not affect the daylight mood setting.

When true, keep the room's existing furniture pieces (no swapping or replacement). When false, furniture is restyled or replaced to reflect the chosen style.

Only meaningful when keep_furniture is true. When true, kept furniture may be rearranged into a new layout; when false, furniture stays in its original positions.

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

Wrapper Output

Output

Loading
Generated in 15.909 seconds
Logs (1 lines)

Wrapper Examples

Examples

Example output 1Example output 2Example output 3Example output 4Example output 5Example output 6Example output 7Example output 8Example output 9Example output 10Example output 11

Pricing

Base ModelPricing ModeEffective Cost
nano-banana-2/editdefaultmegapixel tieredTiered pricing
nano-bananaper output0.039
seedream-v4per output0.03
seedream-v4.5/editper output0.04

Room Redesign API

Room 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/room-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/room-redesign \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "living-room",
    "color": "auto",
    "style": "scandinavian-sanctuary",
    "prompt": "soft daylight, warm oak floors",
    "season": "auto",
    "daylight": "auto",
    "file_url": "https://media.modelrunner.ai/cdTCXkMXaPf5tHqmELXyj.webp",
    "base_model": "google/nano-banana-2/edit",
    "creativity": "balanced",
    "creativity_level": 0.7,
    "architectural_material": "auto",
    "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/room-redesign/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/roomix/room-redesign/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

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

const result = await modelrunner.subscribe("roomix/room-redesign", {
  input: {
    "type": "living-room",
    "color": "auto",
    "style": "scandinavian-sanctuary",
    "prompt": "soft daylight, warm oak floors",
    "season": "auto",
    "daylight": "auto",
    "file_url": "https://media.modelrunner.ai/cdTCXkMXaPf5tHqmELXyj.webp",
    "base_model": "google/nano-banana-2/edit",
    "creativity": "balanced",
    "creativity_level": 0.7,
    "architectural_material": "auto"
  },
});
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/room-redesign",
    headers=headers,
    json={
      "type": "living-room",
      "color": "auto",
      "style": "scandinavian-sanctuary",
      "prompt": "soft daylight, warm oak floors",
      "season": "auto",
      "daylight": "auto",
      "file_url": "https://media.modelrunner.ai/cdTCXkMXaPf5tHqmELXyj.webp",
      "base_model": "google/nano-banana-2/edit",
      "creativity": "balanced",
      "creativity_level": 0.7,
      "architectural_material": "auto"
    },
).json()

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

Input parameters

NameTypeRequiredDescription
file_urlstring (uri)yesExternal URL of the uploaded interior space image.
typeenumnoThe type of interior space to create. Default: "no-type".
styleenumnoThe desired visual design style for the redesigned space. Default: "no-style".
daylightenumnoPreferred lighting or time-of-day mood. Default: "auto".
seasonenumnoSeasonal atmosphere to influence the overall interior mood and the view treatment when relevant. Default: "auto".
colorenumnoPreferred color palette for the redesign. Default: "auto".
architectural_materialenumnoPrimary architectural or decorative material to emphasize. Default: "auto".
promptstringnoAdditional user instructions for the redesign.
keep_wall_colorbooleannoWhen true, preserve the existing wall colors, finishes, and textures exactly (no repaint). When false, walls may be repainted or refinished to suit the chosen style. Default: false.
keep_floorbooleannoWhen true, preserve the existing flooring exactly — material, pattern, color, and finish (no restyle). When false, the floor may be restyled to suit the chosen style. Default: false.
keep_windows_doors_stylebooleannoWhen true, also preserve the frame style, material, color, and finish of every window and door. Their position, size, and count are always preserved regardless of this flag; this flag only governs their visual style. Default: false.
keep_lightingbooleannoWhen true, preserve the existing light fixtures (ceiling lights, pendants, sconces, lamps) in their original positions and styles. When false, fixtures may be replaced or restyled. Does not affect the daylight mood setting. Default: false.
keep_furniturebooleannoWhen true, keep the room's existing furniture pieces (no swapping or replacement). When false, furniture is restyled or replaced to reflect the chosen style. Default: false.
allow_furniture_repositionbooleannoOnly meaningful when keep_furniture is true. When true, kept furniture may be rearranged into a new layout; when false, furniture stays in its original positions. Default: false.

Machine-readable: OpenAPI schema · llms.txt

Use Room Redesign from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Room 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/room-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/room-redesign on ModelRunner to generate image”. MCP setup guide.

Wrapper Details

Model Details

**AI interior redesign** — transform an uploaded interior photo into a polished, photorealistic redesign, with element-level locks that control exactly how much of the original room is preserved.

## What it does Redesigns the room in the uploaded image according to a chosen `type`, `style`, `color` palette, `daylight` mood, `season`, and `architectural_material`, while always preserving the room's architecture: camera angle, walls, ceiling, floor plan, and — critically — the **position, size, and count of every window and door**. The AI never adds, removes, moves, or reshapes a window or door, and never invents new openings, glass walls, or skylights. The outside view through windows is kept identical to the original.

## Element locks (all default off = full renovation) Each boolean lock preserves one element exactly as in the original; anything not locked is redesigned to realize the chosen style. With every lock off, the wrapper performs a full renovation (repaint, re-floor, re-furnish, re-light).

- `keep_wall_color` — keep existing wall colors, finishes, and textures (no repaint). - `keep_floor` — keep existing flooring (material, pattern, color, finish). - `keep_windows_doors_style` — additionally keep the *style and finish* of window/door frames and door leaves. (Their geometry — position, size, count — is always kept regardless of this flag.) - `keep_lighting` — keep existing light fixtures. Does not change the `daylight` mood. - `keep_furniture` — keep the room's existing furniture pieces (no swapping or replacement). - `allow_furniture_reposition` — only meaningful with `keep_furniture`; keeps the same pieces but allows rearranging their layout. When false, kept furniture stays in place.

## How to use Upload the room via `file_url`, pick `type` and `style`, then set any locks the user wants preserved. Leave all locks off for a bold, full redesign. The optional freeform `prompt` is applied only within the preservation rules — any instruction that would move, add, remove, or reshape windows, doors, or walls is ignored.