Agelesnate V3

せっかくStable Diffusionが動くようになったんだから、やっぱりアニメっぽい絵も出したいなとおもって、Agelesnate V3というモデルを前回と同じプロンプトで試してみました。

いつまでも遊べますな。

59 years old male Japanese IT Professional in T shirt with less hair and glasses at a coffee shop
59 years old male Japanese IT Professional in T shirt with glasses at a coffee shop
29 years old female Japanese IT Professional in T shirt with glasses at a coffee shop
29 years old female Japanese IT Professional in T shirt with short brown hair at a coffee shop

Stable Diffusion

子どものゲーミングPC のスペックにはあまり気を払っていなかったのだけれど、聞いてみたら RTX 4070 Tiが載っていることがわかり、無性にStable Diffusionを動かしてみたくなってやってみた。

インストールの手順はほぼこのページに説明してあるとおりで、WindowsにWSL2のUbuntuを入れて、そこでStable Diffusionを動かしてます。cuDNNのバージョンは8.9.6で、モデルはRealistic Vision V5.1を使ってみました。

もちろんパラメータによって出力速度は変わりますが、だいたい2秒で1枚画像が生成されます。非常に快適。


いろいろ試してみたんですが、とりあえずここに載せるのは自分に近い画像にしようかということで、自分自身に近い画像がでるようなプロンプトを探してみました。

59 years old male Japanese IT Professional in T shirt with less hair and glasses at a coffee shop

で、髪が薄いという記述をプロンプトから取ってやると、

59 years old male Japanese IT Professional in T shirt with glasses at a coffee shop

じゃあ次は年を59歳から29歳にして、

29 years old male Japanese IT Professional in T shirt with glasses at a coffee shop

性別も変えてしまいましょう。

29 years old female Japanese IT Professional in T shirt with glasses at a coffee shop

メガネもはずしてもらって、ショートカットにしましょうか。

29 years old female Japanese IT Professional in T shirt with short brown hair at a coffee shop

おなじプロンプトでもやり直しさせれば違う画像が生成されるし、もちろん無茶な条件をどんどん足していくという遊びもできますが、こうやって少しずつプロンプトを変えていくのも楽しいです。

47 Ronin

赤穂義士の墓地。それぞれの墓に正月のもちが供えられていました。

能登の地震と羽田空港の事故があって大変な年明けになりました。なんとか無事にノースカロライナの家に帰ってきました。

今回は京急1本で羽田空港に行くことができる泉岳寺に泊まったので、朝のうちに泉岳寺で初詣をして境内の赤穂義士の墓参りをしてきました。

とくに忠臣蔵に思い入れがあるわけではなく、ホテルから近いから寄ってみた、くらいの気持ちでしたが、実際にその場に行ってみると、朝まだ早い時間だったせいかだれもいなくて、(おおげさに言えば)ひとが生きる意味というのはなんだろう、と考えさせられる空気がありました。

忠臣蔵の勉強会もやっているみたいです

2024

近江八幡市土田町の田んぼにそびえたつ(たしか)ドコモのアンテナ
初日の出に照らされる八幡山をのぞむ

あけましておめでとうございます。

今年も田んぼの道から初日の出を拝みました。その足でセブンイレブンに行って日経と日刊スポーツを買いました。

日経によると今年は昭和99年なんだそうです。すごいな!と思うのは自分が昭和生まれだからでしょう。

今年もよろしくお願いします。

Seattle

いろいろと書くと長くなるのですが、シアトルのダウンタウンに行ってきました。1時間くらいしか時間がないのでスタバの1号店だけ見よう。

真ん中の小さな店がスタバの1号店です。わざわざ見に行く値打ちはないですが、まぁここから世界制覇が始まったとおもうとやっぱりすごいなーとはおもいます。

まる1日あったらぜひNirvanaのKurt Cobainの家に行きたかった。つぎの機会ですな。

Boston

週末に2泊3日でボストンに行ってきました。今回はいろいろなことを思いっきりつめこんでやろうとおもって、朝は雨の中5Kレースに参加して、夜はバークリー音楽院のコンサートホールで行われたBrad Mehldau Trioのコンサートに行き、View Bostonに登ってチャールズ川の対岸のMITを眺めたりしましたが、ボストン美術館に行くのはあきらめました。全部はできませんな。

Python in Blender

9月にとある資格試験を受ける予約を入れていて、7月くらいにこれはどうも準備が間に合わないとおもって、2週間延期して、またしばらくして準備ができないということで、今度はもうちょっと長く延期しようということで、11月のはじめに受けることにして、10月になってそれでも準備が間に合いそうになかったんですが、これ以上延期すると少しは準備した分をぜんぶ忘れてしまいそうだったので、10月後半はわりとまじめに勉強して、先週受けてきたんですが、残念ながら及ばず、また12月に再試験を受けることになりました。

