「Stable Diffusionのプロンプトを入力するときに、こんな感じの画像がいい!とイメージは浮かんでいるけど、言語化するのが難しい、、、」
このような悩みをお持ちの方は多いのではないでしょうか?
実は、Stable Diffusionの「img2img」機能を使うことで、完成イメージに近い画像をもとに、AIに新しい画像を生成させることができます。
今回PROMPTYでは、Stable Diffusionの「img2img」とは何か、Stable Diffusionの「img2img」のメリット、Stable Diffusionの「img2img」の使い方、Stable Diffusionのimg2imgではDenoising strengthの値に注意する必要があること、Stable Diffusionのimg2imgで選べる4つのResize mode、Stable Diffusionのimg2imgの「inpaint機能」で部分的な修正を行う方法、Stable Diffusionのimg2imgの「outpainting機能」で書き足す方法などについて解説します。
- 1 Stable Diffusionの「img2img」とは
- 2 Stable Diffusionの「img2img」のメリット
- 3 Stable Diffusionの「img2img」の使い方
- 4 Stable Diffusionのimg2imgではDenoising strengthの値に注意
- 5 Stable Diffusionのimg2imgで選べる4つのResize mode
- 6 Stable Diffusionのimg2imgの「inpaint機能」で部分的な修正を行う
- 7 Stable Diffusionのimg2imgの「outpainting機能」で書き足す
- 8 まとめ
- 9 ~Stable Diffusionで素早く画像生成するには~
Stable Diffusionの「img2img」とは
Stable Diffusionの「img2img」とは、AIに対して参考画像を提供して、そこから新しい画像を生成する方法のことです。
従来は「txt2img」といって、AIに対して文章形式で指令を与えて画像を生成する方法が一般的でした。
img2imgによって、文字による指示のみでは具現化しきれない細かい要素を、初めから存在する写真や画像を活用することで表現できるようになりました。
参考画像(フリー素材)

出力画像

Stable Diffusionの「img2img」のメリット
Stable Diffusionの「img2img」のメリットとして主に、
①テキストでは伝えきれない要素を直接AIに提示できる
②時間と労力の節約
③芸術的な表現力の拡大
の3つが挙げられます。それぞれ解説していきます。
①テキストでは伝えきれない要素を直接AIに提示できる
Stable Diffusionの「img2img」を用いることで、テキストでは伝えきれない色の調子、光と影、形状といった具体的なビジュアル要素をAIに対して直接示すことが可能となります。
これは、AIが生成する画像が、テキストで指示をした時よりも、目指す結果に対してより高精度に対応できることを意味します。
②時間と労力の節約
Stable Diffusionの「img2img」を用いると、AIに対して指示をする際に直接画像を用いるため、テキストによる詳細な説明や指示を省くことができます。
これは時間と労力の節約につながるだけでなく、誤解や誤った解釈を避けることにも役立ちます。
特に、視覚的なタスクが複雑で、具体的な要望がある場合には非常に有用です。
③芸術的な表現力の拡大
Stable Diffusionの「img2img」は、既存の写真やイメージを新たな創造的なコンテクストで再活用することを可能にします。
これは、画像生成の過程で芸術的な表現力が拡大することを意味します。
具体的な視覚的イメージを活用することにより、AIに対して新しい視覚的言語を教え込むのを支援します。
Stable Diffusionの「img2img」の使い方
(1)img2imgで使う画像を用意します。今回は、pixabayで下記のフリー画像を用意しました。

(2)「image2image」のタブをクリックします。

(3)下記画像の赤枠で囲われた箇所に画像をアップロードします。

(4)アップロードが完了すると、下記画像のように画像が表示されます。

(5)まずは、そのままオレンジ色の「Genarate」ボタンをクリックします。すると下記のような画像が生成されました。元の画像と似た雰囲気の画像が生成されましたね。

(6)次に品質系のプロンプトを入力して、画像を生成してみます。
プロンプト
masterpiece,best quality,high-resolution
ネガティブプロンプト
worst quality,low quality,out of focus,human
ネガティブプロンプトには風景だけの画像になるように、humanをと入力しています。

(7)人物の画像も作成してみます。今回はこちらの元画像を使用します。

今回は品質系のプロンプトのみ入力します。
プロンプト(高品質にするためのプロンプト)
masterpiece,best quality,high quality,beatiful
ネガティブプロンプト(低品質を避けるためのプロンプト)
worst quality,low quality,out of focus,bad anatomy,nsfw
(8)すると下記のように同じようなポーズをとった女性の画像が生成されました。

Stable Diffusionのimg2imgではDenoising strengthの値に注意
Stable Diffusionのimg2img機能を使う場合は、Denoising strengthの値に注意しましょう。
Denoising strengthが小さければ小さいほど、元画像を尊重して画像を生成します。
反対にDenoising strengthが大きければ大きいほど、AIが自由度高く画像を生成します。
先ほどの女性の画像を例に見てみましょう。
Denoising strengthが0.2の場合

