ControlNet

Last-modified: 2023-05-06 (土) 10:13:10

ControlNetとは

従来のi2iは

  • 元画像の「色」を強く拾ってた
  • だから線画に対して着色する能力が弱かった
    雑でもいいから人間があらかじめ多少塗ってあげて、色の参考にさせる必要があった
  • ポーズや構図を維持しつつ別衣装を着させようとしても、元画像の色が強く残ってた

一方、拡張機能sd-webui-controlnetを利用すると

  • 線画に対して超強力に着色できる
  • 画像から線画を抽出することもできる
    これを利用して 画像→線画→再着色 で全く別の色にもできる
  • 画像からポーズ(ボーン、棒人間)だけを抽出して別人や別衣装を適用することもできる
もっと見る

よくある誤解

なるほどimg2imgの上位互換か

i2iでよくね?

違うんだよかーちゃん!
ガンキャノンとガンタンク
侍と忍者を比べるようなもんだぞ
色情報を拾うか拾わないかは用途次第で長所にも短所にもなる

1111上で利用可能な拡張機能版としてはもう一つ

https://github.com/ThereforeGames/unprompted

通称unpromptedもあるのだが、利用者の数と出回っている情報量の都合上、一旦忘れていい。

何かしらの特徴や優位点もあるかもしれないので、もし奇特な人柱あきがいたら情報提供お待ちしております。

最低動作環境

  • VRAM 4GBでも動作報告例あるよ。
  • 1111本体を最新版にしておくといいよ
    (あんまり古い1111だとControlNetが動作しない恐れがある)。
  • 某氏製の通称ワンタッチ版1111を利用している人は要注意。
    某氏のページで「追加パッチ_prettytable.bat」が配布されているので、まずは確認を。
    ワンタッチ版での詳しい手順

    ワンタッチ版での詳しい手順

    81 無念 Name としあき 23/02/16(木)00:23:26 ID:rEoZHy7U No.1067284380 del そうだねx8

    ワンタッチでControlNetインストール、実施までは

    ・追加パッチ_prettytable.bat をDL

    ・スタート_webui-user,dat と同じ所に配置

    ・ダブルクリック

    ・続行するには何かキーを押してください 消える

    (以後は通常のAutomatic1111 と同じのはず)

    ・スタート_webui-user,dat 起動

    ・拡張機能 URLからインストール

    拡張機能のリポジトリのURL に

    https://github.com/Mikubill/sd-webui-controlnet

    を入力してインストール (設定適応 UIの再読み込み必要かも)

    txt2imgの下に ControlNetがあれば成功

    拡張機能=Extensions
    あとは↓の導入手順の3、4、5を行えばたぶんOK

導入手順

  1. 拡張機能sd-webui-controlnetを導入する
    この部分は一般的な拡張機能の導入方法と同様
    1111に拡張機能を入れるのは今回が初めて…という傾奇者向けの詳しい説明

    1111に拡張機能を入れるのは今回が初めて…という傾奇者向けの詳しい説明

    1. 1111を起動後にExtensionsのタブを開く
    2. Install from URLのタブを開く
    3. 上の欄に https://github.com/Mikubill/sd-webui-controlnet を入力して Install ボタンを押す
      数秒立つとInstallボタンの下にDL完了を知らせるメッセージが出る
    4. Installedのタブを開く
    5.  Apply and restart UI を押す
  2. 1111(コマンドプロンプトとブラウザページ両方)を一旦終了
  3. https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main
    control~と名前が付いた723MBモデルが8つあるのでDLする(合計5.4GB)
    「火遁の術」「水遁の術」みたいなもので、それぞれ効果の効かせ方と得意な用途が異なるから全部落としとけ
  • ControlNet1.1対応はこっちから→https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
    「t2i~とか名前がついてるやつは要らないの…?」

    「t2i~とか名前がついてるやつは要らないの…?」
    それらは「T2I-Adapter」っていう、テスト中の機能のためのモデル。
    だから今のところ必要ない。まあファイルサイズ小さいし、DLしといても害にはならないけど…
    でも現時点では情報不足で、どんな用途に向いてるのかあんまよく分かってないよ

  1. \extensions\sd-webui-controlnet\models に突っ込む
  2. 1111を起動するとtxt2imgやimg2imgの左下
    Scripitの上に[ControlNet ◀]のパネルが追加されている

