2022年8月23日

midjourneyより高性能だけど入口の敷居が高すぎるStable Diffusionについて、かわなえさんによる導入方法解説まとめ+他の人の補足など

難易度高いけど、出来上がったアウトプットがすごすぎる…確かにmidjourney越えてる
658
リンク ITmedia NEWS 画像生成AI「Stable Diffusion」がオープンソース化 商用利用もOK AIスタートアップ企業の英Stability AIは、画像生成AI「Stable Diffusion」をオープンソース化した。AI技術者向けコミュニティサイト「HuggingFace」でコードやドキュメントを公開した他、同AIを試せるデモサイトなども公開している。 154 users 134
リンク はてな匿名ダイアリー HなStable Diffusion 前提として、StableDiffusionでエロ画像を出そうとしてもsafetycheckerという機能が入っており、センシティブな画像を出そうとすると黒塗りになる。(Stable… 180 users
まとめ AI、ついに「二次元のKAWAII」を理解? KAWAIIは作れる 157990 pv 636 759 users 362

ちなみに、Stable Diffusionを使ったファーストパーティのWebサービスあるから試すだけなら環境構築不要です(制限あり)

https://beta.dreamstudio.ai/dream

かわなえさんのまとめ

かわなえ@イラスト @kawai_nae

Stable Diffusionが一般公開されて自分のPCで動かせるようになったので、全く知識がないけど環境を構築してみました。ちょっと忘れないように簡単にまとめてみる。(1)

2022-08-23 07:29:53
かわなえ@イラスト @kawai_nae

必要なもの hugging faceのアカウント Nvidiaのグラボ(私の環境ではRTX3070Ti) Nvidia Tool kit v11.7 Nvidia cuDNN v8.5 python v3.10 たしかこんな感じ(2)

2022-08-23 07:33:55
かわなえ@イラスト @kawai_nae

基本は huggingface.co/blog/stable_di… この開発者さんのドキュメントを見ながら進めていく まず”we'll use model version v1-4, so you'll need to visit its card, read the license and tick the checkbox if you agree.”とあるので"its card"のところをクリックする(3)

2022-08-23 07:39:34
かわなえ@イラスト @kawai_nae

するとここに飛ぶので読んだうえでAccess repositoryを押す。hugging faceのアカウントが無ければこのタイミングで作る。(4) pic.twitter.com/36j8R6cgpL

2022-08-23 07:41:09
拡大
かわなえ@イラスト @kawai_nae

次はAccess tokenを作る。サイト右上のアイコンをクリックしてSettingsを開いたページの左列AccessTokensをクリックする。ここでNewTokenを押して適当な名前を付けてRoleはreadのままGenerete a tokenを押すと、こんな感じにtokenを作ることができた(5) pic.twitter.com/VVdkp2FIQx

2022-08-23 07:45:13
拡大
かわなえ@イラスト @kawai_nae

次はpythonをインストールするpython.jp/install/window… ここを参考にインストールする。一応バージョンは最新の3.10.6でOK(6)

2022-08-23 07:49:48
かわなえ@イラスト @kawai_nae

次はNvidia Tool Kit とcuDNN、pytorchをインストールする。 zenn.dev/ryu2021/articl… ここを参考にインストールする。Nvidia Tool Kitは最新の11.7、cuDNNも最新の8.5、pytorchのcudaはNvidia Tool Kitで追加されたシステム環境変数に合わせて選択する。(7)

2022-08-23 07:55:05
かわなえ@イラスト @kawai_nae

これで必要なものは揃ったのであとはCMD(管理者権限)でコマンドを入力していく。まずは "pip install diffusers==0.2.4 transformers scipy ftfy" で必要なものをインストールする。(8)

2022-08-23 08:00:22
かわなえ@イラスト @kawai_nae

次に以下のコマンドを入力していく ”python” ”import torch” ”torch.cuda.is_available()” と入力してtrueが返ってくることを確認する "from diffusers import StableDiffusionPipeline " (9) pic.twitter.com/ngDYyZonq6

2022-08-23 08:05:44
拡大
かわなえ@イラスト @kawai_nae

続けて ”pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token="トークン")” トークンの部分には最初の方で作ったhugging faceのトークンを入れる。初回にはダウンロードが入るからちょっと待つ(10)

2022-08-23 08:07:50
かわなえ@イラスト @kawai_nae

続けて "pipe = pipe.to("cuda")" "prompt = "a photograph of an astronaut riding a horse"" このpromptに格納するのがAIに描いて欲しいもの ここのはドキュメント通りの文章(11) pic.twitter.com/aS4qrAXdiM

2022-08-23 08:11:19
拡大
かわなえ@イラスト @kawai_nae

