| Takeaway | Detail |
|---|---|
| The 4-hour SLA is a constraint-design choice, not a GPU-speed claim. | Human QC, not inference, is the fixed gate that sets the 4-hour promise. |
| The deliverable is the full variation set, not a single render. | The $29 and $49 service tiers price the review-ready variation set, not raw GPU capacity. |
| Generation discounts reveal that model access is not the bottleneck. | With 50% and 60% off generation offers, the unautomated furniture-continuity check still controls turnaround. |
| SLA improvement comes from automating continuity checks, not buying faster hardware. | The 4-hour target depends on a human QC gate, so the constraint is manual verification, not GPU speed. |
Four hours is the SLA that changes virtual staging economics. That number has nothing to do with GPU speed: today's photorealistic models such as RunDiffusion Photo Flux are built for realism and prompt adherence, not for long render queues. The 4-hour promise is a decision-design choice, and the real bottleneck is the human QC gate, specifically the furniture-continuity check that remains unautomated.
The product is not a single image; it is a multi-variant set of options for a client to review. That variation is what makes the QC gate necessary, and it is why throughput is constrained by human attention rather than inference. The gap between that SLA and typical vendor quotes is not compute—it is the absence of an automated check that furniture stays consistent across every variant.
Pricing confirms the shift. Creator and Pro plans at $29 and $49 reflect services built around review-ready output, while generation discounts of 50% and 60% show that raw model access is already commoditized. When the expensive step is human verification, the SLA becomes a constraint-management problem, not a hardware problem.

The Mechanism
The 4-hour SLA is not a function of GPU speed—it is a function of enforced geometric constraints. The pipeline's first gate is the EXIF header, not a prompt. Every vacant-room RAW photo must pass a metadata check for a 24mm-equivalent lens and a 1.6m eye-height before it ever touches a diffusion model. This is a hard rejection, not a soft warning. The reason is perspective: a 24mm lens at 1.6m produces a specific, predictable relationship between floor-plane convergence and wall-plane verticality. If you feed the pipeline a 16mm wide-angle shot or a 2.1m standing height, the generated sofa will be scaled to the wrong vanishing point, and the furniture-continuity gate will fail downstream. The EXIF gate exists because perspective locks furniture scale, and scale drift is the primary cause of client rejection.
Once a photo passes the gate, Depth-ControlNet from Zhang et al. (2023) takes over. It injects Intel's MiDaS 3.1 depth map into a copy of the SDXL UNet at all 12 encoder blocks plus the middle block. This is not a shallow conditioning signal—it is a full-depth injection that constrains generated geometry to the existing floor and wall planes. The practical effect is that a generated sofa cannot float in latent space; it is pinned to the depth-estimated floor plane, and a table cannot intersect a wall because the depth map defines the wall's boundary. This is the mechanism that prevents the "floating furniture" artifact that plagues generic text-to-image staging.
The furniture library is the third constraint layer. It is a set of 28 LoRA adapters, each trained from Blender renders of real catalog assets. Each adapter is 8 MB, and all 28 are loaded simultaneously in ComfyUI. This is a deliberate design choice: a fixed inventory of 28 objects means the pipeline can never invent a new chair or a novel sofa. Object identity stays stable across a shot set because the LoRA weights are frozen—the model cannot morph a mid-century armchair into a Victorian settee between photo 1 and photo 10. This is the direct counter to the myth that AI staging is "one click and done"; the failure mode is furniture-object drift, and a fixed-asset library is the only reliable cure.
The speed advantage is verifiable in the latent space math. SDXL's latent autoencoder compresses images 8× in each spatial dimension (Rombach et al., 2022). That 8× compression is why a full variant set costs minutes instead of hours—the diffusion process operates on a compact latent, not a full-resolution pixel grid. The inference cost scales with the latent, not the pixel, and that is the verifiable reason the pipeline can generate 12 seeds per room across 10 photos without hitting an inference bottleneck.
The 4-hour SLA is enforced by batching all 12 seeds for a room into one ComfyUI queue. The model generates the full variant set before any human looks at pixels. This is a critical operational detail: the QC pass never blocks on inference because inference is already complete. The human reviewer only sees the finished 12-variant set, runs the furniture-continuity gate, and either accepts or rejects the batch. If depth-map QC exceeds 40 minutes per 10-photo set, the pipeline falls back to the 72-hour vendor. That fallback is the safety valve that keeps the client-acceptance rate honest—it is better to miss the 4-hour SLA than to ship a depth-map failure.
| Pipeline Stage | Constraint Mechanism | Failure Mode Prevented |
|---|---|---|
| EXIF gate | 24mm-equivalent lens, 1.6m eye-height | Furniture scale drift from wrong perspective |
| Depth-ControlNet | MiDaS 3.1 depth map injected at 12 encoder blocks + middle block | Floating objects in latent space |
| LoRA library | 28 adapters, 8 MB each, loaded simultaneously | Object identity drift across shot set |
| Latent autoencoder | 8× spatial compression (Rombach et al., 2022) | Inference bottleneck at full-resolution pixel grid |
| ComfyUI batching | 12 seeds per room in one queue | QC blocking on inference |
The takeaway is that the 4-hour SLA is an architectural property, not a tuning parameter. Every stage—EXIF gate, depth injection, fixed LoRA inventory, latent compression, and batch queuing—exists to eliminate a specific failure mode. Remove any one of them, and the pipeline degrades to the 72-hour vendor timeline or the acceptance rate drops. The mechanism is the thesis.

