AIは透かしを学習している

Stable Diffusionで遊んでるんですが、こういうのが出ました。
透かし入ってますね。

これ面白いのは、透かしの入った画像をひっぱってきてしまったわけではなく、Stable Diffusionが透かしを学習してわざわざ入れてるところですね。
なので、くっきりと文字のようなものが入ってます。

元画像が出てきてるなら、もっとボヤけたり、もともとの文字が出てくるはず。まっすぐ規則的に入ったりもしないはずですね。

こんな感じで、背景と袖にまたがったものも入ってます。

ちょっと面白かった。

SNS時代の友達というのは個人ではなく集団の友達濃度

よく、友達がいるとかいないとか多いとか少ないとかいう話になったときに「ぼくは友達いるんだろうか?」と思っていた。
たしかによく飲みにいく人はいるし、最近は少ないけど物理で勉強会があったときには月に2-3回会う人は結構いた。あと、ぼくのだいたいの生活は1000人くらいが把握している気がする。けどじゃあ「友達」にあたる人がいるかというと自信がない。

とはいえ、飲みにいこうと思って誘えば必ず行ける人は いるし、話をする相手はみつかるし、世間的な「友達がいる」という状態になってる。

ということを考えると、「友達」が個人ではなく集団で、クラスタとして存在している気がする。
Twitter上でのやりとりの頻度でマップを作って実際に飲みにいった人の比重をあげて、密度が高いところが「友達濃度が高い」みたいになっている。

「人間関係の希薄化」ということはよく言われるけど、これは基本的には人間関係の広範化とセットのはずで、関わる人数が増えることで個別の人間関係が薄くなる。そうすると、以前であれば比較的はっきりとあった「友達 or 友達ではない」の境界がよりあいまいになっていって、最初は個別にゼロイチではない「友達度」のようなものがあって、そしてSNSで数百人とつながるのがあたりまえになると個別の判定もやってられないからクラスタでの濃度みたいになっていく気がする。

と、こういうのをちゃんと考えている人は いないんだろうかと思ったけど、おそらくソーシャル・キャピタルという話になるかなと調べてみて、面白そうな本をみつけたけど「若者たちはオンラインの世界にどっぷりつかり、かえって孤立して、現実世界に関与しなくなっている」「インターネットは社会的インフラではないと私は思う」ということが書いてあって、ニュースでしかネットを知らないのではと思ったりした。

もちろん、主眼が危機管理のようなので、そうするとネットのつながり「だけ」ではかなり危ういのはたしかで、物理的に近い人間関係は大事。その観点ではいい本だと思う。
でもそれは危機の最初の3日くらいで、それ以降はネットのつながりも有効になると思う。
と思って、こういった領域を専門にやってる人たちはSNSで1000人フォローが当たり前という世界には いないので、社会学にネットが組み込まれるにはSNSネイティブの人たちがこういった本を書くようになるまで10年くらいかかるのかなとも思ったりした。

「偶然ルネッサンス絵画っぽくなった写真」のタイトルからStable Diffusionで画像生成してみる

「偶然ルネッサンス絵画っぽくなった写真」というブログ記事があって、このタイトルからStable Diffusionで画像生成したらどうなるかなと試してみた。
I've tried generating images with the Stable Diffusion using the titles in the blog 'Accidental Renaissance' as prompts.
https://www.boredpanda.com/accidentally-renaissance-photographs/

The Advent Of Autumn

割と普通

An Old Town In Salzburg, Austria

いい感じ

Summer Gardens

それなり

Two Peacocks Fighting Like Angels

結構いい

At Peace Amongst The Willow & The Lake

座ってる人ができたのはすごい

I Just Became A Dad

「子ども」がキーワードに入ってないけど必ず子どもが生成されるのは慣用句だからかな

Turkmen Woman Weaving Her Hair

すごくいい感じ

Village Of Cotignac Shrouded In Morning Mist

いい感じ

The Peaks Of Italy

かっこいい

