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を構築してくれるようだ


ポートレート3D映像の作り方

2023現在、Fijifilm 3Dで撮影した映像を利用してOculusで視聴できる画像で今のところ満足できる作成法は以下の通り。

ターゲットのモデルはPoserで作成し、Octane renderでParallel & SBS、視差は60mm程度で作成する。特にカメラの焦点距離を40mm程度にする。pngで出力する。サイズは960 x 1280の横つながりなので1920 x 1280とする。Parallelで作成するとボディが前面に浮き出た感じになる。

一方3Dカメラの画像は左右とも3584 x 2016である。ステレオフォトメーカProを使ってこれをリサイズ &トリミングする。もしもポートレートから後ろに遠ざけたいのであれば、画面を目いっぱい切り抜けばよいので、まず縦横比を維持しつつ高さを1280として縮小し、その後に960 x 1280でトリミングすればよい。逆にポートレートに近づけたい場合には高さを1280から2016の範囲で適当にセットし、縦横比を維持して縮小し、その後に960 x 1280でトリミングすればよい。これをjpgでステレオ出力(S=SBS)する。2560 x 1280の画像が出力される。

Photoshopを用いて、3Dカメラの背景画像を読み込み、合わせてレイヤを用いてモデルのpng出力を重ねる。Tipsとしてこのpngの右上/左下に小さな四角画像を入れておくと、コピペして背景画像と重ねる際にうまくゆく。後でこれは消す。

重ねの常で、モデルのレイヤでレイヤのフリンジ除去を行った後、背景とのバランスで、明るさやコントラストを調整してゆく。背景をぼかしたり、他のエフェクトをつけることも可能だ。

出来上がった3D SBSファイルは、jpgで保存する。オプションとして、再度ステレオフォトメーカProを使ってロゴやテキストを入れることもできる。Parallelを使ってボディを前面に出す場合には文字の深さは+40ピクセル程度、ロゴも30ピクセル程度にした方がよい。

これでOculusでも他のVRででも素敵な立体画像視聴が可能となる。


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のようにしてみている


StereoPhotoMakerで深度調整

SBSを読み込ませたのち、調整->簡単位置調整を選択する。

水平選択でとして、
左 ++ 右 — => 画像が前面に押し出される
左– 右++ => 画像が後方に引っ込む

Octaneで立体SBSができたら、これで調整し、PNGで書き出したのち、3D写真と

合成するとよい

追記:一発調整を行うと、例えばParallelで前面に画像を出そうとしても真ん中あたりに平均化されてしまうようだ。使わないほうが無難なようだ