続けて ”from torch import autoca” ”with autocast("cuda"):” ” image = pipe(prompt)["sample"][0]” と入力してEnterを押す。注意としてimageの前にスペースが必要。(12)

2022-08-23 08:14:29
かわなえ@イラスト @kawai_nae

修正 誤:”from torch import autoca” 正:”from torch import autocast” (13)

2022-08-23 08:17:27
かわなえ@イラスト @kawai_nae

ここまで入力すると画像の生成が始まる。使うGPUにもよるとは思うけどRTX3070Tiの場合9秒で生成できた。(14) pic.twitter.com/7Epwb1Aith

2022-08-23 08:19:08
拡大
かわなえ@イラスト @kawai_nae

生成した画像を保存するには "image.save(f"image_name.png")" と入力すると作業ディレクトリに生成された画像が保存される うーん素晴らしい(15) pic.twitter.com/21Gv62Vbct

2022-08-23 08:21:52
拡大
かわなえ@イラスト @kawai_nae

続けて生成するときは "prompt="a beautiful mountain landscape"" "pipe = pipe.to("cuda")" "with autocast("cuda"):" " images = pipe(prompt)["sample"]" という感じでpromptを更新してあげればいい(16) pic.twitter.com/WrZIpHOc8V

2022-08-23 08:30:31
拡大
かわなえ@イラスト @kawai_nae

ちょっと詰まったところ pytorchがGPUを認識してくれない =>pytorchをインストールしなおして再起動してみる メモリが足りないみたいなエラーが出る =>float16版コマンドを使う。そのうえでwith autocast("cuda"):を使ってからimage = pipe(**)する(18)

2022-08-23 08:35:47
\ Tgから毎日100名様にお好きなポイントプレゼント /

コメント

