RoomagenDevelopersGet API key

Guide

Furniture

Add one piece of furniture, replace every piece, or refinish one.

Three tools change the furniture in a photo and leave the room itself alone: one adds a piece, one replaces them all, one refinishes a piece in place. Each costs one image per render. None of them reads customPrompt — where you want your own words, add-furniture-object and furniture-replacement take them as description, up to 500 characters.

To furnish an empty room from scratch, use virtual staging instead.

Add furniture object

add-furniture-object1 image per renderno custom prompt — customPrompt is ignored

Adds exactly one item where it fits naturally, at the right scale, with a grounding shadow. Everything already in the room keeps its place. Name the item with objectType and style, or describe it in description — when a description is present it replaces the other two, and exactly what it describes is added.

OptionTypeValuesDefaultRequiredDescription
roomTypestring
living-roombedroomkitchendining-roombathroomhome-officekids-roomstudio
—optional

Names the room in the instruction; used together with description.

objectTypestring
sofadining-tablebeddeskbookshelfaccent-chaircoffee-tablenightstand
—optional

The piece to add when no description is sent. Neither sent, the model picks one that suits the room.

stylestring
moderntraditionalfarmhousescandinavianmid-century-moderncoastalindustrialluxuryminimalistbohemian
—optional

Design style of the objectType piece.

descriptionstringmax 500 characters—optional

What to add, in your own words ("a green velvet armchair by the window"). When present it replaces objectType and style, and exactly that is added.

placementstring
emptyreplaceon-surface
emptyoptional

Applies to masks painted in the web app only; no effect on the API.

json
{
  "tool": "add-furniture-object",
  "image_url": "https://example.com/living-room.jpg",
  "options": {
    "objectType": "accent-chair",
    "style": "mid-century-modern"
  }
}

In your own words:

json
{
  "tool": "add-furniture-object",
  "image_url": "https://example.com/living-room.jpg",
  "options": {
    "roomType": "living-room",
    "description": "A tall fiddle-leaf fig in a white ceramic pot beside the window"
  }
}

With neither objectType nor description, the model picks a piece that suits the room. You do not choose the spot: the item goes into a natural, empty area. The web app places it with a painted mask, which is what placement is for; the API cannot send a mask, so placement has no effect here.

Furniture replacement

furniture-replacement1 image per renderno custom prompt — customPrompt is ignored

Replaces every piece of furniture with a coordinated set in one style — each piece swapped for one of the same kind and a similar footprint, soft furnishings included — while the room, its layout and the camera stay as they are.

OptionTypeValuesDefaultRequiredDescription
roomTypestring
living-roombedroomkitchendining-roombathroomhome-officekids-roomstudio
living-roomoptional

The room the photo shows.

stylestring
modernscandinavianindustrialtraditionalminimalistbohemianmid-century-moderncoastalfarmhouseluxury
modernoptional

Style every replacement piece follows.

descriptionstringmax 500 characters—optional

Replace only the pieces you name, in place ("swap the sofa for a grey linen sectional"); everything else stays exactly as it is, and style is not used. Without it, every piece is replaced in style.

json
{
  "tool": "furniture-replacement",
  "image_url": "https://example.com/dated-living-room.jpg",
  "options": {
    "roomType": "living-room",
    "style": "scandinavian"
  }
}

With a description, only the pieces it names are replaced, each in its own place, and everything else — the other furniture included — stays exactly as it is; style is not used:

json
{
  "tool": "furniture-replacement",
  "image_url": "https://example.com/dated-living-room.jpg",
  "options": {
    "description": "Swap the brown leather sofa for a light grey linen three-seater"
  }
}

Furniture facelift

furniture-facelift1 image per renderno custom prompt — customPrompt is ignored

Changes how the most prominent piece of furniture looks — a new colour, a new fabric or a new finish — and keeps its shape, size and position. Use it on a photo where one piece is clearly the subject: the tool picks the piece itself.

OptionTypeValuesDefaultRequiredDescription
changeTypestring
recolorrefabricrefinish
recoloroptional

Repaint or dye the piece, re-upholster it, or give it a new surface finish.

targetColorstring—#FFFFFFoptional

The new colour as a hex code, #RRGGBB. Checked in the guided tier.

json
{
  "tool": "furniture-facelift",
  "image_url": "https://example.com/sofa.jpg",
  "options": {
    "changeType": "recolor",
    "targetColor": "#2F4F4F"
  }
}

targetColor is a hex code, #RRGGBB. The default guided tier rejects anything else with invalid_request.

Next steps