Speridlabs Idol:1枚の画像から3Dガウシアンスプラットを生成
Speridlabs Idolは0.66Bパラメータのモデルと7.2 GBのVRAMで1枚の画像から3Dガウシアンスプラットを構築します。オープンなSDKとコミュニティ製のComfyUIノードも用意されています。
.ply形式で3Dガウシアンスプラットが出力され、入力に写っていない側面まで含まれます。
Idolが狙うのは、通常はマルチビュー再構築が必要になる領域です。オブジェクトの1枚の画像があり、それを回転できる形で欲しいというケースです。Idolは背景を除去し、オブジェクトをフレーミングし、画像をエンコードして、ガウシアンの集合を直接サンプリングします。出力は任意のガウシアンスプラットビューアで開くことができ、その隣にはモデルが実際に見たクロップ済みの入力画像と、予測されたカメラがJSONで書き出されます。
ギャラリーのオブジェクトの1つ。プロジェクトページのすべての例は1枚の画像から始まります。
2つのデコーダを備えた小規模なdiffusionスタック
Idolの生成コアは、370.6Mパラメータのdiffusion transformer、ガウシアンがどこに存在するかを決める50.8Mパラメータのオクツリーデコーダ、そしてその属性を予測する237.3Mパラメータのガウシアンデコーダで構成され、合計0.66Bパラメータです。その周囲には3つのサポートモデルがあります。背景除去用のBiRefNet、画像エンコーダとしてのDINOv3 ViT-H+/16、そしてFLUX.2のVAEです。これによりリクエスト全体で約1.80Bパラメータになります。
| コンポーネント | パラメータ | VRAM内の重み |
|---|---|---|
| DiTデノイザー | 370.6M | 約0.8〜1.0 GB |
| オクツリーデコーダ | 50.8M | 約0.1〜0.2 GB |
| ガウシアンデコーダ | 237.3M | 約0.5〜0.9 GB |
| BiRefNet 背景除去 | 220.7M | 約0.44 GB |
| DINOv3 ViT-H+/16 | 840.6M | 約1.68 GB |
| FLUX.2 VAE | 84.1M | 約0.17 GB |
カードによると、重みの合計は約3.7〜4.4 GB、ピークは7.2 GBです。これにより、データセンターGPUではなく10 GBのカードでモデルを実行できます。
食品や小さなオブジェクトは、家具やキャラクターと並んでギャラリーが扱うカテゴリの1つです。
ディテールは固定予算ではなくダイヤル
ガウシアンの数は実行時の引数で、32の倍数で32,768から1,048,576まで指定でき、デフォルトは262,144です。プロジェクトページでは同じランプが32,768設定で0.4 MB、1,048,576で12.2 MBになるため、同じオブジェクトをブロックアウトにも最終アセットにもできます。結果を形作る設定は他に2つあります。デフォルト50のサンプリングステップと、クロップがオブジェクトの周囲にどれだけ余白を残すかを変えるモードで、レンダーや生成画像にはsynthetic、写真にはrealを指定します。
高速サンプリングはGPUではデフォルトで有効で、同じ品質で約1.7倍の効果があります。デノイザーはtorch.compileでコンパイルされ、ガイド付きパスとガイドなしパスは1つのバッチとして実行され、アテンションはTF32の行列積を使うcuDNNを使用します。プロセス内の最初の画像はコンパイルコストを支払います。
キャラクターやクリーチャーも同じレシピから生成され、別個のモデルパスはありません。
ベンチマークとタイミング
カードでは、1台のH100上で262,144ガウシアンにおいてIdolをTripoSplat、TRELLIS、LGMと比較し、入力ビューをPSNR、SSIM、LPIPS、IoUで、7つの新しいビューをDINOv2、CLIP、シャープネス距離で評価しています。
| モデル | PSNR | SSIM | LPIPS | IoU | DINOv2 | CLIP | シャープネス距離 | リクエスト時間 |
|---|---|---|---|---|---|---|---|---|
| Idol | 12.25 | 0.726 | 0.213 | 0.862 | 0.781 | 0.885 | 0.81 | 6.8秒 |
| TripoSplat | 11.76 | 0.712 | 0.225 | 0.860 | 0.743 | 0.868 | 1.03 | 9.9秒 |
| TRELLIS | 11.89 | 0.716 | 0.235 | 0.845 | 0.754 | 0.868 | 0.97 | 7.1秒 |
| LGM | 12.46 | 0.722 | 0.237 | 0.834 | 0.575 | 0.784 | 1.22 | 1.1秒 |
LGMは最も高いPSNRを維持していますが、結果は明らかにぼやけています。カードはこれを、PSNRが二乗画素誤差を平均しているためだと説明しています。
コンシューマー向けカードでは、同じリクエストにRTX 5090で14.1秒、RTX 4090で19.1秒、RTX 3080で46.2秒かかります。カードの「2秒未満」という記述には、カード自身の表に対応する行がありません。表で最速の項目は262,144ガウシアンでB300の3.4秒です。そのため表を参照とし、2秒未満という主張は公開されている数値では再現できないベストケースとして扱ってください。
| GPU | VRAM | リクエスト時間 |
|---|---|---|
| B300 | 269 GB | 3.4秒 |
| H100 | 80 GB | 6.7秒 |
| RTX 5090 | 32 GB | 14.1秒 |
| RTX 4090 | 24 GB | 19.1秒 |
| RTX 3080 | 10 GB | 46.2秒 |
| L4 | 22 GB | 54.6秒 |
薄い構造や半透明はスプラットデコーダにとって難しいケースで、ギャラリーでは家具と並んで登場します。
利用可能性
IdolはComfyUIノードではなくPythonコードとして提供されます。idol-sdkパッケージはPython 3.10以上、PyTorch 2.5以上、CUDA対応のNVIDIA GPUが必要で、pip install -e .でインストールします。約3 GBの重みと2つのエンコーダは、初回実行時にHubからダウンロードされます。両方のエンコーダはゲート付きです。facebook/dinov3-vith16plus-pretrain-lvd1689mはHub上で承諾する必要があり、black-forest-labs/FLUX.2-devはVAEのみに使用されるため、最初の生成の前にhf auth loginまたはHF_TOKENが必須です。
1枚の画像はコマンドラインから実行でき、写真には--mode realを指定します。
python -m idol.sample --image photo.jpg --mode real
python -m idol.sample --image renders/ --mode synthetic --out outputs公式のComfyUI統合はまだありません。コミュニティノードNynxz/ComfyUI-Idolは同じ重みをComfyUI向けにラップしており、HF Spaceのデモはブラウザでモデルを実行します。
コメント
GitHubでサインインしてディスカッションに参加しましょう。