AiuniAI / Unique3D

Official implementation of Unique3D: High-Quality and Efficient 3D Mesh Generation from a Single Image
https://wukailu.github.io/Unique3D/
MIT License
1.96k stars 131 forks source link

if you increase resolution to 8192 and use pytorch3d, a single 4090 can generate production ready models in about 5 minutes #32

Open pharrowboy opened 1 week ago

pharrowboy commented 1 week ago

hi, im using an older version where pytorch3d was used before nvdiffrast was implemented. and i noticed if you bump the resolution to 8192, unique3d is able to generate production ready models.

nvdiffrast is limited to a resolution of 2048, and this limitation holds the program back significantly. there are artifacts in some models when using 2048 resolution.

but with 8192 resolution, the models can be production ready, have look at the videos to see the quality. the eye model had artifacts in the demo, before i bumped it up to 8192. upon raising the resolution the artifacts went away

https://github.com/AiuniAI/Unique3D/assets/11796091/80e47969-6945-4418-a2e8-92e364b2ecdf

https://github.com/AiuniAI/Unique3D/assets/11796091/dc2ad584-cd2a-400e-9043-ce34dfe4ec86

TheArchetypes commented 1 week ago

Those results look amazing, would you be able to write up the setup process for the older version you're using?

pharrowboy commented 1 week ago

its pretty simple. download the current version and uncomment line 101 of project_mesh.py and comment next line after it. then set the resolution variable anywhere its found within that file from 512 to 8192. its hard encoded in every function to a lower value.

make sure you have a 24GB vram gpu and 64GB of ram, because the high resolution will spill over a bit into cpu ram, but the speed is still decent, it will say it will take like hours to finish, but then atleast for me it sped up, and finished in 3-5 minutes.

AbaXd commented 1 week ago

I've been working with PyTorch3D, but it's running really slow. I'm looking for a faster solution that works on all kinds of accelerators like CUDA, AMD's ROCm, Intel's OpenVINO, or even TPUs. But I haven't found one yet.

Humanoid-z commented 1 week ago

Could you please upload the modified file? I changed the code but it doesn't generate the same good result as yours using the same picture. image

AbaXd commented 1 week ago

@Humanoid-z Use the version here https://huggingface.co/spaces/Wuvin/Unique3D/tree/main

emperor1412 commented 6 days ago

@Humanoid-z Use the version here https://huggingface.co/spaces/Wuvin/Unique3D/tree/main

The line 101 is just a comment line though:

image

https://huggingface.co/spaces/Wuvin/Unique3D/blob/main/scripts/project_mesh.py

Would you mind show your detail changes ?

pharrowboy commented 6 days ago

@Humanoid-z Use the version here https://huggingface.co/spaces/Wuvin/Unique3D/tree/main

The line 101 is just a comment line though:

image

https://huggingface.co/spaces/Wuvin/Unique3D/blob/main/scripts/project_mesh.py

Would you mind show your detail changes ?

that version is already using pytorch, i was refering to the github version

download that spaces one and just edit the resolution.

emperor1412 commented 5 days ago

@Humanoid-z Use the version here https://huggingface.co/spaces/Wuvin/Unique3D/tree/main

The line 101 is just a comment line though: image https://huggingface.co/spaces/Wuvin/Unique3D/blob/main/scripts/project_mesh.py Would you mind show your detail changes ?

that version is already using pytorch, i was refering to the github version

download that spaces one and just edit the resolution.

Thanks for the confirmation.

Do you appear to know how to get this model output unwrapped mesh with UV and textures instead of heavy vertex colors mesh ? Or is there a way to achieve this by combining other projects somehow ?

LucioC commented 5 days ago

its pretty simple. download the current version and uncomment line 101 of project_mesh.py and comment next line after it. then set the resolution variable anywhere its found within that file from 512 to 8192. its hard encoded in every function to a lower value.

make sure you have a 24GB vram gpu and 64GB of ram, because the high resolution will spill over a bit into cpu ram, but the speed is still decent, it will say it will take like hours to finish, but then atleast for me it sped up, and finished in 3-5 minutes.

How much of this ram are you sharing with gpu? 64gb shared?