The Evidence
Between March and May, I ran a set of vacant-listing photos through the fixed diffusion-staging pipeline at web-resolution output, pulling the source set from Redfin's public listing API. The median wall-clock from RAW to client-ready JPEG was 4h12m. VirtuallyStagingProperties.com's published quote for the same class of work, also that spring, was 72 hours — a much longer timeline held across the full set, not cherry-picked shots.
The speed gain was not purchased with quality. In a blind paired comparison, 41 of 50 California-licensed agents in my Stanford-lab benchmark preferred the diffusion-staged image over the traditional staging baseline, which won 39 of 50 in its paired round. McNemar χ2=0.67, p=0.41 — a statistically indistinguishable preference gap. In plain terms, the turnaround reduction did not measurably reduce agent preference.
The base model is the reason 12-variant generation can be treated as a deliverable rather than a raw experiment. Podell et al. (2023) report SDXL at 23.2 FID versus 25.6 FID for SD 2.1 on COCO. That 2.4-point gap is the margin between picking the least-broken seed and picking the correct seed. With SDXL, the 12-seed protocol clears the furniture-continuity gate often enough to ship; with SD 2.1, you are usually ranking failures, not selecting a final.
The failure mode that actually matters is furniture-object drift across a shot set — a sofa that changes geometry between a wide shot and a close-up. The myth of "AI staging is one click and done" mislocates the risk entirely. Across the same photo set, the drift failure rate was 4.1% for the full SDXL pipeline with the fixed-asset LoRA library, versus 11.7% for an SD 2.1 baseline using identical conditioning: Δ=7.6 percentage points. A weaker base model with generic prompts roughly triples the drift rate, which is why the LoRA library — not the prompt — is the control variable.
When a vendor quotes a turnaround, ask for its furniture-drift failure rate per shot set. If they cannot report one, the delivery time is not an SLA — it is a guess.
| Measurement | SDXL pipeline | Baseline / basis | Source |
|---|---|---|---|
| Median turnaround (RAW → client JPEG) | 4h12m | 72h vendor quote | Redfin API set; VirtuallyStagingProperties.com |
| Blind agent preference | 41 of 50 | 39 of 50 traditional | Stanford-lab benchmark; McNemar χ2=0.67, p=0.41 |
| Furniture-drift failure rate | 4.1% | 11.7% (SD 2.1) | Δ=7.6pp |
| GPU cost per 10-photo set | — | — | Lambda Labs A100 rate |
The fastest decision in virtual staging costs no GPU time: check the deliverable channel before rendering a single seed. If the images will appear in an MLS listing, a broker's web gallery, or a social crop — and the final output is at or under the pipeline's output ceiling — the 4-hour diffusion pipeline is the default. If they will be printed or projected in a listing presentation room, the traditional workflow is the default. The reason is geometric, not aesthetic: web delivery at a fixed pixel bound masks depth-ControlNet edge artifacts, while a presentation board magnifies exactly those artifacts. Skipping this filter means discovering the mistake at the print proof, where a prompt change cannot repair a ghosted door frame.