動作テストという名のチュートリアル

(例題1) 棒人間→画像 (none + openpose)

棒人間
この棒人間のポーズを、生成画像に反映させてみよう。

もっと見る
  1. まずは上の棒人間画像を保存
  2. txt2imgの通常の範囲の設定を行う
    モデルお好みで。ただしSD2.xベースのモデルやWD1.5には未対応。
    良い結果を得られなかったら他のモデルで試してみよう
    プロンプト1girl, solo, smile, thumbs up, BREAK, red and yellow sunburst background,
    ネガティブ(worst quality:1.4), (low quality:1.4), (monochrome:1.1),
    画像サイズ512x512
    ステップ数15 (動作確認なので時間短縮のために)
    枚数合計6 (多少のガチャ要素があるので)
  3. txt2imgの左下、scriptの上辺りに [ControlNet ◀] のパネルがある。
    クリックして開き、棒人間画像をドラッグ&ドロップ
  4. ControlNetのパラメータを設定していく
    Enable☑ONControlNetの電源スイッチ的なもの。
    ControlNetを利用する際は当然ONにする。逆に普段はOFFにしとこう
    Preprocessornone前処理の内容。今回はもう棒人間を用意してあるから前処理は不要。
    なのでnoneにする。
    としあきが触ってない限りデフォルトでnoneだけどね
    Modelcontrol_openpose-fp16処理内容の種類。今回は棒人間用のもの
  5.  Generate だ!

元画像にあった棒人間のポーズや構図が反映されていれば成功だよ

困った時は

  • 効果が全く出ない(ポーズや構図が全く反映されてなさそう)場合は、まず1111を最新版に更新してみてね

(例題2) 画像→線画→画像 (canny + canny)

黒髪ポニテ
このポニテ少女の黒髪を、金髪に塗り替えてみよう。

もっと見る
img2imgで金髪にしたもの

左の画像はimg2img(ノイズ除去0.75)を使って金髪にしたもの。
i2iは元画像の色に従うので、暗い黒髪から明るい金髪への塗り直しとなると、ノイズ除去の値をこれくらい高くする必要がある。
そうなると元画像からの乖離も大きくなってしまう…というのは周知の通り。
人間がある程度金髪に塗ってから髪だけInpaintするとか、フォトショで範囲を指定しつつ色置換する等の手もあるけど…
今回はControlNetのcannyを試してみよっか。

  1. 黒髪ポニテの画像を保存
  2. txt2imgの普通の部分の設定
    モデルお好みで。以下略
    プロンプト1girl, solo, upper body, smile, blonde hair, pony tail,
    ネガティブ(worst quality:1.4), (low quality:1.4), (monochrome:1.1),
    画像サイズ512x512
    ステップ数15
    枚数合計6
  3. [ControlNet ◀] のパネルを開き、黒髪ポニテの画像を突っ込む
  4. ControlNetのパラメータを設定していく
    Enable☑ONそらそうよ
    Preprocessorcanny前処理。これを利用して画像から線画にしてもらう
    Modelcontrol_canny-fp16線画用のモデル
  5.  Generate だ!

結果を見ると、元画像の線がかなり維持されているはずだ(設定次第で調節できる)。
しかし元画像の色がほとんど失われているので「必ずしもi2iの上位互換とは言えない」ことも分かるだろう。

(例題2.5) 編集範囲を限定する(img2imgタブからの利用)

黒髪ポニテ
例題2では線画を維持しつつ、金髪への塗り直しができた。でも背景および衣装の配色までも、元画像とは大きく異なる結果になってしまったよね。
そこで今回はtxt2imgタブではなく、img2imgタブからControlNetを利用してみよう。
InpaintやInpaint uploadを使うと、編集範囲の限定が可能になる。これにより、髪だけを金色に塗り直しつつ、それ以外の部分を保持することができる。
前回同様にControlNetのcannyを用いるから、髪の線画ももちろん維持できるぞ。

もっと見る

