Photoshop BetaからStable Diffusionを動かす(操作編)
2023.09.05 AIによるアート
今回はAdobe Photoshop BetaでのStable Diffusion webUIの基本的な操作方法を紹介します。
AIによる画像生成は、Photoshop Betaに実装されている「Adobe Firefly」でも可能ですが、「Stable Diffusion」のモデルやLoRAなどの多様な学習データを組み合わせることにより、さらに自由度の高い画像生成が可能になります。これらの生成技術を併用して、よりイメージに近いデジタルアートを創作しましょう。
それぞれの導入方法については以下を参照してください。
Adobe Photoshop Betaの導入方法 Stable Diffusion webUIの導入方法 Photoshop BetaからStable Diffusionを動かす(導入編)プラグインパネル
Photoshop BetaにStableDIffusionのプラグインをインストールすると、以下のようなパネルが表示されるようになります。
モデル/LoRAの選択画像生成に使用するモデルやLoRAを選択します。モデルやLoRAは、多様な画像を学習させた「学習済みデータ」で、傾向によって生成される画像の特徴は大きく変わります。
RefreshwebUIからすべてのモデルを再ロードします。
Generate画像生成を開始します。
プロンプト画像生成プロンプトを入力します。生成したい画像の特徴を英語のテキストで指示します。
ネガティブ プロンプトネガティブプロンプトを入力します。生成に反映されたくない特徴を英語のテキストで指示します。
生成タイプの選択
Auto-Photoshop-SD
RefreshUpdate
Progres...0%
Generate Txt2Img
image image Mask image Mask
Batch Size Batch count Sampling Steps
Selection Mode
Width512 Height512 CFG Scale7 Denoising Strength:0.7 Image CGF Scale1.5 Mask blur0 Mask Expasion0 Inpainting conditioning mask strengthundefinde0.5
SeedRandomLast
Show Samplers
Batch Size同時に生成するイラストの枚数
Batch count入力された条件でイラストを生成する回数
Sampling Stepsステップ数(デフォルトでは20)Stable Diffusionは、ノイズ画像からノイズを除去して画像生成するため、この処理を繰り返す回数を指定します。
CFG Scaleプロンプトの影響力プロンプトに準拠する数値です。10未満が理想値とされていて、数値が大きすぎると画像が破綻する場合があります。
Restore Faces顔の復元機能の有効/無効崩れやすい人物の顔を左右対称に復元します。
Seed現在のシードを表示および編集します (-1 = ランダム)生成する度にランダムで割り振られる数値で、生成した画像と同じ値を設定すると同じ結果を得ることが可能です。
Random/Lastシードをランダムまたは最後の数値に設定します。
Samplers画像生成に使用されるサンプラーを選択できます。イラスト生成時のアルゴリズムで、生成されるイラストの絵柄と生成速度に影響します。
imageベースとして使用する画像を表示します
Denoising Strengthベース画像の影響度0:出力は画像と同じ~1:完全に異なる画像
Image/Mask使用する画像と修正部分(マスク)を表示
Denoising Strengthベース画像の影響度(0:出力は画像と同じ~1:完全に異なる画像)
Mask Blurマスクの境界をぼかす度合い修正の範囲の境界が強く残る場合に調整します。
Mask Expansionマスクの周囲との整合性を出す範囲修正の範囲が歪んだり不整合な場合に調整します。
Mask contentfill画像の色で塗りつぶします。
originalもともと存在していたものはすべて保持します。
latent noise潜在空間ノイズで埋めます。
latent nothing潜在的なスペースのゼロで埋めます。
モデルや各パラメーターの数値などを様々な組み合わせを試して、最適な生成結果になるように調整してください。
Txt2Imgでの生成
Photoshop Betaの新規ファイルをクリック。
アートボードのチェックを外して作成をクリック。
「プラグインパネル」のtxt2imgを選択。
「選択ツール」で生成したい範囲を指定します。
「プラグインパネル」から①モデルやLoRAを選択。 ⑥Batch数や⑨CFG、⑩Seedや⑫サンプラーはお好みで設定します。
④プロンプト、⑤ネガティブプロンプトを入力。
Auto-Photoshop-SD
③Generate Txt2Imgをクリックして生成。

複数の画像を生成した場合はViewerから確認することができます。
Img2Imgでの生成
Photoshop Betaの開くから元になる画像を開きます。 元になる画像は任意の画像です。生成画像でなくても構いません。
「プラグインパネル」のimg2imgを選択。
レイヤー
output_image
背景
元画像のレイヤーを選択して「選択ツール」で挿入したい範囲を指定します。 全体を範囲指定する場合は「Ctrl+A」を入力します。
「プラグインパネル」からモデルやLoRAを選択。
⑦「Denoising Strength」などのパラメータを調整。 Batch数やCFG、Seedやサンプラーはお好みで設定します。
プロンプト、ネガティブプロンプトを入力。
Auto-Photoshop-SD
Generate Img2Imgをクリックして生成。
⑥生成中にプラグインパネルの「image」に元画像が読み込まれます。
Auto-Photoshop-SD
image

Inpaintでの生成
Photoshop Betaの開くから修正する画像を開きます。 修正する画像は生成画像でなくても構いません。
「プラグインパネル」のinpaintを選択
マスク用の透明レイヤーが作成されるので、そのレイヤーを選択します。
レイヤー
Mask -- Paint White to Mask -- temporary
output_image
背景
修正したい箇所を「ペイントツール」でマスク用のレイヤー上から塗りつぶします。 画像のレイヤーに塗るのではなく、マスク用のレイヤーに塗ってください。
修正箇所が細かい場合は、「クイック選択ツール」や「オブジェクト選択ツール」で範囲を選択し、「バケツツール」で塗りつぶします。
画像レイヤーの上に、塗りつぶしたマスク用レイヤーが重なった状態で、
生成時に参照させたい範囲を「選択ツール」で指定。
範囲指定に合わせて描画されるため、マスク周辺のオブジェクトをすべて指定することがコツです。

「プラグインパネル」からモデルやLoRAを選択。
⑧「Mask blur」などのパラメータを調整。 Batch数やCFG、Seedやサンプラーはお好みで設定します。
修正範囲に対するプロンプト、ネガティブプロンプトの入力。
Auto-Photoshop-SD
Generate Inpaintをクリックして生成
⑥生成中にプラグインパネルの「Image」「Mask」に画像が読み込まれます。
Auto-Photoshop-SD
image Mask

Outpaintでの生成
Photoshop Betaの開くから拡張する画像を開きます。 拡張する画像は生成画像でなくても構いません。
「プラグインパネル」のoutpaintを選択
レイヤー
output_image
背景

拡張する画像のレイヤーを選択し「切り抜きツール」を使い、画像の領域を拡大します。
拡張生成したい範囲を「選択ツール」で指定。 画像の雰囲気に合わせるため、元の画像を少し重なるように範囲指定します。

「プラグインパネル」からモデルやLoRAを選択。
「Mask blur」などのパラメータを調整。 Batch数やCFG、Seedやサンプラーはお好みで設定します。
拡張範囲に対するプロンプト、ネガティブプロンプトの入力。
Auto-Photoshop-SD
Generate Outpaintをクリックして生成
生成中にプラグインパネルの「Image」「Mask」に画像が読み込まれます。
Auto-Photoshop-SD
image Mask

プロンプト・ライブラリの登録
このプラグインには、長くなりがちなプロンプトをショートカットでコンパクトにまとめる機能が内臓されています。
プラグインパネルの上部メニューからViewer→Prompts Libraryをクリックして開きます。
Auto-Photoshop-SD
Prompts Shortcut:a single word that represent a prompt Key for new prompt shortcut Value for new prompt shortcut Add to Prompt Shortcut
上の入力エリアにKey(呼び出すためのキーワード)を入力
下の入力エリアにValue(プロンプト文)を入力します。
Add to Prompt Shortcutをクリックして登録
Saveをクリックして保存します。
登録したプロンプトは以下のように呼び出します。
Auto-Photoshop-SD
プロンプトの入力エリアにキーワードを入力するだけで、登録プロンプトが反映されます。
今回は、Adobe Photoshop BetaでのStable Diffusionプラグインの基本的な操作を紹介しました。
StableDiffusion webUIについては頻繁にアップグレードが行われており、仕様が変更される可能性があります。最新の情報はGitHubで公開されてるので、そちらを確認してください。
$(function(){$(document).on('click',"summary",function(){var tt=$(this).text();if(tt=="Show Samplers"){$(this).text("Hide Samplers");}else{$(this).text("Show Samplers");}});$(document).on('change',"input[type=range]",function(){var Tc=$(this).val();$(this).prev("b").text(Tc);});var i=0;$("[id^=pp]").click(function(){var tc=$(this).attr('class');$('[id^=pp].active').removeClass('active');if(tc!='active'){$(this).addClass('active');}else{$(this).removeClass('active');}});var tv=$('input[name=g_type]:checked').val();reset(tv);$(document).on('change',"input[name=g_type]",function(){var tv=$('input[name=g_type]:checked').val();reset(tv);});function reset(tv){$(".b_text *[view]").each(function(){var Vw=$(this).attr('view');if(Vw!=null){if(Vw.indexOf(tv)!=-1){$(this).show();}else{$(this).hide();}}});var BtX="";if(tv=="t2i"){BtX="Txt2Img";}else if(tv=="i2i"){BtX="Img2Img";}else if(tv=="inp"){BtX="Inpaint";}else if(tv=="otp"){BtX="Outpaint";}$('.generate span').text("Generate "+BtX);}});