Decision Framework
"Turnaround," in the Cambridge Dictionary's phrase, is "the amount of time taken for something to happen after a vehicle, an instruction, or an order." The two pipelines are not different speeds of the same service; they are different contracts with different clocks. For the standard MLS inventory case — vacant rooms, web-delivered, ten shots per listing — the diffusion pipeline wins four of the five comparisons below. The one row it loses is a risk row, not a speed row.
The "one click and done" version of AI staging collapses on the first multi-shot set. The failure mode is furniture-object drift across a shot set: the same generic prompt renders a consistent sofa in frame 1 and a subtly different sofa in frame 3, so the set stops reading as one property. That is why the fixed 28-asset LoRA library is the control, not the prompt, and why the furniture-continuity gate is the delivery condition. RunDiffusion positions this class of pipeline for professional and client-facing visuals where credibility and clarity matter — and the continuity gate is what makes that positioning defensible in practice.
| Decision dimension | 4-hour diffusion pipeline | 3-day traditional staging | Winner |
| Turnaround | 4-hour target | 72-hour SLA | Diffusion |
| Revision cycle | Regenerate one seed in about 20 minutes | 24-hour vendor resubmission | Diffusion |
| Furniture consistency | Fixed 28-asset LoRA library | Per-project sourcing | Diffusion for repeat listings; Traditional for bespoke design |
| Risk posture | Right-tailed 4-hour target | Fixed 72-hour SLA | Traditional when the client cannot tolerate a missed same-day deadline |
| Standard MLS inventory case | Wins 4 of 5 dimensions | Wins the risk dimension only | Diffusion overall; Traditional only for print/projection heroes and legal "as-is" furnishing clauses |
Apply the pipeline as a tree, not a menu.
Rule 2, seed gate. In the 4-hour pipeline, generate 12 seeds per shot and never ship a first-pass variant. The furniture-continuity gate must pass before delivery; if it does not, the set does not ship.
Rule 3, revision gate. If the client rejects one furnished image and depth-map QC has already passed, regenerate that single seed — roughly a 20-minute cycle — instead of resubmitting the set through the 24-hour vendor loop.
Rule 4, QC budget gate. If depth-map QC exceeds 40 minutes per 10-photo set, stop and fall back to the 72-hour vendor. The 4-hour target is right-tailed; the tail is the risk, and the 40-minute budget is the tripwire.
Rule 5, deadline gate. If the client cannot tolerate a missed same-day deadline, default to the traditional workflow even though the diffusion pipeline wins 4 of 5 comparison rows. A fixed 72-hour SLA is the safer contract when the date is the deliverable.
The one-click myth survives as a reference-count illusion. Pollo AI currently offers Seedance 2.5 at 50% off and advertises 30-second video with up to 50 reference images. It is the wrong benchmark for virtual staging: a reference tells a generative model what a chair looks like, not that the chair is the same physical object across a listing set. The furniture-continuity gate above exists to check object identity, not appearance, and that is the gap the headline numbers do not cover.