さて今回使うimg2imgタブだけれど、編集範囲の指定はInpaintとInpaint uploadのどちらでも可能。
前者は手動でブラシ塗りしてマスクを作成。後者は(あらかじめ画像編集ソフトなどで作成したグレースケールの)画像ファイルを読み込んでマスクとして利用する…という違いがある。
例えば瞳やリボンのような狭い範囲なら、手塗りのマスクでも十分だから、Inpaintの方が手っ取り早いんだけど…
今回は黒髪を金髪に塗り直したい。範囲が広い上にかなり複雑な形状なので、筆者が画像編集ソフトを使ってマスク画像を作成して用意した。これをInpaint uploadで読み込ませて利用しよう。

  1. img2img(Inpaint upload)の設定
    モデルお好みで。以下略
    プロンプト1girl, solo, upper body, smile, blonde hair, pony tail,
    ネガティブ(worst quality:1.4), (low quality:1.4), (monochrome:1.1),
    画像(上段)黒髪ポニテ
    画像(下段)髪部分のマスク
    Mask blur1
    画像サイズ512x512
    ステップ数15
    枚数合計6
    Denoising strength0.8
    ここで2つ注意点がある。
    Mask blurは、マスクの境界線を指定ピクセル分だけ「ぼかす」設定だ。マスク箇所とそれ以外を上手く馴染ませる効果を狙って調整する。デフォルト値は4。大抵の場合は4~10くらいでいいだろう。ただし今回は髪のマスクにとても細い部分も含まれているので、0~2くらいの小さめの値が望ましいように思う(個人の感想です)。
    Denoising strengthは、元画像にどの程度の変化を加えるかの設定。今回は黒髪から金髪に変化させたいのだが、0.6や0.7程度ではせいぜい茶髪くらいまでしか変化しない。という理由から0.8にしてある。1.0みたいな大胆な値でも一応いけるっぽい。
  2. [ControlNet ◀] のパネルを開き、黒髪ポニテの画像を突っ込む
  3. ControlNetのパラメータを設定していく。内容は例題2とまるっきり同じ
    Enable☑ONそらそうよ
    Preprocessorcanny前処理。これを利用して画像から線画にしてもらう
    Modelcontrol_canny-fp16線画用のモデル
  4.  Generate だ!

使い方

パラメータ

📝既存の画像ではなく自分の手描きで始める場合に利用するボタン。手書き用のキャンバスの設定パネルを表示する
New Canvas Width
New Canvas Height
README.mdのTipsにある通り。
手描き用のキャンバスを新規作成する際の幅と高さ。
画像ファイルを読み込ませて利用する場合には影響しない
Create New Canvas空(白背景)のキャンバスを作成する
📷Webカメラを有効にする
Webカメラの画像を左右反転させる
画像を読み込ませた状態でこのボタンを押すと、画像の幅と高さが、txt2imgやimg2imgのwidthとheightにコピペされる
EnableControlNet自体の有効/無効化
Low VRAMグラボのVRAMが少ない、あるいは大きな画像を出したいのにVRAMが不足するという場合にONにする。
デメリットとして画像の生成速度が遅くなる。一度に口に入り切らないから少しずつ齧る…みたいなイメージ
Pixel PerfectONにすると、Preprocessor Resolutionの値が自動的に調節されるようになる。なのでPreprocessor Resolutionの項目は非表示になる
Allow PreviewONにすると、Preporcessor Previewの表示枠と、💥ボタンが出現する
💥Preporcessor Previewの表示を更新する
Control WeightREADME.md参照
Starting Control Step
Ending Control Step
Control Mode (Guess Mode)
・Balancedバランス型
・My prompt is more importantプロンプト重視
・ControlNet is more important元画像重視(Guess Mode)
Resize Mode拡大縮小の種類
・Just Resizeアスペクト比(縦横比)を維持せずに拡大・縮小する
・Crop and Resize
・Resize and Fill
[Loopback] Automatically send generated images to this ControlNet unit

他に、Preprocessorをnone以外に切り替えることで出現するパラメータもある。
それらを利用すると、元画像から中間画像を変換・抽出する前処理の解像度や加減を調節できる。
(例えばcannyで線画を抽出する強弱など)

プリプロセッサの種類と用途

