SAM 3D ComfyUI オブジェクトとボディモーションコントロール
このワークフローは、Segment Anythingに基づくマスキングと深度推論を使用して、単一画像からの3D対応の構造ガイド生成を提供します。それは2つのすぐに実行可能なモードを含みます:オブジェクトモードは、テクスチャ付き3Dメッシュまたは3Dガウシアンとして任意のマスクされた主題を抽出して再構築し、ボディモードはボディパーツに配慮した人間のメッシュを構築します。SAM 3D ComfyUI デザインは空間的一貫性を強調し、オブジェクトモーションコントロール、ボディモーションガイダンス、およびダウンストリームビデオまたは3Dパイプライン用の制御可能なアセットの作成に最適です。
オープンソースのSAM3Dプロジェクトの上に構築されたこのSAM 3D ComfyUIワークフローは、単純な画像とマスクをエクスポート可能なGLB、STL、およびPLYアセットに変換し、ポーズアライメントとテクスチャベイキングを行います。微調整なしで迅速で制御可能な結果を望むクリエイターに適しています。
注:
この3D "オブジェクト" ワークフローは、Medium、Large、または XLarge マシンでの実行を推奨します。大きなマシンタイプは、実行時エラーや不安定な結果を招く可能性があります。 "ボディ" ワークフローは、すべてのマシンタイプで問題なく動作します。
3D再構築と最適化の複雑さのために、"3Dオブジェクト" ワークフローは 約40分以上 かかることがあります。
Comfyui SAM 3D ComfyUI ワークフローの主要モデル
- Segment Anything Model (SAM)。高品質でプロンプト可能なセグメンテーションを使用して空間制約を固定します。詳細はオリジナルペーパーを参照してください:Segment Anything。
- SAM3D オブジェクトの事前学習コンポーネント。深度、スパース構造、SLAT生成、メッシュおよびガウシアンデコーダ、テクスチャエンベッダーを提供してオブジェクトを再構築します。ソース:PozzettiAndrea/ComfyUI-SAM3DObjects。
- SAM3D ボディの事前学習コンポーネント。ボディパーツに配慮した処理を提供して、人間のメッシュとデバッグビューを生成します。ソース:PozzettiAndrea/ComfyUI-SAM3DBody。
- SAM3Dリポジトリにバンドルされている単眼深度推定器。カメラ内部パラメータ、ポイントマップ、および再構築とポーズアライメントを改善する深度情報マスクを提供します。上記のSAM3Dリポジトリを参照してください。
- 3Dガウシアンスプラッティングの定式化。クイックプレビューと特定のレンダラーに役立つ、迅速でフォトリアリスティックなポイントベースのシーン表現を可能にします:3D Gaussian Splatting for Real-Time Rendering。
Comfyui SAM 3D ComfyUI ワークフローの使用方法
大まかに言えば、単一の画像とそのマスクをロードし、オブジェクトグループまたはボディグループを選択します。オブジェクトモードは、テクスチャ付きメッシュと3Dガウシアン表現を再構築し、オプションでポーズを洗練します。ボディモードは、ボディパーツに配慮したメッシュを構築し、迅速な検査やダウンストリームでの使用のためにエクスポートします。
SAM3DObjects グループ
このグループは、マスクされた対象を3Dアセットに変換します。制御したいオブジェクトを分離するマスク付きの画像を提供します。ワークフローは、対象を前景として扱うために自動的に反転を処理します。深度とカメラ内部パラメータが推定され、ポイントマップが生成され、スパース構造と初期ポーズが作成されます。そこからSLAT表現が生成され、メッシュと3Dガウシアンの両方にデコードされます。テクスチャベイクはソース画像からメッシュに外観を転送します。最後に、ポーズ最適化がアライメントを洗練し、プレビューとエクスポートを行います;SAM3D_DepthEstimate (#59)、SAM3DSparseGen (#52)、SAM3DSLATGen (#35)、SAM3DMeshDecode (#45)、SAM3DGaussianDecode (#37)、SAM3DTextureBake (#47)、および SAM3D_PoseOptimization (#57) を参照してください。
SAM3DBody グループ
このグループは人間の対象に焦点を当てています。画像と人を覆うマスクを提供します。ボディプロセッサは、ボディパーツに配慮したメッシュとデバッグ画像を生成し、セグメンテーションの品質を確認できます。結果を検査またはリギングのためにメッシュとしてエクスポートし、インタラクティブにプレビューできます。基本的なステップは LoadSAM3DBodyModel (#62)、SAM3DBodyProcess (#61)、SAM3DBodyExportMesh (#64)、および Preview3D (#65) を通じて実行されます。
Comfyui SAM 3D ComfyUI ワークフローの主要ノード
LoadSAM3DModel (#44) すべてのオブジェクトモードウェイトを一箇所にロードし、深度、スパース構造生成器、SLAT生成器およびデコーダ、テクスチャエンベッダーを含みます。ウェイトがHugging Faceにホストされている場合は、トークンを入力し、プロバイダーを適切に設定します。特定のdtypeを強制する理由がない限り、自動精度を使用します。一度ロードされると、同じハンドルがオブジェクトパイプライン全体に供給されます。
SAM3D_DepthEstimate (#59) 入力画像から単眼深度、カメラ内部パラメータ、ポイントマップ、および深度情報マスクを推定します。フレーミングは重要です:被写体を適切に中央に配置し、極端なクロップを避けて、より安定した内部パラメータを得ます。長時間のベイクにコミットする前に、内蔵のポイントクラウドプレビューを使用してジオメトリを確認します。ここで生成された内部パラメータとポイントマップは、後でポーズ最適化に再利用されます。
SAM3DSparseGen (#52) 画像、前景マスク、および深度出力を組み合わせてスパース構造と初期ポーズを構築します。マスクが緩すぎる場合は、浮遊物や弱い構造が発生する可能性があります;エッジを締めてよりシャープな結果を得てください。このノードはまた、方向が正しく見えることを確認するためにプレビューできるポーズオブジェクトを発行します。このスパース構造は、SLAT生成器を直接条件付けします。
SAM3DSLATGen (#35) スパース構造をコンパクトでジオメトリに配慮したSLAT表現に変換します。クリーンなSLATは通常、正確なマスクと良好な深度から得られます。ガウシアンよりもメッシュ出力に依存する予定の場合は、極端なスパース性よりも詳細を保持する設定を優先してください。発行されたSLATパスは両方のデコーダに供給されます。
SAM3DMeshDecode (#45) SLATをテクスチャリングとエクスポートに適したウォータタイトな3Dメッシュにデコードします。DCCツールおよびゲームエンジンで機能するトポロジーが必要な場合はメッシュを選択してください。過度のスムージングや穴が見られる場合は、マスクとスパース構造の密度を再検討してください。このパスは、後でベイクされ、オプションでポーズアライメントされるGLBを生成します。
SAM3DGaussianDecode (#37) 同じSLATから3Dガウシアン表現を生成し、迅速なプレビューと特定のレンダラーに役立ちます。ジオメトリと視点カバレッジを迅速に検証したい場合に便利です。ガウシアンがノイジーに見える場合は、マスクを改善するか、構造の品質を向上させて、このノードを過度に調整しないでください。結果のPLYは、テクスチャベイキングにも役立ちます。
SAM3DTextureBake (#47) ソース画像からデコードされたメッシュに外観を投影します。クローズアップが必要な場合は高解像度のテクスチャを使用し、迅速な反復のために高速プリセットを使用します。レンダラーの選択はシャープネスと速度に影響を与える可能性があります;プレビューにはより速いオプションを選択し、最終的なものにはより高品質のオプションを選択してください。このノードはプレビューとポーズの洗練のためにテクスチャ付きGLBを出力します。
SAM3D_PoseOptimization (#57) カメラ内部パラメータ、ポイントマップ、元のマスク、および初期ポーズを使用してGLBのアライメントを洗練します。薄い構造やハンドル周辺でのミスアライメントが観察される場合は、最適化予算を増やしてください。前景マスクをクリーンに保ち、最適化プログラムが背景ジオメトリに向かってドリフトしないようにします。最適化されたGLBは3Dプレビューでの検査の準備が整っています。
SAM3DBodyProcess (#61) ボディパーツに配慮した処理を行い、人間のメッシュとデバッグオーバーレイを生成します。使用ケースに適したモードを選択し、フルボディまたは特定の領域に合わせてメッシュカバレッジをガイドします。手や髪がクリップする場合は、これらの領域のマスクを洗練して忠実度を向上させてください。STLにエクスポートして迅速なチェックを行うか、必要に応じて後で変換します。
オプションの追加機能
- クリーンでコントラストの高いマスクを使用します。わずかにフェザーリングを行い、ハードエッジは通常SAM 3D ComfyUIオブジェクトモードでより良く再構築されます。
- 迅速な反復のために、最初にガウシアンパスを使用し、次にメッシュデコードと高解像度テクスチャベイクに切り替えます。
- ウェイトが認証を必要とする場合、グラフをキューに入れる前にローダーノードに有効なHugging Faceトークンを貼り付けます。
- フレーミングやマスクの問題を早期に発見するために、長時間のベイクの前にポイントクラウドとポーズプレビューを確認します。
- エクスポート形式:DCCおよびエンジンに最適なGLB、互換性のあるレンダラー用のPLYガウシアン、クイックな印刷規模チェック用のボディモードからのSTL。
- SAM 3D ComfyUI出力を使用してダウンストリームモーションまたはマルチビューシーケンスを駆動する計画がある場合、ショット間で被写体のスケールを一貫して保ちます。
謝辞
このワークフローは、以下の作品およびリソースを実装および構築しています。SAM 3D ObjectsおよびSAM 3D Bodyの貢献とメンテナンスに対してPozzettiAndreaに感謝いたします。権威ある詳細については、以下にリンクされたオリジナルのドキュメントとリポジトリを参照してください。
リソース
- PozzettiAndrea/SAM 3D Objects
- GitHub: PozzettiAndrea/ComfyUI-SAM3DObjects
- PozzettiAndrea/SAM 3D Body
- GitHub: PozzettiAndrea/ComfyUI-SAM3DBody
注: 参照されているモデル、データセット、およびコードの使用は、それぞれの著者およびメンテナによって提供されるライセンスおよび条件に従います。