A Bookshop Owner Repairs A Book

ちゃんと本の修理してるところ出た

Shepherd In The Rhodope Mountains, Bulgaria

いい感じ。あと、サイト名クレジットが入りがちだった。これもなんとなく見える

Photo I Took In Venice, Italy

ボートは青いものなんだろうか

A Sunday In The Commons Of Boston

日曜日はこんなもんなのか

An Old Boys Lunch In The English Countryside

みんなこういう写真とるのかな

A Solitary House - Micheal Lane; 1973

めちゃくちゃいい。これ好き

Cows Resting In The German Alps

いい感じ

The Sky Looked Like A Renaissance Painting

それはそう

A Conference Of Bearded Dragons

いい

Two Women In A Convent, With A Cat

conventを入れると絵画風になりがち

Morning In The Carpathians

いい感じ

Saw This Man On My Way Home From The Bar

いそう

Old Man In Pho Cao Village

いい感じ

Young girl In Pho Cao Village

Photo My Mother Took Of My Great Grandfather

架空のおじいちゃん生成できる

Photo My Mother Took Of My Great Grandfather, Japanese

Hohenschwangau Castle And Light On The Alpsee

かっこいい

Neuschwanstein Castle And Light On The Alpsee

Himeji Castle And Light On The Alpsee
姫路城にアルプスは難しそう

Al Fresco In London

地域性でていい

Al Fresco In You York

My Friends In Train

たのしそう

Oktoberfest

まさにこれ

Me In A Metal Festival

たのしそう

今年買ってよかったもの1位はtapoのスマートランプ

寝るときにライトつけっぱなしにしてるよりは消したほうがよく眠れることに気づいて、ライト消したいんだけど布団からでるの面倒って思って、スマホ対応のなにかを買えばいいんだろうなと思いつつ、電気スタンドごと探すのも大変そうだったので放置してたんだけど、電球だけ変えればよさそうだったので買ったら結構しあわせになれた。

Wifiの設定してアプリいれればスマホから操作できる。手軽。

生活魔法としてのAI画像生成には、呪文より錬成手順が大事かも

Stable Diffusion楽しいですね。こんな画像が生成できました。

ちなみに「呪文」はこんな感じです。

Silver fairies home madeup of flowers, magical world, by greg rutkowski, sung choi, photo realistic, 8 k, cinematic lighting, hd, atmospheric, hyperdetailed, trending on artstation, devainart, digital painting, glow effect

ここで紹介されたものを使いました。
https://ponkichi.blog/stable-diffusion-prompt/

ミュシャっぽい絵もだしてくれますね。

「呪文」はこんな感じ。上のサイトで紹介されていたものの先頭にmuchaをつけています。

mucha, Rococo and art nouveau fusion, iridescent diaphanous refractive and reflective flower bouquet, fantasy, intricate, elegant, highly detailed, digital painting, artstation, concept art, matte, sharp focus, illustration, hearthstone, art by artgerm and greg rutkowski and alphonse mucha

こうやって、「呪文」をどんどん調整することでいい絵はできるわけだけど、実際にここまで「呪文」を考えるのは大変です。
そして、実際にStable Diffusionを使うのは何かに埋め込むちょっとした画像を生成したいだけだったりするので、単独でSNS映えするかっこいい画像は不要だったりします。
ドラゴンと戦える極大魔法を唱えたいのではなくて、ちょっと暮らしが便利になる生活魔法が欲しいのです。

といった場合には、「呪文」を考えるよりも手順をひとひねりするほうが楽です。錬成が大切。

たとえば、なんかロボットの画像が欲しいとする。そこでまずtransformerだけ与えて画像を生成します。

色がトランスフォマーっぽい

コンボイさんも出ますね。

で一番ロボットぽいのがでた

そうやってイメージに近いものが出たら、その画像をちょっと修正します。草原と青空背景にしたいので、後ろを青と緑で雑に塗ります。ロボットにはみ出すくらいでよいかと。

