Text2Room: Extracting Textured 3D Meshes from 2D Text-to-Image Models
lukashoel.github.io
lukashoel.github.io
[2] skybox.blockadelabs.com
I presented a 3D gameplay hack of this at the recent Blockade meetup: https://youtu.be/TfRJeedTeOs
The metric depth model I used (ZoeDepth) is quite new -- most previous models were inverse relative depth, with poor scaling properties, especially for artistic worlds.
But now there is a much better depth model coming from Intel called Depth Fusion which they are adding to the Blockade API and also open sourcing (!)...
Also worth checking out what's possible with SD ControlNet: https://twitter.com/BlockadeLabs/status/1634578058287132674
The idea would be to roughly place the elements in a 3D scene, and adjust the prompt as the camera is moved around the scene.
Here, it's obvious that the "fireplace" prompt causes the model to place a new fireplace as the previous one comes out of view.
Even if you can't precisely label portions of an image, changing the prompt as the camera moves (or changing the weight coefficients for a prompt describing multiple orientations) would avoid that kind of "unnatural" result.
Regardless, impressive results! I wonder if it would perform better if it was re-trained to output a depth channel as well.
It could be useful for (artistically) filling gaps in photogrammetry projects.
I can't wait for painting or drawing styles to be applied to the output!
So why you ask me ? - Now while the speed of 3D generating is wonderfull, and the 3D accuracy is "Ok" (but will progress more in the short future I bet). So great. But... But it lacks a unforgiving flaw : - You can NEVER correct the 3D the 'automat' has guessed for you. I mean it will go wrong in a few parts, and you can NOT do anything with it.Sadly.
I believe that once this kind of softwares really gives the user a magic tric to MANUALLY correct some part of the 3D mesh, you have got a winner and a major selling software.
Example result made by tool (load twice because bug) : https://free-visit.net/fr/demo01
So it's a lot of work to still to create an object that makes integrateable with anything else.
If nobody has tried it in a week or two I might give it a go.
You would still need to create maps for colliders, navigation etc. As well as break the flat mesh this provides down into discreet objects if you wanted any more physics integration.
Unless the resulting mesh is huge it shouldn't be too hard to just build a vr viewer.
A) there was a text specification for a room and all the items in it (in terms of visuals at least).
B) that generating from this would be entirely deterministic