Pixiv Fanbox
指定角度で同一キャラを動かそう!画風変容はSAM3で自動検出・自動修正(QIE2511使用/VRAM16GB~)
Published 01/14/2026, 10:27:19 PM · Edited 04/04/2026, 05:57:26 PM

<記事内容の要約>
・マルチアングルLoRAを使うと、画像を回転させるだけでなく、キャラや背景の一貫性を保ったままポーズなどの内容を変更できる
・ただし、顔は「QwenImageEdit顔」になってしまうので、顔立ちや画風を普段のSDXLモデルに戻せるワークフローを考案(配布あり)
・最新セグメントモデル「SAM3」で、戻す範囲は「face」や「hand」などと自由にテキスト指示可能
こんばんは、スタジオ真榊です。今回は、急激な進化を続けているQwenImageシリーズで最大の収穫と言える「指定した画角から、キャラクターの一貫性を保持しながら別ポーズ・別表情を生成する」手法についての検証結果を特集します。今回の特集内容はローカル環境において、NanoBanana登場時と同じくらい大きなワークフローの革新につながる可能性があり、とてもワクワクしています!【約2万字】
まず、こちらの画像をご覧ください。左が入力画像で、右が生成結果です。左上のカメラ操作ノードで指定した「右後ろから見下ろし」の画角をきちんと守り、キャラクターや背景の一貫性も保ちながら、別ポーズの生成ができています。
もちろん、QwenImageEdit2511(以下QIE2511)で表情まで変更すると、多くの場合は顔立ちの一貫性を保つことができないことはよく知られています。こちらの例では、指定した画角から別ポーズを描くことができていますが、顔立ちはQIE2511らしい「マスピ顔」に変更されてしまっています。
これを今回、Meta社の最新セグメントモデル「SAM3」を使ったDetailerワークフローを作ることで解決しました。SDwebUIにおける「ADetailer」に近い仕組みですが、こちらは「face」「hand」「girl」などとユーザーがテキストで指示した部分を輪郭に沿って自動マスクし、普段のSDXLモデルや画風LoRAを適用して詳細部分を描き直すことができます。
このワークフローとQwenImageEdit2511による「同一キャラ・別アングル・別ポーズ」を組み合わせることで、このようにキャラクターと背景双方の一貫性を保ったまま、連続性のある別ポーズ・別表情を指定した画角で作ることができました。
気になる取り回しですが、VRAM16GB環境(RTX4080使用)で、前半の別カット推論が40秒弱(モデルロード時間込みで60秒)、SAM3を使った後半のDetailer処理は顔面だけなら15~30秒程度で可能です。今回もワークフローを配布しますので、適宜ご活用ください。
目次
1.マルチアングルLoRAの「特性」
2.アングル変更+ポーズ変更実験
<さまざまな画像で実験>
<考察>
3.SAM3(Segment Anything Model 3)とは
<AIイラスト用途の使い勝手は?>
4.SAM3のダウンロード方法
5.ワークフロー配布
6.ワークフロー画面の見方
<メインノード群>
<Detailerノード群>
7.SAM3Detailer実践
実験1:エプロンの色は変えられる?
実験2:体全体の画風を戻せる?
実験3:体と顔を別々にDetailer
8.再現性があるか最終チェック
終わりに
1.マルチアングルLoRAの「特性」
前回の記事は、中国Alibabaの最新画像編集AI「QwenImageEdit2511」を使った「マルチアングルLoRA」によるワークフローの特集でした。ローカル環境(ComfyUI)を導入してQIE2511を動かし、カメラ操作ノードで指示した通り、入力画像を「別アングル」から見た様子を推論するーというものです。(※本記事はこちらの続編ですので、マルチアングルLoRAやワークフローの使い方などはこちらを参照ください)
この特集の中で、このような実験を行いました。画像生成プラットフォーム「fal.ai」が開発したマルチアングルLoRAは、基本的にはトリガーワード<sks>と「front-right quarter view low-angle shot close-up」などの定型文指示で別アングルを生成するものですが、プロンプトの後ろに「天井を赤くして」などと指示を加えると、入力画像に映っていなかったオブジェクトを操作できたのです。
ただ、このような「追加プロンプト」を入れると、マルチアングルLoRAの純粋性が損なわれ、妙に天井が大きく映り込む画角になってしまったり、細部の正確性が落ちてしまったりする悪影響がありました。アングル変更は正確性が重要ですから、追加プロンプトによる指示は「おまけ程度に考えておいて、基本は空欄で運用するのがよい」と前回特集では紹介していました。
しかし、「赤い天井」の画像を見ていて、ふと疑問に思うことがありました。マルチアングルLoRAは入力画像の任意の画角を推論できるLoRAですが、つまりは入力画像の画風やキャラクターデザイン、背景やオブジェクトの位置関係といった一貫性を保ちつつ、一定の変化を加えるLoRAとも言い換えられます。つまり、追加学習した内容は「一貫性保持LoRA」としての性格が色濃いものなのではないでしょうか?
もしそうなら、単に画面を回転させるだけでなく、このLoRAでキャラクターや背景の一貫性を保ちながら「別カット」を作ることにも活用できるのではないかーと考えたわけです。「赤い天井」の実験では、入力画像に天井が映っていなかったから、色を変化させられたのだと考えていましたが、マルチアングルLoRAを適宜弱めて使えば、入力画像に映っているものをそのままに任意の変化を加えられるかもしれません。
2.アングル変更+ポーズ変更実験
LoRAを使って画角を指定しつつ、追加プロンプトで画像の内容を任意に変更できるかどうか、次のような実験をしてみました。使用するのは、前回特集で配布したQwenImageEdit2511用のアングル変更ワークフローです。その後、カスタムノードのアップデートを受けてマイナーチェンジしていますので、こちらの「V4」をご使用ください。(V3からの変更内容は、左下から生成画像サイズをメガピクセル指定できるようにしただけです)
ComfyUIやワークフローの導入方法は前回特集「3Dカメラ設定で簡単アングル変更 QwenImageEdit2511最新ワークフロー」の通りですので、今回は割愛します。StabilityMatrixやポータブル版などで適宜ComfyUIを導入し、ComfyUI Managerも入れた上で、必要なモデルやカスタムノードをご準備ください。
▼ComfyUIの基本的な使い方はこちら
こちらが配布ワークフローを開いたところ。左側にアングル変更したい画像を入力して、隣のカメラ操作ノードで画角を決めたら、あとは生成スタートするだけです。
GGUF版は品質があまりよくないので、基本的にはQIE2511のbf16版かfp8版を高速化LoRA(Lightning-4steps-V1.0-bf16)を適用した状態で使用することにします。
実験にはこちらの画像を使いました。カメラ操作ノードの「default prompts」をtrueにし、カメラ操作ノードで「右側面・ローアングル・ミディアムショット」を指示します。すると、自動的に「<sks> back-right quarter view eye-level shot medium shot」というプロンプトが次のノードへ送られます。
重要なのはこちら。プロンプトを前後に追加できるString Functionノードです。text a欄に入れると画角指示の前に、text c欄に入れると後ろに、プロンプトを追記できる仕組みです。当初は「text a」にLoRAのトリガーワードである<sks>と入れるために作ったのですが、現在はカメラ操作ノードで「default prompts」をtrueにしていれば、自動で<sks>がプロンプト冒頭に入る仕組みですので、全て空欄になっています。
後ろにプロンプトを追記する「text c」欄に、このような一文を入力します。
「Draw a picture of what it looks like 10 seconds later.change her pose and expression.she enjoys the beach.」(この画像の10秒後を描いてください。ポーズと表情を変更してください。彼女はビーチを楽しんでいます)
QwenImageEditは日本語指示も理解できますが、英語(もしくは中国語)のほうが一般に結果が良く、指示の取り違えやニュアンス間違いも少ないようですので、ここでは英語で指示することにしました。最後の一文はなんでもよかったのですが、どういう文脈の変化を加えた「10秒後」にしてほしいのか、モデルが理解しやすいように、という意図です。
・マルチアングルLoRAをどう弱めるか
この実験のポイントは、「こちらのマルチアングルLoRAを弱めると、どのような生成結果になるか?」ということです。
普通に考えれば、マルチアングルLoRAの適用強度が強まるほど、正確な位置関係で画像生成ができるようになり、弱まるほど、ただのQIE2511による画像編集に近づいていくはずです。QIE2511には前バージョン用の「マルチアングルLoRA」などが焼き込まれているそうですので、LoRAなしでもある程度の画角変更ができますが、2511用のマルチアングルLoRAを適用強度0からだんだん強めていくと、どのような結果になるのか確認します。
Seed値は「fixed(固定)」にして、以下の設定で実験を行います。プロンプトは「<sks> back-right quarter view eye-level shot medium shot, Draw a picture of what it looks like 10 seconds later.change her pose and expression.she enjoys the beach.」。使用モデルはQIE2511のbf16版です。
まず、こちらがLoRA適用強度0(オフ)で生成したもの。左の画像に対し「back-right quarter view」と指示して生成したのが右です。多少右側に移動したようにも見えますが、マルチアングルLoRAがオフなので、ちゃんと後ろ側に回り込むことができていないようです。
以下は、LoRA強度0.1から1.4までを並べます。全て同じSeed値・同設定です。
まず、0.1から0.6までは、ほぼLoRAなしの状態と変わりませんでした。「右後ろに回り込め」というアングルチェンジ指示よりも、「10秒後を描いて」「別ポーズ・別表情にして」という別の注文のほうが効きやすい状態ですので、太陽を見えなくしてみたり、片手を下げてみたりしているようです。「0.7」以上になると、LoRA強度が強まるほど、はっきりカメラが右後ろに回り込んでいます。指示通りの位置まで回りこめたのは「0.9」からでした。
また、「0.6」~「0.7」あたりからポーズや表情に変化が出始めますが、「1.2」と「1.4」ではむしろ、入力画像の両手を上げたポーズを守ろうとしているように見えます。LoRAが学習している入力画像の一貫性を保とうとするはたらきが、「別ポーズにして」という指示を上回るほど強まったためと想像できます。
この実験から分かるのは、
①「赤い天井」の実験と同様に、QIE2511はマルチアングルLoRAの影響が相当強まっても、プロンプト指示を守ることができる
②1.0を超えると、「入力画像と一貫性を保とうとする働き」と「プロンプト通りポーズを変えようとする働き」が拮抗し、表情やポーズなどが入力画像に寄っていく
ということです。1.0では右後ろに回り込みつつポーズを変更できていますが、表情は元画像に引っ張られている様子が見えます。よって、指示通りの画角を守りつつ、プロンプトによって変更も加えられるバランスのよいスポットは「0.9-1.0」程度ではないかと目星をつけました。当初はもっと弱めることでバランスが取れるのではないかと思ったのですが、通常のアングルチェンジで使うのとさほど変わらない強さでも、問題なく任意の変化を加えられることが分かりました。
<さまざまな画像で実験>
他の画像でも実験してみます。先ほど使用したプロンプトから「彼女はビーチで楽しんでいます」部分を抜いて、「<sks> back-right quarter view eye-level shot medium shot, Draw a picture of what it looks like 10 seconds later.change her pose and expression.」と指示し、さまざまな画像を「LoRA強度0.9」で回転させました。角度は「右後方・ハイアングル・ミディアムショット」。左が入力画像、右が出力結果です。
まずはバレリーナ。背景の一貫性は保ちつつ、右奥に回り込めています。ポーズはあまり大きく変更していませんが、頭の向きや表情が変更できています。
ミナちゃんフィギュア。こちらは「10秒たとうが動かない無機物」と認識したのか、単純に「右後ろ・ハイアングルからの見下ろし」になりました。
ミナちゃんの白背景イラスト。ポーズが変更されたのと、謎の線が出ました。表情はさほどという感じですね。その代わり、普段のSDXLモデルで生成したのかと思うほどよく画風を似せられています。
記号が少なく、容姿再現が難しい鬼怒川さん。こちらはポーズと表情が両方変更されました。「表情が変わると顔立ちも変わる」という法則は健在で、まあ別人ですね。背景がないと、あまりマルチアングルLoRAの恩恵が感じられません。これなら普段のSDXLモデルで普通に生成すればよいからです。
右後ろからの見下ろしが正確にでき、頬杖をついていたポーズが変更されました。他の画像ではカメラ目線になることが多かったのですが、「この状況なら、この子は10秒後も勉強しているであろう」と思われたのでしょうか。
金髪1girl。パーがチョキになりました。背後側に回り込むと、手が裏表逆になってしまう欠陥は特有のものですね。表情も変更されましたが、大きく変わったのは口だけだったので、さほど別人感はありません。
座り鬼怒川さん。右後ろまで回り込み切れず、right side view止まりでした。すぐ後ろに壁があるためかもしれません。ポーズと表情いずれも変更でき、やはり顔立ちは変わりました。指はQIE2511では珍しく六本指ですね。
こちらも同様に、ポーズと表情いずれも変更でき、顔立ちが変わったケース。目のデザインはやはり鬼門のようですね。背後に壁やオブジェクトがあるとうまく回り込めないのも同じです。
この画像の他にも、背景などの都合で指示した角度とどうしても数十度ズレてしまうケースが複数回確認できました。特に、斜めからキャラクターを描いたイラストを正面にするのが苦手のようで、その場合プロンプトで「straight front view」などと指示するとうまくいきました。
<考察>
総評として、全体のカラーやタッチは非常によく守れているように見えます。どうしても一貫性を保てないのは、表情変更したときの「目」。無機物であるフィギュアや勉強のイラストの例から分かるように、「10秒後を描いて」というプロンプトはそれなりにきちんと考えて守られているようです。アングル変更は、周囲の状況からして無理がある場合はやや甘くなることも分かりました。指示通りにするとカメラが壁にめりこんでしまうような画像もあるので、良く言えば「空気を読んでいる」と言えないこともないかも。
通常、QIE2511は任せた作業が創造的なほど、生成結果のぶれが激しくなります。こちらは通常の2511用画像編集ワークフローで、鬼怒川さんと実写のメイド服を参照させて「着替え」をさせてみたものです。(マルチアングルLoRAは未使用)
「picture1の女性が、picture2の衣装を着ている。リビングルームに立ち、恥ずかしそうな表情。カメラ目線。picture1と同一人物に見えるよう、画風やカラーを統一する」と指示しましたが、結果はこう。
服装は非常に高精度に守れており、ニーソックスのリボンや細かなフリルまで写真通りに反映できましたが、背景は不釣り合いな実写調になってしまいました。キャラクターの画風もごく単純なセルアニメ調といった感じで、顔だけでなく全身が入力画像のキャラクターとは変容してしまっています。これでは創作用途には耐えません。
プロンプトを英語にし、「The woman in picture 1 is wearing the outfit and headband in picture 2. She is sitting on a sofa in the living room, legs crossed, glaring at the viewer. Her arms are folded. She is looking at the camera.from side,dynamic angle.anime style illustration,flat color fills,Japanese anime and manga style.」と、むりやり画風を指示するとこうなりました。
ただ、これではやはりキャラクターの顔立ちもタッチも普段の私の好みとは違いすぎて、記号的なアニメ画像になってしまっています。
通常、2511の画像編集はこのように、手がかりのない創造的な工程をテキスト指示だけで指示しても、意図通りに画風を寄せることは困難です。ところが、マルチアングルLoRAと併用させれば、キャラクターの表情以外はかなりの一貫性を持って、普段の画風を維持しつつ、任意の変化が加えられる。これは大きなアドバンテージですが、せめてキャラクターの画風や顔立ちだけでも普段の画風に戻すことはできないでしょうか。
そこで考えたのが、冒頭で触れた「SAM3」によるDetailerワークフローです。
3.SAM3(Segment Anything Model 3)とは
「Segment Anything Model 3(SAM3)」は、Meta社が2025年11月19日に発表したオブジェクト検出モデルです。「face」「hand」「cat」など短いテキストで指示すると、画像や動画の中の該当する範囲をマスクすることができ、事前申請が必要ですが、HuggingFaceから無料でダウンロードできます。
我々がよく使うオブジェクト検出技術と言えば、画像内にある顔や手を自動検出して、きれいに描き直すADetailerですね。こちらはYOLO(You Only Look Once)と呼ばれるモデルを使って顔周辺の範囲を四角形に検出し、大きいサイズでインペイントして違和感なく馴染ませる手法ですが、SAM3はテキスト指示した任意の検出範囲の輪郭に沿って切り抜くことができます。
<AIイラスト用途の使い勝手は?>
あまり期待度を上げすぎてはいけないので、AIイラストにおけるADetailer的用途での使用感を先に書きます。本来、実写動画などで指示したオブジェクトを正確にトラッキングするのに向いた技術ですので、アニメ調のAIイラスト用途に転用するとヘンなこともけっこう起きます。
まず良いところとしては、テキストで任意の範囲をDetailerできること。faceやhandなどの指定だけでなく「red striped umbrella」といった複雑な指定でも、たくさんの傘の中から該当する赤い縞柄の傘を検出することができます。検出の軽さ、輪郭に沿った検出ができることなどもメリットですね。あとで実演しますが、まずキャラクターの全身を「person」や「girl」などの指示で検出してimg2imgで弱めに画風を戻し、さらに顔面だけを検出して強めに描き変えるような使い方もできます。
一方で、以下のような欠点もあります。
・普段のForge系のSDXL生成設定をComfyUI上で再現するのが結構面倒。プロンプト呼び出しなどがぱっとできないとストレスに感じることも
・「face」で検出すると背景のぬいぐるみや目鼻に見えるところまで検出してしまう(閾値によっては、おっさんの乳首とへそを顔だと認識したりする)。そのまま問答無用で生成が始まるのでコントロールが難しい。girl's face・1か所などと指定してやり直す必要がある。
・ADetailerのように真四角ではなく輪郭にそって検出されるので、「face」の選択範囲が手前の髪の毛や眼鏡をよけたりして、合成時に不自然になりやすい。範囲の拡縮などに慣れが必要。
こう書くと欠点ばかりのように見えますが、輪郭に沿った検出+img2imgアップスケールは個人的になかなか便利で、いったんワークフローさえ組んでしまえばアングル変更からシームレスにつながるので重宝しています。このあたりは普段ComfyUI慣れをしているかどうかにもよるので人それぞれかと思いますが、普段通りForge系を起動してADetailerした方が楽という人もいるでしょう。
▲「girls face」で検出したところ。10人中9人を検出、1人は失敗
4.SAM3のダウンロード方法
SAM3はこちらのHuggingfaceからダウンロードできますが、事前にリポジトリへの申請と認証が必要です。Huggingfaceのアカウントを作った上で、リンク先からアクセスリクエストを申請しましょう。
このような感じで、生年月日や国・所属・氏名などの連絡先情報共有が求められます。
リクエスト申請すると、このような画面になります。認証されるとメールが届き、モデルをダウンロードできるようになります。私の場合、申請から十数分程度でDL可能になりました。
こちらの画面から「sam3.pt」(3.45GB)をダウンロードします。ダウンロード先はComfyUI/models/sam3ですが、ワークフロー導入前だとまだ該当フォルダが存在しないはずなので、同名のフォルダを作って保存しておくか、デスクトップなどに置いておいてあとで移動しましょう。
こちらがSAM3に適用されるSAMライセンスです。SAM3の使用・複製・配布・改変・派生物作成ができる、非独占・世界的・譲渡不可・ロイヤリティ不要のライセンスとなっています。AIイラスト用途で気になるのはNSFW画像の検出に使ってよいかですが、明示の禁止規定はありません。もちろん使用にあたっては法令順守が求められており、違法用途には使えません。軍事やスパイ活動、違法武器の開発に使用することなどが明示的に禁じられています。
5.ワークフロー配布
こちらが今回使用するワークフローです。DLして解凍するとjsonファイルが出てくるので、「ComfyUI\user\default\workflows」に移動させます。
jsonをComfyUI上で読み込むと、初回はこのようなミッシングノード(未導入のカスタムノード)が検出されるはずですので、一端閉じて、ComfyUI Managerを開きましょう。(※エラーが出なければ、必要なカスタムノードが既に揃っています)
「Install Missing Custom Nodes」から、足りないノードを表示します。
未導入のカスタムノードを含むパックが表示されますので、それぞれ順番に「Install」します。正式リリース版である「Latest」があればそれを、なければ「Nightly」(開発段階のテストバージョン)をインストールしましょう。SAM3のノードは記事執筆時点で「Nightly」でした。
すべて「Restart Required」になったら、左下のリスタートボタンからComfyUIを再起動します。ComfyUI画面上ではいったん「Reconnecting」と表示され、インストールが入ります。
無事再起動したら、さきほどのワークフローを開きましょう。エラーが出なければ、インストールはこれで完了です。お疲れさまでした。
6.ワークフロー画面の見方
こちらがSAM3を使ったDetailerワークフローの全体図。左側に顔を上書きしたい画像を入力し、普段SDXLモデルで生成するときのcheckpointやLoRAなどを読み込み、上書きしたいところを「face」などと指定する仕組みです。大きく分けて左側がSAM3やSDXLを設定するメインノード群、右側が検出したマスク範囲をどのように処理するかを決めるDetailerノード群です。
<メインノード群>
こちらがメインのノード群。さっき書いた通りで、普段reForgeなどで生成する環境を再現する必要があるので、ふだんComfyUIでSDXLを動かさない方は初回だけやや面倒くさいです。StabilityMatrixでModelsを共有していない場合は、ComfyUIのModelsフォルダに普段使っているCheckpointやLoRAを移植する必要があります。
<注意:AttributeErrorが出る方へ>
2026年3月15日~30日の間、Load SAM3 Modelノードが含まれる「ComfyUI-SAM3」カスタムノードをアップデートしたり、新規に入手すると、下図のような3段のノードになって「AttributeError: 'NoneType' object has no attribute 'data'」というエラーが生じました。最新バージョンでは修正されていますが、issueが複数出ていました。
現在このような3段ノードになってしまっている方は、ComfyUIをいったん終了させ、「ComfyUI\custom_nodescustom_nodes\comfyui-sam3」フォルダを削除してください。ComfyUIを最新版にアップデートした上で、再度ComfyUIを起動して当該ワークフローを開くと、ミッシングノード通知が出ますので、もう一度Sam3ノードをインストールし直せば動かせるようになるはずです。
「SAM3 text segmentation」ノードでは、SAM3を使って何をいくつ検出したいか選びます。ここでは、画像の顔だけ描き直したいので、「face」とします。「confidence threshold」(検出閾値)を上げると、誤検出が起きにくくなり、下げるとより多くの範囲を検出できます。「max detections」は範囲の最大検出数で、「-1」とすると制限なしにできますが、検出閾値が低いと無数に誤検出されるので注意しましょう。
上の設定だと、「faceとおぼしき部分を最大5つまで囲ってね。スコア0.2未満は顔かどうか怪しいので無視すること」という指示になります。まずは0.2~0.3くらいで試してみるのがよいでしょう。
左下にあるこちらのノードで画像サイズを調整します。入力画像はどんなに大きくても、上のノードで画像編集に適したサイズにいったん調整されますが、そのあと下のノードで2メガピクセルサイズに拡大されます。もっと大きくしたい場合はメガピクセルの項目の数字を適宜調整してください。(大きすぎると生成時間が増えたり、画像が破綻したりする恐れがあります)
<Detailerノード群>
ワークフロー右側は、SAM3で検出された範囲をどのようにマスクして描き直すかを決める、Detailer関連のノード群。左下の「Detailer」ノードが、SDXLにおけるADetailerの設定画面だと思うと分かりやすいかと思います。基本的に、普段SDXLで生成している設定(ステップやスケール値など)をそのまま持ってくればOKです。
「guide_size」:マスク範囲を生成し直すキャンバスサイズ。SDXLなので1024px~1408pxくらいがよいでしょう。
「max_size」:切り抜いた領域がたまたま大きかった場合(girlなどを指示したときなど)、破綻するのを防ぐための最大上限。同じく1408pxくらいが限界でしょう。
「cycle」:img2imgを何回繰り返すか。もとの画像から大きく顔立ちや表情を変えたい場合は2回以上行うとよいですが、その分生成時間は増えます。
「steps / cfg / sampler_name / scheduler」:普段のSDXL設定を入れましょう。
「denoise」:最重要、ノイズ除去強度。Detailerするときにどれだけノイズを載せるか、つまりimg2imgの強さ。0.8を超えると、はめ込む部分が全然違う絵になって破綻しやすい。0.5以下だと、入力画像に強く引っ張られる。
「feather」:上書きする絵の境界を何pxぶんぼかして馴染ませるか。弱いと境界線が目立ち、強くすると馴染みますが、強すぎるとぼけすぎてマスク下が見えてしまいます。
「noise_mask_feather」:こっちはマスク範囲に上書きするSDXLの画像ではなく、マスク側の境界を何pxぶんぼかして馴染ませるか決めるもの。
「force_inpaint」:「必ずインペイント扱いで処理する」よう強制するトグル。マスク領域外をなるべく壊さず、領域内のみ再生成したい時にONにします。
「inpaint_model」:インペイント専用モデルを使うかを決めるスイッチ。基本オフ。
「wildcard」:Impact Pack側で、マスク領域ごとにプロンプト差し替えをするための文字列欄。表情をランダムにしたりできるようです(未検証)
「tiled_encode / tiled_decode」:VAEのエンコード/デコードをタイル化してVRAMを節約する系の機能。オフでよいです。
ここの設定で仕上がりが変わるので、特にdenoiseを慎重に決めましょう。マスク内外が馴染まないときはfeatherを調整します。
次はマスク範囲をどう処理するかのノードを見ていきます。
「マスクを拡大」ノードは、検出範囲をどのようにマスクし、Detailerを掛けるかを決めるノード。SAM3は周囲の輪郭をぴったり検出するので、img2imgする場合は20~30pxほど広げると良い結果になりやすいです。逆に、輪郭を侵さないようにするときは拡大しないほうがよいときも。不要な場合は0にするか、Ctrl+Bで無効に(バイパス)します。
「Image Matting」は、マスクのふちをうまく処理して、入力画像に上書き絵をなじませるためのノード。「ここは確実に前景(白)」「ここは確実に背景(黒)」「ここは境界であいまい(灰色)」という3段階のマスクとして扱うことで、より良い生成結果を狙います。
マスクが白い(濃い)部分ほどSDXLの上書きがはっきりし、マスクが黒い(ない)部分ほど入力画像が残るわけですが、上書きする絵(目鼻口)がふわっと透けてしまったり、入力画像の残したい部分(顔の輪郭とか)に肌が上書きされたら困りますよね。その中間をどこで「もう確定」=二値化するか決めるのが black/white pointです。
▲分かりやすい失敗例。マスクから下絵が透け、輪郭が二重に
blackpointは、マスク内の暗い画素を「背景(黒)」として強制的に見えなくする閾値、whitepointは逆に、明るい画素を「前景(白)」として強制的に確定する閾値で、それ以外は滑らかに処理される…というややこしいパラメータです。いまはほとんど強制二値化しない設定になっています。
いずれもマスク内外の境界線をどう扱うかに関わる部分ですが、ややこしいので基本はこの設定のままでやってみて、Detailerによる「上書き」がうまくいかない場合は調整することになります。マスク範囲が目立ってしまう場合はマスクのぼかし度(preblur)を上げ、元の画像が透けてしまう場合は下げます。ぼかしすぎるとマスクが丸く甘くなって下が見えてしまうのはfeatherと同じです。
「MASK to SEGS」ノードは、検出した範囲の取捨選択に関わるところ、と考えてください。例えば、入力画像のごく小さな顔っぽい部分までぜんぶ検出してしまい、いちいち上書きしてしまうのは非効率ですね。いまはdrop sizeが30pxとなっているので、一辺30px以下の検出範囲はいちいちDetailerせず無視する設定。100pxにすると、それ未満のサイズの検出範囲は除外されます。
ちなみに「combined」は、検出された範囲を合体するかどうかに関わるノード。例えば「face」を検出したときに、前髪で一部が「浮島」のように分割されてしまうと、そのわずかな範囲だけを別にDetailerするはめになります。一か所だけを検出したい場合はtrueにしておくと、ひとつのマスク範囲として扱ってもらえます。
7.SAM3Detailer実践
解説が長くなってしまいましたが、まずはやってみないと分からないですね。上書きしたい画像を放り込んで、普段のモデルと画風LoRAを適用して、プロンプトで描き直す内容を指示します。うまくいけば、このように顔立ちを上書きすることができます。
細かく見ていきましょう。入力した画像のうち、SAM3はこちらを「face」と判断し、右側のような範囲をマスクしました。「マスクを拡大」ノードの効果で、SAM3が検出した顔の輪郭よりも30px広がっており、境目はfeather設定などによりほどよくぼかされています。
検出された範囲は「ノイズ除去強度0.6」でimg2imgされ、このような画像がSDXLで生成され、元画像の上にぴったり重ねられました。
拡大してみますが、マスクの境界線はきれいにぼかされていて、線が途切れたり、色が境目ではっきり変わるようなことは起きていないように見えます。(上書き部分が分かりやすいよう、入力画像をわざとジャギらせています)
SDXLのプロンプトを変えてみます。「笑顔で口を閉じ、こちらを見ている(looking at viewer,smile,closed mouth,blush)」という内容を追記しました。ところが、元画像が口を開いているので、強度0.6ではうまく上書きしきれなかったようです。
そこで、Detailer回数(cycle)を「3」に増やすと、検出範囲が3回img2imgされ、このように口を閉じることができました。(生成時間は13秒から26秒に増えます)
入力画像から大きく変えたい場合は、単純に「denoise」を0.6から0.8に増やすことでも対応できます。非常に濃いノイズを掛けてから除去するので、cycleが1回でも、このように口を閉じることができました。(Seed値によっては失敗します)
強いdenoiseでcycleを増やすと、img2imgで描き直すたびに違う絵になっていってしまい、マスク内外がめちゃくちゃに矛盾してしまうことが多いです。faceの描き直しの場合、基本は「denoise0.6-0.8、cycle1」と考えておいたほうがよさそうです。
実験1:エプロンの色は変えられる?
今回は「face」で検出しましたが、SAM3は27万個の固有概念を学習しているので、このイラストの中から「apron」や「cup」といったものも検出が可能です。では、このエプロンをオレンジから青に変えられるでしょうか?
残念ながら、それはNoです。「apron」と指示すると、SAM3は見事にエプロン部分をきれいに切り抜くことができましたが、「blue apron」とプロンプトを変更してSDXLで上書きしようとしても、ノイズ除去強度0.6では元画像の色に引っ張られてしまいました。これは普段のimg2imgと同じですから、なんとなく「そうだろうな」と分かりますね。
cycleを「5」に上げても、オレンジを青に変えることはできません。さらにdenoiseを0.9に上げてみると、5回繰り返される生成のたびにはめこまれる部分の絵が変容してしまい、このようになってしまいました。青色には変えられていますが、マスク範囲の内外が矛盾してしまうのですね。
このように、このワークフローはあくまで顔や手を検出して「ディティール」を描き直すもので、オブジェクトそのものの形状や色を全く違うものに置き換えるインペイントのような手法には向いていません。かなり工夫すればできなくもないですが、それはControlnetを使ったインペイントや、そもそもその前のQwenImageEdit2511を使ったシークエンスでやったほうが簡単だと思います。というか、NanoBananaに頼んだ方がラクですよね。
このワークフローは基本的に、QIEやNanoBananaを使って画像編集した時に、変容してしまった顔立ちをお手軽に戻すためのものとして使うのが良いでしょう。
実験2:体全体の画風を戻せる?
さきほどの入力画像をよく見てみます。これはQIE2511に「このキャラがオレンジのエプロンをつけてリビングに立っている絵」を指示して生成してきたものなので、よく見ると顔立ちだけでなく、イラスト全体のタッチがQIEのマスピ画風になっています。特に手がQIEっぽいですね。
顔立ちを戻すだけでもかなり満足度は高いのですが、どうせならキャラクター全体を普段のSDXL画風に戻せないでしょうか。
このようにSAM3に「girl」と頼んで、検出範囲全体をSDXLで上書きしてみました。
denoiseは0.6でサイクル1回。すると、このような範囲が検出され、SDXLモデルで上書きされました。hand on hipを入れるのを忘れたので左手の形がヘンですが、一見、うまくいったように見えますね。
ただ、拡大してみるとちょっと印象は変わります。確かに人物部分はきれいに上書きされたのですが、背景との画風の差(特に線画のタッチの差)がはっきり出てしまって、むしろ浮いています。また、検出された範囲がfaceのときよりも広いため、普通に1408x1024pxでポン出ししたときの質感になっており、瞳などは特に低劣に感じます。
普段のSDXLの画像生成で考えると、1024pxサイズでポン出ししたそのままを作品には使えないので、普通はimg2imgアップスケールやADetailer、Hires.fixなどで高品質にしますよね。それをせずそのままポン出しをコラージュしたようなものなので、やはり低劣な仕上がりになってしまいます。
そこで、ノイズ除去強度を0.4に下げて、キャンバスを2048pxサイズで描き直してみました。これなら、入力画像に対してimg2imgアップスケールを掛けたような効果になるはずです(denoise0.5を超えると大崩壊してしまいますが)
すると、やや線の感じなどはほどほどになり、不自然さは減ったように思えます。が、denoiseが足りないので顔立ちが入力画像から離れきれず、よく見ると指や脚元も破綻し始めています。あまり範囲を広げすぎるのも良くなさそうですね。
ちなみに、今回の検出範囲ではこのように、カップを持った手が離れ小島のようになってしまったため、体だけでなく、手のこのわずかな範囲だけが2048pxに引き伸ばされて描き直されるという悲劇が起こっています。(左下参照)
こういうときは、こちらのノードで「combined」をTrueにすると、検出された全てのマスク範囲がひとつに結合され、Detailerに入力されます。
今度はこのように、浮島部分も含めた範囲を描き直すことができました。
実験3:体と顔を別々にDetailer
身体全体を強くimg2imgすると不自然になってしまうのであれば、例えば先に体をdenoise0.3くらいで弱めにimg2imgし、続けてfaceを検出してdenoise0.8で強めに描き直せば、キャラクター全体を自分のSDXL画風に戻せるのではないか?ということが気になります。
さっそく実験してみましょう。このように、ワークフロー全体をまるまる右下にコピペしてきて、2段構えの構成にするだけ。左側の「Detailer」ノードから「画像を保存」ノードに伸びて完結するはずのところを、右下の画像入力部分につなげてしまえばOKです。
こちらが生成結果。顔部分は「怒った照れ顔でこっちを睨んでいる」というプロンプトにしました。
左が中間部分で保存された、体全体をdenoise0.3でimg2imgしたもの。右はその顔部分だけを検出して、denoise「0.9」で顔部分を強く描き直したものです。全工程で30秒ほどでできましたので、割と実用的ではないかと思います。
ただ、ちょっと顔が大きくなってしまったようにも見えますね。これは、強めにimg2imgした際、顔の向きが右にずれたものがはめ込まれたために起きたものです。元画像は左を向いているのに、はめこまれたマスク部分はこちらに顎が向いているので、顔が大きく見える錯覚が起きてしています。
denoise0.9だと、一見うまくなじんでいてもこのようなミスが起こりえるので、やはり0.8程度が上限かと思います。ほぼ同じ工程で、こちらは最後のdenoiseを0.8にしたもの。顔の向きがそこまでずれず、頭でっかち現象が回避できました。
8.再現性があるか最終チェック
さきほどのエプロンのイラストがたまたまうまくいっただけという可能性があるので、本当に再現性があるかどうか、別の画像で試してみましょう。まず、こちらのイラストを正面の画角に変更しつつ、笑顔で手を振るイラストにできるでしょうか。
このように、配布したアングル変更ワークフローに入力します。画角は「右側面・ハイアングル・クローズアップ」で、追加プロンプト「smile,waving hand,looking at viewer」とします。LoRA強度は0.9。bf16版で高速化LoRAを使用しています。
こちらが生成結果。もっと真正面にくるかと思いましたが、少し角度が足りませんでした。(しかしそれでもすごいですね)
ちなみに「右後方」にするとこう。なぜか、斜めのキャラクターイラストを正面からのショットに直すのがなかなか難しいようです。
結局、「Change the camera to a straight front view」と追加プロンプトを入れることで、こちらの画像を得ました。さきほど背後に壁があったセットでもそうでしたが、白背景でもこうしたことが起きるのは不思議ですね。
口が閉じてしまっているのと、画風がわずかに変わってしまっているのが気になりますが、そこはDetailerで直せばOK。今度は、この得られた画像をSAM3のDetailerワークフローに放り込みます。
プロンプトは「1girl,smile,waving hand,tareme,flight attendant,looking at viewer,aqua eyes,mature female,30 years old,wife,large breasts,braided_bun,white background, simple background,open mouth」。最初の画像を生成したときのプロンプトを流用しています。denoiseは0.8。結果、顔が大きく描き変わって、こちらの画像が出力できました。
前後比較です。衣装の整合性も含め、ポーズも指定通りにできました。
プロンプトを「smile,closed eyes」にすれば、表情バリエーションも簡単に作ることができます。1回あたりの表情ガチャ回数も少な目でありがたいですね。
ちなみに、denoise「0.9」だとこのように、Seed値によっては全く違う構図のimg2img結果がはめこまれ、破綻してしまうことが増えます。大きく描き変えたい場合でも、「0.8」あたりを限度に考えておいたほうがよさそうです。
こちらはおまけ。QIE2511の通常の画像編集で、「白い部分の背景に、空港のロビーを描いてください。」と指示したもの。今回はForge classicもFreepikも一度も開かず、ComfyUIだけでここまでの画像編集ができてしまいました。
出力できたものに「劇場版アニメのような美しい加工をかけてください」と指示。これまでとは次元の違う画像編集が可能になってきたのを感じますね。
終わりに
というわけで、「指定角度で同一キャラを動かそう!画風変容はSAM3で自動検出・自動修正」でした。
QwenImageEdit2511とマルチアングルLoRAがローカル生成のさまざまな発展可能性を引き出してくれたおかげで、このところ連日検証に追われています。例えば、カメラ操作ノードを使わずに、入力画像から1発で8方向からの画像を推論するワークフローなども非常に便利。キャラクターイラストだけでなく、背景のみや無生物の画像でも放置しておくだけで大量にアングル違いのカット(3×4×8=96方向)が作れるので、手描き創作者の方にとっても素晴らしいツールになるのではないでしょうか。
こちらは、上の8方向推論ワークフローを使って作った初期・鬼怒川さんの360度カットです。QIEによって顔立ちが変容してしまうのを、今回紹介したSAM3Detailerで一括処理することで画風を戻しています。(指定フォルダ内にある画像を順次読み込んで同じ処理を施すワークフローを作りました)
長くなるので次回以降の特集に譲りますが、今回の特集で紹介した「カメラアングル変更+ポーズ変更+表情上書き」はNSFWシチュエーションでも成功しています。入力画像と一貫性を持ってさまざまな画角・ポーズを生成できるので、H漫画のコマ作りに大いに役立ちそうですし、SAM3Detailerを使うと各コマの表情のニュアンスを何度でも描き直せるのも素晴らしいと感じています。
<ワークフローが大きく変わりそう?>
25年後半にはNanoBananaを始めとしたマルチモーダルモデルが群雄割拠し、キャラクターの容姿をいちいち学習させなくても、ある程度一貫性を保った画像編集ができるようになってきました。ただ、NSFW表現には制限がありますし、表情など創造的な生成をすると絵柄が変わってしまって、いかにもNanoBananaっぽいマスピ感が出てしまうきらいがありました。
が、ここへ来て、そうした状況が大きく変わろうとしています。SDXLは画風やキャラクターデザインの維持は得意でも、背景や無機物、奥行きのある構図を正確に構成することが苦手だったわけですが、そうした弱点をQIEがフォローしてくれる関係が作れそう。個人的にはComfyUIに敷居の高さを感じており、VRAM負担の重さからもメインの創作ツールとして振り回すのはなかなか大変だと思っていますが、これまでにない自由な表現ができそうで、久々にワクワクしています!
さきほどの8方向推論ワークフローやNSFW用途の活用法、DetailerではなくCNインペイントでSAM3検出した範囲を描き直す手法など、検証すべき内容が山積みですので、連日明け方まで記事を書いてます。2026年版の「AIイラストが理解る!」も既にできているのですが、大幅な加筆修正が必要になりそう。ここまで取り上げるのを避けてきた「ComfyUIが理解る!」もまとめたいですし、2026年もあれこれしっかり取り組んで、順次公開していきたいと思います。
というわけで、今回はこんなところで。スタジオ真榊でした。
Attachments (88)

