Transform empty rooms into stunning staged spaces instantly
StagedAI is a professional-grade virtual staging app designed for real estate agents and Airbnb hosts. Using cutting-edge AI technology, it transforms empty or poorly furnished rooms into beautifully staged spaces in seconds.
- πͺ AI-Powered Staging - Powered by Gemini Vision and Image Generation
- π¨ 8+ Design Styles - From Scandi Clean to Modern Luxury
- π Intensity Control - Fine-tune transformations from subtle to complete
- πΉ Viral Export - Generate stunning before/after reveal videos
- πΎ Local-First - All data stored securely on device with SwiftData
- π³ Premium Subscription - RevenueCat integration with 3-day free trial
| Component | Technology |
|---|---|
| Frontend | Swift, SwiftUI |
| Architecture | MVVM |
| Local Persistence | SwiftData |
| Configuration | Firebase Remote Config |
| AI Vision | Gemini Flash Latest |
| AI Generation | Gemini 2.5 Flash Image |
| Payments | RevenueCat |
| Video Export | AVFoundation |
StagedAI/
βββ StagedAIApp.swift # App entry point
βββ ContentView.swift # Main navigation
βββ Models/
β βββ Listing.swift # SwiftData model
β βββ TransformationStyle.swift
β βββ VisionAnalysis.swift
βββ Services/
β βββ GeminiService.swift # AI integration
β βββ RemoteConfigManager.swift
β βββ VideoGenerator.swift # Viral export
βββ ViewModels/
β βββ HomeViewModel.swift
β βββ UploadViewModel.swift
β βββ ResultViewModel.swift
βββ Views/
β βββ PaywallView.swift
β βββ HomeView.swift
β βββ UploadView.swift
β βββ ResultView.swift
β βββ SettingsView.swift
βββ Utilities/
β βββ Extensions.swift
βββ Assets.xcassets/
- Xcode 15.0+
- iOS 17.0+ device or simulator
- Gemini API Key (get one at ai.google.dev)
-
Clone the repository
git clone https://github.com/yourusername/StagedAI.git cd StagedAI -
Open in Xcode
open StagedAI.xcodeproj
-
Configure API Key
Recommended: Edit Config.swift
Open
StagedAI/Config.swiftand set your Gemini API key:static let geminiAPIKey: String? = "YOUR_ACTUAL_API_KEY_HERE"
Replace
nilwith your actual API key string (e.g.,"AIzaSy..."). Get your API key at ai.google.dev.Alternative: Via Xcode Build Settings
If you prefer not to hardcode the key:
- Select your project in the Project Navigator
- Select the StagedAI target
- Go to the Build Settings tab
- Click the + button β Add User-Defined Setting
- Add:
- Name:
GEMINI_API_KEY - Value: Your actual Gemini API key
- Name:
- The key will be substituted into
Info.plistat build time
-
Build and Run
Select your target device and press
βR
To enable Remote Config for dynamic style updates:
- Create a Firebase project at console.firebase.google.com
- Add an iOS app with your bundle identifier
- Download
GoogleService-Info.plistand add to the project - Add the Firebase SDK via Swift Package Manager
- Create a Remote Config parameter
staging_styleswith your style JSON
-
Vision Analysis (
gemini-flash-latest)- Analyzes room type, architectural features, and lighting
- Outputs structured JSON for prompt construction
-
Intensity Slider Logic
- Low (0-30%): Refresh lighting and colors only
- Medium (30-70%): Replace furniture, keep architecture
- High (70-100%): Complete room restaging
-
Image Generation (Gemini 2.5 Flash Image)
- Constructs detailed prompt from analysis + style + intensity
- Generates photorealistic 8K staged image
Professional architectural photography of a Living Room.
Keep the architectural shell (walls, floor, windows) exactly as is.
Replace the current furniture with Scandi Clean furniture in the same arrangement.
Feature exposed brick, hardwood floors, floor-to-ceiling windows.
minimalist, white oak wood, neutral beige textiles, airy atmosphere.
Lighting: Natural light from left side windows.
8k resolution, wide angle, photorealistic, no artifacts.
- Animated gradient background with floating orbs
- Feature highlights with checkmarks
- Monthly/Yearly plan selection
- 3-day free trial CTA
- Category icons (Interior, Garden, Kitchen, etc.)
- Recommendation cards with gradient backgrounds
- "Try It!" pill buttons
- Dashed-border upload card
- Camera and Gallery buttons
- "My Photos" carousel from SwiftData
- Before/After slider with wipe effect
- Intensity slider (0-100%)
- Style and Color Palette selectors
- Regenerate button
- Save/Share action bar
The Share Reel feature generates a 4-second video with:
- Resolution: 1080x1920 (9:16 for Stories/Reels)
- Effect: Smooth wiper reveal from before β after
- Animation: Eased cubic timing
- Watermark: "StagedAI" branding
// Generate share video
let videoURL = try await videoGenerator.generateWiperVideo(
beforeImage: before,
afterImage: after
) { progress in
print("Progress: \(progress * 100)%")
}// In production, integrate with RevenueCat:
Purchases.shared.purchase(package: selectedPackage) { transaction, info, error, cancelled in
if let error = error {
// Handle error
} else if !cancelled {
// Grant premium access
}
}- Free Trial: 3 days full access
- Monthly: $9.99/month
- Yearly: $79.99/year (Save 33%)
{
"staging_styles": [
{
"id": "scandi",
"name": "Scandi Clean",
"icon": "sofa",
"prompt_modifier": "minimalist, white oak wood, neutral beige textiles, airy atmosphere"
}
]
}This project is proprietary software. All rights reserved.
Built with β¨ for real estate professionals.
- Email: [email protected]
- Website: https://stagedai.app
