Using AI for virtual room rendering

Would I be encroaching in this thread if I asked about the possibility of virtual staging on an existing photo of an empty room? If so, I can start a new thread. Mostly I’m interested in the ability to literally “read the room’ and have more control doing it in Rhino, as opposed to directly in an LLM or something like ComfyUI.

General FYI: I’ve done the perspective match and put objects in a room before — this is something separate from that.

Thx

Yeah, that should work. But it would be a good experiment. I can test it tomorrow, I got some ideas.

Nice, looking forward to what you come up with!

And happy to provide a couple photos of my place that I’ve been practicing with in different ways. Feel free to use or not, of course.


What is going on with that beam and ceilings?

Alan -

Part of the issue here is these tools are so new that even trying to determine the best way to use them is a ways off. So, i did a few workflows here trying to see what is possible.

So first we play the standard AI rendering game. Give AI your two images and then prompt:

I would like to fill this home with furnature. Use a Scandinavian Modern Furniture style. This is two images of the same room.
instead of two stool put a 4 person dining table here in the space next to the kitchen island.

It gives me these:


Now I know you want to use Rhino to manipulate the furniture, so in RhinoAI, I go in an give it your two images and prompt:

Create the 3dmodel of this space using simple forms for cabinets (and I gave it your two images

And it got is completely wrong, really wrong and nothing I could prompt would help:

So I had to give it more information. I quickly sketched a terrible floor plan and took a picture with my phone. I purposely made it really rough and quick to see what it would do:

Then I said using this floor plan and the images create a 3d model of the space using the photos for scale.

And it got it right!

Then i asked it to model the furniture in the image I have above

It gave me this rhino model:

Then I prompt:

Create a photorealistic rendering that is in from the the photo supplied using the furniture from the rhino model, matching the view and lighting of the photo

I get this:

I then move the rhino furniture around and it respects the moving of the furniture:

That is great, now make a new rendering but use the new positions of the furniture in the model. Respect the positions of the 3d furniture in the rendering. rendering this into the supplied image:

And here is the Rhino model I manipulate:
photo with furniture v8.zip (2.1 MB)

And then to have some fun I prompt:

I would like a photorealistic rendering of from the image but use “Mountain Modern” or “Refined Western” furniture —blends rugged ranch heritage with clean architectural lines, luxurious natural textures, and bespoke craftsmanship

And it is still respecting the 3d model positions:

woow. interesting times we are all living in..

Yes! That’s the secret sauce: getting the existing structure and furniture/dec proxies to share a common understanding of the space, even if it’s simply in massing model because its the volume and depth relationship that’s needed.

BTW I have a model I made of the house interior if that’s useful to you at all while messing with this more. It’s what I’m going to use.

Would you be kind enough to share the specs of the AI used in the test?

Amazing work :clap:

This was done with OpenAI Codex Astra Desktop to start. Then once we get into Rhino is Used RhinoAI hooked to Astra. With the RhinoAI panel I did the models and those final renderings.

Each produced rendering or model takes from 650K to 1M tolkens. Of course, the subscription level controls the rate of usage over time.

If you started with a decent floorplan or model, Astra will pick up on that and infer the spaces. Then this workflow becomes even quicker. I have found I can use models as input like I use images.

And if I would thrown some dimensions by hand on that terrible sketch, Astra would have been able to use that also.

What is going on with that beam and ceilings?
@Piotr - Just some funkiness :slight_smile:

So, I opened the file (thank you for uploading) and it’s like a sitcom version of the space :sweat_smile: Super small but looks decent sized on camera.

Of course, like you said, you just guessed a sketch FP for it. The test is great – I think I have to set Astra up in Rhino and Desktop GPT and see which to use for what. I’ve done a straight render with GPT and it gets the room dimensions super close to accurate, but the idea of moving the proxy furniture around is key… This was from straight GPT Desktop from a few weeks ago. The sweet spot would be moving this image’s furniture around as-needed:

Yeah, in the desktop version you can “move” objects around by typing instructions.

With the RhinoAI the objects can be moved around with Rhino, which is nice. Another interesting effect of having the placements in Rhino is that the AI cannot randomly change things. When doing images with AI it has a tendency to sometimes change things in places that no change was necessary. So, I find by getting some information in Rhino it sets that information as static so AI cant mess with it randomly.

The image looks great.

Yeah, it’s about the balance. I’m just hoping to figure it out so I can get some good inages for the sale :smiley: And there are strict MLS rules so that people don’t change the structure itself. If I get somewhere with it in time, I’ll post the info.

I’ve been playing with Krita AI for the last 2 years and in my opinion, it’s getting to some points. I thought I’d give it a try with one image.

Tried @scottd’s prompt:

I would like to fill this home with furnature. Use a Scandinavian Modern Furniture style. This is two images of the same room.
instead of two stool put a 4 person dining table here in the space next to the kitchen island.

and it gave me these result with different strengths applied.

90% strength

95% strength

99% strength

Good thing about Krita Ai is, it’s totally free and can use many models as well. Flux 2 was used to generate those images.

Rendering time was quite fast on RTX 3060. Just seconds to complete it, at 1912 x 1271 resolution.

Adding “create an evening atmosphere” to the prompt, and it generated this in about the same rendering time.

I’ll def check that out, thanks. Is it a basic package plugin for the AI Panel option?

Hi @Alan_Farkas

Here are the links so you don’t need to look for them :blush:

The plugin is pretty straight forward to install after installing Krita. At this time being, I believe (my personal opinion) Krita is the best Photoshop alternative yet it’s financial hassle free. I moved away from Photoshop years and years ago when CS5 was introduced.

AIpanel is included with Rhino 9 Beta. It connects to Claude and Codex at this point but we would like to connect to as many AI engines as possible.

Another image from Krita AI.

Also, another information of direct local bridge to Krita through MCP that is still being developed by community.

Nice tone and physicality.

I do see it tweaked the front door, the chairs have some impossible legs and there’s a lamp growing out from the plant :grinning_face_with_smiling_eyes:

Oh, and it added a carbon monoxide detector or thermostat maybe (?) on the far wall next to the pantry. This is like a fun page out of Highlights Magazine!

We’re playing a lot with Krita AI to find that it’s carrying similar workflow with Photoshop. Any anomalies in generated picture, we just highlight/select the area and give it fixing prompt just for that particular area(s), and Krita AI will do refinements :blush:

Another best Krita’s feature is, it offers 2D animation feature. Good one, not just garbage.

Here’s a short video when I did an online lecture for INTI International University and College back in 2024, Malaysia, talking about Rhino and Krita AI. It was totally fun with almost a hundred participants ranging from students to sr. lecturers. We had a good time at that time.

And now, Krita AI has moved forward so quick beyond what it was presented at that time.