Denoising strengthが0.4の場合

Denoising strengthが0.6の場合

Denoising strengthが0.8の場合

Denoising strengthが1.0の場合

Stable Diffusionのimg2imgで選べる4つのResize mode
Resize modeとは、img2imgを使うときに、参考とする元画像と、新しく生成する画像のサイズが異なる場合に、どのようにサイズを変更して画像を出力のか決定するものです。
今回は下記のような横幅のサイズが大きい場合に、それぞれのResize modeoでどのように画像を出力するか見ていきましょう。
・元の画像サイズ:Width 512×Height 512
・新しく生成する画像のサイズ:Width 1024×Height 524
①Just resize
「Just resize」はそのまま引き延ばして画像サイズを変更します。
今回の場合は、横幅が元の画像よりも広いので、そのまま横に引き延ばした画像が出力されました。

②Crop and resize
「Crop and resize」は、縦横比を守ったままで元画像をトリミングしてサイズを変更します。
今回の場合は、縦横比を守ったままトリミングをしたので、顔が見切れて状態で出力されてしまいました。

③Resize and fill
「Resize and fill」は、縦横比を維持したままサイズを変更し、その結果できた空白部分を付け足します。
今回の場合は、元画像より広くなった横幅の空白部分を新しく付け足してくれました。
今回はDenoising strengthが0(自由度がない)だったので、元画像を引き延ばしただけになりました。

Denoising strengthが0.8の場合は、このようにAIが想像して書き足してくれます。

④Just resize (latent upscale)
「Just resize (latent upscale)」は、縦横比を変えてサイズ変更を行います。
基本的に、「Just resize」と同じですが、イラストを生成するときのUpscalerだけ異なります。

Stable Diffusionのimg2imgの「inpaint機能」で部分的な修正を行う
Stable Diffusionのimg2imgの「Inpaint機能」は部分的な画像修正をすることができます。
例えば、「画像自体は好みなんだけど指が4本になってしまった、、、」などといった状況で、イラストの特定の部分を微調整することができます。
この機能を使わないと自分の思った通りの画像が出るまで、画像を出力し直さないといけなくなるので、しっかりと使いこなせるようにしましょう。
(1)「Inpaint」タブをクリックし、一部を修正したい画像をアップロードします。(今回は指が不自然な画像を修正します。)

(2)修正したい箇所を塗りつぶします。塗りつぶした箇所だけ修正されるので、少し広めに塗りつぶすことをおすすめします。

(3)下記のプロンプトを入力し、オレンジ色の「Generate」ボタンをクリックします。
プロンプト(両手を胸に置く)
Put your hands on your chest.
ネガティブプロンプト(欠けた指)
missing finger

(4)オレンジ色の「Generate」をクリックすると、下記画像のように自然な5本指の手を胸に置く女性の画像に修正することができました。

Stable Diffusionのimg2imgの「outpainting機能」で書き足す
img2imgの下の方にある「Script」の中から「Outpainting mk2」を選択することで、画像を書き足すことが可能です。

leftのみチェックを入れた場合


rightのみチェックを入れた場合


upのみチェックを入れた場合


downのみチェックを入れた場合


まとめ
今回PROMPTYでは、Stable Diffusionの「img2img」とは何か、Stable Diffusionの「img2img」のメリット、Stable Diffusionの「img2img」の使い方、Stable Diffusionのimg2imgではDenoising strengthの値に注意する必要があること、Stable Diffusionのimg2imgで選べる4つのResize mode、Stable Diffusionのimg2imgの「inpaint機能」で部分的な修正を行う方法、Stable Diffusionのimg2imgの「outpainting機能」で書き足す方法などについて解説しました。
Stable Diffusionの「img2img」を使うことで、完成イメージに近い画像をもとに、自分の好みの画像を作成し、また、細かな調整を加えることができます。
ぜひ今回の記事を参考に、「img2img」を活用してみてください!
~Stable Diffusionで素早く画像生成するには~
Stable Diffusionの画像生成スピードや画像サイズは、グラフィックボード(GPU)の性能によって大きく変わります。
このため、より効率的かつ快適な画像生成を望むユーザーにとって、最適なグラフィックボードの選択が重要となります。
推論処理やLoRAなどの追加学習処理といった大量の計算を効率よく行うためには、12GB以上のVRAMを持つグラフィックボードを選ぶことを強くおすすめします。
2GBや4GBのVRAMを持つグラフィックボードでは、学習プロセスや高解像度の画像生成に支障が出る可能性が高いです。
コスパを重視する方は、RTX 3060を選ぶと良いでしょう。
このグラフィックボードを使えば、Stable Diffusionの画像生成機能を最大限に活用することが可能となります。