見出し画像

ClipMatrix: text controlled 3D mesh deformation and stylization

ClipMatrix:テキスト制御の3Dメッシュの変形とスタイル化

guruguruhyena

2022年4月21日13:20

新しいタイプのテキスト制御AIジェネレーティブアート:テキストを与え、そこから3Dテクスチャ形状を取得します。このコードは私の最近の論文に大まかに基づいていますが、内部にはさらに多くのトリックがあります。気軽に遊んだり、アートを作ったり、さらに良くしたりしてください。それに基づいた新しいMLテクニックを試してみてください。このコードを使用したり、そこからアートワークを投稿したり、変更したりするときは、私のTwitterアカウント@NJetchevまたは論文を引用してください。

あなたからの入力:

  • メッシュテンプレートの開始

  • CLIPによって解釈されるテキストプロンプト

出力:生成されたメッシュのビデオ。デフォルトではclip_videosフォルダーに保存されます

クールな機能:

  • 私のアカウントでアートワークとインスピレーションを確認してください@NJetchev

  • 開始形状の任意のテンプレートメッシュのサポート

  • 微細部品制御の対象領域を定義する

  • シャドウマッピング

  • 通常マッピング

  • ソボレフ平滑化

  • 高度なアニメーション効果のためのニューラルシェーダー

  • 3Dメッシュファイルをエクスポートして、3Dプリンターサービスで作品を印刷できます

使用されたライブラリとレファレンス:かなり多くありますが、私は最も感謝しています

  • OpenAIのCLIP

  • MetaのPytorch3D

  • この論文の著者

  • SMPLの研究者、サンプルの静的model.objは、研究目的でWebサイトから取得されます。

  • このコードのUIの役立つ提案とテストについては@nonlethalcode

Open_ClipMatrixの次のアップデートの私の計画は何ですか:

  • このコードは、最近のClipMatrixCreaturesアートプロジェクトに関連しています。よろしければ、NFTクリーチャーの所有者は、ClipMatrixツールの新しいバージョンへの以前の排他的アクセスを取得します

  • 現在、内部にはリギング可能なモデルはなく、静的テンプレートのみがあります。将来的に追加する可能性がありますが、まだ定かではありません。コードが複雑になり、実行時間が大幅に増える可能性があります。

  • このバージョンでは、楽しくて速く遊ぶことができる小さくて機敏なデモに焦点を当てました。


手順:ユーザーが調整する設定

注:このバージョンでは、設定が比較的低いレベルに設定されているため、p100などの弱いGPUでもすぐに使用できます。16 GB以上のGPUメモリを備えた優れたマシンを使用している場合は、テクスチャサイズ、メッシュの細分割など、より高い値に設定します。

展開するメッシュがどれほど強力で詳細になるか、および出力ビデオを保存する前にメッシュを計算する期間を決定できます。



特性

コレクションは、4つの異なる特性を使用して生成されます。それらの値の組み合わせは、多くの異なる生き物を生み出します。CreatureTextureの特性値は、AIを操作するために使用される入力テキストプロンプトを定義します。ClipMatrixを使用すると、特性や価値の範囲内でも、多様性とカスタマイズが可能になります。たとえば、戦士の生き物は、プロンプトの「装甲騎士」または「中世の戦士」から来ることができ、微妙な単語の選択は、生成される3Dフォームに影響を与えます。これらの特性に対する豊富なプロンプト言語は、人間のアーティストが最終的な出力に影響を与える重要な方法です。アートワークの説明で正確なプロンプトを確認できます。特性の値とカウントは以下のとおりです。

クリーチャー–クリーチャーの主なタイプ。

  • 戦士、142

  • ロボット、96

  • 魔法、93

  • サイボーグ、83

  • アンデッド、62

  • エイリアン、24

テクスチャ–クリーチャーの外観と陰影。

  • アート、147

  • ライト、143

  • 有機、65

  • スチームパンク、44

  • さびた、39

  • biomech、27

  • 軍隊、17

  • 落書き、13

  • 生物発光、5

モーション–クリーチャーによって実行されるアクションシーケンス

  • 歩く、134

  • ロボウォーク、102

  • ゾンビクリープ、92

  • スペルキャスト、56

  • 猿の動き、46

  • 兵士の行進、32

  • ドラム、27

  • 空手、11

武器化–クリーチャーが追加の武器を持っているかどうか

  • 武器なし、494

  • 武器、6

コンセプト

3Dグラフィックスと生成AIアルゴリズムの世界は、過去数十年のほとんどで異なってきました。3Dゲームは、ますます高いリアリズムと美学に到達するように進化しましたが、アーティストとゲーム開発者によって作成された形状とテクスチャを使用して、常に厳密にスクリプト化されていました。人間は想像力を高品質のグラフィックスに変換して、ヒーローやモンスターでいっぱいの素晴らしい3Dゲームの世界で没入型の体験をすることができます。古典的な傑作(例:World of Warcraft、Dark Souls、Doom…)良い例です。これらのために、人間の3Dアーティストとゲーム開発者は、世界の伝承を説明するコンセプトアート/テキストストーリーからインスピレーションを得て、適切な3Dアセットを作成します。ただし、このようなアセットの作成には非常に時間がかかります。カスタマイズは、ゲームにハードプログラムされたデザインの選択によって常に制限されます。

代わりにAIを使用して、ユーザーのためにそのようなデザインを作成できるとしたらどうでしょうか。世界の強力な視覚的知識とそこからの概念や記号の知識を組み合わせた新しい生成AIアルゴリズムの発明は、3Dクリエイティブの生成を劇的に変えることができます。AIを使用すると、ゲーマーはゲーム内のアバター(およびその他の3Dアセット)を好きなように作成でき、言葉の無限の想像力を3Dオブジェクトに変換して、目を楽しませ、脳を浸すことができます。そして、これはまさに私たちの先駆的なアルゴリズムであるClipMatrixが行うことであり、高品質の高解像度3Dオブジェクトの無限の多様性と斬新さを可能にします。「ブラックナイト」を作りたいとしましょう。従来開発された3Dゲームとグラフィックスのアプローチでは、アーティストはアセット(メッシュ、テクスチャ、マテリアルなど)を定義して保存する必要があります。50人の異なる騎士を作りたい場合は、50個のアセットを作成する必要があります。しかし、ClipMatrixを使用すると、いくつかのコンセプトワードを定義して、50人の黒騎士を作ることができます。また、AIモデルの固有の柔軟性により、それぞれが他の騎士とは異なります。たとえば、「ゴシック様式の騎士」と言って黒い金属の戦士を手に入れたり、「スチームパンクの騎士」と言って鎧に光とガラスを付けたりするのと同じくらい簡単です。次に、それらから軍隊を作り、より多様なゲームを作成するか、好みに合った最も見栄えの良いものを選択することができます。

Tech

写真が千の言葉の価値がある場合、動く3D形状は百万の価値がなければなりません。テキストプロンプトのセマンティクスに適合する画像を作成する最近の生成方法(テキストから画像への生成)の成功に基づいて構築し、それを3Dオブジェクトの制御された生成に拡張します。私たちの最近の出版物テキストプロンプトによって制御される、テクスチャ3Dメッシュを作成するための新しいアルゴリズムを示します。(i)事前にトレーニングされた神経表現(2D画像とそれらを説明する単語)に保存された視覚情報、および(ii)事前に慎重に選択された神経アーキテクチャとパラメトリック形状のため、非常に効率的に機能します。ClipMatrixは、見た目に美しい高解像度の関節式3Dメッシュを作成し、3Dアセットの自動化とAI制御の新しい可能性を開きます。CLIPを活用していることから「ClipMatrix」と呼ばれています 新しいデジタル3Dクリーチャーを繁殖させるためのテキスト埋め込み、「マトリックス」–「マザー」という単語のラテン語の意味に賛成。現在のコレクションは、最初のClipMatrixの公開から大幅に改善された実験的なアルゴリズムを利用しています。法線マッピング、シャドウマッピング、ニューラルシェーディング、その他多くの高度なディープラーニングおよびグラフィックモジュールなど、現在のコレクション用に特別に開発された強力なグラフィックスとニューラルネットワークプリミティブを使用します。ClipMatrix Creaturesコレクションは、豊かなテクスチャを備えたAI生成の3D形状の驚くべき視覚的結果を調べるためのユニークな方法です。コードとツールは(まだ)幅広い視聴者に利用可能ではないため、現在のコレクションは、その暗い生成3Dの美しさを楽しむための初期の機会です。


A novel type of text controlled AI generative art: you give a text and get a 3D textured shape from it. This code is loosely based on my recent paper, but has many more tricks inside. Feel free to play with it, make art or even better: experiment with new ML techniques based on it. Please cite my twitter account @NJetchev or the paper when using this code, posting artwork from it or modifying it.

Inputs from you:

  • starting mesh template

  • text prompt to be interpreted by CLIP

Outputs: videos of the resulting generated mesh. by default saved in clip_videos folder

Cool features:

  • check my account for artwork and inspiration what is possible @NJetchev

  • support for arbitrary template meshes for starting shapes

  • define regions of interest for fine part control

  • shadow mapping

  • normal mapping

  • Sobolev smoothing

  • neural shaders for advanced animation effects

  • you can export the 3D mesh file and print your work in a 3D printer service

Libraries and references used: quite many, but I am most thankful to

  • OpenAI's CLIP

  • Meta's Pytorch3D

  • the authors of this paper

  • the researchers of SMPL , the sample static model.obj is taken from their website for research purposes

  • @nonlethalcode for helpful suggestions and testing of the UI of this code

What is my plan for next updates of Open_ClipMatrix:

  • this code is related to the recent ClipMatrix Creatures art project. If you appreciate it, holders of NFT Creatures will get earlier exclusive access to new versions of the ClipMatrix tool

  • currently there are no riggable models inside, just static templates. I may add them in the future, not certain yet. It can complicate the code and increase runtimes a lot.

  • In this version I focused on a small and agile demo that is fun and fast to play with.


Instructions: settings to tune by User

Note: this version has settings set to relatively low levels, so that it works out of the box even for weaker GPUs like p100. If you have a good machine with 16 GB or more GPU memory, set them to higher values, e.g. texture size, mesh subdivision, etc.

You can decide how powerful and detailed the mesh you evolve will be, and how long you will compute it before saving the output video

この記事が気に入ったらサポートをしてみませんか?