| Takeaway | Detail |
|---|---|
| Self-hosted SD inpainting costs under $0.01 per render against $150 per room for human staging. | The thesis applies to standard rooms; the human rate is $150 per room/listing. |
| Gate every render with a two-pass, same-seed quality check. | Reject the output if it shows visible furniture shadow or wall bleed. |
| Budget for roughly one in N re-renders from masked inpainting failures. | Failures include trailing shadows and wall bleed; the thesis does not specify N. |
| API image pricing runs DALL-E at $0.04-$0.12 per image and Flux at $0.03. | The inpainting model cited is stable-diffusion-2-inpainting, resumed from stable-diffusion-2-base (512-base-ema.ckpt) and trained for another 200k steps with LAMA mask generation. |
In 2026, self-hosted SD inpainting under $0.01 per render can beat $150-per-room human staging for standard rooms.
That advantage holds only when outputs pass a two-pass, same-seed quality check and you budget for about one in N re-renders.

What $15 Inpainting Actually Runs
A $15 inpainting run is not a single button press but a short, repeatable pipeline: you supply an empty-room target image, define what must change, and let a diffusion model reconstruct only those pixels. In practice, the operator starts with a mask that marks furniture or the area to be staged. That mask can be drawn by hand or generated automatically using the LAMA mask-generation strategy, the same approach documented in the Replicate model card for stable-diffusion-2-inpainting, a model resumed from stable-diffusion-2-base (512-base-ema.ckpt) and trained for another 200,000 steps.
Once masked, the image is encoded into a latent representation and the model iteratively denoises the masked region while conditioning on the unmasked context and a text prompt. The decoder then maps that latent result back to pixel space, producing a render in which the protected areas stay anchored to the original photograph and the masked areas are synthesized to match lighting, perspective, and surface texture. This is the mechanism that turns a photographed room into either a cleared shell or a staged scene without reshooting it.
For listing work, defurnishing comes before staging because the model cannot furnish what it cannot see. As Matterport’s panorama inpainting work explains, removing furniture requires replacing occluded wall and floor pixels with geometry-consistent content. Only after that hidden structure is plausibly reconstructed can a second pass add virtual furnishings that sit on believable surfaces rather than floating over remnants of the original scene.
That reconstruction step is where failures concentrate. Matterport reports that off-the-shelf Stable Diffusion inpainting is sharper than some alternatives but “leaves a trailing shadow that looks like a stain on the floor, and extends the brick wall onto the painted wall to the right.” These artifacts are not random noise; they are the model’s best guess at surfaces the camera never captured, so shadows, baseboards, and material boundaries often bleed across the mask edge.
The operational fix is a fixed quality gate, not a single hopeful render: run a two-pass render with the same seed, inspect the output at full resolution, and reject any frame that shows a visible furniture shadow or wall bleed. Treating that check as mandatory turns inpainting from a demo into a production step you can trust on standard rooms.

The Evidence: Three Sources, One Cost Band
Three sources converge on a single auditable band for staged-room rendering. TokenMix's April 2026 pricing survey lists DALL-E 3 at $0.04–$0.12 per image, GPT Image 1.5 at $0.03, Flux at $0.03, and self-hosted Stable Diffusion under $0.01. The Replicate model card for stability-ai/stable-diffusion-inpainting documents the checkpoint behind that self-hosted floor. The takeaway: the API-versus-self-hosted choice is a sub-dime decision per image, not a budget line.
The convergence table below ties each route to its source and its place in the band.
| Generation route | Per-image price (2026) | Place in the band | Source |
|---|---|---|---|
| DALL-E 3 (API) | $0.04–$0.12 | Top of the API band | TokenMix, Apr 2026 |
| GPT Image 1.5 (API) | $0.03 | Mid API | TokenMix, Apr 2026 |
| Flux (API) | $0.03 | Mid API | TokenMix, Apr 2026 |
| Stable Diffusion (self-hosted) | <$0.01 | Floor | TokenMix, Apr 2026 |
| Human staging | $150 per room | Separate tier, exception only | Reader-rule benchmark |
The band's ceiling is only half the story. Matterport's engineering blog on panorama defurnishing records the failure modes that off-the-shelf SD inpainting actually produces: a trailing furniture shadow left on the floor and brick-wall texture extending onto the adjacent painted wall. These are visible, checkable defects — and because they are visible, they can be gated.
The gate is a two-pass render at a fixed seed: reject any output showing a visible furniture shadow or wall bleed, then re-render. Because the reject criteria map directly onto Matterport's documented failures, the re-render rate becomes a measured variable rather than an assumption — the one cost variable the gate directly controls.
Human staging sits in a separate tier. The $150-per-room rate the reader rule reserves for the exception case is roughly three orders of magnitude above the priciest API route: about 1,250× the $0.12 ceiling, and at least 15,000× the self-hosted floor. The units differ on purpose — generation is priced per image, staging per room — so the re-render count is what reconciles them. That unit gap is exactly why the convergence table, not a single headline price, is the auditable object.

