Stable Diffusionで生成した画像に埋め込まれているprompt等設定パラメータを確認する方法とControlNetによるポーズ設定

画像処理(解像度、ジャギー処理など)

「Stable Diffusion」で作成したお気に入り画像の設定保護

 AI画像を作るときに便利な「Stable Diffusion」。このプログラムで生成したpng画像には、Stable Diffusionの設定情報が自動的に書き込まれます。(正確には、「Stable Diffusion web UI」です。)

 ところで、この設定情報は、画像のプロパティ(画像を右クリック ⇒ プロパティ ⇒ 詳細、といういつもの方法)では閲覧できません。

 気に入ったAI画像が生成できたときなど、この設定情報をメモしておきたい、という場合もあるでしょう。というのは、この情報は簡単に失われてしまうからです。たとえば、Photoshopに読み込み、そのまま、別名で保存してもこの情報は失われます。また、PNG ⇒ JPG 変換しても失われてしまいます。

 この設定条件(promptやSeed)がないと、同じ画像を作るのはほぼ不可能です。このため、お気に入りの画像であればあるほど、この設定情報は何らかの形で保存しておく必要があります。

通常、設定情報は「Stable Diffusion」で確認する

 設定情報の確認は、「Stable Diffusion」が開いているのであれば、[PNG Info] タブを開き、画像ファイルをドロップするだけで確認できます。しかし、「Google Colab」を使って「Stable Diffusion」を利用している人にとって、この方法はめんどくさい。「Google Colab」を利用できる時間に制限があるため、こんな作業のために「Stable Diffusion」を起動したくはありません。起動に10分以上かかります。

設定パラメーターの確認方法 その1(IrfanView)

 パラメーターを閲覧するだけなら簡単です。IrfanViewでできます。

 「Stable Diffusion」で生成したAI画像をIrfanViewで開きます。

 IrfanViewのメニュー、[表示] ⇒ [HEXビューを表示]。
 開いた画面の冒頭にある「tEXtparameters.」 の後が設定パラメーターになります。 

 この方法は、設定情報の有無を確認するには便利ですが、設定情報のコピーはできません。

設定パラメーターの確認方法 その2(TweekPNGを使う方法)

 TweekPNGというソフトを使うと、設定情報の確認だけでなく、コピーしたり、修正したりできます。TweekPNGは、PNG形式のファイルを解析してフォーマット構成要素に関する詳細な情報を取得・編集できるツールです。なお、JPG形式ファイルには使えません。

 TweekPNGを起動し、そこに画像ファイルをドロップすると、下の画面のように表示されます。

 二行目の「tEXt」の部分に今回の目的の設定情報が書き込まれています。これをクリックすると、設定情報をコピーしたり、修正したりできます。

 TweekPNGはフリーソフトで、「TweakPNG v1.4.6 (7 Sep 2014)」が最新版のようです。リンクから簡単に入手できます。スタンドアローンなので、インストール不要で使えます。

 TweekPNGがあれば、Promptの修正が可能です。なぜ、修正するのかというと、おかしな記述がある場合があるからです。つまり、無効な記述や間違った記述などで、そのまま公開するのは恥ずかしい。

設定パラメータは全て書き込まれている

 「Stable Diffusion」で生成したPNG画像には、生成で用いたパラメータが全て書き込まれており、その値を用いれば同じ画像を再生成することも可能です(ちょっと違う画像が生成されることもあります)。

 TweakPNGで[tEXt]の行をクリックするとパラメータが表示されます。下の画像のサムネイルは、ツールバーの[Tools]から表示できます。