bnwMhzKoUBxt2hFSerfCgOuZ.jpeg

Xq8h0XhmUYlD8OeysqRa5SMY.png

XNnrXZH682Xy9l6Broippt0E.jpeg

29T4hBv8sOhhYkz5u4GRwCkd.png

ZI9X29Jgbb2WkpBJaQXFNdDL.jpeg

be69GovO8SKj2zGZouTOwcBp.jpeg

PUUZg7HuzYJYR7fjP318hEjY.jpeg

iEOQsO1ZDwQAQ3oUwoTI42tj.png

0kD9pnA67FtOTTGzkyXBVt8N.png
Qwen2511multiangle-camera(masakaki)v4.zip

SwIlLWyqQ75dX0mJzqsQSzjE.png

nTa0Ml9JUVzg4lSUJMjL91K9.png

VladjhyR8Ro7bij59aR5cYEM.png

xsTkVRwMyFnrZ15pYFMTBzoW.png

4F43yc9xv0BD0hX6sxHe57oP.png

LeiBoZEKCRR8IvP411CctTpg.png

t3JIImyrafCIIa1WoAoyBzGY.png

3csphvBL6tZptBoLJxjKXEME.jpeg

CP7hfWShrvcHAOdlmIFdVij3.jpeg

cGnFZxyqwmrQVg0DLMCDlOpd.jpeg