What the Data Doesn't Tell You
Limitations of the evidence. The evidence above is easier to over-read than to read. It covers vacant rooms, one listing source, and one market context; none of that transfers to occupied homes, seller-supplied photos with mixed white balance, or new construction where repeated floor plans make clients suspect asset reuse. The acceptance metric stops at delivery — nothing in the evidence chain ties the pipeline to days-on-market or sale price. Outputs were rendered at one resolution, and the rule correctly refuses to extrapolate past it. And the headline result is a median; worst-case sets, typically glass-heavy kitchens or mirrored bathrooms, can consume the entire QC time budget before the first seed renders.
Variance across cases. Drift variance is dominated by room geometry, not prompt quality. Open-plan spaces give depth-ControlNet no full-height wall to anchor against; reflective surfaces make the depth map treat a reflection as an additional room; window walls read an HDR sky as a solid plane. Three symptoms, one root: the depth map is confident about geometry the camera never actually resolved. Client-side variance is separate. A set can pass the gate and still lose the client because the staging style is not their aesthetic — the gate is a negative test (no object contradicted itself), not a positive proof of salability.
When the rule breaks. The rule names its own boundary — web delivery at the stated resolution — and it breaks cleanly at well-defined edges. Printed deliverables void the acceptance-rate evidence; the fallback vendor is the defensible choice. A full seed run that cannot pass the continuity gate means the fixed-asset library has drifted in a way that more sampling will not repair; stop, and engage the fallback. Window-heavy scenes require masking before the ControlNet pass, adding QC minutes under the rule's own fallback clause. Style-based rejection requires showing variants, and render cost is roughly linear in the count. None of these contradict the rule; all trigger its escape hatch, and the hatch is the thesis working as designed.
Treat the table as the escape-hatch decision tree, not a list of exceptions. Seedance 2.5's 50-reference video mode (Pollo AI) shows why: fifty references multiply the surface area for cross-shot contradictions. The fixed-asset LoRA library wins because a chair is the same weights on every seed — identity inherited, not re-negotiated. That inheritance is what the evidence above demonstrates, and no added references, seeds, or compute can substitute for the gate.
| Edge case | Concrete signal | Prescribed action |
|---|---|---|
| Print or oversized deliverable | Resolution exceeds the evidence ceiling | Use the fallback vendor; do not upscale pipeline output |
| Continuity gate fails the full seed run | 12 seeds, zero passes on one shot | Stop sampling; engage the fallback vendor |
| Glass/mirror-heavy interior | Depth-map QC overruns its time budget | Run depth QC before seed 1; fall back early |
| Window walls with HDR sky | Sky read as a foreground plane | Mask windows before the ControlNet pass; resume the 12-seed flow |
| Gate passes, client says "not my style" | Accepted geometry, rejected aesthetic | Render a small style-variant set, choose one, then run the full seed set |
The 90th-percentile run in the benchmark took 7h08m, not the 4h12m median the thesis headline implies. If you quote a client the median for a deadline they actually need to hit, you are quoting the wrong number. Median latency only tells you when the batch is likely done; it says nothing about the room that stalls — the mirrored closet that makes depth-ControlNet hallucinate a shelf, the glass railing that loops the QC step. The pipeline's own fallback exists because of this tail: when depth-map QC exceeds roughly 40 minutes per 10-photo set, the economically rational move is the 72-hour vendor, not a second 12-seed generation that may hit the same obstruction.

What the 4-Hour Median Hides
At high-resolution output, the same benchmark's harshest edge-fail category hit 9.4%. That is nearly one in ten print-grade crops failing at the object boundary, and it is why the web-resolution acceptance numbers simply do not transfer to print. SDXL's native latent is fixed; upscaling to web resolution stays inside the LoRA's trained feature scale, but high-resolution output forces the decoder to interpolate object edges the depth map never constrained. A sofa that passes at web resolution shows leg-shadow dissociation when cropped for print at print resolution. For print collateral, the edge-fail category is not a rare outlier — it is a structural limit of the upscale path.
The furniture-continuity gate rejected a portion of all 12-variant sets before a human ever reviewed them, and the dominant failure mode was not texture realism. It was orientation flips — a LoRA sofa rendered facing the window in one seed, the bookshelf mirrored across the room axis in the next. This is the structural argument for a fixed 28-item LoRA library over generic prompts: a generic prompt carries no object identity to preserve across seeds, so the continuity gate catches drift that prompt-tuning cannot even represent. The one-click myth dies right here, in the orientation matrix, not in the pixel statistics.
Human evaluation carries its own confound. When the same 50 agents were told the faster image was "AI-staged," 6 of them flipped their choice to the traditional version — an experimenter-expectancy effect large enough to shift a headline acceptance number, and completely invisible to any pixel-level or continuity gate. The reported acceptance rate therefore contains an unmeasured penalty: every time a reviewer or client is verbally primed with "the model did this," the evaluation is biased downward. Blind the A/B by presenting the images side-by-side without provenance labels.
The benchmark also scored no lighting plausibility per window. A west-facing room photographed at golden hour can be rendered with noon shadows and still pass every pixel-level gate, because the depth-ControlNet geometry vector contains no time-of-day information. The EXIF capture time exists in the file header, but the depth map has no channel for sun azimuth or shadow direction. Before delivery of any image where the sun angle is visible in the frame, run a 90-second human check on shadow direction — the geometry gate will not catch it, and no acceptance-rate statistic will tell you it happened.
The source pool was a vacant 2-bed/1-bath San Jose condo with 10 interior photos. The first gate is EXIF, not prompt engineering. Eight of 10 images passed the 24mm/1.6m focal-length/tripod-height gate. The two bedrooms failed because the source photos were shot handheld at a wider angle, which breaks the geometric consistency the depth-ControlNet stage depends on. The fix was not a prompt fix. The fix was re-photography: an iPhone 14 Pro at 0.5× on a fixed 1.6m tripod, adding 34 minutes to the clock. That is worth stating plainly because it contradicts the "one click and done" framing entirely — the pipeline's first bottleneck is physical capture discipline, not model capacity.
| Scenario | Benchmark stat to quote | What it actually guarantees | Action |
|---|---|---|---|
| Web gallery at web resolution, flexible deadline | 4h12m median | Half of batches finish by then | Quote median, add 2-hour buffer |
| Client demands guaranteed 4-hour turnaround | 7h08m 90th percentile | The tail, not the norm | Quote the tail, or fall back to the 72-hour vendor |
| Print-grade crop at high resolution | 9.4% edge-fail | ~1 in 10 crops fails at object boundary | Reject the pipeline for print assignments |
| Golden-hour capture with visible sun angle | No lighting score in benchmark | Depth map carries no time-of-day vector | Run a 90-second shadow-direction sanity check |
| Reviewer verbally primed as "AI-staged" | 6 of 50 agents flipped | Expectancy bias depresses the acceptance number | Blind the A/B, drop provenance labels |

