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

これもオススメ、ていうか必需品。

[更新]2022-09-20 12:18:32

uim-fep起動時のメモ

2021/8/29 [08:37:43] (日) 天気

chromebookのlinux開発環境(Crostini)の標準ターミナルで日本語入力ができる!というネタの続き。


uim-fepを起動すればすんなり標準ターミナルでも日本語入力がストレスなくできるようになるので、それならハナっからターミナル起動時に立ち上げておけばいいじゃん。

てことで.bashrcから呼び出す.bash_envというローカルの設定ファイルに

uim-fep

と1行追加したところ、ターミナルを立ち上げるたびに uim-fep is already running とか警告が出るようになり、ログアウトもexitが2度必要になり、あれ?とか思ってごそごそやってみたド素人のメモが以下。


どうやらuim-fepは仮想コンソールを使うっぽい。

一度ログインしたコンソールでuim-fepを起動するともう一枚コンソールを立ち上げてそこで動作する。

2度ログインすることになるわけで、.bashrcも2度呼び出されるので一度起動したuim-fepをまた起動しようとする。当たり前。

.bashrcには自分ローカルなPATHなんかを追加したりしてるので、2度呼び出されて実行されるといろいろもろもろダブるので気持ち悪い…ていうか弊害もある。


逃げ道としてuim-fepが起動していなければ、PATHなどローカルなものを設定してからuim-fepを起動するようにした。単純なシェルスクリプト(MSDOSの頃からの爺なもんで、autoexec.batとか言う方がわかりやすいけどなー)



if [ ! $UIM_FEP_PID ]; then
    PATH=$PATH:$HOME/jdk-16.0.1/bin; export PATH
    uim-fep
fi


だぶって二重起動してもらいたくないものを羅列していく、か。


image

ちなみにウチはラッキーなことにわたしも家人も今日時点で新コロナワクチン2度接種済み(※写真とは無関係)

[更新]2021-08-31 07:03:05

日本語対応新kindle3がやってきた

2010/8/29 [19:30:19] (日) 天気

あまり進展もなく生産的なこともしてなくて相変わらずの日々。停滞気味、ともいうか。なんか仕掛けておかないといけないよなあ、と片隅で焦りつつ、今日も今日とて、朝から民主党政治ワイドショーをだらだら。検察審査会て与党党首を潰すことができる検察暴走装置てこと?とか。そもそもテレビに出てきてしたり顔で、エラソにあーだこーだぬかす記者どもがもう信用できないだろ。官房機密費をもらった記者の実名リストをどこかで発表してくれ、マジで。んで、名札の代わりに「機密費もらいました」「拒否しました」と胸元にピンで貼っておいてくれ。じゃないと、今、信用できるのは日刊ゲンダイと東スポだけじゃねえか。ほんと、テレビ、新聞はもう信用できんよ。

とか思いつつ、ハガレンとかダーティハリーとかスティングとかグッドモーニングベトナムとか相変わらずなDVDを流してみたり。で、表にも出ず部屋で待ってたブツが届いたのが15時。


日本語に対応した新kindle3だ。

7月30日に注文。発売日が8月27日。amazonのステータスを見ると、8月26日にはフェニックス。27日にはオンタリオ、アラスカ、28日の午後にナリタ。となっていたので、ぼちぼちだろうと。


kindle2よりひと回り小さくて、軽い。

立ち上がりが早い。

PDFの書き換えが早い。

コントラストが高い(kindle2ぐらいのコントラストの方がいいかもしれないけど)

webも日本語で見ることができる。

image

ケータイで撮った写真。


ひらたくまとめると、動きがキビキビとなって、サイズも小さく軽くなって手に馴染む感じに仕上がっている。当たり前だけど、kindle2で購入して読みかけの本を、新しく買ったkindle3で読むことができる。


WEBも日本語で見られるけど、これはまあオマケ、かな。ポインターの動きがたるいし、日本語で入力できるわけでもない。とはいえ、kindleは本。WEBなんてのは本来どーでもいいのだ。


