Methodology · Checked 2026-11-02
Methodology: how a room is staged
Last verified 2026-11-02 · Sources: the sources table on this page, checked 2026-11-02 · Report an error
What happens between the empty-room upload and the delivered frame, which sources this site checks, and the three limits that apply to every output.
Sources
Scroll sideways to see every column.
| Source | URL | Used for | Last checked |
|---|---|---|---|
| Virtual Stage Now staging pipeline | https://virtualstagenow.com/tool | The upload → room/style → generation → delivery path described below | 2026-11-02 |
| California BPC § 10140.8 (AB 723, 2025–2026) | california.public.law/codes/ca_bus_and_prof_code_section_10140.8 | The alteration statement and original-image link required in California | 2026-11-02 |
| Stellar MLS, Article 04.04: Virtually Staged Photos | rules.stellarmls.com/article/article-0404-virtually-staged-photos | The “Virtually staged” label and remarks wording used on /mls-disclosure | 2026-11-02 |
| CVR MLS, rule changes effective 2026-10-01 | support.cvrmls.com/kb/article/1154-cvr-mls-rule-changes-effective-october-1-2026 | The watermark and unaltered-photo requirement | 2026-11-02 |
| NAR, When Does Photoshopping Go Too Far? | nar.realtor/news/real-estate-news/technology/when-does-photoshopping-go-too-far | Article 12 truth standard for listing photos | 2026-11-02 |
The generation provider is not named in this repository. The Worker forwards to whatever endpoint the deployment configures, so the first row names this site's own pipeline rather than a vendor. No other model or vendor name is claimed on this page.
How it works
- Upload one photograph on the tool page. The file input accepts JPG, PNG or WebP, and the browser checks the type and the 8 MB ceiling before sending.
- Read the upload on the Worker.
POST /api/stageparses the JSON body, requires a base64data:image/(png|jpeg|webp)URL, and rejects a decoded image under 2 KB or over 8 MB (image_too_small/image_too_large). - Check the room and style against fixed lists.
ROOMSis living room, bedroom, dining room, kitchen, home office and outdoor;STYLESis warm modern, Scandinavian, mid-century, industrial, coastal and minimal. Anything else returnsunknown_roomorunknown_style. - Build the prompt in
promptFor(style, room). It asks for the room in the chosen style and names the invariants explicitly: existing walls, floor, windows, doors, ceiling and camera angle exactly as photographed; furniture, rugs, lighting and soft furnishings only. - Send the photo and prompt to the configured endpoint. The Worker forwards
{image, prompt}toenv.STAGE_URLwithAuthorization: Bearer env.STAGE_KEY; if either secret is absent it returns503 staging_not_configuredrather than a placeholder image. - Deliver the frame. The endpoint returns a job id and status (
202); the delivered image is returned at the resolution of the upload. The compositing is done by the configured endpoint — this Worker does not composite locally. - Review before publishing. This step is manual: the customer compares the delivered frame with the original against the twelve checks on /photo-review-checklist and applies the disclosure label.
Steps 1–6 are automated and run in the Worker and the configured endpoint. Step 7 is manual and stays with the customer; the site does not inspect or approve a listing image.
Known limitations
- Empty rooms only. The pipeline furnishes a photograph; it does not remove furniture, declutter an occupied room, or edit a room that is already furnished.
- No human designer. No person reviews a frame before delivery. Furniture placement is a suggestion, so scale, walkways and fixtures must be checked against the real room before publishing.
- Bounded by the upload. Output resolution cannot exceed the photograph's, there is no 3D or 360 output, and the architecture is not changed; a tilted, dim or compressed photo limits what the result can show.
Related: about this site · report an error · how to disclose a staged image.