やること
この1週間、AI界隈はStable Diffusionの話でもちきりです。テキストから画像を生成するやつですね。私たちは布のテクスチャ撮影やシミュレーションをしているのですが、こちらのツイートによれば境界をループさせて生成することでタイリング可能なテクスチャが生成できるとのこと。
注意したいのは、生成できるテクスチャは法線マップ(ノーマルマップ)等の立体情報を含んでいません。カラーマップのみ、つまりWebサイトの背景の「壁紙」と一緒です。3Dエンジンでクロスシミュレーションしてものっぺりした感じになるのではないかと予想しています。
まあそれはなんとかするとして、さっそくStable Diffusionで生成した布テクスチャをBlenderのクロスシミュレーションに貼ってみましょう。
参考文献・実装環境
Stable Diffusionの本家はこちら
実装方法は星の数ほどアップされているので省略します。ループ生成は冒頭のツイートを参照しました。実装環境は Windows10 / WinPython3.6 / GTX1080 / CUDA 11.6 / torch-1.8.0 です。GPUが古いので適応バージョンを探すのに時間がかかりました。
テクスチャ生成
white fine elegant lace floral texture
まずは「white」で9枚生成。
colorful fine elegant lace floral texture
次に「colorful」で9枚生成。
1枚あたり約15秒、GPUコア温度は82℃くらい。
クロスシミュレーション
GPUがショボくて低解像度の画像しか生成できなかったため、冒頭のツイートの3枚目の画像を拝借してクロスシミュレーションに貼ってみました。感謝いたします!
Blenderでタイリングして例のサル(スザンヌという名前らしい)に被せました。
Unreal Engine 5でスーパーパーソンのマントにしてみました。
考察
法線マップは生成できないので適当なものを転用したいところです。シンプルな布であればカラーマップは柄担当、法線マップは繊維担当と比較的独立しているので転用しやすいと思います。しかしスケスケのレースはそういうわけには行きません。このあたりは今後の課題になるかと思います。
それにしてもすごい時代になりましたね。