気に入らないのは数字キーがなくなったことだけなんだけど、本を読むときに、キーボードは必須じゃないし、新kindle3、わたしはほぼほぼ大絶賛だ。


[更新]2026-02-03 09:16:18

Friendship day アメリカ大使館宿舎

2009/8/29 [18:31:51] (土) 天気

アメリカ大使館宿舎に朝からぼーっとでかけてみた。語彙が貧弱で申し訳ない。


スゲー行列でびっくりした。


11時過ぎについて、入場したのは12時過ぎ。でも、中に入ったら、そこは極楽でありました。

ビール各種、ソフトドリンクは無料で飲み放題。ホットドッグや、バーベキュー、たこ焼きなどがずらり並ぶアメリカ屋台村だ。陸軍音楽隊のパレードや、セサミストリートショーなどもあってそのたびに歓声があがる。陽気な空間。笑顔炸裂。楽しいオーラ溢れる場所で、ゲラゲラ笑ってるひとを見ては、笑いが伝染ってしまう。叩きつけられるような炎天下じゃなければ、もっとダラダラ長居したかったかも。かなり楽しかったゾ。


ウチに帰る途中、日比谷ビックカメラに寄ってトラックボール購入、北千住東急ハンズに寄ってペンホルダー購入。

image

前々から欲しかったのがモレスキンにつけるペンホルダー。ちょうどいいのがなかなか見つからなかったんだけど、ミドリカンパニーのペンホルダーMというのを試しに買ってみたらぴったり、イメージどおり。

PilotのHi-TEC-C colete 4色バージョンを差し込んで使えるナイスなペンホルダーだ(直径12mmまで差し込める)

前々から欲しかったのがトラックボール。今まで使ってたDELLのマウスはどうも感度がよろしくなくてちょっとストレス。マウスを変えたいなぁ、と思ってたんだけど、あまり場所も取れないんでトラックボールがよかろう、と。ロジクールのこいつがまた使い勝手がよくて正解だったかも。


しかし、今日は暑かったなあ。


[更新]2026-02-04 09:19:50

迷惑なクロウラー

2007/8/29 [11:24:51] (水) 天気

アクセスログをみてたら、crawl-9.cuill.com の twiceler という、妙なクロウラーが来襲していた。うちのショップリストcgiを10〜30秒間隔で延々と取得し続けている。

えーっと。日本のローカルな飲み屋とか食い物屋の情報をカナダのひとが欲しいとは思えないので、まずrobot.txtでDisallow。ところがどうも効かないっぽい。しかたないんで.htaccessでDenyして様子見。たいがいこれでアクセスが止まるんだけど、こいつはどうも懲りない。Denyして放置、と思いつつ、嫌がらせのごとく続くのはうっとーしい。メールを送るにも英語はわからんちんだ。そこで、こいつはcgiにアクセスしてるので

Location: ttp://www.cuill.com

と、返してみることにした。

これでしばらく様子を見てみよう。だめならまた.htaccess か httpd.conf で Deny するか、もしくはいっそ /etc/hosts.allow でDeny、かなぁ。


ショップリストcgiなんてずいぶん前に作ったきりで、新規の店の更新もないのに、こんなもので負荷がかかって、読書SNSの方に影響が出たら困る。しょせんマンションタイプの光なので回線自体ヘボいから過保護気味に。


福井晴敏「Twelve Y.O.」

うううう。キャラが作者の駒。履歴書がないから、言うことやることに、いちいち説得力がない。なんじゃそれ、と腰が抜けるようなことを平気でやっちゃうし、作者が読者をだまそうとするあざとさが見えてしまう。「亡国のイージス」「川の深さは」「Twelve Y.O.」と読んできたけど…しばらく福井晴敏はお休みしよう。


Twelve Y.O.

『Twelve Y.O.』

福井 晴敏

[更新]2026-02-04 10:07:21

<<2026/08>>
      1
2345678
9101112131415
16171819202122
23242526272829
3031

【最近の10件】

日常読書映画アニメゲーム健康料理グルメカメラ写真ネタ仕事パソコンインターネットperlEPUB3電子書籍ActivityPub
検索: