![見出し画像](https://assets.st-note.com/production/uploads/images/63344554/rectangle_large_type_2_2cc701aa8966f0a99e4dc7cae70aca59.png?width=1200)
VQGAN+CLIPで遊ぶ ~アイマスを画像生成したりTouchDesignerで加工するなど~
VQGAN+CLIP とはテキストを入力するとその内容をもとに画像を生成してくれる機械学習モデルです。
VQGAN + CLIP “New York in the year 2030” pic.twitter.com/npxcHSaWFt
— AK (@ak92501) July 17, 2021
上記はAKさんによる「New York in the year 2030」らしい。
正確には画像生成によく使われるGAN(Generative Adversarial Networks)という機械学習の手法の中で高解像度の出力に対応したVQGAN と、いつもヤバいAI を発表しているOpenAI による画像とテキストを結びつけるための仕組みであるCLIPを組み合わせたものになります。
CLIP も正確には学習コストを削減するためのゼロショット学習を取り入れた画像分類モデルという感じですが私には荷が重いので説明省きます(←これだけでも書き方が怪しいので気になる人はCLIP のリンク先や他の方の解説記事を参照してください)。
そんなVQGAN+CLIP ですがKatherine CrowsonさんやAdverbさん辺りが作者っぽいです。GIGAZINEの記事で作者って紹介されてる人は違う実装を使ったらしいですがどうなんでしょう(記事内のクレジットの書き方は良くない気がする)。
作者の皆さんに感謝しつつ実際にVQGAN+CLIP を使って遊んでみました。
Web上でVQGAN+CLIPを動かす
オンラインのPython実行環境であるGoogle Colab を使ったVQGAN+CLIP のデモが公開されているのでそちらを使わせてもらいます。ローカル環境で動かしたい方はこちらのリポジトリが使えるかも(私は試していませんが元になった別のノートブックはこちら)。
基本的にはセルを上から実行していくだけなので簡単です。さらにこちらのページでめちゃくちゃ丁寧に説明してくれているので参考にすると良きです(スペイン語っぽい)。
軽く補足すると、「Selección de modelos a descargar(※1)」にてモデルを選ぶ際は先にこちらを参照すると良いでしょう。
「Parámetros」のancho とalto は出力画像の横&縦幅です。modelo でモデルを変更するには前述したセル※1で事前にダウンロードしておく必要があります。seed が-1になっていると毎回ランダムなシードが入力されます。max_iteraciones が-1になっていると自分でセルの実行を停止するか処理がクラッシュするまで画像を生成し続けます(colab のストレージ内)。あとは自分で用意した画像をcolab にアップすることでその画像自体を入力に使うこともできます。
生成された画像たちは「Genera un vídeo con los resultados」にて動画ファイルとしてダウンロードできます。任意の画像(フレーム)で動画を止めたい場合は"last_frame = i"の値を変更します(ちなみにiは画像生成時のイテレーション変数です)。
色々なテキストを入力してみた(Generativeアイマスなど)
それではVQGAN+CLIP で生成した画像(を元にした動画)をご紹介します。
今更ながらVQGAN+CLIPを使ってみる。これは「cute art dog」。#vqganclip pic.twitter.com/erTazW95uk
— フレhahTD (@eatora22) October 4, 2021
「cute art dog」可愛い芸術犬です。たしかにそれっぽい気もする。
"Cute Generative Art" by VQGAN+CLIP#vqganclip #generativeart pic.twitter.com/kgKq7xYxnj
— フレhahTD (@eatora22) October 6, 2021
「cute generative art」です。可愛いジェネラティブ・アートとはなんぞや。ちなみに「art」を入れると絵画っぽくなる気がします。
VQGAN+CLIPで入力テキストは英語にしろって書かれているんだけど、日本語入力でもユニコードに変換されて1文字単位なら認識されているっぽい?上は「かわいい 芸術 犬」で下は「犬 猫 高層ビル」です。#vqganclip pic.twitter.com/ODDrWUSZyx
— フレhahTD (@eatora22) October 7, 2021
あと上記ツイートでも書いたように一部の日本語入力でもいけるようないけないような。
"idol master" by VQGAN+CLIP#vqganclip #Generativeアイマス pic.twitter.com/IHlIbi9iwR
— フレhahTD (@eatora22) October 10, 2021
次に「idol master」です。私はアイマス作品が好きなんですが、これがAIの考えるアイドルマスターなのか。
"idol master shiny colors" by VQGAN+CLIP#vqganclip #Generativeアイマス pic.twitter.com/UKcydiVDG3
— フレhahTD (@eatora22) October 10, 2021
「idol master shiny colors」です。シャニマスは良いぞ。
"generative idol master" by VQGAN+CLIP#vqganclip #Generativeアイマス pic.twitter.com/uFk0keNiaj
— フレhahTD (@eatora22) October 10, 2021
最後に「generative idol master」です。個人的に一番キモくて好きな出力結果です。真ん中に立っているのもアイマスのプロデューサーっぽく見えてきました。右上に浮かび上がってくる顔もヤバい。
TouchDesignerで加工してみた
さらにVQGAN+CLIP で出力した動画を素材としてTouchDesigner で一つの映像作品っぽく加工してみたいと思います。
具体的にはピクセルソーティングっぽいエフェクトを曲の進行に合わせながら加えつつ、DaVinci Resolve で加工した素材を組み合わせただけです(GAN の出力をそのまま活かしたかったのでカラグレ等はしてません)。
最終的にこんな感じになりました。
ちなみに左から「Cute Generative Art」「Cool Generative Art」「Passion Generative Art」「Artificial Generative Art」です。
さいごに
以上、VQGAN+CLIP で色々と遊んだ記録でした。気が向いたらもうちょっとコード側をいじっても良いかもしれません。あとCLIP Guided Diffusion とか。
ちょっと技術的な内容も含まれてしまいましたが、普段ははてなブログで記事を書いています。GAN 関連もたくさん記事書いてますので良ければチェックしてみてください(シェアいただけると嬉しい)。
スキを押すと「あたり」か「はずれ」が出ます。