Skip to main content

Sketch to Render API

roomix/sketch-to-render

Turn architectural sketches, floor plans, and elevations into photorealistic 2K renders — interior or exterior, in 45+ styles.

Starts from $0.03 /run
2 model optionspublicpublished

Wrapper Input

Input

The architectural sketch to render — a hand drawing, line sketch, floor plan, section, or elevation. Photos of paper sketches work too.

For perspective sketches ('drawing'): whether the sketch shows a building exterior or an interior space. 'auto' infers it from the sketch. Ignored for floorplan/section/elevation.

The architectural / design style for the render. 'no-style' keeps whatever the sketch implies.

Optional extra instructions — materials, colors, furnishings, or anything specific you want in the render.

Season for vegetation and atmosphere (mostly affects exteriors).

How closely to follow the sketch. 'strict' reproduces the geometry exactly (best for CAD/precise drawings), 'balanced' keeps the layout but fills in unspecified detail (best for rough sketches), 'creative' treats the sketch as a concept to elaborate on.

Output size ({aspect}_{resolution}). Pick the aspect ratio closest to your sketch so framing is preserved; 2k is recommended, 4k for print-quality boards (4k costs more on the default base model's megapixel pricing).

Surroundings/context for exterior renders.

What kind of drawing the sketch is: 'drawing' = perspective sketch, 'floorplan' = 2D plan (rendered as a furnished 3D floor plan seen from above), 'section' = cross-section, 'elevation' = straight-on facade drawing.

Lighting scenario for the render.

Number of render variants in one run. Only honored on the Seedream base model — the default Nano Banana 2 base model always returns 1 image per run. Each variant is billed as one output.

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

Wrapper Output

Output

Loading
Generated in 26.275 seconds
Logs (1 lines)

Wrapper Examples

Examples

Example output 1Example output 2Example output 3

Pricing

Base ModelPricing ModeEffective Cost
nano-banana-2/editdefaultmegapixel tieredTiered pricing
seedream-v4per output0.03

Sketch to Render API

Sketch to Render 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/sketch-to-render

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/sketch-to-render \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://media.modelrunner.ai/OEnVtlinj4qN3vF6XRD6x.jpeg",
    "scene": "auto",
    "style": "scandinavian-simplicity",
    "season": "auto",
    "fidelity": "balanced",
    "image_size": "4_3_2k",
    "environment": "auto",
    "sketch_view": "drawing",
    "time_of_day": "auto",
    "num_variants": "1",
    "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/sketch-to-render/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/roomix/sketch-to-render/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

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

const result = await modelrunner.subscribe("roomix/sketch-to-render", {
  input: {
    "image": "https://media.modelrunner.ai/OEnVtlinj4qN3vF6XRD6x.jpeg",
    "scene": "auto",
    "style": "scandinavian-simplicity",
    "season": "auto",
    "fidelity": "balanced",
    "image_size": "4_3_2k",
    "environment": "auto",
    "sketch_view": "drawing",
    "time_of_day": "auto",
    "num_variants": "1"
  },
});
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/sketch-to-render",
    headers=headers,
    json={
      "image": "https://media.modelrunner.ai/OEnVtlinj4qN3vF6XRD6x.jpeg",
      "scene": "auto",
      "style": "scandinavian-simplicity",
      "season": "auto",
      "fidelity": "balanced",
      "image_size": "4_3_2k",
      "environment": "auto",
      "sketch_view": "drawing",
      "time_of_day": "auto",
      "num_variants": "1"
    },
).json()

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

Input parameters

NameTypeRequiredDescription
imagestring (uri)yesThe architectural sketch to render — a hand drawing, line sketch, floor plan, section, or elevation. Photos of paper sketches work too.
sceneenumnoFor perspective sketches ('drawing'): whether the sketch shows a building exterior or an interior space. 'auto' infers it from the sketch. Ignored for floorplan/section/elevation. Default: "auto".
styleenumnoThe architectural / design style for the render. 'no-style' keeps whatever the sketch implies. Default: "no-style".
promptstringnoOptional extra instructions — materials, colors, furnishings, or anything specific you want in the render.
seasonenumnoSeason for vegetation and atmosphere (mostly affects exteriors). Default: "auto".
fidelityenumnoHow closely to follow the sketch. 'strict' reproduces the geometry exactly (best for CAD/precise drawings), 'balanced' keeps the layout but fills in unspecified detail (best for rough sketches), 'creative' treats the sketch as a concept to elaborate on. Default: "strict".
image_sizeenumnoOutput size ({aspect}_{resolution}). Pick the aspect ratio closest to your sketch so framing is preserved; 2k is recommended, 4k for print-quality boards (4k costs more on the default base model's megapixel pricing). Default: "4_3_2k".
environmentenumnoSurroundings/context for exterior renders. Default: "auto".
sketch_viewenumnoWhat kind of drawing the sketch is: 'drawing' = perspective sketch, 'floorplan' = 2D plan (rendered as a furnished 3D floor plan seen from above), 'section' = cross-section, 'elevation' = straight-on facade drawing. Default: "drawing".
time_of_dayenumnoLighting scenario for the render. Default: "auto".
num_variantsenumnoNumber of render variants in one run. Only honored on the Seedream base model — the default Nano Banana 2 base model always returns 1 image per run. Each variant is billed as one output. Default: "1".

Machine-readable: OpenAPI schema · llms.txt

Use Sketch to Render from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Sketch to Render 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/sketch-to-render.

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/sketch-to-render on ModelRunner to generate image”. MCP setup guide.

Wrapper Details

Model Details

**Turn any architectural sketch — hand drawing, floor plan, section, or elevation — into a photorealistic, presentation-grade render.**

Upload a sketch (a photo of a paper drawing works), pick the drawing type and a style, and get a 2K render that preserves your geometry, viewpoint, and framing. Works for building exteriors and interior spaces. Powered by Google Nano Banana 2 by default (Seedream v4 available as an alternate base model).

## How to use

1. Upload your sketch as `image` and set `sketch_view` to what it is: `drawing` (perspective sketch), `floorplan` (2D plan — rendered as a furnished 3D floor plan seen from above), `section`, or `elevation`. 2. For perspective sketches, `scene` controls interior vs exterior — leave it on `auto` to infer from the sketch. 3. Choose a `style` (45+ options) or leave `no-style` to let the sketch speak for itself. 4. Set `fidelity`: - `strict` — reproduce the sketched geometry exactly; best for CAD exports and precise drawings. - `balanced` — keep the layout, let the model fill in unspecified detail; best for rough hand sketches. - `creative` — treat the sketch as a concept and elaborate; best for napkin-stage ideas. 5. Optionally set `time_of_day`, `season`, and `environment` (surroundings), and add specifics in `prompt` (materials, colors, furnishings). 6. Pick the `image_size` whose aspect ratio is closest to your sketch (default `4_3_2k`; `_4k` sizes give print-quality boards at a higher per-run cost).

## Floor plans

- `sketch_view: floorplan` returns a furnished, rendered floor plan seen from above: walls, doors, and windows match your plan wall-by-wall, and every room is furnished according to its function. - Room labels, furniture symbols, and annotations in your plan are read and used to furnish rooms correctly (bed in the bedroom, appliances in the kitchen), but text is never copied into the image.

## Exploring options

- To compare several takes, re-run with the same sketch and change only `style`, `time_of_day`, or `fidelity` — geometry stays anchored to the sketch, so results are comparable side by side. - On the Seedream base model, `num_variants` `"2"`–`"4"` returns several variations in one run (each billed as one output). The default Nano Banana 2 base model returns one image per run.

## Good inputs

- Clean line drawings, CAD exports, SketchUp screenshots, marker/pencil sketches, whiteboard photos. - One structure or space per sketch works best.