Stable DiffusionでDepthを使ってVRを楽しむ

Depth機能を導入すると、DepthMapを作ることができる。これをうまく使うとVRで3D画像を楽しめる。SDでDepthMapの作り方は例えばhttps://note.com/alone1m/n/nb76ae31f8f86を参照されればできるが、これをさらにステレオフォトメーカhttps://stereo.jpn.org/jpn/stphmkr/index.htmlをつかうと3D画像を生成できる。やりかたはhttps://twitter.com/Alone1Moon/status/1594750549647237120に書いてくださっているが、

(1)元画像とDepth Mapをそれぞれ左右の画像として読み込む

(2)編集->デプスマップ->2D+デプスマップから3D作成

とする。このときデプス画像で白を手前とするにチェックを入れる。これで完成

VR180に対応した画像に変換したいときは、2枚の画像を開いた状態で、編集>全天球画像編集>エクイレクタングラー⇔平面画像変換>平面画像からエクイレクタングラー変換を選べば良いようだ


Stable Diffusion WebUIのリセット

Stable Diffusion WebUIをいじっていて、いろんな拡張機能をどんどん入れてゆくとどこかで何かおかしなエラーとかdepreciatedとか非推奨のまま使い続けているとか、いろんなメッセージがたまってくることがある。https://romptn.com/article/33721#google_vignette にやりかたが書いてあった。要するにWebUIディレクトリ配下にあるvenvディレクトリを全部削除し、そのあとでwebui-user.batを起動すれば新たにvenvを構築してくれるようだ


Blenderで.objテキスト作成

1.赤白丸のカーソルを希望の場所に移動

2.オブジェクトモードでテキスト追加->オレンジでTextと出る

3.Tab押下もしくは編集モードに入る

4.先にテキストをメモ帳で打ち、コピーしておく

5.右のaを選択し、フォントでフォルダから利用するフォントを選択する。フォントリストで右上の四つ四角を選ぶとフォントが見える。日本語なら例えばYuGothB.ttcなど、英語のスクリプトならsegoeprb.ttf、コミック系ならcomicbd.ttf, 普通ならarial.ttfなどはどうだろう

6.これでカーソル上にあててペーストすると字が入る

7.押し出すときはジオメトリで押し出しを入れる

8.サイズ変換はオブジェクトモードで拡大縮小

9.ベベルの中の丸めの深度を0.02にすると文字に丸みをつけられる。

10.とりあえずこれを.objでエクスポートするとPoserなどで使える

(先に90度回して字を立てておくと良い)


Octane renderでV4 Fingernail調整


V4 Fingernail を使う際、Transformを以下のようにせよ、とOctaneマニュアルで指示がある

UV Transform Scale X = (NailsLength * 0.065) + 1

UV Transform Translation X = NaisLength * -0.01625

もしNailLengthが1.5の際は、それぞれ値が1.095、-0.024となる

単にDiffseで色を出している場合、Specularをいじると輝くが色が薄くなるので、Anisotropy:1.0, Index of refraction :1.0のようにしてみている


Oculus SBS視聴

VR media viewerでSBSを視聴していると、人間の肌の色がなぜか濃く暗くなりがちになる。Oclane renderで試す際、Imagerの中のExposureパラメータを屋外で0.6->1.0ぐらいにするとちょうどよくなりそう。


FinePix3D 写真&Octane render結果を統合してVRで見る

これまで3Dのフォトフレームで見るためのTipsを書いてきた。

これからOculusを使うのを前提としてFinePix3Dで撮影した3D写真とOctane renderで作成した3Dコンテンツを合成して、VRを用いて3Dで見るための若干のTIpsを書いてみる

・Octane renderでもpicture sizeは最大限にする
解像度を確保するため、縮小はせず、FinePixの最大サイズをベースとする。3648 x 2736 したがってOctaneでの作成サイズも同じとする。

・Octaneは平行法(Parallel)で3D映像を作成する。左右別々に2枚作成しておく。Eye distanceは0.075(m)ぐらいに設定すると自然に見えるようだ

・FinePixで先に作成したMPOファイルは、ステレオフォトメーカで先に読み込み、一発自動修正をかけた後、左右別々のファイルにセーブしておく。

