- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!stable-diffusion で遊ぶ
なんか乗り遅れた感があるけど,遊んでおこうかな,と.
遊ぶだけなら[Stable Diffusion Demo|https://huggingface.co/spaces/stabilityai/stable-diffusion]もいいけど,休んでいるGPUマシンでも動かしてみた.
セットアップは https://github.com/CompVis/stable-diffusion 通りに,Anaconda使ってセットアップ
conda env create -f environment.yaml
conda activate ldm
mkdir -p models/ldm/stable-diffusion-v1/
で,https://huggingface.co/CompVis/stable-diffusion-v-1-4-original から sd-v1-4.ckptダウンロードして
models/ldm/stable-diffusion-v1/model.ckpt
としてコピー.
想定されているのはVRAMが10GBのGPUだけど,手元のGPU環境はVRAMが8GBなGTX1080なので,
[テキストから画像を生成するAI「Stable Diffusion」をWindowsにインストールしてみた|https://forest.watch.impress.co.jp/docs/special/1437123.html]を参考に,
python scripts/txt2img.py \
--prompt "a photograph of an astronaut riding a horse" \
--plms --W 384 --H 256
と,サイズ小さ目に.
...全然,オンラインデモの結果と全然違う.
{{ref_image grid-0000.png}}
折角なので,他にもいくつか試してみた.それぞれ,それっぽい(?)のを抜粋.
* a cute girl eating a piece of cake
{{ref_image 00015.png}}
* a boy eating a piece of cake
{{ref_image 00018.png}}
なんかいろいろ試している先人を真似してみると,それっぽいのが出力されてびっくり.
うまくいかないものも多いので --n_iter の値を変えて候補を増やした中から抽出.
{{ref_image 00251.png}}
{{ref_image 00226.png}}
これなんかは,ちょっと上手に恐い.
{{ref_image 00087.png}}
特に工夫せずに,
* japanese anime of a beautiful girl
だけだと
{{ref_image 00070.png}}
{{ref_image 00071.png}}
とか,そんな感じ.文字列で絵を描かせてる,って感じだなあ.
ちなみに,なんか,謎の歌手がでてくるのなんでだろうと思ったら,Twitterで教えてもらった.
https://twitter.com/hotpepsi/status/1579022560419024897
Rick Astleyさんっていうのか.
...別にエッチな画像だしたかったわけじゃないのに,ちょっとず恥かしい.
あらためて,実行結果みたら,
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.
って,ちゃんと書いてあった.'A black image'じゃなくて洒落が利いてたけど.
こういう(?)学術的なコード公開でもnsfwとか気にするあたり,
ディープラーニング界隈は倫理関係に注意はらってるんだなあ,と,感心する.
単に描かせるだけじゃなくて,追加学習させたモデル使ってみるとか,
自分で追加学習させようとかも,いろいろあって楽しい.