Options Compared: Who Wins Which Room
The right choice is room-class specific: the cheapest renderer is not the right renderer for every image, because failure modes and revision costs land differently on a standard bedroom than on a listing's lead photo.
| Room or job class | Winning option | Why it wins | Cost anchor |
|---|---|---|---|
| Standard empty rooms | Self-hosted SD inpainting | Lowest per-render cost; mask control and a rejection pass keep artifacts from shipping | Under $0.01/render plus GPU time |
| Low-volume agent work | Hosted API inpainting | No infrastructure to maintain; per-image billing is simple until revisions compound | $0.03–$0.12/image |
| Hero rooms | Human virtual staging | Designer judgment and revision cycles remove shadow-artifact risk from the lead image | ~$150/room |
| Luxury listings (exception) | Human virtual staging | Brand risk and buyer scrutiny outweigh the self-hosted savings | ~$150/room |
Self-hosted Stable Diffusion inpainting wins standard empty rooms at under $0.01 per render plus your GPU time, but only when mask quality control and a rejection pass are treated as part of the job. The savings disappear if a trailing shadow or wall bleed ships without review.
Hosted API inpainting wins for low-volume agents with no DevOps capacity. At $0.03–$0.12 per image under TokenMix's April 2026 pricing, it removes infrastructure work, but per-revision charges compound quickly once a room needs a second or third pass.
Human virtual staging at roughly $150 per listing room wins hero rooms and luxury listings. The rate includes revision cycles and designer judgment, and it is the only option that guarantees no shadow artifacts. Treat luxury listings as the exception to any cost-first rule: brand risk and buyer scrutiny make the human rate the cheaper mistake.
Assign by class, not by habit. A standard room can absorb a rejected render; a hero image cannot absorb a visible furniture shadow, and a luxury listing cannot absorb a wall-bleed artifact in its first impression.

The Cost Math That Decides It
The decision is arithmetic, not taste: total_cost_per_room = (renders_per_room × cost_per_render) + (qa_minutes_per_room × your_hourly_rate / 60). Treat it as an audit sheet—every room gets its own render count, render price, QA minutes, and labor rate, and no blended average is allowed until after the per-room total is calculated.
With self-hosted Stable Diffusion under $0.01 per render, per TokenMix's April 2026 pricing survey, and a planning average of 2.5 renders per room—one rejection after the first pass—the machine line is under $0.03. The QA term is the one that moves: it scales with minutes reviewed, while the render term stays below three cents for the whole room.
Break-even against the stated $150 human rate is a total-cost comparison, not a render-price comparison. At the $0.03 planning figure for machine cost per room, $150 covers 4,999 machine renders before the machine path loses on cost alone, because 4,999 × $0.03 = $149.97 and 5,000 × $0.03 = $150.00. That margin is why render cost is not the binding constraint; QA time is.
| Term | Unit | How to set it |
|---|---|---|
| renders_per_room | renders | Measured or planned average, including rejects |
| cost_per_render | USD per render | Under $0.01 self-hosted (TokenMix, April 2026) |
| qa_minutes_per_room | minutes | Timed review, both passes |
| your_hourly_rate | USD per hour | Internal labor rate |
Unit discipline: never divide the $150 human rate by renders_per_room and call the result a per-render budget. The human fee is a per-room fee, so the machine side must also be totaled per room before comparison. Compare total_cost_per_room to $150, not cost_per_render to $150 divided by renders_per_room; otherwise a cheap render can hide an expensive review loop.
Budget the re-render as a rate, not a surprise. If your fixed quality check—two-pass render, same seed, reject on visible furniture shadow or wall bleed—rejects one in N rooms, renders_per_room becomes 1 + 1/N in the formula, and the QA term must include both passes. Track rejects by reason so the next quarter's render average is measured rather than assumed.
Use the formula as a decision gate before choosing the human rate: if total_cost_per_room, plus a contingency for QA overruns, is below $150, run the machine path; if QA minutes or reject rates push it above, pay the human rate for that room class. Recompute monthly because both render prices and labor rates move.

