irisuinwl’s diary

サークル不思議(略)入巣次元の、数学や技術的なことを書きます。

拡散生成モデルはVTuberを作るか?

こんにちは、いりすです。

StableDiffusionで作った一枚絵をブラウザ上で顔認識して動かすVTuberアプリのプロトタイピングをしたので、解説をします。

成果物:

概要

やったことは以下です。

  • StableDiffusionで良い感じのキャラを作る
  • pkhungurnさんのtalking-head-anime-3を使って、blednshapeを入力にキャラクターの顔を動かすAPIを作成する
  • mocap4faceで顔認識 -> blendshapeにして先述のAPIに食わせて結果を表示させる

今回利用したrepo

github.com

github.com

改変したコード

frontend:

github.com

  • Running:
cd js-example
npm install && npm run dev

backend:

github.com

  • READMEに書いてある通りにモデルを持ってくる
  • Running:
DIR=$(pwd) docker compose -f docker-compose-api.yaml up
続きを読む

AIを使ったお絵かきをした

こんにちは。いりすです。

最近、拡散モデルによる画像生成AIを使った話題が豊富で、自分でも様々なことを試してきました。

実際にStable Diffusionを自分で動かせる環境を作ったりして試しました。

stable diffusionをwsl2でやるメモ - irisuinwl’s diary

stable diffusionを試した & 雑感 - irisuinwl’s diary

今回、拡散生成モデル(Stable Diffusion, Waifu Diffusion, TrinArt)を使って、絵を描いてみたので、0から描いたその証跡(トレース)を残したいと思います。

描いた絵は以下です:

自分の描いた絵の中で一番上手くできたんじゃないかとおもいます

続きを読む

stable diffusionをwsl2でやるメモ

こんにちは。

stable diffusion+streamlitを動かしてみました。

Repository:

github.com

※このリポジトリは実験的に作ったもので、これをそのままデプロイしても何が起きるか分かりません。

wsl2でcuda使う準備

  • ここらへんを見る

docs.microsoft.com

  • 動作確認
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
  • wslでpytorchが動作することの確認
poetry run python3 -c "import torch; print(torch.cuda.is_available()); print(torch.rand(2, 2).to('cuda:0'))"

実行

詳しくはREADME.mdとDockerfileを読んで

github.com

結果

次やりたいこと

  • 16bit, 32bitの切り替え
  • GKE Autopilot+GPU+SpotVMへのデプロイ(コストをみたい)
  • 強いグラボが欲しい(はい)

トラブルシューティング

以下のエラーがでる

github.com

21H2にする

  • cudaのバージョン違い

no kernelとなる。 - CUDAを11.6にして、使うイメージを合わせる。

developer.nvidia.com

pytorch cudnn116でインストールする。

poetryを使っているので1.2.0にしてtorch+cudnnをインストールする。

poetryでインストールする上で参考にしたのは以下:

scrapbox.io

github.com

  • CUDA OOMになる

自分のVRAMが8GiBしかないので、OOMになる。

ググると最適化verかfloat16にするといいらしいので、float16にして対応。

stable diffusionを試した & 雑感

こんにちは。

最近mid journeyで遊ぶのにハマってました。

stable diffusionが萌え絵で良い感じだし下書きを良い感じに清書してくれるっぽいので試した。

colab:  https://colab.research.google.com/drive/1h1AXkHMw6gw8BF8cUcs-7rcYS7IH6Nhw?authuser=1#scrollTo=1-b9n6sUZ7LX

  • 原著論文

arxiv.org

github.com

  • 実装する上での参考: 

note.com

  • 公式サンプルが手厚い

huggingface.co

続きを読む

国立国会図書館デジタルコレクションに公開された絶版数学書がとても良かった

はじめに

国立国会図書館ライブラリに絶版本10万点ほどが公開された。

通称、個人向けデジタル化資料送信サービス である。

www.ndl.go.jp

結構SNSで話題になったが、実際に登録してみて使ってみると内容の良い本が多かったので、紹介する。

自分は数学のオタクなので、今回は数学書に限定して、紹介しようとおもう。

また、単純に大学図書館を探索している気持ちになって、その体験はとても楽しかったので、オススメする。

ただし、掲載されている本は良かったが、検索UXやビューワーは良いとは言えないので、そこは注意。

前提条件

個人向けデジタル化資料送信サービス を利用するには国立国会図書館のアカウント本登録が必要となっている

本登録には身分証を送付しないといけない。

www.ndl.go.jp

検索方法

まず、国立国会図書館デジタルコレクションで検索しても様々な検索結果がヒットし、目当てのものが見つからないので注意する。

自分は絶版本リストのtsvをmergeしてpecoで検索している

  • 下記から TSV形式(ZIP圧縮) をダウンロードする

www.ndl.go.jp

  • ダウンロードしたtsvを結合して、pecoで検索する
cat dataset_202201_t_soshin_01.tsv <(tail -n +2 dataset_202201_t_soshin_02.tsv) > dataset.tsv
cat dataset.tsv | peco

どんな本があるの?

さて、実際に絶版数学書でどのような本があるか紹介する

シリーズもの

まず、特筆すべきはブルバキ日本語訳が 全巻(39巻) 揃っている。

数学を勉強したことのある人間にとっては、これだけで天国のようなラインナップである。

このシリーズを読破すればおおよその現代数学の基礎は理解できたといえるのではないだろうか。全て読める人間がいるのか不明だが…

ja.wikipedia.org

  • 東京図書 数学新書 シリーズ

数学新書シリーズは、面白い題材を使って現代数学に入門する手ごろに読むことのできる本が多い。

E.T.ベルの数学を作った人々もこのシリーズである(28-31巻)

ci.nii.ac.jp

岩波の応用数学について記されたシリーズ。岩波 応用数学とは違う。

有名なのは以下であろう:

  • 彌永・杉浦 代数学( 成書だと応用数学者のための代数学 )
  • 吉田耕作 位相解析/ 岩村 超関数 (成書で位相解析の基礎)
  • 二階堂 経済理論の数学的基礎

ja.wikipedia.org

  • 現代の数学 T.L. サーティ

1950年前後の数学topicを知る良い本だと思う。

現代の数学 (岩波書店): 1965|書誌詳細|国立国会図書館サーチ

岩波書店だと、少し古いが以下がある。

以下では各分野について、絶版本ライブラリで閲覧できる良さそうな・これあるのかよって驚いた本を列挙する

幾何学

解析学

  • 実函数論                辻正次 著   槙書店
  • 複素函数論              辻正次 著   槙書店
  • 現代ベクトル解析 : ベクトル解析から調和積分へ               H.K.ニッカーソン, D.C.スペンサー, N.E.スティーンロッド 著||原田重春, 佐藤正次 訳    岩波書店
  • 超関数論入門 | 1 | 共立全書 |  | И.М.ゲリファンド, Г.Е.シーロフ, М.И.グラエフ 著||功力金二郎, 井関清志, 麦林布道 訳 | 共立出版
  • 線形位相空間と一般関数      共立数学講座 ; 16       山中健 著   共立出版
  • 関数解析入門 共立全書 M.A.ナイマルク 著||功力金二郎, 井関清志, 笠原章郎 訳 共立出版
  • 位相解析入門                入江昭二 著 岩波書店
  • 多変数関数論        共立全書        酒井栄一 著 共立出版
  • ルベーグ積分        岩波全書        溝畑茂 著   岩波書店
  • 確率論とその応用    [第1] 上    現代経営科学全集 ; 5        W.フェラー 著
  • 確率論 : 近代確率論への入門     近代数学新書        鶴見茂 著   至文堂

代数学

物理数学

  • 物理数学の方法 L.シュワルツ 著||吉田耕作, 渡辺二郎岩波書店
  • distributionによる物理数学
  • 物理数学の方程式 | 第1 | 共立全書 С.Л.ソボレフ 著||功力金二郎 等訳共立出版
  • 物理数学の方程式 | 第2 | 共立全書 С.П.ソボレフ 著||功力金二郎 等訳 共立出版