gxoEumiuw4KcFZXMVZ9JVKqs.png

D5yYdWqRmkyTN6w0dCWhHf0h.jpeg

yeHw1F48U5eH5Heq8Gr8N4jJ.jpeg

c2amjdi9ME9LFWRpDEzLTQ2W.jpeg

JTbe4gvatUrCBkST1l2qbhXC.jpeg

HffGwYOfPZ9Y4JEsl0XLBBRk.jpeg

wOvygNf5xGItXRCyILjofbQy.jpeg

K0xJG1bARYVQdkM2zQXGCHKv.jpeg

6TT6i0W5Ht2GQhyHgwVvTkVa.jpeg

BDos6U0kitiNuz2P1JBV9rE2.png

VjA5QNY2KqdU1wFql9fnyYuS.png

ZmbfBPim3cNWgRAM9LbK7Ln3.png

Hp906aHpe242B6xY7PO2i7nz.png

vuTYxssnbkUaFFGLU21AiPtw.png

Qmwpf4hW3oD3DIHYoudnVjUw.png

pP7ZONxyLKAV4s4oAhdWZJYo.png

REX82bG35smL7lm4IeMhBbHF.png
SAM3 Detailer.zip

0PLARGRqpstJy3br5xYkp1ZD.png

mkjppE2NP99qnz7tSMb7Qa1n.png

fX7H8qXNz7TCTvgJWxllS6aJ.png

vqPFk5kztnzrfjiQOkumn0LM.png

pu1BQKpHEcVwgrioZY2fvoc9.png

p1DqtEDMduVsfxELeUKF7nCb.jpeg

fBJQNTRwqXAPRm5xVYjk7VVP.png

xQ46BV8cfHVL60dG5WtoNmmP.jpeg

SEDTV9MzO6725TukJ61yFNCl.png

kri7VBgkvChlGpSxh9dpfKoR.png

LprQy633UFrji01VuBbVUsu5.png

sf67y8gyR3wcNSnCs9IEdUfT.png

NqunUU5K0T0dSLzAqb8g1wjn.png

wJsDdMLDfTUFF70v5NGta03v.png

DbR2IFYpyUayNFtwBLamO3Zt.png

VWtEo1Errqx42OIiJc49UHr8.png

GM72ySSOczvpImywpgt8UdGZ.png

btRjpWws8iSlTDkdYWkuR9fR.png

y7W8h1P1ErQUZ1g9pnAXn1JG.png

7nkY0q9Q9tfoMEVBZRBJjfBp.png

yEjGtdqRx6cXfD2vN8RW9x5K.png

dpHqeLuElqnh8xVtbsn85hA2.png

uMt7XuEOqFQf3srIDPcpUk4F.png

JAbgUBpvd1lrRsOVTOsV5HfP.png

4FrxyvqBruxTt9mtqe8qeUUM.png

WbgQolM20cT6G9kM0tSrk7qz.png

ZKyq6CC3mpRemywdc4xPI2e7.png

ldVob4ci9F7Umwr9v92VevdP.png

Ct3tzWaQZrZrn4JxaI5F1Rqf.png

RfRCaNfVThnPGMAq1BMcCgl3.png

L90tGBcvUgesTkh50DBQkOfB.png

sY7YJlMcfJA2DGaOMgKj6p3n.png

Z0Wz0nUfnZHGAmBuc5KTvh2e.png

6FtoBZvK0dHEaI2pNDU2A7Yy.png

yHFqLVnAFEh5fKh9MDlcSBsT.jpeg

O3laXJ7LIC6veDKXuQ294nHp.png

nek30zvweGQpwwv2y7UBB7tf.png

nfMR0wurEfMAw5XgQQMfFOTh.png

5ItNn4WLgaiyjaoCG4uagBT9.png

zPjMdI1ZJAySbybU98uQ0A8Z.png

evAxW9r28JT8sMlai5og6rIh.png

OflISOF9IEDCwqY3k8RCA7MX.png

TOBoqqTnMzIedbnDOmeXzEHM.jpeg

eyJC3bBKYT10C2yWcopovgEV.png

5XGz0Q3IanpHKnwllInS3tig.png

syBTgkPKHBtFkZUxlzrRMWMR.png

g8sIzZ2rePFFpeZln6NNKJlj.png

9myBkcBOk8z4Ihq5nQx4aOz8.png

PaP7Ji4fcctXRTkenVJwfJaQ.gif

lhwCLygFWJKx7Zc2iigU0mfj.png