この修正画像を初期画像に設定して、transformer, ricefield, steampunkで出力するなかでいい感じの画像が出てきてくれます。steampunkとかdieselpunkとかは機械の画像生成をいい感じにやってくれます。

さらにその画像を初期画像に設定して、同じくtransformer, ricefield, steampunkで生成しなおします。こちらのほうがフィールドに影がついてていいかな。

こうやって、単純なキーワードで画像を生成して、修正してヒントにしつつキーワードを少し増やして画像を生成、さらに近づいた画像をヒントに別の画像を生成する感じです。
AI画像生成では2つの主題をなかなかうまく生成してくれないので、最初はひとつのキーワードで生成して、そこをヒントにもうひとつのキーワードを指定する感じ。

他の例としてもうひとつ、街中のものを生成したいとします。
ということで今回は背景を雑に灰色で塗ります。

その画像を初期画像に設定してtransformer, broken building, dieselpunkあたりで生成するとなんかそれっぽいものが。

その画像を初期画像にして、さらにtransformer, broken building, highly detailed, photo realisticあたりで生成。

まあ、これでよくなったかどうかは別として、なんとなく近づけていく方法がわかった気がする。

NMKD Stable Diffusion GUIが動かなかったのがDevice指定したら動いた

Stable DiffusionのGUI、NMKD Stable Diffusion GUIが動かなかったのだけど、SettingsでCUDA Deviceを指定したら動いたのでメモ

1.7.2をインストール
https://nmkd.itch.io/t2i-gui

でも、Generateを押すと「応答なし」になってしまった。Visual C++ライブラリとかそういうめんどいやつかと思ったんだけど、Open Stable Diffusion CLIをしても固まるので、少しためした。

SettingsのCUDA DeviceをAutoではなくGPU0にしたらうごいた。

まあ、それだけなんだけど、ネットに放流しておくと役にたつことがあるかな

ついでにWaifu Difussionも試した。
https://huggingface.co/hakurei/waifu-diffusion

いい感じ

Java2Dデモを最新JDKで動かす

Java2DデモというのはJava 5までJDKに添付、Java 8までは別途ダウンロードで提供されていたJava2Dのデモです。

久しぶりに動かそうと思ってJava 5をインストールして、demo/jfc/Java2D/Java2Demo.jarをダブルクリックしてもローディングで止まってました。

Java 5はOracleアーカイブから。
https://www.oracle.com/jp/java/technologies/java-archive-javase5-downloads.html

Java 8向けはこちら。こっちのほうが余計なJDKのインストール不要なのでいいですね。
https://www.oracle.com/java/technologies/java-archive-misc-downloads.html

ソースもあるので開いて動かそうとしてみると、sun.java.image.codecとかの非標準APIが使われていてコンパイル通りませんでした。(Java 8ではImageIOに変わってるので修正不要。DemoImagesの修正だけでいいです)

ということで、java2d.demos.ImagesパッケージのJPEGFlipを編集します。

importコメントアウトして。

//import com.sun.image.codec.jpeg.*;

JPEGCodecを使ってるコードをImageIOに置き換えます。

ByteArrayOutputStream out = new ByteArrayOutputStream();
//JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
//JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
//param.setQuality(1.0f, false);
//encoder.setJPEGEncodeParam(param);
//encoder.encode(bi);
ImageIO.write(bi1, "jpeg", out);

//FileInputStream in = new FileInputStream(file);
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
//JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
//bi1 = decoder.decodeAsBufferedImage();

ところでパッケージ名が大文字始まりなんですよね。違和感

それと、画像リソースの読み込みでこけてローディングが止まるので、java2d.DemoImagesのコードを書き替えます。

// URLClassLoader urlLoader = (URLClassLoader)cmp.getClass().getClassLoader();
// URL fileLoc = urlLoader.findResource("images/" + name);
URL fileLoc = DemoImages.class.getResource("/images/" + name);

これで動くはず。
まあ、書き換えなくてもJava5でそのまま動かせばいいのだけども。