2024年2月23日金曜日

Stable Diffusion WebUI: ADetailerでの手の修正を考察する

Stable Diffusion WebUIのプロンプトを探る話です。これは英語の話でもあるのです。
最初に今回覚えた表現
metacarpal: (^メ゙タカーパル。^はアクセント位置) :中手骨(ちゅうしこつ)、拳を握ったときに指の付け根の出っ張りの骨。
slender hand:スラッとした手
さて本題。Stable Diffusionで人物の絵を生成させたとき、体のディテールが乱れることはよくあります。特に難しいのは手、足の指。

全体的に気に入った絵が出来たなと思っても、指がありえないことになっていて残念というとはよくよくありますね。

img2imgのinpaintの機能で修正しようとしてもあまり上手く行かず、Controlnetのopenpose, depthなどの機能を使う手もあるのですが、たまたま生成された構図やポーズをうまく活かしたいとするといろいろと準備が必要です。また、inpaintは、補正領域を指定するマスクを描くのが結構大変です。

今回はADetailerという拡張機能を使います。これは、描画後に顔や手などの領域を自動で抽出し、inpaintを実行してくれるというなかなかお気楽なツールです。インストールはあちこちで紹介されているのでここでは省略します。

今回のお題。こちらの絵の左下の手となります。
なかなかいい表情とお背中が生成されているのですが、左下の手が少しおかしなことになっています。
薬指と小指が影に潰されてしまっています。
ADetailerを有効にすると、一旦画像を生成後に、下記のように領域抽出をしてくれて、そこにinpaintを実行してくれます。修正したい対象が手なのか顔なのかはADetailer用のモデルを選択して指定します。

最初は以下の設定ですすめていきました。
ADetailer model: hand_yolov8n.pt,
ADetailer mask blur: 4, 
ADetailer denoising strength: 0.4, 
他のパラメータはデフォルト

はじめ:
ADetailer用のプロンプト:puts hands on deck, (手をデッキの上のに置いている)、だけを指定

なんとなくうまく行っているようも見えますが、これは左手なので手前が小指。小指と薬指の間が開きすぎている気がします。薬指は人差し指として書かれている気がします。あと、女性にしては手がゴツい。

2回目:
プロンプト:"slender hand, pinky finger, (ring finger) puts her hands on deck", 
ネガティブプロンプト:"metacarpal, (shadow:1.2)"

女性をイメージしてslender hand=スラっとした手とさらにring finger=薬指をカッコで強調しながら入れました。また拳の感じを取るためにネガティブプロンプトにmetacarpal(中手骨)と影(shadow)とを入れてみました。

ring fingerのringに引きづられて指輪らしきものが描かれました。でも、薬指の部分がない。あと少し画質が低いことも気になりました。

3回目:
プロンプト: masterpiece, best quality, absurdres, highest resolution,left hand, slender hand, pinky finger, puts her hands on deck, back of the hand, thumb, wood deck 

ネガティブプロンプト: metacarpal, (shadow:1.2), darkness, gap between fingers, (ugly face:0.8),cross-eyed,sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy, facing away,extra fingers, fewer digits, extra limbs,extra legs, malformed limbs, fused fingers, too many fingers, long neck, buildings, birds, wooden wall

書き込みが足りないのかと考え、txt2img本体のプロンプトからの品質に関するプロンプトと、ネガティブプロンプトを入れてみました。左手であることを強調するためにleft handも入れました。ネガティブプロンプトは手の変な部分を解消し薬指を生やす効果を狙っています(アデランスかよ!)

うーん、手の絵柄の品質は上がったが、薬指が生えない。

4回目:(実際は数十の試行が実施されています)
どうにもうまく行かないので、パラメータをいじることにしました。
ADetailer denoising strength: 0.79
ADetailer inpaint only masked: True,(ここをTrueにするには、チェックを入れる)
ADetailer inpaint padding: 84, 

denoising strengthは元の絵をどれだけ変更するかに関するパラメータです。これを結構強めにしました(デフォルトは0.4ぐらい)。すると、

のように、影が消えて、手を侵食するようにウッドデッキの盛り上がりが生成されました。手が上書きされるほど変更がかけられるということは、薬指も生やせるのではないかと考えました。denoising strength を中心にパラメータの調整を試みました。

5回目:
プロンプト: masterpiece, best quality, absurdres, highest resolution,left hand, slender hand, pinky finger, puts her hands on deck, back of the hand, thumb, wood deck 

ネガティブプロンプト: metacarpal, (shadow:1.2), darkness, gap between fingers, (ugly face:0.8),cross-eyed,sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy, facing away,extra fingers, fewer digits, extra limbs,extra legs, malformed limbs, fused fingers, too many fingers, long neck, buildings, birds, wooden wall

ADetailer mask blur: 8, 
ADetailer denoising strength: 0.58,
ADetailer inpaint only masked: True, (ここをTrueにするには、チェックを入れる)
ADetailer inpaint padding: 84
ADetailer use separate CFG scale: True,(ここをTrueにするには、チェックを入れる)
ADetailer CFG scale: 8.5

手が壊れない程度のdenoising strengthを探り、おおよそ満足できる結果になりました。
投稿などするにはUpscaleをする方多いと思いますが、ADetailerはHiresをかけたあとに実行されるので、大きいサイズ用の設定はまた少し探さないといけないと思います。

今回のまとめ:ADetailerのコツ1
  • 絵柄のクオリティを上げるために、txt2img本体のプロンプトで与えた品質に関するテキストも、ADetailerのプロンプトに与える。
  • 大胆に修正をかけるためは、ADetailer denoising strengthの値を0.5以上の値を使う
  • (この時、ADetailer inpaint only masked:にチェックを入れ、 上記の絵の場合(全体540x540)でADetailer inpaint paddingの値を 84px とデフォルトよりもだいぶ大きな値とした。)
おそらく上記のノウハウはimg2imgやControlNetのinpaintでも参考になるのではと思いました。




2024年2月18日日曜日

Stable Diffusion 画風をコントロールの対訳

ベクターアート vector art 厚塗り impasto 水彩画 watercolor 厚塗りのペイントthick paint 線画line art 油絵oil painting ガッシュ gouache パステル pastel インク画 ink drawing キアロスクーロ(明暗法)chiaroscuro ピクセルアート pixel art フラットデザインflat design コンター画(輪郭画)contour drawing スケッチsketch シルエットsilhouette デジタルペインティングdigital painting ローポリゴンlow poly3d モデル3d model アニメ風anime style マンガ風manga style コミック風comic style ポップアートpop art リアル調 realistic フォトリアリスティックphotorealistic

2024年1月2日火曜日

Stable Diffusionでポーズを生成するための対訳集2

対訳集その2です。その1は前のポストをご覧ください。今回はちょっとエッチぃポーズを取らせるたこともあって、パンツルックメインです。
日本語         英語
足を投げ出す
throws up her legs,
逆立ちをする
does headstand



球を投げる
throwing the ball
走っている
running


振り返るlook back

腕を左右に伸ばすExtend arms to the left and right
M字開脚spreads out her legs


四つん這いを後ろから
back view, goes down on all four



片目が髪に隠れている
hair over one eye
(clip skip=2にしないと出ないかも)

後ろ姿を見せる
show her back
CFGscale = 9, clip skip=1
後ろ姿
show her back body, walk

seeds 3476216634, CFG=9,
walkを入れると単に立つだけでなく、動きが出ます。
腰に手を置く
hands on hips















hipも複数形
right hand on hip とすると片手だけ。



複数人、集合写真
group photo

顔の崩れを直すために、Hires. fix をかけています(4k 4x-UltraSharp, Denoising strength 0.52)
プロンプトからopening wide eye,smilingなど一人を
対象としているワードも抜いています

プロンプト
制服のとき
masterpiece, best quality,  absurdres, highest resolution, beautiful detailed face, whole body, chromatic aberration, Raw photo, Photo realistic, sharp focus, opening wide eye, 16yo cute japanese girl, school uniform, smiling, in park, 

ジーンズスタイルのとき
masterpiece, best quality, absurdres, highest resolution, beautiful detailed face, whole body, chromatic aberration, Raw photo, Photo realistic, sharp focus, opening wide eye, 16yo cute japanese girl, jeans style, smiling, in park, angle from feet

ネガティブプロンプト
verybadimagenegative_v1.3, EasyNegative, ng_deepnegative_v1_75t, badhandv4, (ugly face:0.8),cross-eyed,sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy, facing away, tilted head, {Multiple people}, lowres, bad anatomy, bad hands, cropped, worstquality, low quality, normal quality, jpegartifacts, signature, watermark, username, blurry, bad feet, cropped, poorly drawn hands, poorly drawn face, mutation, deformed, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, extra fingers, fewer digits, extra limbs, extra arms,extra legs, malformed limbs, fused fingers, too many fingers, long neck, cross-eyed,mutated hands,  bad body, bad proportions, gross proportions, text, error, missing fingers, missing arms, missing legs, extra digit, extra arms, extra leg, extra foot, (repeating hair)

使用モデル
breakdomainrealistic_R2333.safetensors [4c95cba650]

CFG=7から11
Clip Skip=1 or 2

2023年12月24日日曜日

Stable Diffusion でポーズを生成するための対訳集

ちょっとお遊びでStable Diffusionで好みのポーズを生成するために、英語の表現をしらべてみました。
体育座りの英語の言い方は知らなかった。

画像を生成するためのモデル類の情報は末尾に。
日本語英語
立っているstanding

横たわっているlies down on

仰向けになるlie on her back

背伸びするStretch out with her arms up

両手を上に突き上げて背伸をするthrows her arms up and stretches her back.

彼女は四つん這いになる    
gets on all fours.
goes down on all fours.
腕を組むfolds her arms.

祈るように手を組む          folds her hands in prayer.
体育座りをしているSitting on the floor holding her knees

踊るdancing

右足をけり上げる
kicks her right leg up.


(kicks her legs up.だとちょっといやらしい恰好になってしまう)
後ろ手を組むcrosses her hands behind her back.

うまく生成できなかったもの(多分、学習データにあまりない)
手を前に伸ばす       reaches forward with her hands.
彼女は右腕を上に伸ばし、左手は右腕の肘に手をかけ背伸びする She stretches her right arm upwards, places her left hand on the elbow of her right arm, and stands tall.

なお、webuiで以下のような設定で処理しました。

基本プロンプト
super top quality, absurdres, highest resolution, whole body, chromatic aberration, Raw photo, Photo realistic, sharp focus, opening wide eye, 16yo cute japanese girl, school uniform, smiling, in park,
(この後に上記の例文を入れる)

ネガティブプロンプト
verybadimagenegative_v1.3, EasyNegative, ng_deepnegative_v1_75t, badhandv4, (ugly face:0.8),cross-eyed,sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy, facing away, tilted head, {Multiple people}, lowres, bad anatomy, bad hands, cropped, worstquality, low quality, normal quality, jpegartifacts, signature, watermark, username, blurry, bad feet, cropped, poorly drawn hands, poorly drawn face, mutation, deformed, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, extra fingers, fewer digits, extra limbs, extra arms,extra legs, malformed limbs, fused fingers, too many fingers, long neck, cross-eyed,mutated hands,  bad body, bad proportions, gross proportions, text, error, missing fingers, missing arms, missing legs, extra digit, extra arms, extra leg, extra foot, (repeating hair)

モデル
breakdomainrealistic_R2333.safetensors 

VAE
vae-ft-mse-840000-ema-pruned.ckpt

CLIP SKIP 1~2

CFGは20~30で顔が整うまで調整しています。

ネガティブプロンプトの冒頭にあるEMBEDを使っています。




seedsは残していません。

2023年10月15日日曜日

convicted: 有罪判決を受けた
acquitted: 無罪判決を言い渡された
blunt: 鈍い、尖っていない、切れ味の悪い

From ABC News

2023年10月1日日曜日

disentangling

disentangling: もつれを解く
conflate: 合成する
on another : お互いに
diverse: 多様な
wherein :どの点で 
ablaptive: 奪格・除去される傾向がある様
the Pareto-frontier: 多目的最適化における、パレート効率的なソリューション(理想的な解にできるだけ近く、目的関数同士のバランスの異なる解)のセット
overwhelming: 圧倒する
comprise: 成る、構成する(他動詞)
akin to : と同種で、類似して
conjecture:  推測する 
MoD: Mixture of Denoiser
dedicated: ひたむきな
sentinel:  見張り、監視員、歩哨
diverse: 多様な
delve: 徹底的に調べる、掘り下げて調査する 
pillar: 柱 pillar of modern NLP
permutation: 並べ替え、加算、変形、再配列
cumbersomeness : 煩わしさ 
inductive: 誘導的、機能的  inductive bias point of view
concurrently: 同時に
conversely: 逆に、反対に
distinct: 明確な、はっきりとした
orthogonal: 直行した、直行の
recurring : 繰り返す

2023年1月5日木曜日

stick to conventions

stick to conventions: 規則を守る
impervious: 鈍感な、影響されない
preemptively: 先制して、予期できる状況を出来事を押さえる
as the saying goes: 諺に言うように
not set in stone: そうと決まっているわけではない
From Udemy