Prompt, Negative Prompt, Steps, Sampler, CFG, Seed, Face restoration, Size, Model hash, Model, Denoising Strength, Clip skip, Hires upscale, Hires upscaler 

 上の例では、[Face restoration]と[Hires upscale]が表示されていることから、[Restoration faces]と[Hires. fix]の設定にチェックが入っていることが分かります。

 この方法を知っていると、類似の画像を生成するときにとても便利です。たくさんのModelを使って作業をしていると、どのModelで生成したのか分からなくなりますが、これも確認できます。上の例では、「Model: Basil_mix_fixed」ですね。

 また、ネット上にアップされている画像の設定パラメータを確認できるため、同様の画像を生成することもできます。また、プロンプトの書き方の参考にもなります。

消えてしまった設定情報を再度書き込む

 「Stable Diffusion」で作成したAI画像を加工しようとすると、設定情報が消えてしまうことがあります。というか、ほぼ、確実に消えてしまいます。たとえば、画像サイズを変更して、png形式で保存。これで、設定情報は消えます。

 この消えてしまった情報を再度書き込み、残しておきたい、という場合、TweekPNGを使えば、書き込み可能です。

 TweekPNGのメニュー ⇒ [Insert] ⇒ [tEXt/zTXt/iTXt(Text)]で書き込みます。

JPGにも設定情報を書き込みたい

 「Stable Diffusion」で作成したAI画像はpng形式で保存されます。しかし、この画像をそのまま利用することは希で、高解像処理したり、部分修正したりして、最終的には、jpg形式にするのが一般的かと思います。しかし、作業の過程で設定情報は失われてしまうし、そもそもjpg形式にした時点で完全に失われています。

 jpg画像を最終としたいのであれば、そのファイルに設定情報が書かれていると後になって何かと便利です。

 そこで、jpgに設定情報を書き込みます。

 jpg形式のファイルに情報を書き込むには、IrfanViewを使うのが手っ取り早い。

 jpg画像をIrfanViewで開き、キーボードの「I」をクリックします。すると、画像のプロパティ画面が開きます。たいていのファイルには、左下に[IPTC情報]のアイコンがあると思うので、それをクリックし、適当な場所に情報を書き込み、保存します。もし、[IPTC情報]のアイコンがない場合には、右下にある[コメント]に書き込みます。

Webサービスで設定情報を確認する方法

 Web上の無料サービスを使って設定情報を確認することも可能です。

 無料画像加工サービス「CMAN」というサイトを利用すれば、AI画像に書き込まれた設定情報を閲覧、コピーできます。

モデルのポーズなどはControlNetで画像を指定

 Promptの記述だけで思ったようなポーズを作るのはほぼ不可能です。こんな時は、ControlNetを使って画像からポーズを指定する方法がうまくいくようです。

 「github.com」で公開されているcamenduruさんの『stable-diffusion-webui-colab』で[stable]、または、[nightly] ボタンでGoogle Colab にStable Diffusion をインストールすると、ControlNet が使えます。

(この記載の意味が分からない方は「AIを使った画像生成と動画生成をやってみる」参照)

下の例では、DesignDollでポーズを作り、少女を表示しています。

 その下の空飛ぶ猫は、AIが認識できない典型的な構図です。これも、飛んでいる猫の画像から生成できました。結構綺麗に仕上がっていると思います。

 和服姿の女性が正座している構図もAIでは作ることができないポーズの一つです。同じようにして作ったのが下の画像です。とてもAIが作ったとは思えない画像に仕上がっています。指も綺麗だし。

 では、使い方を説明します。

 Stable Diffusion の画面を下の方に「ControlNet」と書かれた部分があるので、これを展開。

① ポーズを参照する画像をドロップ、② [Enable] にチェックを入れ、③[Preprocessor] を [canny]、④ [Model] を [control_canny-fp16] を選択。これでセット完了です。

 あとは、Promptに短い文を書き込み、[Generate] ボタンで生成します。

 更に詳しい使い方を知りたい方は、『Stable Diffusion Art』で詳細に説明しています。

 

 AI画像作成に関心のある方は、過去記事『AIを使った画像生成と動画生成をやってみる』もご覧下さい。

 この記事は、なんでも保管庫3に書くはずだったのですが、ここにアップしてしまいました。