蛇(Python)が龍を生む
蛇(Python)が龍を生む、
と何やら格言めいたことを生成してしまった当方だが、
この文言には大した意味は無い。
経緯と目的
ただ事務的な作業の効率化のためだけにスクリプトを書くのが、
つまらなくなってきた😔
↓
Google Colabの環境でできることを、いろいろやってみたい。
↓
画像生成も、できるらしい。
↓
では、やってみよう。
ところで、お題を何にしようかな。
当方、先月末に白い龍が天に昇る夢を見たので、
AIには、白い龍の画像でも生成していただきましょうかね。
実行環境(20231102時点)
Device:
Android 11
Browser:
Google Chrome 117.0.5938.60
Google Colaboratory:
Python 3.10.12
※ 別の意味での実行環境(20231102)は、SENDAI-Kaffeeと神楽坂事業所(吾が拠点)です🤗
作業の準備
今や、Hugging Faceのアクセストークンは不要とのこと😳
実行用ノートブック(.ipynb)の置き場所:
/content/drive/My Drive/Colab Notebooks/
実行結果のファイル(.png)の保存先:
/content/drive/My Drive/
↑ スクリプト内に記載のパスを御参照くださいませ。
いざ、実践
Androidスマホから、chromeブラウザ経由で、Google Colaboratoryに入って実行した。
実行結果は、いずれもpngファイルとしてGoogle Driveに新規保存した。
Ok-Gcolab-AI-artTest02-20231102.ipynb
# Ok-Gcolab-AI-artTest02-20231102.ipynb
# coding:utf-8
# Run cell [1]:
# GoogleDriveと連携しよう(Mount at /content/drive)
from google.colab import drive
drive.mount('/content/drive')
# diffusersパッケージを導入
# !pip install diffusers==0.8.0 transformers scipy ftfy python-ulid
!pip install --upgrade diffusers[torch] transformers accelerate
# StableDiffusionパイプラインを準備しよう
from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler
import torch
from IPython.display import Image,display
model_id = "stabilityai/stable-diffusion-2-1"
# Hugging Faceのアクセストークンは不要になった
scheduler = EulerDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler,torch_dtype=torch.float16)
pipe.to("cuda")
#pipe.enable_attention_slicing()
!mkdir outputs
# Run cell [2]:
# 画像の作成と保存
image_number = 2 # 画像の作成枚数
prompt = 'white dragon' # 呪文を唱えて発注
# ファイル名はimage0.pngから連番で保存
for i in range(image_number):
image = pipe(prompt).images[0]
image.save('/content/drive/MyDrive/image'+str(i)+'.png')
# "AI-artTest02 in python3.10",
produced by K.masamix “KIXAN” as the SHYNAMITES/La CHENAMITOJ, on google colab.,2023/11/02.
実行結果(其の壱)
実行結果(其の弐)
実行結果についての感想
Google Colabの充実した環境に、改めて感動しつつ、
見よう見まねで書いたスクリプトが動いてくれて満足🤗
画像については、
AIなりに生成してくれたのか、それとも何処かから拾ってきただけなのか、
当方からは判断できない仕上がりだ。
しかし、これで少なくとも人間が、
お題を前にして、(いったい何を描いたらいいのか判らない、なんて)途方に暮れることは、
きっと無くなるだろう。
いわゆる呪文を工夫して指示したり、
生成された画像を更に加工したり、
と、応用の余地はかなり有りそうだ☺️
紆余曲折
1.)
Google colabのランタイムのタイプを予めGPUにしてなかっただけで、
早速エラーを喰らう。
2.)
インストールするdiffusersパッケージは新しいバージョンのものにしよう(ver.0.8.0)。
参考資料に倣ってインストールしたのが、古いバージョンのdiffusersパッケージだった。
→スクリプト内のpipeが記載されてる辺りの行でエラーになった。
3.)
Google driveに保存した画像を、スマホに直接ダウンロードするのに失敗した。
しかも、google driveから直接noteにアップロードするのも失敗した。
オフライン利用okにしたのに。
↓
しかし、google drive上の画像を一旦、別のアプリ(Lumii)で開いてダウンロードしたら、できた(つまり別名保存)。
不思議だなぁ🤔
4.)
予めHugging Face( https://huggingface.co/ )でアカウント登録して、
アクセストークン(APIトークン)を取得する必要がある、と或る記事に書いてあったから、
それに従ってスクリプトを書いたところ、
とにかく動いたので喜んだ。
(Ok-Gcolab-AI-artTest01-20231102.ipynb ※非公開スクリプト)
↓
しかし、その後で、別の記事を読んだら、
バージョンアップにより仕様が変更されていた。
一部の表記を変更したり、
そもそもアクセストークンが不要になってたり。
何だよ!! もう!!😡
↓
悔しいので、アクセストークン無しで動くスクリプトに書き直した🙌
(Ok-Gcolab-AI-artTest02-20231102.ipynb)
参考資料
【簡単無料】画像生成AIのStable Diffusionに絵を描いてもらおう【準備編】
https://www.boardgamepark.com/entry/stable_diffusion1#%E7%9F%A5%E8%AD%98%E3%82%82%E9%87%91%E3%82%82PC%E3%82%82%E3%81%AA%E3%81%97%E3%81%A7AI%E3%81%AB%E7%B5%B5%E3%82%92%E6%8F%8F%E3%81%8B%E3%81%9B%E3%81%9F%E3%81%84
Hugging FaceのAPIトークン(アクセストークン)を取得する
https://laboratory.kazuuu.net/obtain-an-api-token-access-token-for-hugging-face/?amp=1
画像生成AIのStable DiffusionでAI画伯に絵を描かせよう【Colabを使った画像作成編】
https://www.boardgamepark.com/entry/Stable_Diffusion2
Stable Diffusionによる画像生成(Python ローカル実行版)
https://zenn.dev/wurly/articles/ce84f66dd5f68e
久しぶりにStable Diffusion使ったらエラーが出た件
https://panomegon.com/stable-diffusion-new/#toc1
diffusersで使える Stable Diffusionモデル一覧|npaka @npaka123 https://note.com/npaka/n/ned44e0242ac0
当方はク◯エイターです🤗 さて◯の中に入るのは何でせう? 「リ」だと思ったらサポート宜しくです(少額支援歓迎)☺️ 「ソ」だと思ったら即、退場せよ🥺 ※1: 記事のシェア歓迎。 ※2: 只今100円玉と壱萬圓札が不足しております🙏