What the Evidence Does NOT Establish
The cost advantage of self-hosted Stable Diffusion inpainting rests on measured render prices and documented artifact types, not on proof that the output is equivalent to human staging in every listing context. Before relying on the per-room math, treat each unverified claim as a hypothesis to test on your own photo set rather than a settled property of the workflow.
Buyer-perception equivalence is not established. No source provided here measures whether prospective buyers distinguish a room staged with a $0.03 model render or self-hosted Stable Diffusion at under $0.01 per image, as reported by TokenMix, from a $150 human-staged listing. Marketing claims of “indistinguishable” results should be treated as unverified until you run a blinded comparison on images drawn from your target market and property tier.
Panorama-scale reliability is also not established for standard listing photos. Matterport documents specific inpainting failures on 360° panoramas, including trailing shadows that resemble floor stains and wall bleed where structural surfaces extend into adjacent areas. A single wide-angle listing photo presents a different geometry and may fail less often, but no source provided here quantifies that difference. The only defensible check is to measure rejection and re-render rates on a representative sample of your own images.
| Claim area | Measured in provided sources | Not established; measure before relying on it |
|---|---|---|
| Render cost | TokenMix (2026) reports self-hosted Stable Diffusion at under $0.01 per image and comparable API options such as Flux at $0.03. | Your fully loaded per-room cost after labor, tooling, and re-renders on your hardware or provider. |
| Failure modes | Matterport documents trailing shadows and wall bleed when inpainting 360° panoramas. | Frequency and severity of the same artifacts on single wide-angle listing photos. |
| Output quality | Visual artifact types (shadow residue, surface bleed) can be inspected in rendered outputs. | Buyer-perception equivalence to $150 human-staged rooms or any effect on listing outcomes. |
Use this boundary to set your quality gate: reject renders that show visible furniture shadow or wall bleed, record the re-render count per room, and compare only after you have a measured pass rate. Where the evidence stops, your own audit—not a vendor claim—should decide whether self-hosted inpainting or the $150 human rate applies to a given room.

One 3-Bedroom Listing
For a three-bedroom listing with five standard rooms to stage, run a fixed self-hosted Stable Diffusion inpainting pipeline on a rented GPU. Use $0.01 per render as a planning figure, but verify it against your provider’s billed rate by multiplying dollars per hour by render seconds before the job starts; TokenMix’s 2026 pricing survey places self-hosted Stable Diffusion under $0.01 per image.
Budget 4 minutes of QA per room, and plan for an illustrative 1-in-3 rejection rate until your own QA log produces a measured one; on a five-room set that means expecting two rooms to fail the gate and require a re-render.
Checkpoint 1 — Defurnish and mask: After removing furnishings, confirm the mask covers the full furniture footprint plus contact shadows at legs, rug edges, and wall bases. Matterport’s panorama inpainting work documents that off-the-shelf inpainting can leave a trailing shadow that reads as a stain on the floor; undersized masks are the top cause of that artifact. If any shadow edge falls outside the mask, expand the mask before rendering.
Checkpoint 2 — Render pair: Render twice at the same seed for each masked room. Compare the pair for floor-line continuity, wall texture, and edge bleed where furniture met the room. If either image shows a visible furniture shadow, warped plank or tile lines, or wall bleed, reject the output, adjust the mask or prompt, and re-render. Only a room that passes this same-seed comparison moves to delivery.
Applied to this listing, the two-pass, same-seed gate produces ten initial renders for the five rooms (5 × 2), plus four re-renders for the two planned rejects (2 × 2), for fourteen renders total and $0.14 in compute at the $0.01 planning figure (14 × $0.01 = $0.14). QA time is 20 minutes for the initial five rooms (5 × 4 minutes) plus 8 minutes for the two re-renders (2 × 4 minutes), or 28 minutes total. Treat these as checkpoint figures to confirm against your actual GPU time and observed rejection count.
| QA checklist | Pass condition | Action if failed |
|---|---|---|
| Mask coverage | Mask includes furniture footprint and all contact shadows | Expand mask; re-run Checkpoint 1 |
| Same-seed pair | Two renders at the same seed show consistent geometry | Inspect floor lines and wall texture before approval |
| Shadow and bleed check | No trailing shadow, stain, or wall bleed visible | Reject, revise mask/prompt, and re-render |
| Room sign-off | Passed room logged with render count and QA minutes | Hold delivery until a passing pair is produced |
Worked Example: Run the Numbers
Illustration: a brokerage stages 60 standard empty rooms in April 2026—three rooms each across 20 listings—for one in-house operator. Price basis: TokenMix's April 10, 2026 survey lists self-hosted Stable Diffusion under $0.01 per render, and the human staging rate used here is $150 per room.
Step 1: the human route costs 60 × $150 = $9,000. Step 2: the self-hosted minimum is 60 rooms × 2 passes = 120 renders, or under $1.20 at $0.01 per render. Step 3: if a room fails the fixed two-pass, same-seed quality check, it is re-rendered; at an illustrative 50% reject rate, expected renders double to 240 and cost rises to under $2.40.
| Route | Rooms | Renders | Cost |
|---|---|---|---|
| Human staging | 60 | — | $9,000 |
| Self-hosted, no rejects | 60 | 120 | under $1.20 |
| Self-hosted, 50% reject (illustrative) | 60 | 240 | under $2.40 |
Break-even trigger: with two passes at $0.01, self-hosted cost per accepted room is $0.02 ÷ (1 − r), where r is the reject rate. Setting that equal to $150 gives r = 1 − $0.02 ÷ $150 = 0.999866..., so the reject rate would have to exceed 99.98% before human staging wins on cost. The ~1-in-N re-render is therefore a budget line, not a reversal of the winner.
Winner for this example: self-hosted SD inpainting, at under $2.40 in the 50%-reject stress test versus $9,000 for the same 60 rooms, provided the gate is applied and rejects are re-rendered. The $150 human rate is reserved for rooms that fail that check or for luxury-grade listings.
All figures are illustrations on the stated April 2026 price basis; GPU time, electricity, and operator labor are outside this example.
Decision Rules for Your 2026 Pipeline
Run these rules in order; they turn the cost band priced above into a routing decision instead of a debate. At the per-render and per-room rates already established, the machine line is noise and the QA line is the budget.
| If | Then |
|---|---|
| Standard empty-room job and measured rejection rate under 33% | Use self-hosted SD inpainting with the QA checklist; budget one re-render per three rooms. |
| No GPU access or fewer than 5 listings per month | Use a hosted API at $0.03–$0.12 per image and cap revisions at one per room. |
| A render shows visible furniture shadow or wall bleed | Reject it and re-run the two-pass, same-seed check before counting the room. |
| Re-renders for one room exceed 3 | Stop re-rolling and pay the $150 human staging rate. |
| The room is not a standard empty-room job | Pay the $150 human staging rate. |
The first rule is the volume default: at under 33% rejection, the expected re-render load is one extra pass per three rooms, which remains far below the $150 human rate. Track the rejection rate weekly from the QA log, not from memory, because a drift from 25% to 40% changes the routing answer.
The second rule protects small accounts from fixed-cost traps. Hosted APIs in the TokenMix 2026 band run $0.03–$0.12 per image, so one revision per room keeps the per-room total in the low single digits; a second or third revision is where the API path stops being cheap.
The third and fourth rules are the gate. Reject on visible furniture shadow or wall bleed, re-run the two-pass same-seed check, and if a room needs more than three re-renders, stop spending operator time and escalate to the $150 human rate. The fifth rule keeps non-standard rooms out of the experiment entirely.
Frequently Asked Questions
What quality gate must every render pass?
Every render must pass a two-pass, same-seed quality check.
Which visible artifacts make a render unacceptable?
Reject the output if it shows visible furniture shadow or wall bleed.
How can the staging mask be created?
The mask can be drawn by hand or generated automatically using the LAMA mask-generation strategy.
What training details are given for the cited inpainting model?
The cited model is stable-diffusion-2-inpainting, resumed from stable-diffusion-2-base (512-base-ema.ckpt) and trained for another 200k steps with LAMA mask generation.
Which room category does the cost thesis cover?
The thesis applies to standard rooms.
What masked inpainting failures are named?
Failures include trailing shadows and wall bleed.
Quick answers
| How does the cost of self-hosted SD inpainting compare to human staging for standard rooms? | Self-hosted SD inpainting costs under a cent per render, compared to the per-room human staging rate. |
| What quality check should be used for every render? | Every render should be gated with a two-pass, same-seed quality check. |
| When should a render output be rejected? | The output should be rejected if it shows visible furniture shadow or wall bleed. |
| What are some examples of masked inpainting failures mentioned in the article? | Failures include trailing shadows and wall bleed. |
| Which inpainting model is cited in the article? | The inpainting model cited is stable-diffusion-2-inpainting, resumed from stable-diffusion-2-base (512-base-ema.ckpt) and trained for another 200k steps with LAMA mask generation. |
Also worth reading: Diffusion-model virtual staging vs. physical staging: cost per staged room, turnaround hours, and days-on-market lift from 2025 MLS data — and when human stagers still win on luxury listings: Diffusion-model virtual staging vs. physical · Virtual staging cost per room: 2026 latent diffusion inpainting vs manual $12?: Virtual staging cost per room: · Virtual staging cost per listing: 2026 $12 vs $180 - stage or shoot?: Virtual staging cost per listing: