GAN_thum7.png

2022.07.21

読了時間:5分

日本語版CLIPでAIアートに挑戦

A2B_102 (2).png

國田圭佑

どうも!sodaエンジニアの國田です。

突然ですが、皆さま、CLIPってご存じですか!?

CLIPは画像と文章を結びつけることができるAIモデルです。ある画像に対し、その説明文がどの程度合っているかを出力することができます。(これを難しい言葉で画像とテキストの類似度と言います。)
例えば、「たわわに実った赤いリンゴ」という説明文と「リンゴの実がたくさん宿った木の写真」はよく似ているという評価が得られ、同じ説明文に対し「猫のイラスト」を渡したり、「女優の顔写真」を渡したりするとあまり似ていない、合っていないという結果が数値で出力されるというわけです。

このCLIP、これまで英語版が主流でしたが、ついに先日、日本語版CLIPが公開されました!
日本語版CLIPのプレスリリースには「画像生成モデルと組み合わせることで、テキストから画像を生成することが可能です」とありますね。これは簡単に言いますと「日本語でAIに命令をして好きな画像を生成させる・・いわゆる『AIアート』ができます」ということです。

「CLIPでAIアート」と言うと、一見複雑なことをやっているように感じるのですが、原理的にはかなりシンプルです。
すなわち、
① AIに適当に絵を描かせる。
② 「AIが描いた絵」と「欲しい絵の説明文」をCLIPで⽐較することによって、似ている度合い(類似度)を算出する。
 この値を誤差として、誤差逆伝播を行い、 AIのパラメータを更新する(≒類似度が大きくなってくれるように調整する)。
③ 更新されたパラメータを⽤いて、新しい絵を描かせる。
④ 似ている度合い(類似度)が⼗分に大きくなるまで②、③を繰り返す。
という流れです。

今回はこのAIアートを日本語版CLIPを使ってやってみたいと思います。
日本語版CLIPそのものは公開されておりますが、残念ながら日本語CLIP組込済みの生成モデルは公開されておりませんでした。
ここは、自前で組み込みを行います。今回は生成モデルとしてハイクオリティな画像を生成できる「VQGAN」を選びました。

さぁ、やってみよう

では早速、日本語版CLIPを使って、AIアートを描いてもらいましょう!
AIには今回ものすごく意地悪をして、絶対に存在しなさそうな画像を生成してもらうことにします。

いきなりですが、一気に入力する文章と生成画像をお見せしちゃいますね!

南国のビーチに建つ東京タワー

南国のビーチに建つ東京タワー22.png

すごい!しっかりビーチに東京タワーのような物体が建てられています。

では続いて、

北極で咲くひまわり

北極で咲くひまわり22.png

これは、すごい・・!きちんとひまわりのようなものも描かれてますし、北極の氷も表現できているようです。地表に砂のようなものがチラホラ見えるのは、「ひまわり」という言葉から畑の土等が引っ張られたのでしょうか?

次はこちら、

深海にある京都

深海にある京都22.png

美しい・・!清水寺のようなものが描かれています。「京都」と言うだけで「清水寺」を提示してくるAIには『感嘆!』の一言。

富士山と自由の女神

富士山と自由の女神22.png

これも良いですね。これぞ日本とアメリカのコラボレーション。こんな画像が日本語を入力するだけで得られるあたり、恐ろしさを感じざるを得ません。

さて、以上はうまく生成できた例ですが、想定どおりにならなかった例もいくつかありましたので、紹介したいと思います。

ジムでトレーニングをするゴリラ

ジムでトレーニングするゴリラ21.png

なかなかそれっぽい画像にはなっていますが、個人的にはちょっと物足りなかった例ですね。
ジムにあるマシンの雰囲気がそこそこ出ているような気はするのですが、ゴリラがダンベル持っている画像やベンチプレスしている画像を期待していたので、惜しい感じがしてます。

喫茶店でコーヒーを飲む猫

喫茶店でコーヒーを飲む猫21.png

こちらは顔部分が惜しかったです。「喫茶店」「コーヒー」といった要素はきちんと描かれており、ハイクオリティにできたのに・・・。

漫画を読んで笑う犬

漫画を読んで笑う犬22.png

「漫画」「犬」のイメージは十分ですが、「笑う」部分が上手く表現できていませんね。このあたりの感情表現は絵に表すには意外と難しいのかもしれません。

最後にこちら

馬と娘の可愛い競馬

馬と娘の可愛い競馬22.png

「娘」の雰囲気は出ていますが、「馬」が惜しいですね。尻尾や脚は見えるのに頭が見当たらない様子。もう少し時間かけて生成させればうまくいくのでしょうか?

いかがだったでしょうか?
今回は、新たに公開された日本語版CLIPを生成モデルと組み合わせてAIアートを描かせる実験を行いました。
結果、日本語モデルでもかなり高品質かつ面白いAIアートを描くことができました。
一応、補足しておきますと、日本語版と英語版のCLIPとでは学習させている画像自体も異なりますので、厳密に英語版CLIPと全く同じAIアートを描くことができるということではありません。また、今回の聖生物に関しては細かい調整もしていない状態ですので、原論文に掲載されているようなレベルの画像にまでは至っていません。
しかしながら、「絶対に存在しないものを描け」という無茶振りにも対応できるような能力があることを存分にご理解いただけたかと思います。言葉が表す物体の特徴をこれだけ捉えられるのだから、CLIPは本当に素晴らしいモデルですね。
最近では、マルチモーダルAIに関する研究も盛んに行われており、アート分野以外でも何か使えたら色々面白いことができそうです。日本語版CLIP、今後も継続して試してみたいです。

おまけ

入力ワードに画風を示す言葉を含めることで絵のスタイルも変更できました。

ピラミッドの浮世絵

ピラミッドの浮世絵2521243093283269182.png

バーベルの浮世絵

バーベルの浮世絵.png

ではまた!

参考

Katherine Crowson, Stella Biderman, Daniel Kornis, Dashiell Stander, Eric Hallahan, Louis Castricato and Edward Raff, "VQGAN-CLIP: Open Domain Image Generation and Editing with Natural Language Guidance", 2022

RELATED POST

GAN_thum14.png
  • Tech Blog
  • 技術説明

2023.11.17

Stable Diffusionでミロのヴィーナスを復元してみる

お久しぶりです!sodaエンジニアの國田です! 「ミロのヴィーナス」って不思議ですよね?両腕の無い像で、現在に至るまで、多くの芸術家や科学者が欠けた部分を補った姿を推定していますが、現在のところ、定説と呼べるようなものはありません。「どのようなポーズをとっていたのか?」想像は多岐に及びますが、これに...

SentimentSLDA_thum1.png
  • Tech Blog
  • 技術説明

2023.09.25

感情分析とSLDAで文章から感情係数付きトピックを抽出してみる

こんにちは! sodaの古橋です。 ブログ投稿の間隔が結構空いてしまいまして、気付けば世間では阪神タイガースが18年ぶりとなるリーグ優勝を決めていました。 久々の優勝ということで大いに盛り上がっていますが、我が敬愛する中日ドラゴンズは2年連続の最下位争いを繰り広げているという状態で、私は...