無味乾燥 @UnaKiri_Megane 2022年8月23日
そもそもミッドジャーニー君日本語使えないの?
5
@boAThOwS 2022年8月23日
グラボが10万するんですが・・・値下がりまで待つかのう・・・
6
マシン語P @mashingoP 2022年8月23日
CUDA環境ということはRadeonでは動かんのか。インターフェイス含めて汎用的に使いやすくなる頃にはアーリーアダプターも過ぎ去っていそう。
3
𝒮𝒽𝒶𝓅𝒶𝓅𝒶 @reopa_sharkun 2022年8月23日
そのうちスクリプト一発のもっと簡単な手順になるかな?
0
21 @motosvh 2022年8月23日
いかに高性能だろうと取っ付きやすさって大事やなって
28
ガントレット @gauntle10287353 2022年8月23日
midjourney君は無料だと有限だから、こっちが無限に使えるのであればであればこのややこしさもやむなしか?
19
具なんかない @negidakutamago 2022年8月23日
ミッドジャーニーくんは簡単な日本語は理解できるが複雑な指示は難しい。ただGoogle翻訳の英文でも十分なので、discordの操作方法を少し学ぶだけで使えるミッドジャーニーくんの方が敷居はかなり低い
3
sake @sake_ne_ku 2022年8月23日
かなり簡単に作れるのはわかったけど、流れやすいTwitterじゃなくZENかQiitaでまとめてほしい
18
Metallis(へたれ) @c7R1S0tU 2022年8月23日
んびであか・・・宗教上の理由でうちはラデしか無いんだよね
0
TKT (💉PPM + Infection) @tak550 2022年8月23日
3080もってるから、試してみるかな…
1
電子馬🅴 @Erechorse 2022年8月24日
Google Colabか何かでサクッと動かないのかな?
0
電子馬🅴 @Erechorse 2022年8月24日
Erechorse 調べたら動きそう。このためにローカル環境を破壊するのも怖いからやるとしたらこっちだなぁ
8
カレーうどん @kareudon14 2022年8月24日
こういう丁寧な解説ツイートありがてぇ!!
5
RGB000 @19666_61 2022年8月24日
このtokenの登録情報何に使ってるんだと思ったらモデルの入手のとこで実質のライセンス同意なのね
8
@hazardprofile 2022年8月24日
Midjourney を使ったことが後ろめたく Stable Diffusion に足が向かないことを表しているので誤用ではないなどと供述しており誤用警察では引き続き余罪を含めて捜査する模様
4
遠藤 @enco2001 2022年8月24日
AI画像生成サービスを無料で使いたかったら多少勉強してStable Diffusion、(比較的)簡単に使いたかったら有償のmidjourneyって感じかな。 --betaコマンドでスタブっぽい萌え絵も出力できる。
8
datalake1234 @LinuxWww3 2022年8月24日
pyenv/minicondaあたりの仮想環境使った方がいいぞ。cuda, cudnnはアンインストールして入れ直すのが面倒くさいのでdocker使ったりWSLでLinuxを使用するのがオススメ
1
datalake1234 @LinuxWww3 2022年8月24日
Erechorse 動きますよ。 ColabのGPUガチャは無料版だとK80がほとんどなので月額1000円払ってColab Proにすることをオススメします。メモリーが足りない場合はtorch.inference_modeとfloat16を使用して圧縮してください。 https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/diffusers_intro.ipynb
14
想 詩拓@文芸サークル『文机』 @sou_sitaku 2022年8月24日
入り口はちょっと難しいけどmidjourneyは、discord上でやる関係上、他の人に見られている感覚が強いので一人でこっそりいろいろ描きたいときにはこっちのほうがいいかも。
6
luckdragon2009(rt多) @rt_luckdragon 2022年8月24日
python 系多いですね~。(最近書いてない)
0
フ一口 @fu_hitokuchi 2022年8月24日
3070Ti……私のグラボなんでしたっけ……
0
TOPNEP @nepnofan 2022年8月24日
こっそりしてるのになぜ公表するのか
0
dev @dev_1201 2022年8月24日
LinuxWww3 類似環境ならインスタンスの時間制限が4hですが、AWSのSageMaker Studio Labも無料でTesla T4使えるので選択肢としてはありですね。
0
datalake1234 @LinuxWww3 2022年8月24日
dev_1201 です。Tensor CoreがあるGPUなら、autocastでfloat16が効果のある特定の演算だけに適用されるので少なくとも推論だけならOKです。学習は分野によってはできないものも...
0
datalake1234 @LinuxWww3 2022年8月24日
nepnofan これ( https://anond.hatelabo.jp/20220823205005 )なんですけど、そのうちsafety-checkerなしの画像を入力してsafety-checkerありの画像に変換するような修正学習を大元にモデルの行列値に組み込んでしまう手法が出てくる可能性があります。そうなると、素人が「逆算」の学習でsafety-checkerのモデルを解除するのはほぼ無理ですね。
0
washeagle @washeagle 2022年8月24日
別な人が公開してるZenn記事にDockerコンテナで動かすチュートリアルがあったので試してみた。マシンを直接汚すのはイヤ&Python慣れてないので…
3
mimix @mimix09358339 2022年8月24日
ローカルで動かす場合はVRAM10GBくらい欲しいとのことなので、技術面だけじゃなくて手持ちのハードウェア面でもハードルが高い…
5
もけ@ムギ㌠ @coppercele 2022年8月24日
「敷居が高い」(不義理があるのでその人の家に行きにくい)じゃなくて「ハードルが高い」じゃないかなぁ
3
残高不足 @koutaro_18 2022年8月24日
mimix09358339 ショボいグラボでも時間をかければOKかと思ったらVRAM10GB推奨なんですか…。
3
(・ิω・ิ)もろきう(・ิω・ิ) @moroQ_mayuge 2022年8月24日
( •ั็ω•ั็)70~73行目をコメントアウトしてグッヘッヘ
1
aki @Yy7_f 2022年8月24日
わいもAMDだから諦めてたけど、Colabであっさりできた。そのうちAMDも対応するらしい。AWSで動かしてみたら面白そう。
1
紅礼 郷梨 @gre_goriy 2022年8月24日
この記事参考に、 image = pipe(prompt)["sample"][0]まで持ってったが、黒いファイルの生成~ってのになって出力できないorz
0
washeagle @washeagle 2022年8月24日
gre_goriy NSFW判定に引っかかると全ピクセル黒塗りの画像が出力されるようです。語句を調整するか、同じワードでseed値を変えてみてはどうでしょうか? ※意図的にエロい画像を生成しようとしていなくても、生成結果が偶然センシティブと判定されることもある気配がします。(「ウルトラマンに攻撃されているピカチュウをスパイダーマンが助ける瞬間」で判定引っかかった経験あり)
4
残高不足 @koutaro_18 2022年8月24日
VRAM4GBのショボいGPUでも行けた!(12)の手順の"pipe(prompt)"を"pipe(prompt, height=256, width=256)"に差し替えればOK。
5
alan smithee @alansmithy2010 2022年8月25日
gre_goriy result = pipe(prompt) print(result) image = result["sample"][0] てやるとresultがnfswに引っかかってるかどうかのメッセージが見えるよ
0
おかえりんこ @iteeyot 2022年8月27日
何度やっても ”Potential NSFW content was detected in one or more images. A black image will be returned instead. Try again with a different prompt and/or seed.” で黒くなるんだよな……。prompt は例と同じなのに。 GPUがGTX1660で弱めだからメモリが足りないとかだろうか……
0