1 枚の画像から 3D モデルを作るのを、クラウドの有料 API (1 体 0.5 ドル前後) からローカルの無料生成に置き換えた。RTX 2080 Ti で形状生成 231 秒、テクスチャ塗りまで含めて 1 体まるごと 0 円。

公式手順通りでは動かなかった。詰まった場所を全部書く。

1 枚の画像から 3D モデルを作るのを、クラウドの有料 API (1 体 0.5〜0.8 ドル) からローカルの無料生成に置き換えた。RTX 2080 Ti で形状生成 231 秒、テクスチャ塗りまで含めて 1 体まるごと 0 円。

公式の手順通りでは動かなかった。詰まった場所を全部書く。

できたこと

  • Hunyuan3D-2 (重みが公開されていて商用可) を Windows + RTX 2080 Ti で実行
  • 画像 1 枚 → 231 秒で頂点 37 万の GLB
  • テクスチャ塗り (全周ベイク) まで含めて約 15 分で 1 体完成

詰まり 1: モデルのダウンロードが 0 バイトで固まる

公式のダウンローダ経由だと、大きい重みファイルが 0 バイトのまま固まる。小さい設定ファイルは普通に落ちてくるので、途中までは動いているように見えるのが性質が悪い。無効化用の環境変数も効かなかった。

回避: 重みファイルを curl で直接ダウンロードして所定のフォルダに置き、モデル置き場を指す環境変数でローカル読みさせる。必要なのは形状生成用 (約 4.7GB) + VAE (約 400MB)、塗りをやるなら UNet の実体 (約 7.3GB) も。

詰まり 2: テクスチャ塗りはコンパイルの壁

塗りには C++/CUDA 拡張のコンパイルが要る。

  • Visual Studio Build Tools + CUDA Toolkit が必須
  • コンパイラのバージョン非互換で門前払いされる → 非互換を許すフラグをコンパイラ側に渡して通した
  • 依存ライブラリの組み合わせが壊れやすいので、塗り専用の仮想環境を分けるのが結局一番早かった

詰まり 3: 「塗りが固まる形」がある

何体か処理すると、特定のモデルだけ塗りが永遠に終わらない。原因は面数でも破片の数でもなく、形の穴の数 (位相) だった。ループ状の部位や重なりで穴が多い形は、UV 展開が固まる。

trimesh の euler_number を見ると事前に分かる。穴が多い形は先に検出して弾く (または形を作り直す) ゲートを入れたら、固まりは消えた。

費用の比較

  • クラウドの有料 API: 1 体 0.5〜0.8 ドル。100 体で 1 万円超
  • ローカル: 0 円 (電気代のみ)。GPU は数年前の RTX 2080 Ti で足りた

「無料」の正体は「GPU さえあればタダ」。クラウドの値段は GPU 時間の値段だった。