{
 "edition": "2026-11",
 "status": "testing in progress: partial results (room 01 of 10)",
 "last_updated": "2026-10-19",
 "test_set": "photos/credits.json",
 "note": "Partial results: room 01 only (1 of 10 rooms), automatic checks only (no blind human ratings yet, no overall score). Architecture drift is measured after aligning each output to the original frame (score.py, method v0.2). Scores are never paid for.",
 "tools": [
  {
   "id": "reimaginehome",
   "name": "REimagineHome",
   "url": "https://www.reimaginehome.ai/",
   "kind": "AI",
   "free_trial": "5 free designs",
   "try_without_account": "No",
   "room01": {
    "tested": "2026-10-19",
    "seconds": 16,
    "seconds_approx": false,
    "watermark": "Yes: tiled pattern + \"Generated using REimagineHome.ai\" badge",
    "output_resolution": "2336x1760",
    "resolution_kept": true,
    "aspect_ratio_kept": true,
    "free_tier": "5 free designs",
    "framing_pass": true,
    "framing": "pass",
    "framing_detail": {
     "zoom": 1.0028,
     "shift_px": [
      -0.0,
      0.5
     ],
     "shift_pct": [
      -0.0,
      0.05
     ],
     "rotation_deg": 0.048,
     "visible_overlap_pct": 99.81,
     "invented_area_pct": 0.13
    },
    "architecture_drift": 16.2,
    "raw_drift": 15.3,
    "compare": "results/reimaginehome/01-compare.jpg",
    "aligned": "results/reimaginehome/01-aligned.jpg",
    "output": "results/reimaginehome/01.jpg",
    "score_json": "results/reimaginehome/01-score.json",
    "note": "Kept the camera frame. The tiled watermark on the free output adds some edges, which nudges drift up a little. A second run through Styldod (same engine) scored 14.4 in about 38 s; only the first output counts.",
    "watermark_short": "Yes (tiled + badge)",
    "free_tier_short": "5 free designs",
    "realism": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 4,
      "lighting_shadows": 4,
      "artifacts": 4,
      "fit_to_room": 4
     },
     "notes": {
      "furniture_realism": "Grey L-shaped sofa, throws and rug look like real catalogue pieces; the original chair is kept next to a new white armchair.",
      "scale_perspective": "Sizes are believable, but the sofa sits right in front of the bathroom doorway.",
      "lighting_shadows": "Soft contact shadows under the sofa and chairs match the original daylight.",
      "artifacts": "No melted or floating objects; two round mirrors were added and the tiled watermark covers the whole image.",
      "fit_to_room": "Living zone furnished, kitchen left alone, which suits an open-plan room."
     },
     "mean": 4.0
    },
    "realism_run2": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 4,
      "lighting_shadows": 4,
      "artifacts": 3,
      "fit_to_room": 4
     },
     "notes": {
      "furniture_realism": "Grey sofa, glass coffee table and two blue velvet armchairs look real.",
      "scale_perspective": "Furniture is well sized and leaves the doorways clear.",
      "lighting_shadows": "Consistent daylight; a lamp glows by the column.",
      "artifacts": "A lampshade by the column has no visible stand, so it seems to float against the wall; the original chair was removed.",
      "fit_to_room": "Living zone staged with a side table toward the kitchen; suits open plan."
     },
     "mean": 3.8,
     "note": "Run 2 via Styldod (same engine); only the first output counts."
    }
   },
   "outputs": {
    "01-open-plan-kitchen-living.jpg": "results/reimaginehome/01-aligned.jpg"
   },
   "access": "free tier",
   "affiliate": false,
   "pricing": {
    "model": "subscription (credits)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Essential",
     "price": 19,
     "billing_period": "month",
     "photos_included": 30,
     "note": "30 credits, 1 credit per generation. The plan card also says '20 credits/month thereafter'; the page's structured data lists $14 for Essential. Conflicting, we show the visible card."
    },
    "per_photo_cheapest": 0.63,
    "per_photo_cheapest_usd": 0.63,
    "mid_plan": "Pro ($36/mo, 200 credits; card says 150 credits/month thereafter)",
    "per_photo_mid": 0.18,
    "per_photo_mid_usd": 0.18,
    "free_tier": "5 free designs for new users",
    "watermark_on_free": true,
    "max_resolution": null,
    "turnaround": null,
    "turnaround_type": "instant AI",
    "refund_policy": "No refunds for cancelled paid plans; access continues to the end of the billing period",
    "redo_policy": null,
    "has_affiliate_program": true,
    "affiliate_url": "https://www.reimaginehome.ai/affiliate",
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Essential lacks 'Next-Gen AI or High Resolution Quality'. Our free run: 2336x1760, 16 s, watermarked."
   },
   "features": {
    "declutter": null,
    "empty_room_staging": true,
    "furnished_restyle": true,
    "day_to_dusk": null,
    "sky_replacement": true,
    "renovation_recolor": null,
    "tour_360_video": null,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.reimaginehome.ai/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "refund_policy",
      "features.empty_room_staging",
      "features.furnished_restyle"
     ]
    },
    {
     "url": "https://www.reimaginehome.ai/sky-replacement",
     "checked": "2026-10-19",
     "covers": [
      "features.sky_replacement"
     ],
     "note": "linked from the pricing page navigation"
    },
    {
     "url": "https://www.reimaginehome.ai/affiliate",
     "checked": "2026-10-19",
     "covers": [
      "has_affiliate_program"
     ]
    },
    {
     "url": "data/test_log.md",
     "checked": "2026-10-19",
     "covers": [
      "watermark_on_free"
     ],
     "note": "our own room 01 run"
    }
   ],
   "rooms_tested": 1
  },
  {
   "id": "collov-ai",
   "name": "Collov AI",
   "url": "https://collov.ai/",
   "kind": "AI",
   "free_trial": "5 watermarked images",
   "try_without_account": "No",
   "room01": {
    "tested": "2026-10-19",
    "seconds": 18.6,
    "seconds_approx": false,
    "watermark": "Yes: Collov logo",
    "output_resolution": "1200x896",
    "resolution_kept": false,
    "aspect_ratio_kept": true,
    "free_tier": "5 watermarked images",
    "framing_pass": true,
    "framing": "pass",
    "framing_detail": {
     "zoom": 1.0003,
     "shift_px": [
      0.0,
      -0.0
     ],
     "shift_pct": [
      0.0,
      -0.0
     ],
     "rotation_deg": -0.003,
     "visible_overlap_pct": 99.61,
     "invented_area_pct": 0.0
    },
    "architecture_drift": 11.0,
    "raw_drift": 9.9,
    "compare": "results/collov/01-compare.jpg",
    "aligned": "results/collov/01-aligned.jpg",
    "output": "results/collov/01.jpg",
    "score_json": "results/collov/01-score.json",
    "note": "Lowest architecture drift on room 01 and kept the frame. Removed the chair that was already in the room (allowed: it is furniture). Output is slightly smaller than the original (1200x896 vs 1280x960).",
    "watermark_short": "Yes (logo)",
    "free_tier_short": "5 watermarked images",
    "realism": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 4,
      "lighting_shadows": 4,
      "artifacts": 4,
      "fit_to_room": 5
     },
     "notes": {
      "furniture_realism": "Grey sofa, two armchairs, sideboard and shelving look like real products.",
      "scale_perspective": "Sofa, rug and chairs are sized right and leave the kitchen walkway clear.",
      "lighting_shadows": "Daylight matches; contact shadows under the sofa are faint, so it sits slightly light on the floor.",
      "artifacts": "No melted or floating items; the large central collov.ai logo is the main blemish.",
      "fit_to_room": "Living zone staged and kitchen untouched, which suits an open-plan room."
     },
     "mean": 4.2
    }
   },
   "outputs": {
    "01-open-plan-kitchen-living.jpg": "results/collov/01-aligned.jpg",
    "02-room-with-doorway.jpg": "results/collov/02-aligned.jpg",
    "03-room-passage-desk.jpg": "results/collov/03-aligned.jpg",
    "04-attic-odd-windows.jpg": "results/collov/04.jpg",
    "05-bay-window-fireplace.jpg": "results/collov/05-aligned.jpg"
   },
   "access": "free tier",
   "affiliate": false,
   "pricing": {
    "model": "subscription (credits)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Standard (monthly)",
     "price": 27,
     "billing_period": "month",
     "photos_included": 60,
     "note": "$19/mo if billed yearly ($228)"
    },
    "per_photo_cheapest": 0.45,
    "per_photo_cheapest_usd": 0.45,
    "mid_plan": "Advanced ($59/mo, 150 credits; $49/mo yearly)",
    "per_photo_mid": 0.39,
    "per_photo_mid_usd": 0.39,
    "free_tier": "5 free trial images with watermark",
    "watermark_on_free": true,
    "max_resolution": null,
    "turnaround": "10-second turnaround (vendor claim)",
    "turnaround_type": "instant AI",
    "refund_policy": "Full refund within 7 days if fewer than 10 photos were uploaded",
    "redo_policy": "Unlimited regeneration (4 renders per version)",
    "has_affiliate_program": true,
    "affiliate_url": "https://collov.ai/affiliate",
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Yearly billing: $0.32/photo (Standard) and $0.33 (Advanced). Credits reset monthly. 'High-resolution downloads' (no pixel size given); our free outputs were about 1.1 MP."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": true,
    "day_to_dusk": true,
    "sky_replacement": true,
    "renovation_recolor": true,
    "tour_360_video": true,
    "api": true,
    "mls_disclaimer": true,
    "commercial_license": true
   },
   "sources": [
    {
     "url": "https://collov.ai/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "turnaround",
      "refund_policy",
      "redo_policy",
      "features"
     ],
     "note": "monthly prices read after switching the toggle to MONTHLY; day-to-dusk, rain/cloud removal, wall/floor edits from Advanced; 360/virtual tour and API on Premium/Enterprise"
    },
    {
     "url": "https://collov.ai/affiliate",
     "checked": "2026-10-19",
     "covers": [
      "has_affiliate_program"
     ]
    }
   ],
   "rooms": [
    {
     "room": "02",
     "photo": "02-room-with-doorway.jpg",
     "tested": "2026-10-19",
     "seconds": 19.8,
     "seconds_approx": false,
     "seconds_text": "19.8 s",
     "watermark": "Yes: big central collov.ai logo",
     "output_resolution": "1195x896",
     "original_resolution": "1280x960",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 27,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 1.0059,
      "shift_px": [
       -0.2,
       -2.6
      ],
      "rotation_deg": -0.397,
      "visible_overlap_pct": 98.91,
      "invented_area_pct": 0.08
     },
     "architecture_drift": 24.1,
     "raw_drift": 26.1,
     "drift_aligned": true,
     "compare": "results/collov/02-compare.jpg",
     "aligned": "results/collov/02-aligned.jpg",
     "output": "results/collov/02.jpg",
     "score_json": "results/collov/02-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 4,
       "lighting_shadows": 4,
       "artifacts": 3,
       "fit_to_room": 4
      },
      "notes": {
       "furniture_realism": "Tan leather sofa, gold side tables and grey armchair look real.",
       "scale_perspective": "Plausible sizes; the armchair is cut off in the foreground.",
       "lighting_shadows": "Matches the original daylight.",
       "artifacts": "A dark slab appears at the left wall edge, and the next room was furnished too (dining table, art), beyond the room in the photo.",
       "fit_to_room": "Desk and book piles removed and staged as a living room, which suits the room."
      },
      "mean": 3.8
     },
     "note": "Framing passes. Removed the desk and book piles (clutter, allowed) and also furnished the room seen through the doorway."
    },
    {
     "room": "03",
     "photo": "03-room-passage-desk.jpg",
     "tested": "2026-10-19",
     "seconds": 18.6,
     "seconds_approx": false,
     "seconds_text": "18.6 s",
     "watermark": "Yes: big central collov.ai logo",
     "output_resolution": "1195x896",
     "original_resolution": "1280x960",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 41,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 1.0014,
      "shift_px": [
       -0.2,
       -0.8
      ],
      "rotation_deg": -0.012,
      "visible_overlap_pct": 99.95,
      "invented_area_pct": 0.0
     },
     "architecture_drift": 21.7,
     "raw_drift": 22.4,
     "drift_aligned": true,
     "compare": "results/collov/03-compare.jpg",
     "aligned": "results/collov/03-aligned.jpg",
     "output": "results/collov/03.jpg",
     "score_json": "results/collov/03-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 4,
       "lighting_shadows": 4,
       "artifacts": 4,
       "fit_to_room": 4
      },
      "notes": {
       "furniture_realism": "Sideboard, wooden desk, office chair and framed prints look real.",
       "scale_perspective": "Sizes are fine; the pale rug in the foreground looks like a flat panel.",
       "lighting_shadows": "Daylight matches.",
       "artifacts": "Ladder and floor mat removed (fine), but the next room was also staged with a rug and coffee table.",
       "fit_to_room": "Home-office set-up suits a small room."
      },
      "mean": 4.0
     },
     "note": "Framing passes. Replaced the original desk and chair with its own; staged the next room as well."
    },
    {
     "room": "04",
     "photo": "04-attic-odd-windows.jpg",
     "tested": "2026-10-19",
     "seconds": 22.0,
     "seconds_approx": false,
     "seconds_text": "22.0 s",
     "watermark": "Yes: big central collov.ai logo",
     "output_resolution": "1488x718",
     "original_resolution": "1920x926",
     "aspect_ratio_kept": true,
     "alignment_ok": false,
     "alignment_inliers": 21,
     "framing_pass": null,
     "framing": "unknown (alignment failed)",
     "framing_detail": null,
     "architecture_drift": 56.5,
     "raw_drift": 56.5,
     "drift_aligned": false,
     "compare": "results/collov/04-compare.jpg",
     "aligned": "results/collov/04-aligned.jpg",
     "output": "results/collov/04.jpg",
     "score_json": "results/collov/04-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 3,
       "lighting_shadows": 4,
       "artifacts": 3,
       "fit_to_room": 5
      },
      "notes": {
       "furniture_realism": "Bed, bedding, sideboard, stool and plant look real.",
       "scale_perspective": "An oversized bed is squeezed between the foreground pillar and the knee wall.",
       "lighting_shadows": "Soft daylight matches the skylights.",
       "artifacts": "The bare bulb became a pendant shade and a second pendant was added by the pillar; chairs, boxes and the leaning board were removed.",
       "fit_to_room": "Attic staged as a bedroom, a sensible use."
      },
      "mean": 3.8
     },
     "note": "Alignment failed under method v0.2 (21 inlier matches, 25 needed), so framing is unknown and the 56.5 drift is unaligned. Collov removed almost everything in the left half and the white walls have few features (164 keypoints), so all matches sit on the skylights and right wall. A diagnostic re-run with a looser SIFT ratio (0.8, 26 inliers) lines the pillars and skylights up and gives zoom 0.986 (about 1.5% zoomed out), +21 px shift, +0.31° rotation and about 3% newly drawn area at the left: framing would fail, and aligned drift would be 22.2. The output is 1488x718, the same 2.07:1 shape as the 1920x926 original, so it is downscaled, not cropped. The diagnostic is not an official v0.2 score.",
     "diagnostic": {
      "what": "DIAGNOSTIC: SIFT ratio 0.8, not method v0.2",
      "framing": "fail: zoom 0.985; 3.0% of the output is outside the original frame",
      "drift": 22.2,
      "inliers": 26,
      "compare": "results/collov/04-diag-compare.jpg",
      "score_json": "results/collov/04-diag-score.json"
     }
    },
    {
     "room": "05",
     "photo": "05-bay-window-fireplace.jpg",
     "tested": "2026-10-19",
     "seconds": 27,
     "seconds_approx": true,
     "seconds_text": "about 24-30 s",
     "watermark": "Yes: big central collov.ai logo",
     "output_resolution": "1180x912",
     "original_resolution": "1920x1484",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 45,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 1.0016,
      "shift_px": [
       0.7,
       -1.1
      ],
      "rotation_deg": -0.118,
      "visible_overlap_pct": 99.84,
      "invented_area_pct": 0.03
     },
     "architecture_drift": 21.4,
     "raw_drift": 22.3,
     "drift_aligned": true,
     "compare": "results/collov/05-compare.jpg",
     "aligned": "results/collov/05-aligned.jpg",
     "output": "results/collov/05.jpg",
     "score_json": "results/collov/05-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 3,
       "lighting_shadows": 3,
       "artifacts": 1,
       "fit_to_room": 4
      },
      "notes": {
       "furniture_realism": "Sofa, round wooden table, pouf and side table look real.",
       "scale_perspective": "The sofa sits where the raised bay platform used to be.",
       "lighting_shadows": "The sunlight patches on the floor are gone and the room is lit evenly.",
       "artifacts": "The two steps up to the window bay were removed and the floor made flat, which changes the floor plan; a brass pendant hangs in front of the window.",
       "fit_to_room": "Living room around the fireplace suits the room."
      },
      "mean": 3.0
     },
     "note": "Framing passes and drift is low (21.4) because the automatic check only looks at the top 65% of the frame. It misses the biggest change: the two steps up to the bay are gone. Misrepresentation risk."
    }
   ],
   "rooms_tested": 5
  },
  {
   "id": "apply-design",
   "name": "Apply Design",
   "url": "https://www.applydesign.io/",
   "kind": "AI + DIY editor",
   "free_trial": "First image free",
   "try_without_account": "No",
   "room01": {
    "tested": "2026-10-19",
    "seconds": 585,
    "seconds_approx": true,
    "watermark": "No",
    "output_resolution": "2400x1792",
    "resolution_kept": true,
    "aspect_ratio_kept": true,
    "free_tier": "1 free credit (first image)",
    "framing_pass": true,
    "framing": "pass",
    "framing_detail": {
     "zoom": 1.0,
     "shift_px": [
      0.1,
      -0.0
     ],
     "shift_pct": [
      0.01,
      -0.0
     ],
     "rotation_deg": -0.01,
     "visible_overlap_pct": 99.74,
     "invented_area_pct": 0.0
    },
    "architecture_drift": 17.2,
    "raw_drift": 13.8,
    "compare": "results/applydesign/01-compare.jpg",
    "aligned": "results/applydesign/01-aligned.jpg",
    "output": "results/applydesign/01.png",
    "score_json": "results/applydesign/01-score.json",
    "note": "Kept the frame, no watermark, larger output. Slowest by far: about 585 s (almost 10 minutes) for one image, and the free tier is a single credit.",
    "watermark_short": "No",
    "free_tier_short": "1 free credit",
    "realism": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 4,
      "lighting_shadows": 3,
      "artifacts": 5,
      "fit_to_room": 4
     },
     "notes": {
      "furniture_realism": "Curved red velvet sofa, round wooden table and armchair look like real designer pieces.",
      "scale_perspective": "Believable sizes, though the sofa runs across the front of the bathroom doorway.",
      "lighting_shadows": "The whole photo was warmed to an amber tone, so it no longer matches the original daylight.",
      "artifacts": "Clean: no warped objects, no watermark, original chair kept intact.",
      "fit_to_room": "Seating area fits the living zone; the kitchen is left as is."
     },
     "mean": 4.0
    }
   },
   "outputs": {
    "01-open-plan-kitchen-living.jpg": "results/applydesign/01-aligned.jpg"
   },
   "access": "free tier",
   "affiliate": false,
   "pricing": {
    "model": "credits (Apply Coins)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Apply Coins, up to 9",
     "price": 10,
     "billing_period": "one-time (per coin)",
     "photos_included": null,
     "note": "One-click staging costs 1.5 coins per 2D image (DIY editor: 1 coin)"
    },
    "per_photo_cheapest": 15.0,
    "per_photo_cheapest_usd": 15.0,
    "mid_plan": "10-19 coins at $8 (1.5 coins per image)",
    "per_photo_mid": 12.0,
    "per_photo_mid_usd": 12.0,
    "free_tier": "First image free",
    "watermark_on_free": false,
    "max_resolution": null,
    "turnaround": "15-minute turnaround (vendor claim); our run took about 585 s",
    "turnaround_type": "AI + human/DIY minutes",
    "refund_policy": "100% money-back guarantee",
    "redo_policy": "On-the-spot revisions",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "20+ coins at $7 gives $10.50 per one-click image. 360 images: 2.5 coins."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": true,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.applydesign.io/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "turnaround",
      "refund_policy",
      "redo_policy",
      "features.declutter",
      "features.tour_360_video"
     ],
     "note": "'Item removal included'; 360 image pricing"
    },
    {
     "url": "data/test_log.md",
     "checked": "2026-10-19",
     "covers": [
      "watermark_on_free"
     ],
     "note": "our own room 01 run: no watermark"
    }
   ],
   "rooms_tested": 1
  },
  {
   "id": "boxbrownie",
   "name": "BoxBrownie",
   "url": "https://www.boxbrownie.com/",
   "kind": "Human editors",
   "free_trial": "1 free staging edit",
   "try_without_account": "No",
   "pricing": {
    "model": "per photo",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Virtual staging, pay as you go",
     "price": 30,
     "billing_period": "per photo",
     "photos_included": 1,
     "note": "No subscription"
    },
    "per_photo_cheapest": 30.0,
    "per_photo_cheapest_usd": 30.0,
    "mid_plan": "Flat price (no volume tier listed)",
    "per_photo_mid": 30.0,
    "per_photo_mid_usd": 30.0,
    "free_tier": "1 free virtual staging edit for new accounts (landing page); new accounts also get 3 image enhancements + 1 day-to-dusk",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": "Under 48 hours",
    "turnaround_type": "human hours",
    "refund_policy": null,
    "redo_policy": "Unlimited changes at no extra cost if requested within 2 months",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "EU visitors see EUR prices (EUR 21.00 for virtual staging)."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": true,
    "sky_replacement": null,
    "renovation_recolor": true,
    "tour_360_video": true,
    "api": true,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.boxbrownie.com/virtual-staging",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "turnaround",
      "redo_policy",
      "features"
     ],
     "note": "item removal $5-10, day to dusk $5, virtual renovation, 360 staging $60, virtual tours; API Documentation link in the site menu"
    },
    {
     "url": "https://www.boxbrownie.com/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing"
     ]
    },
    {
     "url": "https://www.boxbrownie.com/virtual-staging-3",
     "checked": "2026-10-19",
     "covers": [
      "free_tier"
     ]
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "styldod",
   "name": "Styldod",
   "url": "https://www.styldod.com/",
   "kind": "Human + AI",
   "free_trial": "Free trial designs",
   "try_without_account": "No",
   "pricing": {
    "model": "per photo",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Standard (fewer than 8 images)",
     "price": 23,
     "billing_period": "per photo",
     "photos_included": 1,
     "note": null
    },
    "per_photo_cheapest": 23.0,
    "per_photo_cheapest_usd": 23.0,
    "mid_plan": "Bulk order (8+ images)",
    "per_photo_mid": 16.0,
    "per_photo_mid_usd": 16.0,
    "free_tier": "Free trial: 5 free AI designs (via sister product REimagineHome) or a free expert-service trial",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": "24-48 hours (rush: 24 h +$6, 12 h +$12 per image)",
    "turnaround_type": "human hours",
    "refund_policy": "100% money-back guarantee if not satisfied",
    "redo_policy": "Unlimited free revisions",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Self-serve AI staging redirects to REimagineHome (same company)."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": true,
    "sky_replacement": null,
    "renovation_recolor": true,
    "tour_360_video": true,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.styldod.com/virtual-staging",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "turnaround",
      "refund_policy",
      "redo_policy",
      "features"
     ],
     "note": "Occupied to vacant from $15, day to dusk from $4, virtual renovation from $5, 360 tours and videos"
    },
    {
     "url": "https://www.styldod.com/free-trial",
     "checked": "2026-10-19",
     "covers": [
      "free_tier"
     ]
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "rooomy",
   "name": "roOomy",
   "url": "https://www.rooomy.com/",
   "kind": "Human editors",
   "free_trial": "No free trial",
   "try_without_account": "—",
   "pricing": {
    "model": "per photo",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Virtual staging (no rework)",
     "price": 49,
     "billing_period": "per photo",
     "photos_included": 1,
     "note": null
    },
    "per_photo_cheapest": 49.0,
    "per_photo_cheapest_usd": 49.0,
    "mid_plan": "Virtual staging with complimentary rework",
    "per_photo_mid": 69.0,
    "per_photo_mid_usd": 69.0,
    "free_tier": "None found",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": null,
    "turnaround_type": "human hours",
    "refund_policy": null,
    "redo_policy": "Rework only on the $69 option",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Furniture removal ('cleaning') $40; virtual renovation $139; Matterport staging from $434. roOomy is part of VS24, Inc., the same group as virtualstaging.ai."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": true,
    "tour_360_video": true,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://rooomy.com/order/",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "redo_policy",
      "features"
     ]
    },
    {
     "url": "https://www.virtualstaging.ai/pricing",
     "checked": "2026-10-19",
     "covers": [
      "notes"
     ],
     "note": "footer: VS24, Inc. lists virtualstaging.com, roOomy.com, virtualstaging.ai"
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "stuccco",
   "name": "Stuccco",
   "url": "https://www.stuccco.com/",
   "kind": "Human editors",
   "free_trial": "1 free photo (coupon)",
   "try_without_account": "No",
   "pricing": {
    "model": "per photo",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Pay as you go",
     "price": 35,
     "billing_period": "per photo",
     "photos_included": 1,
     "note": "Example price for 'Add Furniture/Decor'"
    },
    "per_photo_cheapest": 35.0,
    "per_photo_cheapest_usd": 35.0,
    "mid_plan": "Essential bundle (prepay $399)",
    "per_photo_mid": 28.0,
    "per_photo_mid_usd": 28.0,
    "free_tier": "None on official pages (a coupon offer is on a third-party site)",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": "24 hours, 7 days a week (12-24 h)",
    "turnaround_type": "human hours",
    "refund_policy": "Full refund if requested within 60 days (homepage)",
    "redo_policy": "Unlimited revisions (within 30 days, same room type)",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Plus bundle (prepay $799): $24.50/photo. Optional 'Virtually Staged' disclosure watermark."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": true,
    "sky_replacement": null,
    "renovation_recolor": true,
    "tour_360_video": null,
    "api": null,
    "mls_disclaimer": true,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.stuccco.com/virtual-staging/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "turnaround",
      "redo_policy",
      "features.mls_disclaimer"
     ]
    },
    {
     "url": "https://www.stuccco.com/",
     "checked": "2026-10-19",
     "covers": [
      "refund_policy",
      "redo_policy",
      "features"
     ],
     "note": "remove items, wall/floor/cabinet changes, day to dusk"
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "photoup",
   "name": "PhotoUp",
   "url": "https://www.photoup.net/",
   "kind": "Human + AI",
   "free_trial": "5 free credits",
   "try_without_account": "No",
   "pricing": {
    "model": "credits (on-demand or subscription)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "On-demand credits",
     "price": 1.5,
     "billing_period": "per credit",
     "photos_included": null,
     "note": "AI virtual staging costs 3+ credits per image"
    },
    "per_photo_cheapest": 4.5,
    "per_photo_cheapest_usd": 4.5,
    "mid_plan": "Starter monthly ($49/mo, 50 credits; $39/mo paid quarterly)",
    "per_photo_mid": 2.94,
    "per_photo_mid_usd": 2.94,
    "free_tier": "5 free credits (enough for 1 AI staged image)",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": null,
    "turnaround_type": null,
    "refund_policy": null,
    "redo_policy": null,
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "'3+ credits/image', so per-photo prices are minimums."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": true,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.photoup.net/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "features.tour_360_video"
     ],
     "note": "monthly prices are in the page HTML ($49/$129/$399); quarterly shown by default"
    },
    {
     "url": "https://www.photoup.net/ai-virtual-staging",
     "checked": "2026-10-19",
     "covers": [
      "features.declutter"
     ]
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "virtualstaging-ai",
   "name": "virtualstaging.ai",
   "url": "https://www.virtualstaging.ai/",
   "kind": "AI",
   "free_trial": "2 credits after email confirmation",
   "try_without_account": "No",
   "room01": {
    "tested": "2026-10-19",
    "seconds": 38.7,
    "seconds_approx": false,
    "watermark": "No",
    "output_resolution": "1280x960",
    "resolution_kept": true,
    "aspect_ratio_kept": true,
    "free_tier": "2 free credits after email confirmation",
    "framing_pass": false,
    "framing": "fail: zoom 0.990; rotated -0.76 deg; 2.9% of the output is outside the original frame",
    "framing_detail": {
     "zoom": 0.9898,
     "shift_px": [
      4.5,
      15.0
     ],
     "shift_pct": [
      0.35,
      1.57
     ],
     "rotation_deg": -0.755,
     "visible_overlap_pct": 98.92,
     "invented_area_pct": 2.94
    },
    "architecture_drift": 28.2,
    "raw_drift": 40.6,
    "compare": "results/virtualstaging-ai/01-compare.jpg",
    "aligned": "results/virtualstaging-ai/01-aligned.jpg",
    "output": "results/virtualstaging-ai/01.jpg",
    "score_json": "results/virtualstaging-ai/01-score.json",
    "note": "Highest architecture drift on room 01. The column is moved and the soffit is changed, which you can see in the comparison. It also zoomed out slightly and rotated about 0.8°, so framing fails. No watermark, same resolution as the original.",
    "watermark_short": "No",
    "free_tier_short": "2 credits after email confirmation",
    "realism": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 3,
      "lighting_shadows": 4,
      "artifacts": 2,
      "fit_to_room": 4
     },
     "notes": {
      "furniture_realism": "Sofa, armchairs, round coffee table and art look photoreal.",
      "scale_perspective": "A very large sofa plus a second sofa cut off at the bottom edge crowd the room; a dining table is cut off at the right.",
      "lighting_shadows": "Warm, consistent light with soft shadows.",
      "artifacts": "The building changed: the column moved left and the soffit and kitchen-side wall were redrawn.",
      "fit_to_room": "Living plus dining set-up suits open plan."
     },
     "mean": 3.4
    }
   },
   "outputs": {
    "01-open-plan-kitchen-living.jpg": "results/virtualstaging-ai/01-aligned.jpg"
   },
   "access": "free tier",
   "affiliate": false,
   "pricing": {
    "model": "subscription (credits)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Starter",
     "price": 25,
     "billing_period": "month",
     "photos_included": 20,
     "note": "Credits roll over for 3 months"
    },
    "per_photo_cheapest": 1.25,
    "per_photo_cheapest_usd": 1.25,
    "mid_plan": "Studio ($49/mo, 50 photos)",
    "per_photo_mid": 0.98,
    "per_photo_mid_usd": 0.98,
    "free_tier": "Free account, no card; our account got 2 credits after email confirmation",
    "watermark_on_free": false,
    "max_resolution": null,
    "turnaround": "Seconds to under a minute (vendor claim); our run 38.7 s",
    "turnaround_type": "instant AI",
    "refund_policy": "Refund within 7 days if no more than 15 images were generated",
    "redo_policy": "Unlimited revisions per image",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Unlimited plan $39/mo (fair use, own listings only) sits between Starter and Studio; yearly billing advertises 40% off."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": true,
    "api": null,
    "mls_disclaimer": true,
    "commercial_license": true
   },
   "sources": [
    {
     "url": "https://www.virtualstaging.ai/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "refund_policy",
      "redo_policy",
      "watermark_on_free",
      "features"
     ],
     "note": "'Our images are always watermark-free'; listing videos with a 'Virtually staged' tag"
    },
    {
     "url": "https://www.virtualstaging.ai/",
     "checked": "2026-10-19",
     "covers": [
      "turnaround",
      "free_tier",
      "features.commercial_license"
     ],
     "note": "'You get full copyright to all images we generate'"
    }
   ],
   "rooms_tested": 1
  },
  {
   "id": "pedra",
   "name": "Pedra",
   "url": "https://pedra.ai/",
   "kind": "AI",
   "free_trial": "6 credits at signup",
   "try_without_account": "Yes",
   "room01": {
    "tested": "2026-10-19",
    "seconds": 35,
    "seconds_approx": true,
    "watermark": "Yes: \"Made with Pedra.ai\"",
    "output_resolution": "2048x1536",
    "resolution_kept": true,
    "aspect_ratio_kept": true,
    "free_tier": "6 free credits at signup; free download up to 2048x1536",
    "framing_pass": false,
    "framing": "fail: zoom 0.987; 2.5% of the output is outside the original frame",
    "framing_detail": {
     "zoom": 0.9871,
     "shift_px": [
      5.5,
      6.1
     ],
     "shift_pct": [
      0.43,
      0.63
     ],
     "rotation_deg": -0.48,
     "visible_overlap_pct": 99.88,
     "invented_area_pct": 2.46
    },
    "architecture_drift": 27.1,
    "raw_drift": 37.6,
    "compare": "results/pedra/01-compare.jpg",
    "aligned": "results/pedra/01-aligned.jpg",
    "output": "results/pedra/01.jpg",
    "score_json": "results/pedra/01-score.json",
    "note": "Framing fails: zoomed out by about 1.3% and rotated about 0.5°, so roughly 2.5% of the image at the edges is newly drawn. After alignment the walls, column and doorway line up, but parts of the kitchen are redrawn and wall decor adds edges, so architecture drift stays high (27.1). Alignment explains about 10 of the 37.6 raw points.",
    "watermark_short": "Yes (badge)",
    "free_tier_short": "6 credits at signup",
    "realism": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 4,
      "lighting_shadows": 3,
      "artifacts": 3,
      "fit_to_room": 5
     },
     "notes": {
      "furniture_realism": "Sectional, armchair, coffee table and dining set look like real products.",
      "scale_perspective": "The sectional is large but believable; it stands in front of the column.",
      "lighting_shadows": "Relit as a warm evening scene with lamps on, unlike the daylight original.",
      "artifacts": "Adds fixtures that aren't in the flat: a pendant lamp over a new dining table and under-cabinet kitchen lights.",
      "fit_to_room": "Separate living and dining zones suit the open-plan room."
     },
     "mean": 3.8
    }
   },
   "outputs": {
    "01-open-plan-kitchen-living.jpg": "results/pedra/01-aligned.jpg",
    "02-room-with-doorway.jpg": "results/pedra/02-aligned.jpg",
    "03-room-passage-desk.jpg": "results/pedra/03-aligned.jpg",
    "04-attic-odd-windows.jpg": "results/pedra/04.jpg",
    "05-bay-window-fireplace.jpg": "results/pedra/05-aligned.jpg",
    "06-bedroom-single-window.jpg": "results/pedra/06-aligned.jpg"
   },
   "access": "free tier",
   "affiliate": false,
   "pricing": {
    "model": "subscription (credits)",
    "currency": "EUR",
    "cheapest_plan": {
     "name": "Pro Monthly",
     "price": 29,
     "billing_period": "month",
     "photos_included": 100,
     "note": "1 credit per staged photo"
    },
    "per_photo_cheapest": 0.29,
    "per_photo_cheapest_usd": 0.33,
    "mid_plan": "300 credits/month (EUR 75)",
    "per_photo_mid": 0.25,
    "per_photo_mid_usd": 0.28,
    "free_tier": "7 image credits + 1 video + 1 virtual tour at signup, no card (our account got 6); free no-signup tool on pedra.ai/free-tools",
    "watermark_on_free": true,
    "max_resolution": "2048 px (Large) on our free download",
    "turnaround": null,
    "turnaround_type": "instant AI",
    "refund_policy": null,
    "redo_policy": "Thumbs-down a bad result and you may get the credit back",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": "USD figures converted at ECB 1.1253 USD/EUR (2026-10-16)",
    "notes": "Annual: EUR 239/yr for 1,200 credits (about EUR 0.20/photo). The page's own table rounds 100 credits to EUR 0.28/credit."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": true,
    "renovation_recolor": true,
    "tour_360_video": true,
    "api": true,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://pedra.ai/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "redo_policy",
      "features"
     ],
     "note": "'Furnish, empty, renovate'; 'HD, perspectives, skies'; videos, 360 tours; API Integration"
    },
    {
     "url": "data/test_log.md",
     "checked": "2026-10-19",
     "covers": [
      "watermark_on_free",
      "max_resolution"
     ],
     "note": "our own runs"
    }
   ],
   "rooms": [
    {
     "room": "02",
     "photo": "02-room-with-doorway.jpg",
     "tested": "2026-10-19",
     "seconds": 30,
     "seconds_approx": true,
     "seconds_text": "about 30 s (rough)",
     "watermark": "Yes: \"Made with Pedra.ai\"",
     "output_resolution": "2048x1536",
     "original_resolution": "1280x960",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 74,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 0.9971,
      "shift_px": [
       2.2,
       1.8
      ],
      "rotation_deg": -0.015,
      "visible_overlap_pct": 100.0,
      "invented_area_pct": 0.39
     },
     "architecture_drift": 26.6,
     "raw_drift": 27.7,
     "drift_aligned": true,
     "compare": "results/pedra/02-compare.jpg",
     "aligned": "results/pedra/02-aligned.jpg",
     "output": "results/pedra/02.jpg",
     "score_json": "results/pedra/02-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 4,
       "lighting_shadows": 3,
       "artifacts": 4,
       "fit_to_room": 4
      },
      "notes": {
       "furniture_realism": "Boucle sofa, armchair, coffee table, wall shelves and art look like real products.",
       "scale_perspective": "Sizes are fine; furniture sits close to the camera and fills the foreground.",
       "lighting_shadows": "Relit as a dim, warm evening with lamps on, while the windows still show daylight.",
       "artifacts": "Kept the original desk and chair (book piles cleared); the next room got a rug and side table too.",
       "fit_to_room": "Living room set-up suits the room."
      },
      "mean": 3.8
     },
     "note": "Framing passes. Furnish / Modern / Whole photo."
    },
    {
     "room": "03",
     "photo": "03-room-passage-desk.jpg",
     "tested": "2026-10-19",
     "seconds": 38.6,
     "seconds_approx": false,
     "seconds_text": "38.6 s",
     "watermark": "Yes: \"Made with Pedra.ai\"",
     "output_resolution": "2048x1536",
     "original_resolution": "1280x960",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 37,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 0.9942,
      "shift_px": [
       0.1,
       4.0
      ],
      "rotation_deg": 0.029,
      "visible_overlap_pct": 99.87,
      "invented_area_pct": 1.07
     },
     "architecture_drift": 33.5,
     "raw_drift": 34.5,
     "drift_aligned": true,
     "compare": "results/pedra/03-compare.jpg",
     "aligned": "results/pedra/03-aligned.jpg",
     "output": "results/pedra/03.jpg",
     "score_json": "results/pedra/03-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 4,
       "lighting_shadows": 3,
       "artifacts": 4,
       "fit_to_room": 4
      },
      "notes": {
       "furniture_realism": "Desk, upholstered chair, shelving, art and sofa look real.",
       "scale_perspective": "Believable sizes; the original desk is kept in place.",
       "lighting_shadows": "Warm lamp-lit relight while the windows show bright daylight.",
       "artifacts": "Ladder and mat removed; the next room was furnished too (sofa, table, plant).",
       "fit_to_room": "Home office plus seating suits the room."
      },
      "mean": 3.8
     },
     "note": "Framing passes; drift 33.5 is the highest of Pedra's rooms, partly from new shelving and art on the walls."
    },
    {
     "room": "04",
     "photo": "04-attic-odd-windows.jpg",
     "tested": "2026-10-19",
     "seconds": 40,
     "seconds_approx": true,
     "seconds_text": "about 40 s (±3)",
     "watermark": "Yes: \"Made with Pedra.ai\"",
     "output_resolution": "2048x988",
     "original_resolution": "1920x926",
     "aspect_ratio_kept": true,
     "alignment_ok": false,
     "alignment_inliers": 14,
     "framing_pass": null,
     "framing": "unknown (alignment failed)",
     "framing_detail": null,
     "architecture_drift": 28.8,
     "raw_drift": 28.8,
     "drift_aligned": false,
     "compare": "results/pedra/04-compare.jpg",
     "aligned": "results/pedra/04-aligned.jpg",
     "output": "results/pedra/04.jpg",
     "score_json": "results/pedra/04-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 4,
       "lighting_shadows": 3,
       "artifacts": 4,
       "fit_to_room": 5
      },
      "notes": {
       "furniture_realism": "King bed, bench, two armchairs and dresser look real.",
       "scale_perspective": "Bed and armchairs are well sized for the attic.",
       "lighting_shadows": "Warm interior relight under bright skylights.",
       "artifacts": "Bare bulb replaced with a drum pendant; clutter and the leaning board removed; no warped objects.",
       "fit_to_room": "Attic staged as a bedroom."
      },
      "mean": 4.0
     },
     "note": "Pedra flagged this photo as a 360 image; we kept it flat. Alignment failed (14 inlier matches, 25 needed; a looser diagnostic also fails), so framing is unknown and drift (28.8) is unaligned. By eye the skylights and pillars sit where they are in the original."
    },
    {
     "room": "05",
     "photo": "05-bay-window-fireplace.jpg",
     "tested": "2026-10-19",
     "seconds": 37.6,
     "seconds_approx": false,
     "seconds_text": "37.6 s",
     "watermark": "Yes: \"Made with Pedra.ai\"",
     "output_resolution": "2048x1578",
     "original_resolution": "1920x1484",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 127,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 0.9996,
      "shift_px": [
       0.5,
       -1.3
      ],
      "rotation_deg": -0.046,
      "visible_overlap_pct": 99.87,
      "invented_area_pct": 0.0
     },
     "architecture_drift": 22.5,
     "raw_drift": 21.0,
     "drift_aligned": true,
     "compare": "results/pedra/05-compare.jpg",
     "aligned": "results/pedra/05-aligned.jpg",
     "output": "results/pedra/05.jpg",
     "score_json": "results/pedra/05-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 4,
       "lighting_shadows": 3,
       "artifacts": 4,
       "fit_to_room": 5
      },
      "notes": {
       "furniture_realism": "Sofa, armchairs, coffee table, plants and art look real.",
       "scale_perspective": "Keeps the two steps; furniture sits correctly on the platform and on the lower floor.",
       "lighting_shadows": "Relit warm with lamps on, and a fire was lit in the stove.",
       "artifacts": "Architecture preserved, including the steps that Collov removed; the lit fire and wall art are additions only.",
       "fit_to_room": "Living room around the fireplace and bay suits the room."
      },
      "mean": 4.0
     },
     "note": "Framing passes. Unlike Collov, Pedra kept the steps up to the bay."
    },
    {
     "room": "06",
     "photo": "06-bedroom-single-window.jpg",
     "tested": "2026-10-19",
     "seconds": 53,
     "seconds_approx": true,
     "seconds_text": "about 53 s",
     "watermark": "Yes: \"Made with Pedra.ai\"",
     "output_resolution": "2048x1621",
     "original_resolution": "1920x1528",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 100,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 0.9969,
      "shift_px": [
       -0.5,
       1.7
      ],
      "rotation_deg": -0.06,
      "visible_overlap_pct": 99.69,
      "invented_area_pct": 0.19
     },
     "architecture_drift": 21.3,
     "raw_drift": 19.6,
     "drift_aligned": true,
     "compare": "results/pedra/06-compare.jpg",
     "aligned": "results/pedra/06-aligned.jpg",
     "output": "results/pedra/06.jpg",
     "score_json": "results/pedra/06-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 4,
       "lighting_shadows": 3,
       "artifacts": 5,
       "fit_to_room": 5
      },
      "notes": {
       "furniture_realism": "Bed, bench, dresser, armchair and curtains look real.",
       "scale_perspective": "Bed and bench are sized correctly for the room.",
       "lighting_shadows": "Warm lamp light inside while daylight shows outside the window.",
       "artifacts": "No warped or floating items; curtains were added at the window.",
       "fit_to_room": "Bedroom staging fits a bedroom."
      },
      "mean": 4.2
     },
     "note": "Framing passes."
    }
   ],
   "free_credits_left": 0,
   "rooms_tested": 6
  },
  {
   "id": "roomagen",
   "name": "Roomagen",
   "url": "https://roomagen.com/",
   "kind": "AI",
   "free_trial": "6 credits (~3 images)",
   "try_without_account": "No",
   "room01": {
    "tested": "2026-10-19",
    "seconds": 45,
    "seconds_approx": true,
    "watermark": "Yes: heavy tiled watermark + \"Generated using Roomagen.com\" badge",
    "output_resolution": "2400x1792",
    "resolution_kept": true,
    "aspect_ratio_kept": true,
    "free_tier": "Advertised: 6 one-time credits (3 images), '2K on your first edit, then 1K'. Observed: the balance showed 4 credits after email verification and one 2-credit run took it to 0, so 2 credits are unaccounted for. Room 02 at the 2K setting downloaded at 1200x896. 4K is Pro only.",
    "framing_pass": true,
    "framing": "pass",
    "framing_detail": {
     "zoom": 1.0001,
     "shift_px": [
      0.0,
      -0.0
     ],
     "shift_pct": [
      0.0,
      -0.0
     ],
     "rotation_deg": -0.0,
     "visible_overlap_pct": 99.74,
     "invented_area_pct": 0.0
    },
    "architecture_drift": 15.3,
    "raw_drift": 15.5,
    "compare": "results/roomagen/01-compare.jpg",
    "aligned": "results/roomagen/01-aligned.jpg",
    "output": "results/roomagen/01.jpg",
    "score_json": "results/roomagen/01-score.json",
    "note": "Kept the frame, low drift. The heavy tiled watermark makes the free output hard to use in a listing. Time is approximate (30–57 s observed).",
    "watermark_short": "Yes (heavy tiled + badge)",
    "free_tier_short": "6 credits advertised (4 seen)",
    "realism": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 4,
      "lighting_shadows": 5,
      "artifacts": 4,
      "fit_to_room": 4
     },
     "notes": {
      "furniture_realism": "Grey sofa, armchair, ladder shelf and rug look real.",
      "scale_perspective": "Sizes are right, but a console table and lamp sit across the passage behind the column.",
      "lighting_shadows": "Keeps the original daylight; shadows under the sofa and armchair look natural.",
      "artifacts": "No melted or floating objects; the heavy hexagon watermark covers everything.",
      "fit_to_room": "Living zone staged, kitchen left alone."
     },
     "mean": 4.2
    }
   },
   "outputs": {
    "01-open-plan-kitchen-living.jpg": "results/roomagen/01-aligned.jpg",
    "02-room-with-doorway.jpg": "results/roomagen/02-aligned.jpg"
   },
   "access": "free tier",
   "affiliate": false,
   "pricing": {
    "model": "subscription (credits)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Starter",
     "price": 12,
     "billing_period": "month",
     "photos_included": 30,
     "note": "60 credits; every tool costs 2 credits"
    },
    "per_photo_cheapest": 0.4,
    "per_photo_cheapest_usd": 0.4,
    "mid_plan": "Pro ($29/mo, 100 images)",
    "per_photo_mid": 0.29,
    "per_photo_mid_usd": 0.29,
    "free_tier": "6 one-time credits (3 images), watermarked; '2K on your first edit, then 1K'",
    "watermark_on_free": true,
    "max_resolution": "Free: 2K first edit then 1K; Starter 'HD'; Pro/Business 'Ultra HD' (pixel sizes not stated)",
    "turnaround": "Usually under a minute (vendor claim)",
    "turnaround_type": "instant AI",
    "refund_policy": "Failed generations refunded automatically; full refund within 30 days of first purchase or 7 days of a renewal",
    "redo_policy": "Defective results reviewed case by case via support",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Our observation: room 01 at 2K gave 2400x1792; room 02 at the same 2K setting gave only 1200x896, matching the page's 'then 1K'. The account showed 4 credits after verification (6 advertised) and one 2-credit run took it to 0, so 2 credits are unaccounted for."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": true,
    "day_to_dusk": true,
    "sky_replacement": true,
    "renovation_recolor": true,
    "tour_360_video": null,
    "api": true,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://roomagen.com/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "max_resolution",
      "turnaround",
      "refund_policy",
      "redo_policy",
      "features"
     ],
     "note": "tool list: empty room, decluttering, redesign, day to dusk, sky replacement, wall repainting/flooring; API in the menu"
    },
    {
     "url": "data/test_log.md",
     "checked": "2026-10-19",
     "covers": [
      "notes"
     ],
     "note": "our own runs, rooms 01 and 02"
    }
   ],
   "rooms": [
    {
     "room": "02",
     "photo": "02-room-with-doorway.jpg",
     "tested": "2026-10-19",
     "seconds": 61,
     "seconds_approx": true,
     "seconds_text": "about 57-65 s (site estimates 30)",
     "watermark": "Yes: tiled hexagon watermark + \"Generated using Roomagen.com\" badge",
     "output_resolution": "1200x896",
     "original_resolution": "1280x960",
     "aspect_ratio_kept": true,
     "alignment_ok": true,
     "alignment_inliers": 76,
     "framing_pass": true,
     "framing": "pass",
     "framing_detail": {
      "zoom": 1.0,
      "shift_px": [
       -0.2,
       0.3
      ],
      "rotation_deg": 0.078,
      "visible_overlap_pct": 99.74,
      "invented_area_pct": 0.05
     },
     "architecture_drift": 34.6,
     "raw_drift": 36.1,
     "drift_aligned": true,
     "compare": "results/roomagen/02-compare.jpg",
     "aligned": "results/roomagen/02-aligned.jpg",
     "output": "results/roomagen/02.jpg",
     "score_json": "results/roomagen/02-score.json",
     "realism": {
      "rater": "editor",
      "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
      "rated": "2026-10-19",
      "scores": {
       "furniture_realism": 4,
       "scale_perspective": 3,
       "lighting_shadows": 4,
       "artifacts": 4,
       "fit_to_room": 4
      },
      "notes": {
       "furniture_realism": "Sofa, armchair, rug, coffee table and console look real.",
       "scale_perspective": "Sofa and table look small for the room, and a potted plant stands in the doorway opening.",
       "lighting_shadows": "Daylight preserved with soft shadows.",
       "artifacts": "Desk and books removed; the light switch above the old desk is gone (a picture hangs there); heavy tiled watermark.",
       "fit_to_room": "Living room set-up suits the room."
      },
      "mean": 3.8
     },
     "note": "2K was selected, but the free download is 1200x896 (room 01 at the same setting gave 2400x1792); the pricing page says the free plan gives '2K on your first edit, then 1K'. Framing passes; drift 34.6 is high, partly from the tiled watermark."
    }
   ],
   "rooms_tested": 2
  },
  {
   "id": "tinty",
   "name": "TINTY",
   "url": "https://tinty.ai/",
   "kind": "AI",
   "free_trial": "Previews + 3 photos",
   "try_without_account": "Yes (previews)",
   "room01": {
    "tested": "2026-10-19",
    "seconds": 30,
    "seconds_approx": true,
    "watermark": "Yes: tiled + \"WATERMARKED\" (anonymous preview)",
    "output_resolution": "1248x832",
    "resolution_kept": false,
    "aspect_ratio_kept": false,
    "free_tier": "3 free anonymous uploads a day; paid plans from $9/mo",
    "framing_pass": false,
    "framing": "fail: only 89.1% of the original frame visible",
    "framing_detail": {
     "zoom": 1.0,
     "shift_px": [
      0.0,
      0.7
     ],
     "shift_pct": [
      0.0,
      0.07
     ],
     "rotation_deg": -0.0,
     "visible_overlap_pct": 89.06,
     "invented_area_pct": 0.0
    },
    "architecture_drift": 18.1,
    "raw_drift": 24.1,
    "compare": "results/tinty/01-compare.jpg",
    "aligned": "results/tinty/01-aligned.jpg",
    "output": "results/tinty/01.jpg",
    "score_json": "results/tinty/01-score.json",
    "note": "Framing fails: the default crop frame returns a 3:2 image, so about 54 px are cut from the top and from the bottom (11% of the frame). Inside the visible area the architecture matches the original closely. Time is approximate (at most about 30 s).",
    "watermark_short": "Yes (tiled)",
    "free_tier_short": "3 anonymous uploads/day",
    "realism": {
     "rater": "editor",
     "method": "Editor rating (one person, not blind), 1-5, 5 = best; for artifacts 5 = none. Not an automated score.",
     "rated": "2026-10-19",
     "scores": {
      "furniture_realism": 4,
      "scale_perspective": 4,
      "lighting_shadows": 4,
      "artifacts": 4,
      "fit_to_room": 4
     },
     "notes": {
      "furniture_realism": "Cream sofa, walnut sideboard, coffee table and tall plant look real, if slightly soft.",
      "scale_perspective": "Believable sizes; the sideboard is pushed against the left door frame.",
      "lighting_shadows": "Daylight is consistent with the original.",
      "artifacts": "No warped objects; a black chair is cut off at the right edge and the 3:2 crop loses the top and bottom.",
      "fit_to_room": "Living zone staged; suits open plan."
     },
     "mean": 4.0
    }
   },
   "outputs": {
    "01-open-plan-kitchen-living.jpg": "results/tinty/01-aligned.jpg"
   },
   "access": "free tier",
   "affiliate": false,
   "pricing": {
    "model": "subscription or one-time pack",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Base",
     "price": 9,
     "billing_period": "month",
     "photos_included": 4,
     "note": null
    },
    "per_photo_cheapest": 2.25,
    "per_photo_cheapest_usd": 2.25,
    "mid_plan": "Standard ($39/mo, 20 photos)",
    "per_photo_mid": 1.95,
    "per_photo_mid_usd": 1.95,
    "free_tier": "6 previews per photo, 20 a month, plus 3 finished photos once (light watermark); 3 previews/day without an account",
    "watermark_on_free": true,
    "max_resolution": "2K (about 2,500 px long side)",
    "turnaround": "Previews in about 30 s",
    "turnaround_type": "instant AI",
    "refund_policy": "30-day money-back guarantee on the first payment; renewals non-refundable",
    "redo_policy": "Failed renders return to your balance",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Listing pack $29 once for 10 photos ($2.90). TINTY Studio (human-finished): $10/photo, 2-24 h. Stages empty rooms only; no kitchens, bathrooms or exteriors."
   },
   "features": {
    "declutter": false,
    "empty_room_staging": true,
    "furnished_restyle": false,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": null,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://tinty.ai/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "watermark_on_free",
      "max_resolution",
      "turnaround",
      "refund_policy",
      "redo_policy",
      "features"
     ],
     "note": "'TINTY stages empty rooms only'"
    }
   ],
   "rooms_tested": 1
  },
  {
   "id": "homai",
   "name": "Homai",
   "url": "https://homaihq.com/",
   "kind": "AI",
   "free_trial": "No free trial",
   "try_without_account": "No",
   "pricing": {
    "model": "subscription (credits)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Starter",
     "price": 49,
     "billing_period": "month",
     "photos_included": 60,
     "note": "120 credits, about 60 stagings at 2 credits each"
    },
    "per_photo_cheapest": 0.82,
    "per_photo_cheapest_usd": 0.82,
    "mid_plan": "Growth ($99/mo, ~180 stagings)",
    "per_photo_mid": 0.55,
    "per_photo_mid_usd": 0.55,
    "free_tier": "No free trial (homepage demo only)",
    "watermark_on_free": null,
    "max_resolution": "4x AI upscale (e.g. 4096x3072) for 2 extra credits",
    "turnaround": "30-60 s per room (vendor claim)",
    "turnaround_type": "instant AI",
    "refund_policy": "All purchases final and non-refundable; failed generations restore the credit",
    "redo_policy": null,
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Unused credits do not roll over."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": true,
    "day_to_dusk": true,
    "sky_replacement": true,
    "renovation_recolor": true,
    "tour_360_video": true,
    "api": null,
    "mls_disclaimer": true,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://homaihq.com/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "max_resolution",
      "features"
     ]
    },
    {
     "url": "https://homaihq.com/",
     "checked": "2026-10-19",
     "covers": [
      "turnaround",
      "refund_policy",
      "features.mls_disclaimer"
     ],
     "note": "'AI image disclosure embedded on every staged result'"
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "meltflex",
   "name": "MeltFlex",
   "url": "https://www.meltflexai.com/",
   "kind": "AI",
   "free_trial": "First design free",
   "try_without_account": "Yes (1 design)",
   "pricing": {
    "model": "subscription (credits)",
    "currency": "EUR",
    "cheapest_plan": {
     "name": "Standard (monthly)",
     "price": 19,
     "billing_period": "month",
     "photos_included": 100,
     "note": "'Up to 100 AI renders' (490 credits); EUR 12/mo billed yearly"
    },
    "per_photo_cheapest": 0.19,
    "per_photo_cheapest_usd": 0.21,
    "mid_plan": "Pro (EUR 59/mo, up to 340 renders; EUR 24/mo yearly)",
    "per_photo_mid": 0.17,
    "per_photo_mid_usd": 0.19,
    "free_tier": "Free tier: first staged photo free, no card; free images carry a subtle watermark",
    "watermark_on_free": true,
    "max_resolution": "4K image generations on paid plans",
    "turnaround": "About 20 s per photo (vendor claim)",
    "turnaround_type": "instant AI",
    "refund_policy": "No partial refunds for unused time",
    "redo_policy": null,
    "has_affiliate_program": true,
    "affiliate_url": "https://www.meltflexai.com/affiliates",
    "checked": "2026-10-19",
    "fx_note": "USD figures converted at ECB 1.1253 USD/EUR (2026-10-16)",
    "notes": "Home-design tool, not real-estate specific. Counts are 'up to'. Page shows a countdown discount banner."
   },
   "features": {
    "declutter": null,
    "empty_room_staging": true,
    "furnished_restyle": true,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": true,
    "tour_360_video": true,
    "api": true,
    "mls_disclaimer": null,
    "commercial_license": true
   },
   "sources": [
    {
     "url": "https://www.meltflexai.com/subscription",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "max_resolution",
      "features.commercial_license",
      "features.api"
     ]
    },
    {
     "url": "https://www.meltflexai.com/faq",
     "checked": "2026-10-19",
     "covers": [
      "free_tier",
      "watermark_on_free",
      "refund_policy"
     ]
    },
    {
     "url": "https://www.meltflexai.com/virtual-staging-ai",
     "checked": "2026-10-19",
     "covers": [
      "turnaround",
      "free_tier",
      "features"
     ]
    },
    {
     "url": "https://www.meltflexai.com/affiliates",
     "checked": "2026-10-19",
     "covers": [
      "has_affiliate_program"
     ]
    }
   ],
   "rooms_tested": 1,
   "room01": {
    "tested": "2026-10-19",
    "seconds": 28,
    "seconds_approx": true,
    "watermark": "Yes: tiled \"meltflexai.com\" across whole image; remove requires paid plan",
    "watermark_short": "Yes (tiled meltflexai.com)",
    "output_resolution": "1195x896",
    "resolution_kept": false,
    "aspect_ratio_kept": true,
    "free_tier": "First design free (sign-in required); page showed 5 credits after run; Generate again = 10 credits",
    "free_tier_short": "1 free design (sign-in)",
    "framing_pass": null,
    "framing": "unknown",
    "framing_detail": {
     "note": "unknown (alignment failed)",
     "inliers": 20
    },
    "architecture_drift": 48.5,
    "raw_drift": 48.5,
    "alignment_ok": false,
    "alignment_note": "too few inliers",
    "compare": "results/meltflex/01-compare.jpg",
    "aligned": "results/meltflex/01-aligned.jpg",
    "output": "results/meltflex/01.png",
    "score_json": "results/meltflex/01-score.json",
    "note": "Free download paywalled (Subscribe €12/mo); saved on-page preview. Official alignment failed (20/25 inliers); drift 48.5 is unaligned fallback. Diagnostic ratio 0.8: framing FAIL (zoom 0.84, 29% invented), aligned drift 38.0 — not an official v0.2 score.",
    "diag_ratio_0_8": {
     "framing": "fail",
     "architecture_drift": 38.0,
     "raw_drift": 48.5,
     "note": "not method v0.2"
    }
   }
  },
  {
   "id": "immostage",
   "name": "ImmoStage",
   "url": "https://www.immostage.ai/",
   "kind": "AI",
   "free_trial": "3 images",
   "try_without_account": "No",
   "pricing": {
    "model": "per listing (one-off) or subscription",
    "currency": "EUR",
    "cheapest_plan": {
     "name": "Solo",
     "price": 29,
     "billing_period": "one-off",
     "photos_included": 10,
     "note": "1 listing: 10 staging images, 3D floor plan, PDF brochure, video"
    },
    "per_photo_cheapest": 2.9,
    "per_photo_cheapest_usd": 3.26,
    "mid_plan": "Starter (EUR 49/mo, 10 listings x 10 images)",
    "per_photo_mid": 0.49,
    "per_photo_mid_usd": 0.55,
    "free_tier": "1 demo listing with 3 staging images, no card",
    "watermark_on_free": null,
    "max_resolution": "4K",
    "turnaround": "Under 2 minutes (vendor claim)",
    "turnaround_type": "instant AI",
    "refund_policy": "30-day money-back guarantee",
    "redo_policy": "Up to 3 regenerations per image",
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": "USD figures converted at ECB 1.1253 USD/EUR (2026-10-16)",
    "notes": "Prices exclude VAT. The pricing page says 'Payment system coming soon', so paid plans may not be purchasable yet."
   },
   "features": {
    "declutter": null,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": true,
    "api": true,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.immostage.ai/en/pricing/",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "refund_policy",
      "redo_policy",
      "turnaround",
      "features"
     ]
    },
    {
     "url": "https://www.immostage.ai/en/",
     "checked": "2026-10-19",
     "covers": [
      "max_resolution"
     ]
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "virtualstagingflow",
   "name": "VirtualStagingFlow",
   "url": "https://www.virtualstagingflow.com/",
   "kind": "AI",
   "free_trial": "30 credits",
   "try_without_account": "No",
   "pricing": {
    "model": "credit packs (no subscription)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Property pack",
     "price": 50,
     "billing_period": "one-time",
     "photos_included": 22,
     "note": "110 credits (incl. 10 bonus), 5 credits per standard photo; credits never expire"
    },
    "per_photo_cheapest": 2.27,
    "per_photo_cheapest_usd": 2.27,
    "mid_plan": "Pro pack ($100, 240 credits)",
    "per_photo_mid": 2.08,
    "per_photo_mid_usd": 2.08,
    "free_tier": "30 free credits (about 6 standard photos), no card",
    "watermark_on_free": null,
    "max_resolution": "Full resolution (no pixel cap stated)",
    "turnaround": null,
    "turnaround_type": "instant AI + human review on request",
    "refund_policy": "Unused credits refundable within 30 days of purchase",
    "redo_policy": "Re-runs free; credits returned if the model cannot fix it; human review in 1-4 business hours",
    "has_affiliate_program": true,
    "affiliate_url": "https://www.virtualstagingflow.com/affiliates",
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Multi-angle consistency costs 10 credits per image."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": true,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": null,
    "api": null,
    "mls_disclaimer": true,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://www.virtualstagingflow.com/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "max_resolution",
      "refund_policy",
      "redo_policy",
      "features"
     ],
     "note": "batch settings include 'disclosure'"
    },
    {
     "url": "https://www.virtualstagingflow.com/affiliates",
     "checked": "2026-10-19",
     "covers": [
      "has_affiliate_program"
     ]
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "ai-homedesign",
   "name": "AI HomeDesign",
   "url": "https://aihomedesign.com/",
   "kind": "AI",
   "free_trial": "5 credits",
   "try_without_account": "No",
   "pricing": {
    "model": "subscription",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Pro (monthly)",
     "price": 35,
     "billing_period": "month",
     "photos_included": 30,
     "note": "$19/mo billed yearly ($228)"
    },
    "per_photo_cheapest": 1.17,
    "per_photo_cheapest_usd": 1.17,
    "mid_plan": "Pro Plus ($59/mo, 80 photos; $29/mo yearly)",
    "per_photo_mid": 0.74,
    "per_photo_mid_usd": 0.74,
    "free_tier": "Free to start, no card (photo count not stated on the pages we read)",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": "Under 5 seconds (vendor claim)",
    "turnaround_type": "instant AI",
    "refund_policy": null,
    "redo_policy": "Free regenerations and chat edits",
    "has_affiliate_program": true,
    "affiliate_url": "https://aihomedesign.com/affiliate-program",
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Yearly billing: $0.63 (Pro) and $0.36 (Pro Plus) per photo. Paid plans list 'Download photos without watermarks'."
   },
   "features": {
    "declutter": true,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": true,
    "sky_replacement": null,
    "renovation_recolor": true,
    "tour_360_video": null,
    "api": true,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://aihomedesign.com/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "features.api"
     ],
     "note": "monthly prices read after switching to Monthly"
    },
    {
     "url": "https://aihomedesign.com/virtual-staging",
     "checked": "2026-10-19",
     "covers": [
      "free_tier",
      "turnaround",
      "redo_policy",
      "features"
     ],
     "note": "'MLS-ready' badge, furniture removal, day to dusk, renovation"
    },
    {
     "url": "https://aihomedesign.com/affiliate-program",
     "checked": "2026-10-19",
     "covers": [
      "has_affiliate_program"
     ]
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "trolto",
   "name": "Trolto",
   "url": "https://trolto.com/",
   "kind": "AI marketing suite",
   "free_trial": "7-day trial",
   "try_without_account": "No",
   "pricing": {
    "model": "subscription (marketing suite)",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Starter",
     "price": 59,
     "billing_period": "month",
     "photos_included": null,
     "note": "AI virtual staging is one feature of a marketing bundle; no photo count given"
    },
    "per_photo_cheapest": null,
    "per_photo_cheapest_usd": null,
    "mid_plan": "Pro ($99/mo)",
    "per_photo_mid": null,
    "per_photo_mid_usd": null,
    "free_tier": "7-day free trial",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": null,
    "turnaround_type": null,
    "refund_policy": null,
    "redo_policy": null,
    "has_affiliate_program": true,
    "affiliate_url": "https://affiliates.trolto.com",
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "Per-photo cost can't be worked out from the public page."
   },
   "features": {
    "declutter": null,
    "empty_room_staging": true,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": true,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://trolto.com/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier",
      "features"
     ]
    },
    {
     "url": "https://affiliates.trolto.com/",
     "checked": "2026-10-19",
     "covers": [
      "has_affiliate_program"
     ]
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "chatgpt-baseline",
   "name": "ChatGPT (baseline)",
   "url": "https://chatgpt.com/",
   "baseline": true,
   "kind": "General AI",
   "free_trial": "Free tier",
   "try_without_account": "No",
   "pricing": {
    "model": "consumer subscription",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Go",
     "price": 8,
     "billing_period": "month",
     "photos_included": null,
     "note": "'More image creation'; no image quota published"
    },
    "per_photo_cheapest": null,
    "per_photo_cheapest_usd": null,
    "mid_plan": "Plus ($20/mo)",
    "per_photo_mid": null,
    "per_photo_mid_usd": null,
    "free_tier": "Free plan: 'Limited image creation'",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": null,
    "turnaround_type": "instant AI",
    "refund_policy": null,
    "redo_policy": null,
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "General chatbot, not a staging tool. In Poland the page shows PLN 34.99 (Go) and PLN 99.99 (Plus)."
   },
   "features": {
    "declutter": null,
    "empty_room_staging": null,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": null,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://chatgpt.com/pricing",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier"
     ],
     "note": "plan features; USD amounts not rendered for our location"
    },
    {
     "url": "https://openai.com/index/introducing-chatgpt-go/",
     "checked": "2026-10-19",
     "covers": [
      "pricing"
     ],
     "note": "US prices: Go $8, Plus $20"
    }
   ],
   "rooms_tested": 0
  },
  {
   "id": "gemini-baseline",
   "name": "Gemini (baseline)",
   "url": "https://gemini.google.com/",
   "baseline": true,
   "kind": "General AI",
   "free_trial": "Free tier",
   "try_without_account": "No",
   "pricing": {
    "model": "consumer subscription",
    "currency": "USD",
    "cheapest_plan": {
     "name": "Google AI Plus",
     "price": 4.99,
     "billing_period": "month",
     "photos_included": null,
     "note": "No image quota published"
    },
    "per_photo_cheapest": null,
    "per_photo_cheapest_usd": null,
    "mid_plan": "Google AI Pro ($19.99/mo)",
    "per_photo_mid": null,
    "per_photo_mid_usd": null,
    "free_tier": "Free with a Google Account",
    "watermark_on_free": null,
    "max_resolution": null,
    "turnaround": null,
    "turnaround_type": "instant AI",
    "refund_policy": null,
    "redo_policy": null,
    "has_affiliate_program": null,
    "affiliate_url": null,
    "checked": "2026-10-19",
    "fx_note": null,
    "notes": "General assistant (Nano Banana image model), not a staging tool."
   },
   "features": {
    "declutter": null,
    "empty_room_staging": null,
    "furnished_restyle": null,
    "day_to_dusk": null,
    "sky_replacement": null,
    "renovation_recolor": null,
    "tour_360_video": null,
    "api": null,
    "mls_disclaimer": null,
    "commercial_license": null
   },
   "sources": [
    {
     "url": "https://gemini.google/us/subscriptions/?hl=en",
     "checked": "2026-10-19",
     "covers": [
      "pricing",
      "free_tier"
     ]
    }
   ],
   "rooms_tested": 0
  }
 ],
 "first_results": "November 2026",
 "partial": {
  "rooms_done": 1,
  "rooms_total": 10,
  "room": "01-open-plan-kitchen-living.jpg",
  "method": "score.py v0.2 (framing alignment + architecture drift)",
  "tested": "2026-10-19",
  "noise_note": "Differences of about 3 points or less are within measurement noise.",
  "extra_rooms": "Collov AI also has rooms 02-05, Pedra rooms 02-06 and Roomagen room 02. The leaderboard still compares room 01 only."
 },
 "fx": {
  "EURUSD": 1.1253,
  "source": "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml",
  "date": "2026-10-16"
 },
 "pricing_checked": "2026-10-19",
 "pricing_note": "Prices and features from each vendor's public pages, checked 2026-10-19, no sign-ups. Per-photo price = plan price / staged photos included, on the cheapest paid option and on the next tier up, monthly billing unless the tool only sells packs. null = we could not verify it.",
 "realism_note": "Realism ratings are editor ratings (one person, not blind, 1-5), not automated scores.",
 "best_for": {
  "provisional": true,
  "as_of": "2026-10-19",
  "note": "Provisional picks from the data on this site only: public prices checked 2026-10-19 and our partial tests (room 01 for 8 tools, plus a few extra rooms). They will change as testing continues. Nobody paid for a pick.",
  "picks": [
   {
    "key": "cheapest",
    "label": "Cheapest per photo",
    "id": "meltflex",
    "name": "MeltFlex",
    "value": "$0.21/photo",
    "detail": "Standard (monthly), EUR 19/month; a home-design tool and 'up to' render counts. Tested on room 01 only: alignment failed, so framing is unknown and its drift of 48.5 is the unaligned fallback score. Runner-up: Pedra ($0.33/photo).",
    "rule": "lowest price per staged photo on the cheapest paid plan (USD, monthly billing)"
   },
   {
    "key": "free",
    "label": "Best free tier",
    "id": "virtualstaging-ai",
    "name": "virtualstaging.ai",
    "value": "2 credits, no watermark",
    "detail": "The only free output we downloaded with no watermark at the original resolution (1280x960). Apply Design's free image is also watermark-free but you get 1 and it took about 10 minutes. On paper VirtualStagingFlow gives the most free photos (30 credits, about 6), not tested yet.",
    "rule": "among free outputs we downloaded: no watermark, then most free images"
   },
   {
    "key": "fidelity",
    "label": "Best fidelity so far",
    "id": "collov-ai",
    "name": "Collov AI",
    "value": "drift 11.0 on room 01",
    "detail": "Lowest architecture drift on room 01 with framing kept. Caveat: in room 05 Collov removed the two steps up to the bay window, which the automatic check misses. Check every photo.",
    "rule": "lowest room 01 architecture drift among tools that pass framing"
   },
   {
    "key": "fastest",
    "label": "Fastest",
    "id": "reimaginehome",
    "name": "REimagineHome",
    "value": "16 s on room 01",
    "detail": "Fastest measured time to result. Runner-up: Collov AI (18.6 s; 18.6-22 s across its 4 timed rooms). AI HomeDesign claims under 5 s, which we have not tested.",
    "rule": "shortest measured (not approximate) room 01 time"
   }
  ]
 }
}