ひまつぶし雑記帖

colabで使うstablediffusionの小ネタ

2022/8/29 [15:43:21] (月) 天気

google colabでstablediffusionを試していて気になったところの小ネタ。
…というか python は初めて。

・画像サイズがデフォルトだと512x512のスクエア
 大昔ハッセルとかがスクエアフォーマットだった記憶もあり、これはこれで、好きなんだけど、たとえば、stablediffusionで電書の表紙なんかを作りたいとなった場合、スクエアだとよろしくない。縦長の画像が欲しい。

image = pipe(prompt, height=768, width=512)["sample"][0]


当てずっぽうでやってみたら、たまたま意図通りだった。イメージを作る呪文をパイプで渡すところに高さと横幅を指定してやればOK。ただ、512x1024でやってみたら OUT OF MEMORY でエラーになる。大きなサイズを扱いたければ有料のコースがあるよ、とお知らせ。無料で使わせてもらってるからしょうがない。

・画像ファイルを複数作りたい
 一発で期待通りの画像が取り出せることはなく、ひとつのプロンプトで何回も取り出して、その中から選択、となる。一回ずつコマンドを叩くのは効率が悪いので、一回叩いて2つ画像を取り出すようにした。

import time
for i in range(2):
  ut=int(time.time())
  fname = str(ut) + '.png'
  image = pipe(prompt, height=768, width=512)["sample"][0]
  image.save(fname)


書き出すファイルは、ファイル名をタイムスタンプにして上書きしないように、ちょっと工夫。
range(2)、2回と言わずもっと回数を増やしてもいいんだけど、とりあえず様子見で。

縦長画像

beautiful concept art of KAWAII,
a girl walks on the street.she is seventeen,
steampunk city,AKIHABARA,
rim light,wide angle,sharp focus,
pixiv rankin,highly detailed,arknights,4K


KAWAIIやpixiv、arknightというキーワードはキャラがそれっぽくイマドキになる呪文。
image
image
ポートレイトの呪文も試してみた。

beautiful concept art of KAWAII,
portrait of a girl,full body,glossy eyes, blonde,
high contrast,rim light,sharp focus,
pixiv rankin,arknights,highly detailed,4K


image
image
image 
blondeではなくblack hairも試したんだけど、噂通り、金髪の方が安定する。なんでや。

[2022/09/19 23:07:40] 追記。
今日時点、colabで使ってるコードをメモしておこう。

from diffusers import StableDiffusionPipeline
import matplotlib.pyplot as plt
import time
import random
import torch
from google.colab import drive
drive.mount('GoogleDriveのパス')


最初の2行はお約束。
import time
→ファイル名にタイムスタンプを使うのに必要
import random
→ランダムseed生成に必要
import touch
→seedをpipeに渡すために必要
import drive
→生成した画像をgoogle driveに保存するために必要
google driveのパスは「/content/gdrive」とか適当に。

上記、いろいろ必要なものをインポートしたら以下のコードが使える。

pmt_fname = str(int(time.time()))
with open('GoogleDriveのパス' + pmt_fname + '.txt', 'w') as f:
  f.write(prompt)
for i in range(4):
  seed=random.randrange(0,2147483647,1)
  #seed=1349413827
  gen=torch.Generator("cuda").manual_seed(seed)
  #ut=int(time.time())
  #fname = str(ut) + '-' + str(seed) + '.png'
  fname = pmt_fname + '-' + str(seed) + '.png'
  image = pipe(prompt, height=768, width=512, generator=gen,num_inference_steps=200)["sample"][0]
  image.save('GoogleDriveのパス' + fname)


とりあえず、ひとつのプロンプトでタテ768pxヨコ512pxの画像を4枚作る。
ステップ数はデフォルトは50。多くするとそれだけ時間がかかるけど、細部まで作り込まれるということで200にしてみた。

ファイルはgoogle driveに保存される。
タイムスタンプ.txtという名前でプロンプトのテキストファイルを保存
ex.)1663466109.txt
プロンプトのタイムスタンプ+ランダムseed.pngという画像ファイルを生成保存
ex.)
1663466109-1096018807.png
1663466109-1253973203.png

出来上がった絵をみて、惜しいなあ、ここもうちょっと色味が地味なのがよかった、とか思った時に元になったプロンプトが残るので修正変更試行錯誤も簡単になる。そして何より、

StableDiffusionは、同じプロンプト、同じseedを渡すと、同じ画像が生成される。

これがキモというミソだろう。
構図はいいのに、なんでこんな格好してるんだ、とか、ここは空に月が欲しかった、てな時はseedを同じにしてプロンプトを少しいじると同じような構図で違う絵が出てくる。欲しい絵に近づけることが可能になる、かな。

検索するとAIがらみ、技術的な話にたどり着いてしまうんだけど、わたしのような素人はこんぐらいの理解で蛮勇するのでちょうどいい。

以下3枚は同じseedで生成
image

High quality concept art,
landscape of steampunk city with a monk,
riverside street,river babbling,
sunlight pouring down,
forest of skyscrapers,
a monk walks on the path,
rim light,wide angle,
sharp focus,highly detailed,
digital art illustration,
art station trending,playstation5,4


image

High quality concept art,
landscape of cyberpunk city with a monk,
TOKYO AKIHABARA,
riverside street,river babbling,
sunlight pouring down,
forest of skyscrapers,
a monk walks on the path,
rim light,wide angle,
sharp focus,highly detailed,
digital art illustration,
art station trending,playstation5,4


image

High quality concept art,
landscape of deep forest with a monk,
riverside and golden pond,
river babbling,
sunlight pouring down,
sunlight filtering through trees
a monk walks on the path,
rim light,wide angle,
sharp focus,highly detailed,
digital art illustration,
art station trending,playstation5,4



1枚めを最初に生成。
2枚め。スチームパンクじゃなくてサイバーパンクの街に、TOKYO、AKIHABARAも追加。
3枚め。街ではなくて森の中にしようと思ってプロンプト文字列の変更が大きかったようで、Seedの魔力もあまり効かなかった。

もうひとつ。
ネットだと画像の解像度は72dpiでも足りるんだけど、紙印刷だとカラーは最低300dpi、モノクロは600dpi必要となる。google colabで使うStableDiffusionの解像度は72dpi。設定で可能になるかもしれないけど、わからないんで、あれこれ検索。
同じくAIの技術を使って画像をリファクタリングする?アップコンバージョンするReal-ESRGANというのがあった。

これのおかげで512x768 72dpi程度で出力される画像を高精細化して300dpi、紙印刷にも耐える画像として使えるようなった。

変換前image
変換後image
なんか違いのわかりにくいビミョーな例になってるけど、輪郭あたりをみてもらえると一目瞭然。StableDiffusionとReal-ESRGANの組み合わせでまた可能性が広がる。

StableDiffusionでステップ数をあえて低くして作った画像を、Real-ESRGANで高精細化して細部を作り込むというやり方もできる、かも。

Real-ESRGANの公式ページ
https://github.com/xinntao/Real-ESRGAN
これもオススメ、ていうか必需品。

»電子書籍制作代行についてはこちら

StableDiffusionの呪文?

2022/8/28 [13:46:53] (日) 天気

画像生成AIが面白くて、google colabでお試し中。
AIからどんな画像を取り出すのかは、AIに投げる言葉次第。呪文と言われるのもわかる。

↓こちらが丁寧で詳しいのでオススメ
魔術そして理解するお絵描きAI講座
https://note.com/fladdict/n/n0f0be20e3e23
ていうか、これは必読。

具体的な呪文の例はこちら
https://lexica.art/
検索窓にpixivとかplaystation5とか入れるとわかりやすい。


で、以下はド素人が多分に間違った知見を元に書いてるヨタ。

AIに投げる呪文はプロンプトと言われていてその構成は以下が最適

<全体のフォーマット><主題><主題の補足><作者><全体の補足><フレーバー>


「美術館のサイトなんかでどんなキャプションがついてそうか?」を考えて呪文を組み立てると良いらしい、AIに意図が伝わりやすいとのこと。

image
Buddha walk on the surface of the moon
呪文はこれだけ。前記した構成でいうと「仏陀が月の表面を歩く」主題だけ。これはこれでAIまかせで面白い。

ただ、ほかのひとの上げている画像と見比べてみて、画質というか描画が全然ダメだなあ、と。ほかのひとの呪文を覗いてあれこれつけ足してみたら安定した、かな。
image

High quality concept art,
Buddha walking on the surface of the moon,
high contrast,
sharp focus,
art station trending,
highly detailed,
digital painting,
digital art,
4k


「主題」は最初と同じ
Buddha walk on the surface of the moon
で、それ以外にいろいろ見様見真似、それこそ呪文状態で付け足した。

「全体のフォーマット」に High quality concept art を指定。
コンセプトアートはいい感じの絵ということ、でいいかな。ここは他に油絵とか水彩画とかを指定するといいらしい。

「主題の補足」にコントラストが強くてピントぴったりという補足説明。

「作者」は「art stationというゲーム紹介サイトのトレンドにありそうな」ということにした。ほかにpixiv rankinだと「ピクシブでランクインしてそうな」という使い方。ここにゴッホとかレンブラント、京都アニメーションやジブリなんかも。

「フレーバー」として細部まで細かい、デジタルで描かれている、画質4K。
このフレーバーに、カメラのレンズや開放値、シャッタースピードなんかを入れるのも効果的というのが、ネットで学習するAIならでは、というやつだろう。

美術などを学問的系統的に学ぶのではなくて、ECサイトのカメラ販売ページなんかにある作例を脈絡なく取り込んでるのでこちらの側からアクセスも面白いということになった、んだろなあ。
image
たぶん、以下からフレーバーに「playstation5」とか「unreal engine」とかつけた。ゲーム画面を指定したらそれっぽいものが出るようになった。安定した、かな。
image
月の上ばかりじゃなく、サイバーパンクの街にしてみたり
image
image
日本の寺にしてみたり
image
スチームパンクにしてみたり
image
坊主が歩いてばかりなので跪いてお祈りするようにしてみたり
image
image
坊主ばかりじゃなくて女の子にしてみたり
image
スチームパンクな街に秋葉原を指定してみたり
image

こりゃキリがなくて面白すぎる。
意図した絵を作るために呪文の精度を上げれば仕事に使えるし、意図しない絵が出てきたらそれを元にストーリーを作る・大喜利を始めるのも面白いし。

ちなみに、権利的には商利用も自由。本、同人誌の表紙や挿絵が欲しいけど、絵が描けないとか頼めるひとを探すのが難しいというような場合、この画像生成AIの出番。
ただし、実在の人物なんかを呪文のタネに仕込んだ場合、肖像権にブチ当たって弁護士と内容証明が飛んでくる可能性が十分あるので、そこだけ注意。

まだまだ遊べるなあ。

[2022/08/30 10:24:41]追記

今日時点で。呪文のテンプレは以下

High quality concept art,

「ここに具体的な描写内容を英語で記述」

rim light,
wide angle,

sharp focus,
high contrast,
highly detailed,
digital art illustration,
art station trending,
playstation5,
4K


なんとなく、だけど。StableDiffusionは縦長の構図は苦手かなあ。
image
あとは出てきた絵をネタにしたエントリを頑張る

»電子書籍制作代行についてはこちら

AIでテキストから画像を生成

2022/8/24 [16:06:23] (水) 天気

いま話題の画像生成AI「Stable diffusion」を使ってみた。

ローカルにダウロードしてPython環境、Anacondaとかを作ったりGitからStable Diffusionのソースコードを持ってくるのは大変なので、とりあえず、googleのcolabで使ってみた。
ほんとだったら、ローカルに構築するのがいいんだけど。

とりあえずアカウントが2つ必要。
・googleのアカウント
→gmailのアカウントで、ほとんどの人はすでに持ってるのでは?
・huggingfaceのアカウント
→これは持ってるひとが少ないと思うけど、簡単に作れる。
https://huggingface.co/settings/profile

わたしのようなド素人のヨタじゃなくて、以下のサイトがオススメ。
Google Colab で はじめる Stable Diffusion v1.4
https://note.com/npaka/n/ndd549d2ce556
[Stable Diffusion] AIでテキストから画像を生成する[Python]
https://www.12-technology.com/2022/08/stable-diffusion-aipython.html

とはいえ、自分メモ。

・huggingfaceでの作業
huggingfaceのアカウントを作ったらhuggingfaceのプロフィールページの左メニューからアクセストークン(ACCESS TOKEN)をクリックしてアクセストークンのページを開いてひとつ新規に生成して取得する。
 権限にreadとwriteがあるけど、readで大丈夫だった。

・google colabでの作業
https://colab.research.google.com/?hl=ja
↑ここにアクセスしたらまずは下準備
「ノートブックを新規作成」
image
素っ気ないページになる。これ、古のターミナルみたいだな。
てのはともかく、やることは以下の4ステップだけ。

1)
「編集」→「ノートブックの設定」→「ハードウェアアクセラレータ」を「GPU」に設定。
2)
次にこの▶のところに以下のコマンドを入力。
!pip install diffusers==0.2.4 transformers scipy ftfy
▶をクリックするとコマンドが実行される。
3)
インストールが済んだら、「+コード」をクリック。
次のコマンドを入力欄を追加してライブラリのインポート…これをしないと、次のフェーズで403エラーになって止まってしまった。
from diffusers import StableDiffusionPipeline
import matplotlib.pyplot as plt

4)
そして以下で準備完了となる。
TOKEN="Huggingfaceで取得したトークンをコピペ"
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=TOKEN)
pipe.to("cuda")


準備が済んだらいよいよ画像を生成だ。
▶のところに
prompt = "Japanese Bobtail Cat on the Moon" #@param {type:"string"}
image = pipe(prompt)["sample"][0]
image.save("test01.png")

とやってできたのがこの画像
image

promptがキモ。ていうかAIにどんな画像を作らせるのかAIと話し合いになる。
今回は最初だし「Japanese Bobtail Cat on the Moon」とやってみたけど、そんなに面白い画像がすぐに出てくるわけでもなく、これにしても4回目ぐらい、だったかな。
デフォルト状態で1枚生成するのに20秒ほどだった。

「AIと話し合い」と書いたのはこのリクエストがすべてで、どんな画像を出せるかは話し合い次第。プロンプトをリクエストするひとの腕次第という意味もある。たぶんこの分野、こんな画像が欲しい、というのを翻案して噛み砕いてAIのわかる言葉で伝えるニーズがあるだろうな。

創造とか創作というのは人間や神様だけのものという聖域感がある。
だけど、神様については知らないけど、人間の創造もまったくゼロからというものではなく、いろんなもののインプットの坩堝があって初めてアウトプットが出てくる。
てことはこのAIもやってることは同じ、大量のデータをインプットされて学習したモデルから適当と思しきものを引っ張り出してそれらで合成して作り上げてアウトプットとする。

一部界隈が騒がしいのもわかる気がする。
ほんと、これはひととAIの棲み分け、区別というか、倫理の話にもなりそうだし、SFのネタが現実になりそう。

ちなみに生成した画像は権利関係的にはフリーなので(著作人格権とか肖像権にぶち当たることもありそうだけど)商用利用もOKとのこと。

とりあえずgoogleで使ってみたけど、いろんなパラメータをいじれるはずなのでローカルで構築してみたいとこだなあ…て、今うちで使ってるパソはグラフィックが弱いからパソコン買い替えになるだろうし、当分無理、か。ビンボはつらいぜ、ちくしょう。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
名前:
飯田哲章
mail:
t2aki@mrh.biglobe.ne.jp
twitter:
t2akii

WEBサービス制作/電子書籍制作

検索
<<2022/9>>
    123
45678910
11121314151617
18192021222324
252627282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

[1 Page]

TOTAL:2920

2022 (12)
1 (1)
3 (2)
6 (2)
7 (1)
8 (4)
9 (2)
2021 (12)
1 (3)
2 (1)
6 (1)
8 (2)
9 (1)
10 (1)
11 (2)
12 (1)
2020 (18)
1 (2)
2 (6)
4 (1)
6 (1)
7 (2)
8 (2)
12 (4)
2019 (17)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
10 (1)
12 (2)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)