ZENKEI AI ポッドキャスト、シーズン32は2022年8月31日に開催した ZOOMライブの模様です。
この日のテーマは、直前に迫った「技術書典13」への最終企画会議と、急遽追加の話題「Stable Diffusion 革命」でした。
エピソード1は、前座「最近2ヶ月、仕事が忙しかったワケ」です。
当日の市來の発表資料
zenkei-ai-podcast-20220831-01.m4a
ビデオ見れる人はこちらからご覧ください。
(以下は、OpenAI の Whisper を使って文字起こししたものを修正したものです。)
** 注:以下は未編集の草稿です **
こんにちは。ZENKEI AI FORUMです。
久しぶりな気がするけど、でも1ヶ月ぶりなのね。はい、はい、はい、久しぶりです。6時半、前田です。まだ自分しか見てないな。OK?はい、こういうの実験……
(ピアノ)
1月ぶりで皆さんこんばんはです。8月31日といえば、子供の頃ね、新聞を書き集めたり。今時の子供たちは、だって紙で新聞撮らないもんね。全部ネットであるもんな、日記とかね。書かされるのかな、まだ。日記っていうのはね、人に調整されてたらいいんじゃない?とか言うと、おじさんみたいなもんね。記録を取るってことは重要なことだと思いますけどね。ぼちぼちと始めていきたいと思います。毎回ね、準備でひひ言ってるんですが、今回準備でまたひひ言ってたんですが、技術書店が近づくっていって、技術書店の方のプロジェクトもきちんとしなきゃいけないんですけども。聞こえてるよね。しなきゃいけないんですけども。今日の準備は、これがネタとして、技術書店の方にもつながるのかなっていう感じもありつつの、今日の回を充実させようと思っていろいろね、準備してたら、皆さんご承知かどうかわかんないですけども。承知だよね。AIフォーラムのオーディエンスって、まだ誰も見てないですけどもね。アーカイブを見てる人とかね。2022年の8月でAIに片足突っ込んで感じてる人たちは、我々は歴史の証人になってるっていうね。ステップディフュージョンの話でもう盛り上がってますよね。その話を盛り込んでたら、結構長大になってきたんで、粛々と進めといた方がいいかなと思ったりして。言ったらもう40分ですね。今日のテーマは、こういう企画で行こうと思ってたんですけども、他にいいネタないなと思ってたんだけども、こういう事件が起きたという、そういう今日は会にします。まとまってないですけどね。あまりに内容が濃すぎて、出来事の。まとめることはやっぱり自分自身が理解するっていう意味でね。よかったなと思いますけども。今日のお品書きです。今ね、いつもの三部構成ですね。全座パート1、パート2で、今わわ言ってたのがパート1に差し込んだやつですね。これも技術書店ネタではあるんですけども、今回の技術書店で、AIフォーラムですから、AIでコンテンツを作ってみようっていう話を最初から言ってましたけども、その話だったんですね。Stable Diffusionね。盛り込みました。それが控えてますが、全座はね、ちょっと個人的なのっていうかね、個人的っていうのと違うな。全系AIフォーラムは、全系AIフォーラムっていう名前ですけども、AIフォーラムの方に利点がある感じの内容でずっとやってましたが、今日はね、仕事が忙しかったんですよっていう話をちょっとね、聞いてほしいなと思って、ちょっと突っ込みました。はい、ということで始めます。全座です。ここ2ヶ月なんですけどもね。夏休み、子供の学勤調の夏休みよりもちょっと長い僕はプロジェクトっていうかね、ちょっと携わってて。8月が終わって、もうなんかヘトヘトになってるっていうところなんですけど。なんかね、全てがね、日常が奪われた感じになっちゃったっていうのをね、ちょっと共有したり。仕事が忙しかったんですね。2ヶ月ぐらいっていうふうに言ってますが、それ以前はね、AIフォーラムの全座を皆さん見てればお分かりだと思いますが、僕ね、穏やかな日常を思考して、なんか情報発信をしていこうっていうアクティビティがしばらく、自分のメインのノリであったんですけども、ちょっと忙しくてそれも全部滞ってるっていう感じでね、あのー、首が回らなくなってるって感じでした。今日さっきね、久しぶりに、そう、Twitchとかもね、清水の舞台から飛び降りるぐらいの気持ちでね、ピアノ配信をね、頑張ってしてたんだけど、ちょっと忙しくて、1回離れるとなかなかルーチにならないんで、そうするとバリアーも上がっちゃうね、やっぱりね。再び清水の舞台がね、50センチぐらいまで下がって、簡単に飛び降りれたのに、今またこう数メートルぐらいに上がってる感じで、ちょっとうんって踏ん張んないと、配信できないような気分になってるんで、この辺もうちょっとね、日々リラックスして日常を取り戻したいなと思ってるぐらい、ちょっとここ2ヶ月忙しかったんですよっていう話をちょっと共有しようかなと思います。そんな忙しい忙しいって何をやってたんですかっていう話ですが、大まかに言うとですね、GTKと格闘してました。プログラマーじゃない人は全然わかんないと思うんですけどね。で、もう一つはね、Blenderと格闘してました。どっちもね、僕にとってはね、そんなに最近、GTKは少し前にね、それでも少しぐらいは触ってたんだけど、必要がないと触んないんですかね。GUIプログラムとかは基本あんまりやる必要がないので、やんないんですか。Blenderは最近でもね、後ろで喋るんで、重複するんで、この2つにテクニカルにはね、戦ってた、戦ってたっていうかね、頑張ってた。大変だった。新しいスキルを学ぶっていうのは楽しい反面、大変ですね。右も左も結局わかんないんで、後で振り返ると、なんだこういうことかって、なんかわかりやすく説明してくれる人がいれば、こんな苦労しなかったのに、みたいなことの積み重ねなんですけども、それが学ぶっていうことなんでしょうね。時々やっぱり自分自身謙虚になるためにもね、新しいものにチャレンジするのはいいことなんでしょうね、きっとね。大変ですけどね。疲れた。疲れたを連発するのはやめましょう。じゃあ、具体的に何やったんだ、わかるっていうかね、伝わる範囲で話しようかなと思います。GTK、若い人は知らないと思いますかって書いてあります。実際に若い人は知らないんだろうなと思うので説明を書いてたんですが、僕もね、下手すると10年ぶりぐらいに必要に迫られてね、GUIな、GUIなプログラムをやっぱりどうしても欲しいっていうかね、必要って言って、何で書くってなって、多分、ナウい人たちっていうか、今の技術エンジニアのトレンドだったら多分ね、Webアプリを書くんでしょうね。Node.jsでパッケージのあれを使ってこれを使ってとかって。でもなんかね、牛頭っていうかね、僕がやりたいことはすごいスペシフィックなことなの。それにグラフィカルユーザーインターフェイスが欲しいだけなのに、ノードであっちこっちでかつ、僕JavaScript普段触んないんで、そっからまたとかっていうのはちょっと勘弁してほしいなと思って、じゃあオルタナティブ何?って考えたんですね。で、Python最近使ってるから、PythonでGUIでなんかって考えたんだけど、僕のPythonの使い方、プログラミングはPython結構書いてますけども、CLIはコマンドライン叩くって感じの使い方をしていて、で、ライブラリの環境セットとかめんどくさいんで、最近はドッカー一発なんですよね、環境がね。だから要するにリモート、ネット越しっていうかな、サーバーにログインしてみたいな世界でずっとやってるんで、GUIプログラムをね、書くためには基本ネイティブアプリを作りましょうっていう話になるんで、Pythonで書くにしてもネイティブでPython環境を整備してとかっていうのがね、いやーつらいわと思って、もうね、ドッカーなしでは生きていけない体になっているなと思いましたけども、そうすると、いやいや、グラフィカルユーザーインターフェース、簡単なやりたいこと決まってるんだから、もう技術的にも枯れてる、で、多少は僕も経験がある。これでサクッと書くのが一番早いだろうっていう選択でですね、それでも勉強し直さないと使えないんで、勉強してね、情報収集してね、今こうなったんだと思ったりして選択した結果がGTKなんですけども、GTK何?って言ったら、オープンソース版の、オープンソースコピーね、Photoshopとして開発されたGIMPっていうラスター形式の画像エディターあるんですけども、Photoshopね、だからイラリじゃなくてPhotoshopのクローンね。で、そいつ、これすごい長い歴史があって、僕も昔から知ってるんですけども、昔から必要に応じて使ったりしてるんですけども、これの開発のために作られたグラフィカルユーザーインターフェースのツールキット。で、GTKっていうもののGはGIMP、ツールキット。あるいはGNUなのかな?とかいろいろありますけども、そういう歴史的なもので、特徴が何かって言ったらCで書かれてるね。その当時も、もうCは古いって言われ続けても、はや何十年ですけども、Cで書かれてるね。まだその頃はGCCはCがネイティブで、今C++がなんだっけ?クランが今、もう低レベルのところすっかり離れちゃってる。どうなってるかわかんないですけどね。なので特徴的なのはCのライブラリーですよ。もちろんC++のラッパーとか存在しますけども。そういうのもあって、C++オブジェクトオリエンティットでC++で書きたいっていう人は、昔からGTKは出せよってQTを使ったりとかですね、いう人たちとかいろいろ派閥とかあったよね。僕はGTKを使ってましたね。自分のプロジェクトとかもね。下に書きましたけども、和音ね。和音のグラフィカルユーザーインターフェースバージョンのGUAONっていうアプリを僕書いてる。GTKで、これね、TROYのね。確か記憶だともう全然メンテしてないんで、GTKのメジャーバージョン2かな?じゃないかなと思いますけども。今ね、浦島太郎的にね、いろいろ調べたのね。今日的に2022年的にGTK使うってどういう風に使うの?とかバージョンどうなってんの?みたいな。今はバージョン4がカレントの、しかもステイブルなバージョンになってるみたいね。ただ、ネットググると、まだGTK3でいろいろドキュメントとか、エグザンプルとかたくさんあって。だから今回は僕はバージョン3で書こうと思ってね。とりあえず動くものをすぐ作るっていうのが目的だったんで。無難に。っていうのは、Macポート経由でGTK入れてるんで、MacポートにGTK4がまだ入ってなかったんで、なんか理由があるのかどうかわかんないんですけども、GTK3はもうすぐに入るんで、それでやってた。という話です。やりたかったことは何ですか?っていう話なんですけども、簡単なことだってさっきから言ったよね。画像ファイルを開いて、画像デカいファイル4Kとかね、パノラマの画像ですけども、それを開いて、でも全体を俯瞰しながら、でもピクセル単位で細かいところまでビュッて寄って、ピクセルここのピクセルとか言ってまたグッと引いてとかっていうように、画像を開けて拡大縮小がきびきび動く、そういうツールが欲しかった。それだけだよね。あとは座標がきちんと何ピクセルのXYの座標がきちんと取れればそれでよかった。だからわざわざノードを学びたいとは思わないよね。具体的にこのツールが必要になった理由は、ツールを書こうって思うまでは、今ここに示したよ。これね、僕の作業ノートですけども。手書きでね、こういうことをやってたの。これ何かって言ったら、上半分は画像のスケッチを自分がノートに書いてね。建物、パノラマ360度画像なので、部屋全体が映ってるんだけども、その部屋の壁がどこにあって、入り口がどこにあって、柱がどこにあって、そのコーナーのXY座標が欲しいっていうことで、GIMPで画像ファイルを開いておいて、あれってマウスの座標がきちんと左下のステータスコードのところに出るんで、1ピクセル1ピクセルで減寸で表示しておいてのピクセル座標をここだったら左側のパノラマ画像に対しては71っていう番号だから、71個の点をマウスで動かしてここって言って、座標を読んでその数字を手書きでノートに書き写して、っていうのを71個やって、この数値が欲しいので、この数値を解析プログラムで、Pythonで解析するためのデータセット作りを手作業でやってたんだけども、これはかなわんと。で、これツール書こう。そのためのツールを僕Mac普段使ってるし、すぐにサクサク動くようなものが欲しいって言って、GTKで書きました。大変だった。大変だったのは、このノートを手作業で書くのが大変。左の1ページのデータを取り終わるのが集中して、半日とか1日とかも、で、それ終わったらもうヘトヘトになってるっていう感じ。これを僕、夏の7月とかね、トータルで今数えたらノートを20枚ぐらいのパノラマ画像でやってるの。20は言ってなかった。19?18?それぐらいやってたの。エンジニア、プログラマーっていうのは、美徳の一つに、怠惰であることね。武将者であることっていう。理由は何かっていうと、武将者だからプログラムに面倒くさいことをやらせるっていう発想になるから、いいプログラマーになるみたいな話ですよね。僕はね、たぶん勤勉すぎるんだな、プログラマーとしては。これもっと早く、たぶん、筋がいいプログラマー、エンジニアだったらプログラムを書き始めてると思いますね。僕は1ヶ月ぐらい歯を食いしばって頑張った結果、もうたまらんって言って書き始めた。書き始めたら、サクッと書けて、見たらわかるんですけども、この丸点で点を打って、ここの点とここの点の関係性は?って言ったら、XYZでね。縦方向、青いラインがZで、横方向、XYが赤と緑でっていう関係づけを同時に付けて、アトリビュート、属性として付けてみたいなことをやりたかった。できたと。できた結果、その点同士がどことどこがつながってメインになりますよっていうのを指定する。UIも付けてっていうので完成した。やってみたら、簡単にやったじゃんと思って。想像してた時は、っていうのは前に経験してるからね。G-Guaon作った時は、この真ん中の黒いところがスペクトログラムですけども、これ表示させるの結構大変だったよね。で、ズームとか入れなかったのかな?結局。普通考えても、ズームしたら画面に全体が入ってないから、一部しか表示されてないから、右行く左に行くっていうスライダーが上下に付けたりするじゃない?GUIプログラムで、Widgetって言うんだけど、そういうスライダーを真ん中のキャンバスに対して配置して、スライダーのイベントで画像のどこを表示するっていうのをイベントをくっつけて、とか。やらなきゃいけないのかと思って、すげー気が重かったんだけど、結果としてやったら、これ今見せたのが、これGTKで書いたアプリのフルスクリーンなんだけど、スライダーとか入ってないの。で、この画面上で、マウスのドラッグでそのままスクロールするような実装にしてて、簡単だったのね。思ったより。っていうか全然。で、すげーと思って。しかも軽くて、プログラム量もすごい少なくて。時代はすごい進化してるなーっていうかね。思いました。GTKすごいなって評価したし。これができたのは、回路っていうね。昔からGTKのバックエンドっていうか描画の部分を受け負ってるライブラリなんですけども。バージョン3になって標準になったみたいで、描画方法が。だから、ピクセルバッファーを直接扱うんじゃなくて、回路経由で描画はしてね、みたいな感じになってるみたいですね。そのおかげっていうか、そのフレームワークで、サーフィスっていうのがあってね。サーフィスのどこを画面に表示するみたいな。でかい画像はサーフィスに用意しておいて、そこの部分のここを表示しろっていう風な感じだけで、ズームインズームアウトもそこの表示部分だけのパラメーターを入れるだけなんで。何を言ってるかわかんないと思いますけど、プログラマーじゃないと。それぐらい感動したの。これ早く描けばよかったと思ってね。ただ、商業製品にはできないですね。これね、LGPLですけども、ライセンスがオープンソース。後ろの方でオープンソースの話しますが、僕はオープンソースな人間なんで、元々サラリーマンじゃないですからね。商業プログラマーじゃなくて、研究者だったんで。心はオープンソース派なんですけども、仕事上、そんなに何でもかんでもオープンにはできない。これは単純に点を打つだけっていうもんなんで、もし配布する必要があって、配布する場合にかつソースをよこせみたいなことになったら、出してもいい範囲の部分しか使ってないんで、まあいいんですけどね。でもいや、10年前に触った時の印象と全然違うし、やっぱネイティブっていうかね、やっぱりプログラムいいね。コンピューターの上でサクサク動くっていうのがやっぱりプログラムの使命ですからね。久しぶりに面白かった。っていう話に、この2ヶ月忙しいの半分くらいはあって、ていうか忙しかったのは、さっきも言ったように、この手作業ね。神経衰弱だったね。で、もう一つはBlenderね。Blenderもね、学ばなきゃなっていうふうには、to do listの常に5番目6番目ぐらいには過去10年とかあるんだけども、この間ね、全系アイフォーラムで、調べたら5月でしたけども、僕のリアルアバターを作るって話がありましたね。あの時もBlender使わないとモデル作れないから、テクスチャー貼れないからBlender必然的に使わなきゃいけないって言って、久しぶりにね、Blender。多分この時に今のマシンにインストールしたんだな。普段使わなかったから、そもそも入れてないんで使い始めたんだけども、Blenderも枯れましたね。枯れたっていうか、一時期Blenderイコール変てこなマウスコントロールで、それをそのためだけに覚えなきゃいけないのが一番のハードルで、直感に反するみたいなのがありましたけども、それが改善されたせいなのか、僕は昔のことを何も覚えてない、全くの真っさらなスレートな人間だったから、気合が今回はやるぞっていうのがあったのか、理由はわかりませんが、今回は結構、Blenderのスキルは着実に上がっている気がするね。5月の時は、こういうふうにとりあえずアバター、俺踊るぜっていうのが目的だけで頑張ってましたが、今回は本当にね、3Dモデリングをきちんとやらなきゃいけない必要に駆られまして、やったんですね。勉強したんですけども。でね、こっちにも感動したポイントがあって、Blenderは最近のレンダーの出力のクオリティもすごいっていうのはいいし、Blender自身、いや僕はすごいなって、本当に最近評価高いんですけども、今回ね、感動したポイントがPython API。もっとわかりやすく言うと、僕が感動したポイントは、Blenderの操作って基本的にGUIアプリケーションですね。3Dモデリングソフトウェアだから。なんだけど、操作が、基本的な操作が、バックエンド全部なのかな?わからないけど、インターフェース部分なのかな?Pythonで書かれているのかな?まあそのせいだと思うんだけども、GUIを使ったボタンとかマウス動作とかの操作一式、全部対応するPythonスクリプトがあって、書ける。操作が全部、Pythonにも書けるよ。し、実際に操作したやつが、Pythonスクリプトのどういう命令だよっていうのがコンソールに出るのね。すごいなと思って。これは、プログラマー的にはすごいことだなと思って。GUIを作るの、何が嫌って、嫌なことあんまり言われてするなっていうあれはありますけども、GUIプログラムを今回書いておいて何を言っているんだって話ですけども、何が嫌って、操作の再現性っていうかね、人間のマウス操作っていうすごい、デジタルツールだけども、アナログ的なインターフェースに依存している構造がね、どうも気持ち悪いのと、再現性ね。同じ操作をもう一回したいとか繰り返ししたいっていうのができないっていうのが嫌いなところなんだけども、こうやってスクリプトで書けるっていうことは全部機械的にっていうかプログラム的にできるっていうことなんで、これすごいなーって今回感動しました。昔からあったんだけども、感動しました。で、こういうことを何でやってたの?って言うと、急いだほうがいいね、巻きでね。もう7時過ぎだね。なんでこういうことをやったのかっていうと、お仕事。前景株式会社で働いてますが、今ね、パノラマの次の新しい映像技術の開発に一期は日夜取り組んでるわけですが、これネタ自体はもう古くて、僕が入ってすぐ、だから13年とか前にもうアイデアとして割ってやり始めてて、今なかなか形にならなかったのが、もう今形にするぞっていうレベルになってる。何かっていうと、パノラマ映像360度画像、画像なんで2Dですけども、そこからフォトリアルな3Dモデルを構築するサービスが前景3Dと呼ばれるものです。これをこの2ヶ月頑張ってたんですね。夢のような技術でしょ。この僕の2ヶ月の苦労をね、すごいの触りをね。触りっていうのはハイライトですけども、お見せします。ビデオ作った。これを作るシステムを、今日夜開発してる。これのためにね、GTKでGUIプログラムを書いてね、BlenderでPythonでモデルを作ってやってました。やった結果できた。とりあえず今のところは一点物として僕は頑張って作ってますけども、これをシステムに落とす。疲れた。このサービスはですね、今年の年末にベータ出したい。来年の前半には正式リリースしたいなっていうラインで、だからまだまだ頑張りは続くんですけども、頑張ってます。お楽しみください。これね、楽しいよね。楽しみだよね、絶対ね。と思ってます。これでね、僕の7月、8月は、人生はこれに捧げてしまったんですが。目次に戻る。ここまでがね。だから、今ね、自分のPodcastとかTwitchとかを滞ってるって言ってましたが、全KIフォーラムのPodcastもストックがなくなってしまって、今停止状態。水曜日に楽しみにしてるオーディエンスがどれくらいいるのかわかんないですけど、ちょっと止まってますけども、早く日常を復活させてですね、そっちも復活させたいなと思ってます。しばしお待ちください。はい、ということで7時10分なんで、ここまでが前座ね。一期忙しい忙しい言ってたけど何をやってたの?っていうのは、あれをやってた。っていうことです。正式にアナウンス、ビジネスとしてアナウンスされるのは年末になりますけども、なる予定ですけども。しばしお待ちを。ブレンダー使いの人とか活躍できそうだよね、こういう世界ね。まあいいや。はい。