そんなわけで試験準備は続けるんですが、自粛していた3Dプリンタ活動も少しは再開しようかということで、ひと月まえにやっていたプロジェクトをここにまとめておきます。


ぼくが3Dプリンタを始めたいとおもった直接の動機は、Beepyのケースを打ち出したいというもので、それは単純にできあいの3Dモデルをアップロードしてプリントすればいいだけだったのですが、同居人から、キッチンの水道の蛇口のプロテクターを作ってほしい、というリクエストがありました。

数年前にリフォームして、キッチンの水道はこんなふうになったのですが、

見かけはカッコイイものの、水がはねると角の部分に水あかがたまって、結局常にふきんで水をぬぐわなければならない。うしろのタイルの目地もすき間ができてきてそこに水が入り込んだりもするし。

それで作ったのが、

デジタルノギスで測ったので、サイズはピッタリ。いくつか改善したい点はあるけど、最初のバージョンとしてはかなり上手にできたのではないかと満足してます。

3Dプリンタの講習会では、3Dモデルの作成用のソフトとして、オンラインのTinkercadを紹介されて、ぼくがつくったこれも複雑そうには見えるけど、要は箱と円柱の組み合わせだけで、しかもひとつも斜めに配置しているものはないので、じゅうぶんTinkercadでモデル作成はできるはずだけど、実際やろうとしてみると、足し算と引き算だけとはいえ、サイズをぴったり合わせるためにはいろいろと計算をしなければいけなくて、途中でいま編集しているものがちゃんと正しいサイズで出力されるのか、まったく自信が持てなくなってしまい、Tinkercadをつかうのはあきらめた。

そんなわけで、Blenderを使うことにして、最初はマニュアル操作で箱と円柱を足していたけど、またしてもやっているあいだにわけがわからなくなって、どうしたものかとおもっていたら、BlenderがPythonのAPIをサポートしていることがわかり、Pythonのプログラムを書いてそれを走らせてモデルを作成させてやればいいことがわかった。 それでやってみたのがこんな感じ。

たぶんもうちょっとそういうCAD系のソフトを使えば、マニュアル操作でもこの程度のモデルはわりと簡単に作成できたりするんだろうな。でも、プログラムでやれば、サイズを変更するのも簡単だし、BlenderのAPIはなんだかよくわからないところがあるけど、とりあえず今回作りたいものは作ることができたので、しばらくはこのアプローチで行くことにします。

汚いコードでぜんぜんコメントも書いてないけど、コードをGitHubにアップロードしておきます。

SQFMI Beepy + Lua lfb library

BeepyにのせているRaspberry Pi Zero 2 Wは1 GHzで動作する64ビットCPUで、メモリも512MBつんでいるので、デスクトップやラップトップと同じようなこともできるはずなんだけれど、やはりこのちいさなディスプレイとキーボードだけで、昔のポケットコンピュータ(あるいはプログラム電卓)みたいなことをやるのがロマンなんじゃないでしょうか。

そんなわけでまずはBASICインタープリタでも入れてみようということで、bwBASICというのを入れて、1から10までの数をFOR LOOPで足してみたりしたけど、いまひとつ盛り上がりに欠ける。いまさらBASICというのもどうでしょうか。

仕事では最近Pythonを使うことが多いので、Pythonというのも考えたけど、老眼で大きめのフォントを使っているので、インデントでコードブロックを定義するPythonでは1行が折り返した場合に非常に見にくい。

じゃあRuby、ということにしても良かったんですが、今回はLuaというのをためしてみることにしました。これまでに使ったことはないけど、けっこう素直な文法みたいだし、ハードウェアをつつく必要が出てきたときにやりやすそうというのが理由。

Lua自体は普通にインストールしたら動くけど、やっぱりグラフィックスを表示したい、ということで、いろいろと調べた結果、このlfbというライブラリがシンプルでいいのではないかということで、まずは付属のサンプルプログラムを動かしてみたのがこのビデオです。

このライブラリでもポケコン的に使うには書かなきゃいけないコードがやや多めなので、これをもとにBeepy専用のライブラリを書いたりするのかな?

3DPrinterOS

先月BeepyというハンドヘルドのLinuxデバイスを買って、ケースがないので3Dプリンタで3Dモデルをプリントしたくなって、でも3Dプリンタを持っていないので、しらべたら図書館にあることがわかって、でも使うためには講習会を2回も受けなきゃいけなくて、講習会は1ヶ月先だけどそんなの待てるかな、とかおもっていたのですが、気がついたら1ヶ月経ってました。お年寄りになると時間の過ぎるのがはやいですね、というかたぶんPixel 5aとのたたかいのせいで時間が早く過ぎたのかもしれない。アップデートしてませんが、あれからまた中古のPixel 5aを買って、こんどは画面が真っ暗になったりせずなかなか快調です。

