🐱

Macで始める画像生成AI(Stable Diffusion)体験記

2023/03/29に公開

こんにちは!株式会社ペライチ のサーバーサイドエンジニアの福原です!

最近は ChatGPT を始め、さまざまな AI と呼ばれるものが話題ですね。
そんな中でも今日は画像生成 AI について触れてみようと思います。

ペライチでは LP に埋め込む画像について Pixta の画像をペライチ上でご購入いただいてそのまま利用できる仕組みになっています。
もちろん有料画像なだけあって良質な画像も多く、無料画像では出せない雰囲気があったりもするのですが、
「低コストでとりあえず LP を作ってみたい!」「そんなおしゃれな写真持っていない!」「画像の著作権が心配!」という人も多いと思います。

これ、画像生成 AI によって簡易的にオリジナルの画像がパッと生成できてそのままLPに埋め込めたら一定の課題解決になるのでは!
※という、1 エンジニアの妄想です。プロダクトに実際に実装されるかは保証しません。

というわけで、素振りのつもりで実行環境をマイ PC に作っていろいろと遊んでみようと思います。

環境について

  • MacOS : Big Sur 11.6
  • メモリ : 16GB
  • グラフィックス : Intel Iris Plus Graphics 1536 MB

画像生成 AI について

世の中の膨大な画像を元に学習し、新しい画像を生成するしくみを獲得した人工知能のこと、だそうです。
一口に画像生成 AI といってもさまざまですが、 ここでは TextToImage のものをさして呼ぶこととします。
生成してほしい画像の情報をテキストで渡すと、それらしい画像が出力されるというものですね。

今回はあまたある画像生成 AI の中でも Stable Diffusion というものを使ってみます。

Stable Diffusion

Stable Diffusion が何よりも特徴的なのは、オープンソースであり利用にお金がかからないこと。
Stable Diffusion を採用した Web サービスもあり、それらを使えば簡単に試せるのですが、やはりサービスなのでお金がかかってしまいます。
オープンソースなので、自環境にもろもろインストールして実行することで利用上限なしで遊べます。
ただし、それなりのスペックがあるPCでないと厳しいものがあるようです。
サービスに組み込むことになったらつよつよサーバーにおけばいいので一旦気にしないことにします。

Stable Diffusion 自体はライセンス的にグレーなモデルであり、訴訟を起こされたりもしているため、
実際にサービスに組み込むなど商用利用する際には権利元が明確なモデルを利用する形になります。
もし商用利用の際には権利周りについて十分に注意してください。

環境作り

Pythonの準備

Stable Diffusion を実行するのに Python が必要なのでインストールします。
相性の問題で 3.11 以降はエラーが出るので 3.10.6 を使います。

Stable Diffusion の準備

こちらを使わせていただくことにします。
Stable Diffusion をローカル環境で起動し、ブラウザを介して操作できるようにしてくれるものです。感謝。
https://github.com/AUTOMATIC1111/stable-diffusion-webui

リポジトリをクローンしてきて、 webui.sh を実行します。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
sh webui.sh

必要なもののインストールやらが始まるので終わるまで待ちます。
(場合によってはめっちゃ待ちます。気長に待ちましょう。)

ローカルの接続先情報が表示されたら完了です。
アクセスしてみましょう。

post

いろいろ遊んでみる

ブラウザにアクセスするとこんな画面が出ます。

post

いろいろと機能があるのですが、とりあえず適当に画像を作ってもらいましょう。

「Generate」ボタン(画像の①)を押してみます。
よほどハイエンドの Mac をお持ちの方でなければ、めっちゃ時間かかりますのでコーヒーでも入れて待ちましょう。
(私の環境では 8 分ほどかかりました)

この時、「RuntimeError: “LayerNormKernelImpl” not implemented for ‘Half’」というエラーが出た場合、
おそらく性能の問題です。(16系のグラボだと必要になるらしいです)
stable-diffusion-webuiディレクトリ内にあるwebui-macos-env.shのCOMMANDLINE_ARGSに以下を追加して再起動してみてください。
※公式からの情報ではなくハック的な対処療法なので自己責任でお願いします。

--precision full --no-half

そして生成された画像がこちら。
なんとも言えない抽象的な画像が出てきました。
post

今度は何を描いてほしいか指示してみます。
Prompt と書かれているところ(画像の②)に以下を入力して Generate してみます。

cat, cute

post
おお!
これはさすがにかわいい猫といっても遜色ないですね!

続いては何を描かないでほしいかも指定してみます。
Negative prompt と書かれているところ(画像の③)に以下を入力して Generate してみます。

white color

post

ふむふむ、白い毛の部分が少なくなったような気がしますね。
今はこれしか入れてませんが、人を出力しようとした際には「壊れた手」や「 3 本の腕」のような人体としてありえない要素を指定したりするようです。

まとめ

画像生成 AI (Stable Diffusion)をローカル環境で無制限に遊べる環境を作り、最低限の使い方を確認しました。
他にも調整できるパラメータや機能がたくさんあるのですが、それはまたおいおいで。
デフォルトのモデルを使いましたが、美少女イラストに強いモデルやリアル系・写真系に強いモデルなんかもあったりするようです。
用途によってモデルを切り替えることでさらに欲しい画像に近付けるかもしれませんね。

AI によって生成された画像の著作権は議論が別れるところかもしれませんが、
あらゆる SaaS 上でこのような画像生成 AI の仕込みが導入されているのがスタンダードな世界がくるかもしれません。
素振りして備えていきましょう!

採用情報

現在エンジニア募集しています!

▼ 採用ページ
https://recruit.peraichi.co.jp/

▼ 選考をご希望の方はこちら(募集職種一覧)
https://hrmos.co/pages/peraichi/jobs?category=1629135637016141824&utm_source=techblog&utm_medium=referral&utm_campaign=article-01gw7n4bpw0w41dnabjaa4pdez

▼ まずはカジュアル面談をご希望の方はこちら
https://hrmos.co/pages/peraichi/jobs/0000029?utm_source=techblog&utm_medium=referral&utm_campaign=article-01gw7n4bpw0w41dnabjaa4pdez

募集中の職種についてご興味がある方は、お気軽にお申し込みください(CTO がお会いします)

ペライチ

Discussion