irisuinwl’s diary

サークル不思議(略)入巣次元の、数学や技術的なことを書きます。

stable diffusionを試した & 雑感

こんにちは。

最近mid journeyで遊ぶのにハマってました。

stable diffusionが萌え絵で良い感じだし下書きを良い感じに清書してくれるっぽいので試した。

colab:  https://colab.research.google.com/drive/1h1AXkHMw6gw8BF8cUcs-7rcYS7IH6Nhw?authuser=1#scrollTo=1-b9n6sUZ7LX

  • 原著論文

arxiv.org

github.com

  • 実装する上での参考: 

note.com

  • 公式サンプルが手厚い

huggingface.co

Text to Image

Code:

prompt = "Kawaii, Nekomimi Girl"
with autocast("cuda"):
    image = pipe(prompt, guidance_scale=7.5)["sample"][0]  
    
image.save("kawaii_nekomimi_girl.png")

Output:

nekomimiじゃない

Image to Image

雑に描いた絵を良い感じにしてもらえるのではと思ってやった

www.youtube.com

こちらの動画を参考にした。

Input Image: 5分くらいで描いたダスカ

結果の画像

所感

再現性の問題と品質

出力される絵は良い感じだが、全然ダスカにはならない。 自分のそもそもの絵のinputが悪いか、Promptが悪いのか要因は様々だけど、コンテキスト通りにいい感じの絵にするのは自分のやった範囲では難しい。

また、結構めちゃくちゃな絵は出力されるので、SNSで取り上げられているようなすごい絵が一発では出ないと感じた。 (もしかしたら何十回、何百回もやれば出るかもだけどそこまでは試していない)

ただ、思い通りにいかないといっても、StackGANとかDCGANで遊んで感動していた時代と比べると、出力される結果は段違いですごい。

StackGAN v2を2000epochくらい回した結果が以下なので、13秒程度で絵として形になっているものが出るのはマジですごい。 StackGAN v2は2017年、そして、5年でこれができるって、シンギュラリティだよこんなの

ただ、ツイートした通り、今すごいと言われているアウトプットが何十回、何百回もの試行、そして、特殊なパラメーターの設定だとしたら、再現性の観点で問題が起きそうに感じた。

さらに一般的には、生成モデルをプロダクトにするときの品質はめちゃめちゃ難しいと思った。

つまり、生成されたアウトプットに期待する品質は何か? に正解は無いし、ユーザーの期待もまちまちなので、それを統一的にプロダクトとして品質を考えるのは、正解のないシステムの品質を考えることになり非常に難しい

GANの文脈では指標として FID などがあったが、拡散モデルにおいても同様に品質観点は考えられていると思うのでそこは興味あるので論文とかは読んでおきたい。

en.wikipedia.org

Mid Journeyはマジですごい

前述した難しい状況で生成モデルを運用して、ある程度マネタイズもできてそうなmid journeyは本当にすごい。

単純に良いと思われるモデルをchatopsに乗せるっていうスタイルでユーザーが増えてるのはすごいと感じる。

良いモデルをサービングして使ってもらうだけで勝負するのは本当に厳しい。

stable diffusionがstack gan v2から5年でここまで進化したように、機械学習分野のSOTAは日々変わるし、なんならTransformerみたいにある日突然全ての常識を塗り替えるパラダイムが生まれる

Google の Rule of MLには、まずはシンプルなルールベース、ヒューリスティックで製品を出してソフトウェアエンジニアリングおよびデータの問題を解決しろとある。

developers.google.com

そんな中ですごいモデル、シンプルなインターフェースで人々を魅了するサービスはやはりロマンがあって本当に胸が熱くなる。

自分が2016年にAIエンジニアとして仕事をして、Word2Vec, GAN, VGG16といった世界を変えるのではないかというモデルが出てくる中、それを実用化しようと日々開発していた頃を思い出した。

どんどん使う

これをどんどん使っていきたい。

どんどん使っていくことで、絵を描くという行為が民主化されると同時に、絵を描いてる人は低い労力で表現力が高くなる、絵を描くということに関して新しい世界が訪れることを期待している。

例えば、以下のような

  • 人体は描けるが背景は苦手という人が、AIによって背景を描くのを助けてもらえる
  • キャラクターデザインが思い浮かばないので、思いついたワードからランダムに出力して、AIのアイデアからデザインを生成する
  • 絵の描けないyoutuberや、作曲家が、コンセプトを入力することで、シングルのジャケットなどを作れる
  • 絵の初心者が雑に描いた下書きをAIに与えて、アウトプットの絵から絵の描き方を学習する

自分は絵の初心者なので、これを使ってアイデアを表現出来たらうれしいし、その世界が来たらマジで嬉しいし、マジで楽しくなると思っている。