応用数学

  • 最適問題 |  | 共立数学講座 ; 23 |  | 杉山昌平 著 | 共立出版
  • 最適過程の数学的理論                エス・ポントリャーギン 等著||関根智明 訳    総合図書

おわりに

いろいろ書こうとしたけど、本の一覧になってしまったが、国立国会図書館デジタルコレクションで閲覧できる良さそうな本を紹介した。

選んだつもりだけど、多量になってしまった。もちろんこれが全てでないので、より良い本が見つかるかもしれないので、興味を持った人は調べてもらえると。

やはり絶版本とあるように、最新の本より1930年~1950年付近の本が多い。

コンピューターサイエンスなどの比較的新しい分野の閲覧を期待すると違和感があるかもしれないが、数学書だと名著も多く、問題なく学べると思った。

国立国会図書館デジタルコレクションを使ってみようと思えたら幸いである。

また、一覧は登録せずとも見れるので、それを見てから登録しても良いと思う。

VRChat OSCを試してみた

最近巷で話題のVRChat OSCで遊んでみたときのメモです。

もろもろの前提知識

OSC(Open Sound Controll)とは?

  • 通信プロトコル。元々音楽を送信するための規格らしい
  • Message(URLのPathように/で区切る形式)とArgument(送る値)で通信する

OpenSound Control - Wikipedia

yoppa org – openFramewoks – OSC (Open Sound Control) を利用したネットワーク連携

VRChat OSCとは?

  • VRC上でOSCを使ってAvatarと通信する機能がオープンベータで追加されたよ
  • 外部サービスとVRCのAvatarを通信することができるよ(eyetrackingしたりアバターの表情を外部アプリから操作したり…etc)
  • 詳しくはdocumentとgithubのもろもろを見てね!
  • clientは各言語のOSC Clientを使えばOK

VRCのリリースブログ: VRChat OSC for Avatars — VRChat

公式ドキュメント: https://docs.vrchat.com/v2022.1.1/docs/osc-overview

遊んでみた

python-oscとstreamlitを使ってVRChat上のアバターを操作するようなアプリを作りました

VRChatのOSC Serverは127.0.0.1:9000で立っているっぽいのでdocker containerからhostの127.0.0.1:9000にアクセスするようにするようにアプリケーションとdocker-composeを作りました。

streamlitは良い感じに公式ドキュメントみてparamの設定とsendを行うアプリケーションを作ります。

repos: GitHub - irisu-inwl/vrc_osc_python

demo:

他にも口パクとか操作しようと思ったけど、VRChat Avatarのパラメーターをちゃんと定義しないといけなさそう(VRMを単純にエクスポートする以上にVRChatのAvatar仕様を理解する必要がありそう)だったので、一旦今回はこれで満足しました。

今後、VRChatでライブするイベントがあるときにOSCを使って複雑な操作と、バーチャルとリアルのフィードバックがされると思うとめちゃめちゃ楽しみに感じられる技術でした。

じゃあねー

参考

VRChatでOSCやーる(Python3.9、Windows10) - Qiita

FirestoreのCRUD APIを作って、負荷試験をする

⛄⛄ この記事は Classi developers Advent Calendar 2021 12/21の記事です ⛄⛄

こんにちは、いりすです。

最近、バーチャルの肉体を得てYoutubeで配信したりVTuberっぽいことをしてます。 腰と足をトラッキングする用にkat loco sというデバイスを買ったりして、VRの感動を覚えてます。

f:id:irisuinwl:20211220045221p:plain
1か月前にやったVR筋トレ

さて、今回は、以前作成したGoogle CloudのFirestoreのCRUD APIに負荷テストをするアプリケーションについて解説し、負荷テスト結果をみていきます(VR関係ない笑)

source:

github.com

続きを読む