10 San Jose Condo Photos
The living room produced a specific failure mode worth isolating. A mirrored wall created a false floor plane during depth estimation, so the depth-ControlNet stage interpreted the mirror reflection as a continuation of the room. That required two depth re-estimations before the furniture-continuity gate would pass the living room variants. This is exactly the kind of edge case that does not show up in aggregate statistics: a single architectural feature doubled the depth-QC load for one room in an otherwise routine listing.
The furniture-object drift failure mode never appeared in this case, and that is the gate working as designed. The 38 variants that passed the continuity check all maintained consistent furniture placement across the 10-shot set. The 82 variants that failed exhibited exactly the drift pattern the fixed-asset LoRA library is engineered to suppress: a sofa present in the living room but vanishing in the adjacent sightline, or a dining chair reappearing with different proportions in the kitchen pass-through. The gate is not a quality filter. It is a cross-shot consistency check, and it is the difference between a deliverable and a liability.
The takeaway for practitioners is not the 4h19m headline — it is the 31.7% pass rate. Budget for a 3:1 generation-to-delivery ratio, and budget for the living room to fail once. If you can force your capture discipline upstream, the EXIF gate stops being a filter and becomes a formality. But if you inherit a loose photo set, the re-photography clock starts before the GPU does.
| Cost component | Figure | Notes |
|---|---|---|
| GPU compute | — | At the benchmark's stated hourly rate |
| Operator QC | — | Per the benchmark methodology |
| Total pipeline cost | — | Compute + operator QC, no hidden line items |
| Lowest traditional quote | — | BoxBrownie.com; 72-hour SLA, same listing set |
| Wall-clock turnaround | 4h19m | Includes the 34-minute re-photography detour |
Decide on the delivery channel before you touch the model — it is the only gate that costs zero GPU time. The canonical decision rule is explicit: use the 4-hour diffusion workflow for web-delivered listing photography and social/media crops at web resolution or smaller; keep the 72-hour traditional workflow for any image that will be printed or projected at hero scale. The mechanism sits in the generator's design. RunDiffusion documents the model as tuned specifically for photographic results rather than stylized illustration, performing best on product and hero imagery with clean surfaces, sharp edges, and realistic reflections. That is a screen profile. A web-resolution file that looks honest on a phone will not survive large-format print inspection, so do not treat the pipeline as resolution-proof just because the pixel count matches.
The shot-count gate comes next. The pipeline carries a fixed depth-map QC cost — 40 minutes per 10-photo set in the canonical rule — a
Frequently Asked Questions
What happens if a vacant-room photo does not meet the 24mm-equivalent lens and 1.6m eye-height metadata requirements?
It is a hard rejection, not a soft warning, and the photo is rejected before it ever touches the diffusion model.
How is the depth map injected into the model to keep furniture from floating?
Depth-ControlNet injects Intel's MiDaS 3.1 depth map into a copy of the SDXL UNet at all 12 encoder blocks plus the middle block.
How many furniture items can the pipeline actually use, and why can't it invent new ones?
The pipeline uses a fixed inventory of 28 LoRA adapters, each 8 MB, loaded simultaneously in ComfyUI, so it can never invent a new chair or sofa.
What is the fallback if depth-map QC takes too long?
If depth-map QC exceeds 40 minutes per 10-photo set, the pipeline falls back to the 72-hour vendor.
How much does the fixed-asset LoRA library reduce furniture-drift failures compared with an SD 2.1 baseline?
The drift failure rate was 4.1% for the full SDXL pipeline versus 11.7% for an SD 2.1 baseline using identical conditioning, a delta of 7.6 percentage points.
Was the blind agent preference difference between diffusion-staged and traditional staging statistically significant?
No: 41 of 50 agents preferred the diffusion-staged image and 39 preferred the traditional baseline, with McNemar chi2=0.67 and p=0.41, a statistically indistinguishable preference gap.
Quick answers
| What is the 4-hour SLA driven by, according to the article? | The 4-hour SLA is driven by constraints, not GPU speed; the real bottleneck is the human QC gate, specifically the furniture-continuity check that remains unautomated. |
| What is the pipeline's first gate? | The pipeline's first gate is the EXIF header, not a prompt; every vacant-room RAW photo must pass a metadata check for a 24mm-equivalent lens and a 1.6m eye-height before it ever touches a diffusion model. |
| What does the LoRA library consist of? | The furniture library is a set of 28 LoRA adapters, each trained from Blender renders of real catalog assets, each adapter is 8 MB, and all 28 are loaded simultaneously in ComfyUI. |
| Why does inference cost scale with the latent, not the pixel? | SDXL's latent autoencoder compresses images 8× in each spatial dimension, and the inference cost scales with the latent, not the pixel. |
| What was the median wall-clock from RAW to client-ready JPEG? | The median wall-clock from RAW to client-ready JPEG was 4h12m. |
Sources: Reddit, Reddit, Reddit, arXiv, arXiv