・Octaneで撮影した左右画像はステレオフォトメーカで基本修正をかけないとしていたが、背景に比べ、位置が近くなりがちで不自然となりがちであった。そこで、
— カメラの位置をターゲットから離し気味(最低数m-10m)とし、その分カメラのFocusで調整する。Focusはしばしば100mmを超えることもある。
— ステレオフォトメーカで一発調整する。ただし、これをsaveするとpng->jpgとなり背景が透明から真っ黒になってしまう。このため、最初に作成した左右のpngをこのjpgファイルにPhotoshop上で重ねて、所望のオフセットを施したpngファイルを左右別々に作成する。

・Photoshopで合成後、左右別々のファイルでjpgとして保存する。このときOctaneで作成した人物の方はPhotoshop上で自動スマート補正でかなり明るめに設定しておいた方がVR上では自然に見えるようだ。

・ステレオフォトメーカでこの2枚のファイルを読み込み、mpoファイルとして書き出す。


3Dプリンタで篆刻を作る

まだ未完成だが、実現のためのステップ。

参考としたのは、「手書きのイラストからハンコ制作。3Dプリンターで出力する」<http://indielabo.php.xdomain.jp/?p=1071>

  1. Inkscapeでスキャンした篆刻のビットマップ(bmp)をトレースし、.dxfファイルとして出力する。
    ・ファイル->インポートで、bmpファイルを読み込む。jpgは不可。
    ・パス->ビットマップをトレースで、イラストをCAD形式に変換。パラメータはいじらなくてOK. もしスキャン画像の色のため、トレースがうまくゆかない場合はphotoshopなどであらかじめ2値化しておくとよい
    ・名前を付けて保存. 保存形式は、AutoCAD DXF R14(*.dxf). チェックボックスは全て外し、単位はmm、文字エンコーディングはUTF-8に変更して保存。
  2. このdxfファイルをBlenderで可読化する目的で、一旦AutoCADを介して読み込み/保存する。
    ・AutoCAD2022を起動
    ・スタート->開く、で先ほど保存したdxfファイルを読み込む
    ・読み込めたら、一番上の名前をつけて保存シンボルをクリックして保存。形式はAutoCAD 2018 DXF(*.dxf), 出力->書き出しは選択しないこと。
  3. Blenderでインポート
    ・Blenderを立ち上げる(執筆時バージョンは2.91)
    ・先のファイルをインポート。ファイル形式はAutoCAD dxf
    ・XY平面上にスキャンした画像が黒の線分で現れる。適宜オブジェクトモード->移動で原点付近に移動させる。
  4. Blender上でエディティング
    ・オブジェクトモード:オブジェクトを右クリックで選択後、オブジェクト->変換->メッシュ を選択し変換する。
    ・編集モード:黒い丸点がつながった画像がでてくる。キーボードA押下=全選択、メッシュ->クリーンアップ->大きさ0を溶解 & 限定的溶解。これで点の数が少なくなる。
    ・編集モード:同じく メッシュ->クリーンアップ->距離でマージ、を選択。左下に結合距離があるので適当に設定すると近い点をクリーンアップしてくれる。非選択部もクリックを入れておくと良いだろう。
  5. Blender上でエディティング2
    ・4.で無事にうまくセレクトできると、あとは
    オブジェクトモード:全選択したのち、Alt-F(面作成)を行えば、面が作成できる。
    押し出し:
    編集モード:E、exclude region(押し出し、領域)で+軸に作用させれば選択エリアが押し出される。
    あとは適当なcubeを作り、押し出されたモデルをその上に載せれば、篆刻が出来上がる。
  6. 4.5でうまくゆかない場合
    実際にはAlt-Fを行っても領域が全部囲われず、Failするケースが多々ある。”面がフィルされていません”というメッセージが出てくる。そんな場合には丁寧に点と点が接続されているかをチェックする。点が密接している場合発見しにくいので4.の距離でマージをうまく使おう。距離を適宜調整すると良い。
うまくゆかない時の例。点と点が実線ではなくフェードして次の点とつながっている

こんな時には
編集モード:薄い点をクリックして選択->Shift押しながら辺の反対側の点をクリック-> 頂点/頂点から新規辺・面作成 すると2点は実線でつながる。これを根気よく繰り返す。
Tipsとして、点数が多い図形の場合には図形を分割して面を作ると良い。そのためには上と同じようにして図形の任意の2点をつなげば実質図形は分割できる。これでデバッグがやりやすくなる。
また下手すると予期していなかった面が選択されるケースもあり得る。その際には面を形成している点群を選択してDel, 何を消すのか求めてくるので面を選択すると面が消える。