VirtualStageNow

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.

SourceURLUsed forLast checked
Virtual Stage Now staging pipelinehttps://virtualstagenow.com/toolThe upload → room/style → generation → delivery path described below2026-11-02
California BPC § 10140.8 (AB 723, 2025–2026)california.public.law/codes/ca_bus_and_prof_code_section_10140.8The alteration statement and original-image link required in California2026-11-02
Stellar MLS, Article 04.04: Virtually Staged Photosrules.stellarmls.com/article/article-0404-virtually-staged-photosThe “Virtually staged” label and remarks wording used on /mls-disclosure2026-11-02
CVR MLS, rule changes effective 2026-10-01support.cvrmls.com/kb/article/1154-cvr-mls-rule-changes-effective-october-1-2026The watermark and unaltered-photo requirement2026-11-02
NAR, When Does Photoshopping Go Too Far?nar.realtor/news/real-estate-news/technology/when-does-photoshopping-go-too-farArticle 12 truth standard for listing photos2026-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

  1. 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.
  2. Read the upload on the Worker. POST /api/stage parses the JSON body, requires a base64 data:image/(png|jpeg|webp) URL, and rejects a decoded image under 2 KB or over 8 MB (image_too_small / image_too_large).
  3. Check the room and style against fixed lists. ROOMS is living room, bedroom, dining room, kitchen, home office and outdoor; STYLES is warm modern, Scandinavian, mid-century, industrial, coastal and minimal. Anything else returns unknown_room or unknown_style.
  4. 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.
  5. Send the photo and prompt to the configured endpoint. The Worker forwards {image, prompt} to env.STAGE_URL with Authorization: Bearer env.STAGE_KEY; if either secret is absent it returns 503 staging_not_configured rather than a placeholder image.
  6. 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.
  7. 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.