プリプロセッサ名用途
none「前処理いらないよ」という指示。
手持ちの線画や棒人間画像から開始する時はこれ
canny線画抽出。二次絵の書き換えに全力出せる
depth深度情報付き。主に実写を使ってやるのに使う
depth_leres
hed輪郭抽出。cannyより大雑把で今はまだ使い道が微妙
mlsd直線抽出。家具とか家とかのまっすぐなやつを拾う用
normal_map法線情報。3D人形とかをベースにするときにつよい
openpose棒人形。みんな知ってるよね
openpose_hand棒人形+手
clip_vison
color
pidinet輪郭抽出。hedと何が違うのかよく分からん
scribbleラフ絵をなんとかする。マウスで丸書いてちょんで顔になる
fake_scribble入力絵をscribble化。使い道が分からん
segmentation入力画像を領域分けする。モデルはcontrolnet_seg。実写映像で構図を決めて差し替えに使える。二次絵だとイマイチ読んでくれない。
binaryscribbleの閾値付きバージョン。グレースケール系の線画に着色させたい場合とかに使う。
閾値を0 or 255に設定すると、大津の手法使って自動でいい感じの閾値が設定される。

用途から考えるプリプロセッサ
・簡単にポーズさせたいならopenpose
・塗り絵や色変え表情変えならcanny
・3Dモデルを使ってポーズさせてるならnormal_map
・構図を維持したまま服装や背景を変えたい場合はsegmentation
・線画に色を付けたいならbinary(ModelはScribbleを指定)

segmentationの実例
適当に生成

これを服装をゴスロリにしてお城に移動させると
こうできる

服装と背景のプロンプトを書き換え
  • PreprocessorとModelは基本的にセット、ペアとして考えよう。
    例えばPreprocessorをcannyにするなら、モデルにはcontrol_canny-fp16を選ぶ。
  • 前処理(postprocess)をすっ飛ばしたい場合、つまり手元にある線画や棒人間の画像を読み込ませて実行する場合は、preprocessorをnoneにして、Modelだけを選択する。

メモや注意点

  • モデルとの相性が存在する。というかSD2.x系列のモデル…具体的にはSD2.1やWD1.5は、モデルの作りが大きく異なるため利用できない。
  • 元画像の影響を強く受けすぎてしまう場合は、Weightの値を思い切って0.5や0.3などに下げてみる。
  • 線画や棒人間の画像を保存する方法はいくつかある。
    • 1111画面右のギャラリーから手動で保存する。
    • C:\Users\(ユーザー名)\AppData\Local\Temp を覗く。ショトカを作っておくのも手。
      ただしこのフォルダは定期的に掃除すべき場所の一つなので、Windowsか何かにいつ掃除されてもおかしくない。
    • Settings → ControlNet → Allow detectmap auto saving
      をONにして、ページ上部にある Apply setting を押す。
      保存場所はDirectory for detected maps auto savingで指定する。↓の画像参照
      detectmap_auto_saving.png

Multi-ControlNet

  • なにそれ?
  • どうやって有効化するの?

https://github.com/Mikubill/sd-webui-controlnet#multi-controlnet--joint-conditioning-experimental
1677153275141.png

m2m

movie2movie。動画ファイルを読み込ませて、それをベースにAI絵の動画ファイル(.gif形式)を作成する機能。
今のところフレーム間の連続性を補正する機能は無い。単純にバッチ処理で次々とControlNetに送って、最後にgifファイルにまとめている。
seedを任意の値で固定すると、seed=-1 よりはだいぶ良好な結果を得られる(チラつき低減)。
img2imgタブからも利用できるが、ベースとして指定できる画像は1枚だけ。将来的には1フレームずつ自動で送って元絵にできるかもしれない。

有効化する方法

  1. まずMikubill版ControlNet拡張機能を最新版にしておく
     誘導→Extensions#拡張機能の更新方法
  2. Settings → ControlNet → Allow other script to control this extension
    をONにして、ページ上部にある Apply setting を押す

注意

動画って基本的にすげー枚数を生成することになる
30fps 10秒の動画ですら300枚だぞ
だから最初は2~3秒くらいの動画にしとけ
あとtxt2imgのWidthとHeightも小さめのサイズにしとけ
16:9なら320x180とか640x360とかね

使用方法

使用方法

  1. txt2imgのControlNetのパネルを開き、いつも通りEnableをONにする。
    画像は読み込ませなくていい。
    PreprocessorとModelの指定は必要。
    普通の実写動画だったらopenpose+openposeとか、depth+depthとか?
    blenderとかで用意した棒人間動画だったらnone+openposeとか?
  2. Scriptのプルダウンリストからcontrolnet m2mを選択する。
    すると[ControlNet-M2M ◀]のパネルが出現する。
  3. ControlNet-M2Mのパネルを開き、動画ファイルを読み込ませる。
    対応しているファイル形式はmp4、avi、webm等。
    クリックすればWindowsのエクスプローラーが起動するから、詳細はそこで確認してね。
  4. Durationのスライダーの作用はよくわかってない…
  5. いつも通り Generate で生成開始

動画内の全フレームに対して1枚ずつ自動的にControlNet処理が施されていく
それが終わるととりあえず1111ちゃんから完了通知が出るけど
実際にはその後animation.gifの作成まで自動で行われる
この時に同名のファイル名が既に存在していると自動的に上書きされてしまうので注意してほしい

gifファイルはファイルサイズが大きい
息を吸って吐くようにスレへの添付ファイルサイズ上限(8MB)を越えてくる
なのでスレに貼るためには圧縮品質を調整しつつmp4かwebm辺りの動画形式に変換することになるだろう

よくある質問

棒人間の対応部位がよくわからない

こちらの記事内にある画像がわかりやすいのでオススメ
機械の目が見たセカイ -コンピュータビジョンがつくるミライ(47) 人物の姿勢推定(1) – OpenPose | TECH+(テックプラス)
(画像の転載はしません)

バッチ処理機能はありませんか?

  • CUIでならできるのかも? つまりコマンドプロンプトとか.batファイルを作成して~みたいな話。
  • GUIとしては、現時点ではたぶんありません。とはいえ筆者が知らないだけで、それを可能にするスクリプトや拡張機能が既に存在している可能性はあります。
  • とりあえずControlNet拡張機能側には、その準備が実装済み。
    Settings → ControlNet → Allow other script to control this extension
    のチェックボックスがそれ。これをONにすると、他のスクリプトや拡張機能からControlNet拡張機能を制御することが可能になる。
    • 例えばm2m機能は動画ファイルを複数枚の画像にバラした後、バッチ処理でControlNetに送って、ひたすら連続で処理を行わせているスクリプトだ。
       誘導→m2m

俺のControlNetには○○の機能が見当たらないんだけど…

  • ControlNetの拡張機能を最新版に更新せい
  • ControlNetの拡張機能を最新版に更新せい

更新方法

2023/4/25現在、Mikubill氏が精力的にアプデを続けており、機能追加や不具合修正が行われている。
小まめに最新版に更新しよう。
使用前に最新版に更新しよう。質問前にも最新版に更新しよう。
更新の方法は一般的な拡張機能と同様なので、Extensions#拡張機能の更新方法のページを参照のこと。

便利な物

(拡張機能) OpenPose Editor

OpenPose Editor
https://github.com/fkunn1326/openpose-editor.git
1111上で2Dの棒人間から画像を作成できる拡張機能。
人数の追加や、ControlNet拡張機能へ画像を送ることも可能。
https://twitter.com/fkunn1326/status/1627173198751211520

(拡張機能) 3D Openpose Editor

3D Openpose Editor
https://github.com/nonnonstop/sd-webui-3d-open-pose-editor
1111上で3Dの棒人間から画像を作成できる拡張機能。
Openposeだけでなく手足のDepth/Normal/Cannyマップの出力にも対応。

(拡張機能) Posex

Posex
https://github.com/hnmr293/posex
1111上で3Dの棒人間から画像を作成できる拡張機能。

Openpose/Depth/Canny/Landmark用Blenderモデル

Blender
Blenderで3D人形を操作して画像を作成できる全部入りモデル。

ブラウザ上でデッサン人形を動かしてスクショ撮れるwebサイト

さかなのポーズ

176 無念 Name としあき 23/02/14(火)21:22:20 ID:73xlNJSY No.1066899251 del そうだねx2

https://webapp.magicposer.com/

このサイトでポーズ作ったらスクショしてwebuiにコピペして

さかなー

(としあき製) 棒人間ツール

open_poser_2d

238 無念 Name としあき 23/02/23(木)00:43:57 ID:FacyQ2ik No.1069701497 del そうだねx7

>この棒人間さん作るのって何かのツールで出力するんです?
色々あるみたいだけど
この機会にちょっとだけアプデしたのを上げる
https://thup.work/miniup/?mode=dl&id=14203

  • 棒人間のポーズをマウスで編集して画像保存できる簡易ツール
    棒人間の数を追加することも可能
  • exeファイルなのでDL時にブラウザに警告されたり、初回起動時Windowsに警告される場合がある
    (おめー覚悟できてんのか? セキュリティリスクを承知の上でDL/実行しようとしてんのか? ってこと)
  • 使用前に同梱のreadmeをよく読んでね
履歴
open_poser_2d

4 無念 Name としあき 23/02/20(月)16:33:29 ID:JY/WkoZk No.1068872128 del そうだねx15
たておつシンプル棒人間ツール
ポーズデータが*.jsonだと開くまでどんなポーズかわからないので
pngにポーズを埋め込んで保存/読み込みできるようにしました
他はウィンドウ透明化ON/OFFの実装等々redme参照
https://thup.work/miniup/?mode=dl&id=14167

open_poser_2d

9 無念 Name としあき 23/02/19(日)09:34:02 ID:3FNBM1TA No.1068371736 del そうだねx11
たておつ
昨晩上げたシンプル棒人間ツール
なんか殺風景だなと思ったら間違ってメニュー消してたので上げ直し
https://thup.work/miniup/?mode=dl&id=14158

324 無念 Name としあき 23/02/18(土)20:42:03 ID:Lc4yjcR. No.1068200555 del そうだねx8
以前上げたシンプルな棒人間ツールの関節の丸が大きいのが気になったのでアプデ
他地味に色々操作追加
改造再配布自由

(としあき製) セグメント画像作成ツール

※あぷろだ寿命によるリンク切れ

1677156849280.png

507 無念 Name としあき 23/02/23(木)21:54:09 ID:gENFNIAM No.1070010214 del そうだねx9
https://dec.2chan.net/up2/src/fu1950923.zip
としちゃんがくれたseg用画像描画ツールのgui改造してみたよ
chatgptちゃんに聞きながらペンサイズ変更GUIと現在選択色と名表示を入れてみた
あと画像読み込みしたら勝手にウインドウサイズ変えるとか(768pxまで)
公開してくれた前二人のとしあきに感謝

履歴
ペンタブ対応

276 無念 Name としあき 23/02/18(土)14:32:47 ID:rd4xlw9M No.1068074769 del そうだねx8

としがこないだseg用の画像を書くツールの改造

自由に改造していいとか言ってた気がするのでペンタブに対応させた

ペンタブ検出の関係で必要なライブラリ増えたけどれあどめつけたから導入は簡単なはず

説明に書き忘れたけどctrl+altキーを押しながら左右移動でペン先サイズ変更できる

 

もっと使いやすいUIにやろうと思えばできる気はするけど

GUI組むの本当に苦手なので誰か続きは任せた

セグメント画像の作成例

7 無念 Name としあき 23/02/17(金)16:43:08 ID:VCEU5gRM No.1067769956 del そうだねx20

GPTちゃんにいろいろ聞いてセグメントの画像を描けるような簡易ペイント的なの作ったよ

一応ちゃんとセグメントの指定どおりに描いてくれたのは確認

改造配布などご自由に

(としあき製) MMD版ポーズ人形

fu1959929.zip あぷろだ寿命によるリンク切れ

ライン表示とセグメンテーション表示

36無念Nameとしあき23/02/18(土)22:51:29 ID:QBc.o.MoNo.1068256309

MMDポーズ人形のスタンダードの方に材質モーフで輪郭線だけにするのと

セグメンテーションのpersonの色にする機能追加

MMMだと静止画出力時に背景透過できるんで合成とか便利かも

履歴
デプスMME適用時

124 無念 Name としあき 23/02/18(土)12:48:54 ID:fLqgB9d6 No.1068044809 del そうだねx4

デプスマップのMME配布してくれてる方がいたのでポーズ人形更新

深度は手前の白から最奥の黒の範囲をスライダーで適切に設定しないと綺麗なグラデが出ないので注意

ノーマルタイプと法線タイプ

30 無念 Name としあき 23/02/18(土)12:05:18 ID:fLqgB9d6 No.1068032007 del そうだねx12

VRoidベースにしたMMDのポーズ人形作った

普通の奴と法線マップに対応してる物2つあって

法線は背景色を(255,128,128)にして出力すればプリプロセッサ通さずに法線マップとして使える