8000 GitHub - SadilKhan/Text2CAD: [NeurIPS'24 Spotlight] Text2CAD: Generating Sequential CAD Designs from Beginner-to-Expert Level Text Prompts
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

SadilKhan/Text2CAD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text2CAD: Generating Sequential CAD Designs from Beginner-to-Expert Level Text Prompts

Mohammad Sadil Khan* · Sankalp Sinha* · Talha Uddin Sheikh · Didier Stricker · Sk Aziz Ali · Muhammad Zeshan Afzal

*equal contributions

NeurIPS 2024 (Spotlight 🤩)

Arxiv Project Dataset

⚙️ Installation

🌍 Environment

  • 🐧 Linux
  • 🐍 Python >=3.9

📦 Dependencies

$ conda env create --file environment.yml

✅ Todo List

  • Release Data Preparation Code
  • Release Training Code
  • Release Inference Code

📊 Data Preparation

Download the DeepCAD data from here.

Generate Vector Representation from DeepCAD Json

You can also download the processed cad vec from here.

$ cd CadSeqProc
$  python3 json2vec.py --input_dir $DEEPCAD_JSON --split_json $TRAIN_TEST_VAL_JSON --output_dir $OUTPUT_DIR --max_workers $WORKERS --padding --deduplicate

Download the text annotations from here. Download the preprocessed training and validation data and place it in Cad_VLM/dataprep folder.

🚀 Training

In the Cad_VLM/config/trainer.yaml, provide the following path.

Required Updates in yaml

  • cache_dir: The directory to load model weights from Huggingface.
  • cad_seq_dir: The root directory that contains the ground truth CAD vector.
  • prompt_path: Path for the text annotation.
  • split_filepath: Json file containing the UIDs for train, test or validation.
  • log_dir: Directory for saving logs, outputs, checkpoints.
  • checkpoint_path (Optional): For resuming training after some epochs.


$ cd Cad_VLM
$ python3 train.py --config_path config/trainer.yaml

🤖 Inference

For Test Dataset

In the Cad_VLM/config/inference.yaml, provide the following path. Download the checkpoint for v1.0 here.

Required Updates in yaml

  • cache_dir: The directory to load model weights from Huggingface.
  • cad_seq_dir: The root directory that contains the ground truth CAD vector.
  • prompt_path: Path for the text annotation.
  • split_filepath: Json file containing the UIDs for train, test or validation.
  • log_dir: Directory for saving logs, outputs, checkpoints.
  • checkpoint_path: The path to model weights.


$ cd Cad_VLM
$ python3 test.py --config_path config/inference.yaml

Run Evaluation

$ cd Evaluation
$ python3 eval_seq.py --input_path ./output.pkl --output_dir ./output

For Random Text Prompts

In the Cad_VLM/config/inference_user_input.yaml, provide the following path.

Required Updates in yaml

  • cache_dir: The directory to load model weights from Huggingface.
  • log_dir: Directory for saving logs, outputs, checkpoints.
  • checkpoint_path: The path to model weights.
  • prompt_file (Optional): For single prompt ignore it, for multiple prompts provide a txt file.


For single prompt

$ cd Cad_VLM
$ python3 test_user_input.py --config_path config/inference_user_input.yaml --prompt "A rectangular prism with a hole in the middle."

For Multiple prompts

$ cd Cad_VLM
$ python3 test_user_input.py --config_path config/inference_user_input.yaml

💻 Run Demo

In the Cad_VLM/config/inference_user_input.yaml, provide the following path.

Required Updates in yaml

  • cache_dir: The directory to load model weights from Huggingface.
  • log_dir: Directory for saving logs, outputs, checkpoints.
  • checkpoint_path: The path to model weights.


$ cd App
$ gradio app.py

👥 Contributors

Our project owes its success to the invaluable contributions of these remarkable individuals. We extend our heartfelt gratitude for their dedication and support.


✍🏻 Acknowledgement

We thank the authors of DeepCAD and SkexGen and acknowledge the use of their code.

📜 Citation

If you use this dataset in your work, please consider citing the following publications.

@inproceedings{text2cad,
	author = {Khan, Mohammad Sadil and Sinha, Sankalp and Sheikh, Talha Uddin and Stricker, Didier and Ali, Sk Aziz and Afzal, Muhammad Zeshan},
	booktitle = {Advances in Neural Information Processing Systems},
	editor = {A. Globerson and L. Mackey and D. Belgrave and A. Fan and U. Paquet and J. Tomczak and C. Zhang},
	pages = {7552--7579},
	publisher = {Curran Associates, Inc.},
	title = {Text2CAD: Generating Sequential CAD Designs from Beginner-to-Expert Level Text Prompts},
	url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/0e5b96f97c1813bb75f6c28532c2ecc7-Paper-Conference.pdf},
	volume = {37},
	year = {2024},
	bdsk-url-1 = {https://proceedings.neurips.cc/paper_files/paper/2024/file/0e5b96f97c1813bb75f6c28532c2ecc7-Paper-Conference.pdf}}

About

[NeurIPS'24 Spotlight] Text2CAD: Generating Sequential CAD Designs from Beginner-to-Expert Level Text Prompts

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0