펌 ㅣ Shap-E가 나왔습니다. Dall-E, Point-E에 이은 OpenAI의 작명이군요.
Shap·E: Generating Conditional 3D Implicit Functions
https://github.com/openai/shap-e/
https://arxiv.org/pdf/2305.02463.pdf
https://twitter.com/unixpickle/status/1654282269065105409
저자인 Alex Nichol의 트윗을 보고 알았는데 또 다른 저자는 Heewoo Jun 님이네요.
Colab에서 git clone해서 시도해 보는데, 잘 되다가 (blobfile은 따로 설치해 줘야했습니다)
model = load_model('text300M', device=device) 부분에서 체크 포인트를 받는 중에( 1.7GB 일단 받고 그 다음 받는 중에)
PytorchStreamReader failed reading zip archive: failed finding central directory
에러가 나면서 실행이 안되네요. 아마 어떤 패키지엔가 버젼 문제가 있겠죠.
에러 스택을 따라가 보면,
model.load_state_dict(load_checkpoint(model_name, device=device, **kwargs))
torch.load(path, map_location=device)
_open_zipfile_reader(opened_file)
torch._C.PyTorchFileReader(name_or_buffer)
라고 나오는데... 어떻게든 고쳐서 돌려볼까 싶기도 하다가~ 그 정도까진 또 동기가 생기지 않네요. 아마 곧 허깅페이스 스페이스에도 데모가 생기겠죠.
3개의 노트북 예시가 있는데,
* sample_text_to_3d.ipynb - sample a 3D model, conditioned on a text prompt https://github.com/openai/shap-e/blob/main/shap_e/examples/sample_text_to_3d.ipynb
* sample_image_to_3d.ipynb - sample a 3D model, conditioned on an synthetic view image. https://github.com/openai/shap-e/blob/main/shap_e/examples/sample_image_to_3d.ipynb
* encode_model.ipynb - loads a 3D model or a trimesh, creates a batch of multiview renders and a point cloud, encodes them into a latent, and renders it back. For this to work, install Blender version 3.3.1 or higher, and set the environment variable BLENDER_PATH to the path of the Blender executable. https://github.com/openai/shap-e/blob/main/shap_e/examples/encode_model.ipynb
맨 마지막의 encode_model 예제가 흥미로워 보입니다. 메쉬를 불러와서 그걸 레이턴트로 인코딩하고 다시 렌더링할 수 있네요.
요즘 비디오 모델의 빠른 변화 대비 3D 생성 모델은 드림퓨전이나 NVIDIA의 지난 3월 발표( https://www.facebook.com/seungjoon.choi/posts/pfbid02qDoBSw585VsFKaM9q96UQjoaZj8jeBzwwDPLEkCi779kxKh745owZr8Qi3FfMpwNl ) 이후로 뭔가 다이나믹함이 느껴지진 않는데, 이 또한 결국 일어날 방향이긴 하죠.
* Point-E: https://openai.com/research/point-e , https://github.com/openai/point-e
* 관련 글 - DreamFusion( https://dreamfusion3d.github.io )이 소개하고 있는 Score Distillation Sampling ( 2022.10.13. ): https://www.facebook.com/seungjoon.choi/posts/pfbid02pY9sVN6w5dSFks3AaCZE7aBocoNjKzb8dhLj4gWqAXypHTse3s4uhBPAry9tg6dUl
* 프롬프트로 3d 게임 애셋을 만드는 스타트업 (2022.11.29.): https://www.facebook.com/seungjoon.choi/posts/pfbid0UpcfcTAyZFBrkWMLP8tgJBk1T4JpibXkWjTHeNdSLzccnRHKEMXMBQKArfzVrD3ql
* 벡터그래픽을 CLIP으로 가이드 하기 (2022.05.02.): https://www.facebook.com/seungjoon.choi/posts/pfbid0s77m72TgorkDzUrDrKGt5pCeKBvXkzQ9HDpe9EC3ouMvKBTzeJe2aFbr3DYz1mzLl (의 댓글 3D의 경우)
그러고보니 올해 여름의 Siggraph 2023 ( https://s2023.siggraph.org/ ) 이 50주년인 해라 또 뭔가 슬슬 분위기가 형성되면서 이벤트가 많으려나요.