Lab project
AI Architect
A private AI interior designer: one room photo in, redesigns out, no cloud.
- Status
- Prototype
- Platforms
- Web (local only)
- Hosting
- Runs locally on Mikael's own machines at home, no cloud
All redesigns generated locally by AI Architect
The problem
Seeing a room redone usually means a designer, a 3D model, or a generic AI image tool. Those tools redraw the whole room, change the camera, invent a different space, and send your photos to a server. AI Architect keeps the room as it is (same walls, windows, camera and layout), changes only what you ask, and does it privately at home.
What it does
You drop in one ordinary phone photo of a room and type a sentence about what you want. AI Architect describes the room, proposes three style directions and makes the first picture in the one you pick. From there you keep talking to it: "paint the walls sage green", "light oak floor", "empty the room", "restyle it". Each change edits only the part of the room it should, and everything else stays as in your photo. When you like a picture, one click makes a sharp high-resolution copy to save. Everything runs on one home PC with a single graphics card, plus a small helper model on a Mac mini on the same home network.
All redesigns generated locally by AI Architect.
How it works
Look and propose
A 27-billion-parameter vision-language model running locally describes the photo, lists its surfaces and proposes three directions (name, palette, materials, budget tier). Photo and brief to three style cards: about 45-55 s, including loading the model.
Find the areas
SAM 3.1 finds the floor, the walls, the cabinets or one object. An automatic check rejects outlines in the wrong place or of the wrong size.
Edit only that area
Qwen-Image-Edit 2511 redraws only the masked area of a crop around it, and the result is blended back into the picture. In the live runs, 0 pixels changed outside any edit zone. One area change takes about 6-10 s.
Turn words into an exact instruction
While the image models hold the graphics card, a typed change goes as text to a small helper model (gpt-oss 20B in Ollama) on the Mac mini, which rewrites it into a precise edit instruction. Rule-based guards check the rewrite (right area, right direction, nothing added), so a misread change is not applied. About 5-13 s.
Upscale and save
RealESRGAN followed by SeedVR2 7B gives a sharp picture of 2560 or 3840 px (about 17 / 25 s). Save gives a clean PNG without metadata.
Key features
Three style directions from one photo
See the picturesThe app reads the room and proposes three directions, each with a name, a palette, materials and a budget tier. Pick one to get the first picture, or type a few words at the cards to get three new ones. Choosing a style to the first finished picture (5-6 changes) takes about 80-105 s.
Change one area, keep the rest
See the picturesThe app finds the floor, the walls, the cabinets or a piece of furniture by itself and repaints only that area. Clutter on a worktop stays as it is when only the cabinet doors change. In Advanced mode you can point at an area, draw a box and see every outline before it is used.
Changes in plain words
See the pictures"Make the floor a bit darker", "paint the walls warm cream". The helper model rewrites your words into an exact instruction, guards check it, and the app shows the exact instruction it used. When a change does not work, it says so (for example "I couldn't remove the lamp").
Empty, refurnish or restyle
See the picturesOne button empties the room: furniture and clutter out, walls, doors and windows kept (about 20 s). Another furnishes the empty room anew in the chosen style. A whole-room restyle runs at three strengths (Keep everything, Restyle, Empty and refurnish) and uses depth and line maps to keep the room's geometry and camera, in about 6-40 s depending on strength.
Your own materials, plans and block models
See the picturesImport your own catalogue of tiles, floors and paints and put a real product on an area. The result follows the material approximately (colour, pattern), not exactly. A 2D floor plan or a screenshot of a simple 3D block model also becomes a rendered picture: the layout comes from the input, the furniture and details are made up.
Compare, undo, upscale and save
See the picturesA before and after slider on every picture, and Undo back to any earlier step. Basic mode (the default) has only Restyle, Empty room, Compare, Undo, Upscale and Save, with no questions. One click upscales to 2560 or 3840 px; upscaling invents plausible fine detail.
In pictures
Another direction for the same empty room. Area changes on the empty room: the back wall painted and the light warmed.
One room, step by step
Step 1An ordinary phone photo of a living and dining room: the only input, plus one sentence about what the owner wants. Step 2The chosen style's first change: light oak flooring. Everything outside the floor stays exactly as in the photo. Step 3One click empties the room: furniture and clutter out, walls, doors and windows kept. Step 4The empty room furnished again in a light Scandinavian style: a dining table, chairs, a pendant lamp and a sideboard. Step 5Typed in plain words; the app finds the walls by itself and repaints only them. Step 6A whole-room restyle that keeps the room's layout and camera, with a new look. Step 7The same living room emptied and furnished again in a bright style.
Typed changes on an emptied room
Bedroom
Step 1A real, lived-in bedroom photo. Step 2One click: furniture and clutter out; walls, window, ceiling rose and door kept. Step 3A typed change on the emptied room. Step 4The next typed change: the terrazzo floor becomes light oak; the walls stay as they were. Step 5The same bedroom emptied and furnished again in a light style.
Three style directions
Kitchen
Kitchen, industrial direction: the starting photo. The same kitchen in three directions, all at Empty and refurnish. The same kitchen in three directions, all at Empty and refurnish. The same kitchen in three directions, all at Empty and refurnish.
Restyle at three strengths
Kitchen
Kitchen, industrial direction: the starting photo. Every object kept, restyled. Small things re-imagined, the furniture kept in place. Emptied, then furnished anew; same layout and camera.
Bedroom
Bedroom, Scandinavian direction: the starting photo. Every object kept, restyled. Small things re-imagined, the furniture kept in place. Emptied, then furnished anew.
Covered patio
Covered patio, Scandinavian direction: the starting photo. Every object kept, restyled. Restyled; this stop can close an open side, as it did here. Emptied, then furnished anew.
Change one area, keep the rest
Kitchen cabinets
Bedroom wardrobe
Bedroom floor
Step 1Bedroom, Scandinavian direction: the starting photo. Step 2The app finds the floor by itself (shown in blue). Step 3Only that area changes.
Steps of one session
Covered patio
Step 1Covered patio, Scandinavian direction: the starting photo. Step 2Each step builds on the previous picture. Step 3Each step builds on the previous picture. Step 4A typed change, rewritten by the helper model and applied to the floor only.
Materials from the owner's catalogue
A light oak floor covering from the owner's catalogue (picture cropped to fit). The oak floor covering applied to the patio floor: followed approximately (colour, pattern), not exactly. A second floor covering from the catalogue, with a woven pattern. The woven catalogue material applied to the patio floor: followed approximately (colour, pattern), not exactly.
Plans and block models
A 2D floor plan as input. The layout follows the plan; the furniture is made up. A simple block model as input. Shapes and camera come from the model; materials and details are invented.
Upscale
Security and privacy
- Everything runs locally on Mikael's own machines on his home network: one PC and a Mac mini helper. There are no cloud AI services, no third parties, no accounts and no telemetry.
- The app and its AI engines listen only on the PC itself.
- The working copy of a photo is at most 2560 px and carries no location or camera data. Saved pictures are PNG files without metadata. Temporary images in the picture pipeline are deleted after every job.
- The page uses a strict content security policy with no inline scripts and a session cookie that scripts cannot read. Pictures reach the page as opaque ids, never as file paths.
- It is built as a private experiment: it is not hardened against other programs on the same PC or other devices on the home network.
Under the hood
A Python 3.11 app with FastAPI serves one web page written in plain JavaScript, with no framework and no build step, only on the local machine. The picture work runs in a headless ComfyUI, with its graphs built and validated in code. The conversation and vision model runs in LM Studio on the PC; the text helper runs in Ollama on the Mac mini.
The hardware: a PC with an RTX 5090 (32 GB), a Ryzen 9 9950X3D and 96 GB of RAM, plus a Mac mini M4 as a small helper on the home network.
The models, all run locally: Qwen3.8 27B (conversation and vision), gpt-oss 20B (text helper), Qwen-Image-Edit 2511 with a Lightning LoRA and a custom "unfurnish" LoRA, Qwen-Image 2512 with Fun ControlNet Union, SAM 3.1, Depth Anything 3, SeedVR2 7B and RealESRGAN.
One graphics card, managed carefully: the 27B language model (about 18 GiB) and the 20 GB image models never share the 32 GB card. A memory manager measures each job beforehand, refuses a job that would not fit, and swaps models between conversation and picture states.
Quality checks: about 5,600 automated unit tests, a 97-check acceptance run of the whole page on simulated models, live acceptance runs on the real models (three rooms, about 200 picture jobs with zero memory faults), blind A/B comparisons for model and prompt decisions, and a repeatable model test kit with frozen test sets. The main tools are also exported as eight standalone ComfyUI workflows for use without the app.
Built in about two weeks with AI agents, both local models and third party ones. Idea, architecture and testing: Mikael. The agents made it fast to write the code, wire the models together and try one approach after another; Mikael set the requirements, tested every tool and model himself and reviewed the result. Built with AI agents, reviewed by a security professional.
Stack
- Python 3.11
- FastAPI
- Plain JavaScript
- ComfyUI
- LM Studio
- Ollama
Status and roadmap
Prototype
A working personal prototype (October 2026), used privately. It is not for sale and never commercial: some of the models it uses carry non-commercial licences. There is no public demo and no code link yet.
Honest limits:
- Pictures are illustrations, not measurements; sizes are given only as ranges, and it gives no advice on structure, wiring, plumbing or gas.
- Consistency across many edits is good but not perfect.
- Removing furniture that has things standing on it can leave those things floating.
- Restyles can change things that should stay, such as a window, a door or the open side of a patio.
- Typed changes are rewritten by a smaller model that can misread them; the app shows the exact instruction it used.
Planned:
- (Planned) Publish the code as open source. The pictures on this page stay Mikael's.
- (Planned) Measure the text helper's error rate on a fixed test set.
- (Planned) Remove the old Gradio screen, leaving only the one-window page.
Who it is for
Its owner and a friend
seeing their own rooms redone, privately, before spending money on a change.
People who want to see a room redone without a designer or a 3D model
it shows what local AI can do with one photo and plain words, without uploading anything. It is a lab project, not a product on offer.
Companies exploring private, local AI
a worked example of several AI models running on hardware you own, with no cloud service, measured and tested like production software.
Interested in AI Architect?
A local AI that redesigns a real room from one phone photo and plain words, on one home PC and a Mac mini. No cloud service sees the photos.