Text2Mesh [Project Page]
Text2Mesh is a method for text-driven stylization of a 3D mesh, as described in "Text2Mesh: Text-Driven Neural Stylization for Meshes" CVPR 2022.
Getting Started
Installation
Note: The below installation will fail if run on something other than a CUDA GPU machine.
conda env create --file text2mesh.yml
conda activate text2mesh
If you experience an error installing kaolin saying something like nvcc not found, you may need to set your CUDA_HOME environment variable to the 11.3 folder i.e. export CUDA_HOME=/usr/local/cuda-11.3, then rerunning the installation.
System Requirements
- Python 3.7
- CUDA 11
- GPU w/ minimum 8 GB ram
Run examples
Call the below shell scripts to generate example styles.
./demo/run_alien_cobble.sh
# shoe made of cactus
./demo/run_shoe.sh
# lamp made of brick
./demo/run_lamp.sh
# ...
The outputs will be saved to results/demo, with the stylized .obj files, colored and uncolored render views, and screenshots during training.
Outputs
Important tips for running on your own meshes
Text2Mesh learns to produce color and displacements over the input mesh vertices. The mesh triangulation effectively defines the resolution for the stylization. Therefore, it is important that the mesh triangles are small enough such that they can accurately potray the color and displacement. If a mesh contains large triangles, the stylization will not contain sufficent resolution (and leads to low quality results). For example, the triangles on the seat of the chair below are too large.
You should remesh such shapes as a pre-process in to create smaller triangles which are uniformly dispersed over the surface. Our example remeshing script can be used with the following command (and then use the remeshed shape with Text2Mesh):
python3 remesh.py --obj_path [the mesh's path] --output_path [the full output path]