それはともかく、先週の3Dプリンタ1回目の講習では先生が3次元とはなにかみたいなことを説明しているときに、受講生のひとりが、3次元はわかりましたが’4次元とはなんですか?、と質問してたりしたんですが、今週はもっと実践的にどうやって3Dモデルを3Dプリンタに送るか、というのをやりました。(1) 3DPrinterOS.comというサイトに3Dモデルをアップロードして、(2)「スライス」して図書館の3Dプリンタにプリントするためのキューに入れて、(3) キューの順番が来てプリントがおわったらメールが来るので図書館に取りに行く、(4) お金は1グラムあたり10セント、ということらしい。

そんなわけで、Beepyのケースの3Dモデルをキューに入れてみましたよ($3.31でできる予定)。明日か明後日にはできるんじゃないかな?最初に試すには複雑すぎるような気もするけど、どうなるやら楽しみです。


(Update: 2023-09-27) 昨日の夜キューに入れたモデルは今日の午後プリントされました。プリントされているあいだWebcamで様子がわかるようになってて、仕事中にちょっとのぞいてみたのが下の写真です。

図書館から取りに来ていいよ、というメールが届いたので、あしたの昼休みにでも取りに行ってみます。

(Update: 2023-09-28) できました!

ケースのうらおもてを逆にしたほうがキレイだったのではないかとかいろいろあるけど、まぁデビュー作としてはいいんじゃないか。満足です。

Pixel 5a Android Auto Issue Resolved

7月のはじめからAndroid Autoがつながらなくなってしまい、いろんなことを試したのだけれど、ごくたまに気まぐれのようにつながる以外はぜんぜんダメで、一方iPhone 12は百発百中でApple CarPlayでつながるので、いよいよAndroidを捨ててAppleの軍門に降ろうかともおもったのだけど、Androidでもまっさらから再インストールしたらつながったりするんじゃないの?とおもったので、馬鹿馬鹿しい話だがもう一台同じ電話を買ってためしてみることにした。

さいわいぼくの電話はハイエンドでもなく最新型でもないPixel 5aなので、eBayで送料込みで$170ほどでした。程度がわるいものならもっと安いのもあったけど、やっぱり画面が割れてたりするのはいやなので、このくらいのにした。本体の裏側に汚れがあるけど画面はキレイ。

で、まず標準以外のアプリケーションは何もいれずにセットアップしてクルマ(Honda Fit 2018)につなげてみたら、何ごともなかったかのように、Android Autoが立ち上がる。いままであんなにつながらなかったのがウソのよう。電話は同じだし、OSもおなじAndroid 13のはずなんだが。

つぎに古い電話からアプリやデータを移してみる。WhatsAppとLINEはGoogle Driveにバックアップしてからリストアしなければいけなかったけど、それ以外はただ時間がかかるだけでたいした手間ではない。で、またつなげてみたら、またちゃんとAndroid Autoは立ち上がる。

最後の仕上げは仕事で使っているWork Profileの設定で、なんとなくこれあたりが悪さをしているんじゃないかと勝手におもっていたけど、Work Profileを入れてもちゃんとAndroid Autoは立ち上がるのだった。

それじゃ、いったいなんで立ち上がらなかったのかということだけど、それは結局わからずじまい。でも、とりあえずこの古い電話もバックアップ用にとっておいて、またAndroid Autoがつながらなくなったら、もう一回同じことをやればいいんだろうな、ということはわかったし、これ以上この問題に時間と労力を突っ込むのは不毛なので、これでいちおう解決、ということにします。

まぁ、たぶんPCにバックアップしてから初期化してリストアしてもいいんだろうな。でも、いくらバックアップしても、メインで使っている場合、初期化するのはちょっとためらうな。

(2023-09-11 付記)

そんなわけで月曜日になって、クルマに(eBayで買った)Pixel 5aを接続したら問題なくAndroid Autoが立ち上がって、Spotifyを聴きながら会社に向かっていたら、10分ほどして突然音が切れて電話の画面が真っ黒になって、お亡くなりになりました。充電はされているはずなのにいくら電源ボタンを押してもぜんぜんだめ。ネットで買った中古品ってこういうことあるよね、みたいな。水没品をつかまされたのかもしれん。

返却できるようなので返却することにして、それでも携帯がないと困るので、今日のところはiPhone 12にSIMを入れて使ってました。iPhone 12はなんの問題もありません。このままAppleに寝返ってしまうのがふつうでしょうが、もう意地になっているので、返却処理が終了したら、またべつのPixel 5aを手に入れて再挑戦する予定。

我ながら懲りないやつだなーとおもいます。