Pixal3D(C++ 版の trellis.cpp)を Radeon で技術検証したとき、画像から 3D を作る1本あたりの時間を、最初の5本の平均で見積もりました。ところが別の題材を回すと約 3〜13 分と大きくばらつき、その見積もりは甘すぎました。時間の上限を置いて回すなら、どこで外れるかを知っておきたいところです。
結論
- 所要は、物の表面の細かさで決まりました。1024 の段のトークン数が 7,531 の素体は 175 秒、26,783 の髪は 793 秒です。
- 1024 の形の flow の時間は、トークン数のおよそ 1.7 乗で伸びます(7 点から見た目安です)。
- 自作の Python スクリプト全体では 180.0〜798.4 秒(平均 391.8 秒)、RSS の最大は 3.1〜8.5 GiB で、どちらも髪が最大でした。
- 最初の5本の平均 125.5 秒(12 ステップ・別の題材)は、髪の 798.4 秒の6分の1ほどでした。時間の上限は、細かい題材まで含めて測った値から決めるほうが安全です。
試した環境
- Pixal3D を trellis.cpp v0.8.1(HIP でビルド)で動かしたもの。Radeon RX 7900 XT(gfx1100、VRAM 20 GB)、Ubuntu、ROCm 7.2.4
- 1024・色付き・16 ステップ・画角 15°
- 題材: 1人のキャラクターのパーツ 7 本(素体・髪・上着・シャツ・ズボン・靴・リュック)
- trellis-cli は自作の Python スクリプトから呼びました
測った値
1024 の段のトークン数と、trellis-cli の所要です。
| パーツ | トークン | 所要 |
|---|---|---|
| 素体 | 7,531 | 175 s |
| 上着 | 8,916 | 194 s |
| ズボン | 10,149 | 221 s |
| シャツ | 13,583 | 318 s |
| 靴 | 17,512 | 437 s |
| リュック | 20,587 | 567 s |
| 髪 | 26,783 | 793 s |
トークン数は 3.6 倍ですが、所要は 4.5 倍に伸びています。細かい物ほど、1トークンあたりの時間も長くなります。1024 の形の flow は、トークン数のおよそ 1.7 乗で伸びていました(7 点から見た目安です)。一番重い髪では、形の flow に 345 秒、色の flow に 204 秒かかっています。
どれも1枚の画像から作っていますが、トークン数は物ごとに大きく違い、多かったのは髪・リュック・靴でした。所要を画像の枚数だけで見積もると、ここで外れます。

時間の上限は細かい題材を含めて決める
最初の5本(同じ 1024・色付きで、12 ステップ)の平均は 125.5 秒でした。7 本の平均 391.8 秒の3分の1に届かず、一番重い髪の 798.4 秒とは6倍あまり離れています。
時間の上限を置いて回すなら、最初の数本の平均ではなく、細かい題材まで含めて測った値(最長 798 秒、RSS の最大 8.5 GiB)から決めるほうが安全です。最初の5本と7本では、ステップ数(12 と 16)も題材も違い、差のうちどれだけがステップ数によるかは分けて測っていません。
確かめていないこと
- ステップ数の違い(12 と 16)が所要にどれだけ効くか。
- キャッシュが冷えた状態(GGUF の一式 14 GB を読むところから)の所要。
おわりに
試した 7 本では、Pixal3D の生成時間は、画像の枚数ではなく物の表面の細かさに沿って伸びました。時間の上限や見込むメモリは、細かい題材を含めて測った値から決めると安心です。


