AI Virtual Staging: Furnishing Empty Apartments with Generative Models
- Seed
- PoC
- MVP
- Production
- Chasing perfect
Take photos of empty apartments and fill the rooms with believable, style-matched furniture using image generation.
The empty apartments
What we start with
A real-estate staging client had photos of empty apartments and wanted them shown furnished, so a buyer can picture living there without a photographer, a furniture van, or a weekend lost to flat-pack assembly.
The source images are ordinary listing photos of empty rooms, including awkward layouts like narrow hallways. The job was to add furniture into each room while keeping the walls, floor and proportions of the real apartment intact.

Segment, then inpaint
How we stage it
We start by reading the room. A panoptic segmentation model (OneFormer, trained on ADE20K) labels the parts of a room, and we merge the furniture classes into a single mask that marks where furniture belongs. Applied to an empty apartment, that mask tells Stable Diffusion which area to fill, and it inpaints furniture there from a style prompt, for example Scandinavian or Japanese.
We tried four approaches. Whole-image inpainting fills the whole masked area in one pass and worked well through Fooocus, though plain SDXL did not. Iterative inpainting adds one piece at a time, first the bed, then the nightstand, then a wall-mounted TV, so each object is placed against the room as it already stands. The two remaining ideas, both training a custom ControlNet (one from a furniture segmentation input, one from segmentation or depth of the empty room), are identified but not yet tested.
- 01 Take listing photos of empty rooms
- 02 Segment the whole room (OneFormer, ADE20K panoptic)
- 03 Merge furniture classes into one inpainting mask
- 04 Inpaint furniture from a style prompt (Stable Diffusion / Fooocus)
- 05 For tight rooms, inpaint object by object (bed, then nightstand, then TV)
- 06 Cherry-pick the best renders
Stack

Furnished rooms
What comes out
Whole-image inpainting through Fooocus produces convincing furnished rooms, but it takes liberties with the apartment: it can invent extra space or holes in the walls and swap the original floor for a different material, and it struggles with narrow hallways. The iterative, object-by-object route fixes those problems and handles tight rooms, at the cost of human attention on each step, so it is human-in-the-loop rather than fully automatic.
This is a seed-stage exploration: it establishes a working pipeline and a clear next step (the untested ControlNet routes), and along the way produced reusable panoptic segmentation of the whole room. No accuracy or throughput figures were measured.

Who built this
Related