Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADD LGM #1572

Open
kyakuno opened this issue Oct 13, 2024 · 6 comments
Open

ADD LGM #1572

kyakuno opened this issue Oct 13, 2024 · 6 comments
Assignees

Comments

@kyakuno
Copy link
Collaborator

kyakuno commented Oct 13, 2024

3D生成モデル。
https://github.com/3DTopia/LGM

@Koichi73
Copy link
Contributor

Koichi73 commented Dec 3, 2024

ONNXへのエクスポート時、モデル内部のMemory-efficient attentionでエラーが起きる。通常のAttentionに書き換えることでエクスポート自体は可能。
次回の勤務でエラーの解決or代替案を考える。

また、前処理でrembgが使われている。ailiaのrembgを使えるか検証する。

@Koichi73 Koichi73 self-assigned this Dec 6, 2024
@Koichi73
Copy link
Contributor

Koichi73 commented Dec 16, 2024

本モデルは多視点拡散モデル + 3d Gaussian Splattingの構造。
3d Gaussian SplattingのforwardでC言語が使われているため、直接的なエクスポートは難しい。
https://github.com/ashawkey/diff-gaussian-rasterization/blob/main/diff_gaussian_rasterization/__init__.py#L85-L86

他のエクスポート方法を検討する。

@Koichi73
Copy link
Contributor

3d Gaussian SplattingをPytorchだけで実装したリポジトリ
https://github.com/hbb1/torch-splatting

@Koichi73
Copy link
Contributor

現状、LGMモデルのONNX化が難しいと考えられます。
LGMモデルの構成要素である3d Gaussian Splattingのレンダリング部分にて、C++の拡張モジュールが使われているためです。

回避策として、3d Gaussian SplattingをPytorchのみで実装するリポジトリを見つけました。しかし、

  • レンダリング部分のONNX化を試みたところ、'aten::linalg_inv'のUnsupportedOperatorErrorが発生した。参考
  • LGM内部の3d Gaussian Splattingと入力方法が異なるため、実装が難しい。

の理由から、解決には至りませんでした。

@Koichi73
Copy link
Contributor

Koichi73 commented Dec 18, 2024

レンダリング部分のC++は許容してサンプル作成を進める。
その際、公式のC++はCUDAが必須だが、以下のリポジトリを使うことでCPU上で動かすことができる。
https://github.com/MrSecant/diff-gaussian-rasterization

しかし、torchは必要そう

@Koichi73
Copy link
Contributor

https://github.com/axinc-ai/ailia-models/tree/lgm/neural_rendering/lgm

サンプルは一通りできたが、一部のprototxtが破損している模様

ailia.core.AiliaBrokenDataException: code: -4 (The specified file was broken.)
+ error detail : Prototxt has unexpected format:\000\000\000\000\000\000\000
at line169
ailia.core.AiliaBrokenDataException: code: -4 (The specified file was broken.)
+ error detail : unexpected escape sequence::

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants