txt2imgのパラメータに続きimg2imgのパラメータも調べていこうと思います。
img2imgはベースとなる画像からプロンプトを組み合わせて新しい画像を生成するものです。
txt2imgは入力がプロンプトだけですがimg2imgは画像が入力に加わります。
できることが多くかなり楽しいです。
検証環境
毎度説明するのもアレですが僕の検証環境は以下の通りです。
もうちょい良いの買えばよかった。
内容 | 詳細 |
---|---|
OS | Windows 11 Pro |
CPU | 12th Gen Intel(R) Core(TM) i5-12400 2.50 GHz |
メモリ | 32.0 GB (31.8 GB 使用可能) |
GPU | NVIDIA GeForce RTX 3060 12GB |
Stable Diffusion | https://github.com/CompVis/stable-diffusion |
使用モデル | v1-5-pruned-emaonly.ckpt https://huggingface.co/runwayml/stable-diffusion-v1-5 |
パラメータ一覧
txt2imgと共通のパラメータ
img2imgのパラメータの大半がtxt2imgと共通です。
txt2imgで使用している値がimg2imgでもそのまま適用できるイメージです。
PLMSは未実装のようでエラーが発生します。(2022/10/30時点)
パラメータ | 固有(〇:img2imgのみ -:txt2imgと共通) | 簡単な説明 |
---|---|---|
prompt | – | 描画用文字列です |
outdir | – | 結果の出力先です |
skip_grid | – | 個別のサンプルのみの出力でグリッドを保存しません。 多くのサンプルを評価するときに役に立ちます。 |
skip_save | – | 個別のサンプルを保存しません。速度測定用。 |
ddim_steps | – | DDIMサンプリングのステップ数 おそらく指定しても効果ない |
plms | – | PLMSサンプラーを使用する ※CompVis/stable-diffusionは未実装っぽい(2022/10/30時点) |
fixed_code | – | 有効の場合、サンプル全体で同じ開始コードを使用します |
ddim_eta | – | eta=0.0 は決定論的サンプリングに対応します |
n_iter | – | 出力する回数 |
C | – | 画像の幅、ピクセル空間 |
f | – | ダウンサンプリング係数 |
n_samples | – | 特定のプロンプトごとに生成するサンプルの数。別名バッチサイズ。 |
n_rows | – | グリッド1行に含まれる画像の数(デフォルト:n_samplesの値) |
scale | – | 無条件ガイダンス スケール: eps = eps(x, empty) + scale * (eps(x, cond) – eps(x, empty)) |
from-file | – | 指定されている場合、このファイルからプロンプトを読み込みます |
config | – | モデルを構築する config へのパス |
ckpt | – | モデルチェックポイントのパス |
seed | – | シード (再現可能なサンプリング用) |
precision | – | この精度で評価する "full" または "autocast" |
上記の内容については、
txt2imgと同じであるため以下をご参照ください。
Stable Diffusion txt2imgのパラメータ一覧
img2img固有のパラメータ
img2img固有のパラメータは以下の2点です。
パラメータ | 固有(〇:img2imgのみ -:txt2imgと共通) | 簡単な説明 |
---|---|---|
init-img | 〇 | 初期ファイルが保存されているファイルパス |
strength | 〇 | ノイズ/ノイズを出さないための強さ。 1.0はPromptを優先し入力画像をがっつり変更します。 |
init-img
ベースとなる画像のファイルパスを指定します。
色味や構図などが反映されるという印象です。
概要
項目 | 詳細 |
---|---|
コマンド例 | python scripts/img2img.py –prompt "cat" –init-img "C:\example.jpg" |
形式 | 文字列 |
デフォルト値 | 指定なし |
ヘルプ | path to the input image |
ヘルプ(日本語) | 入力画像のファイルパス |
サンプル
Command->python scripts/img2img.py --prompt "cat" --ddim_steps 75 --n_iter 2 --seed 1 --init-img "C:\example.jpg" --strength 0.6
なかなか斬新です。
ベースの画像は変えずプロンプトを変更してみます。
プロンプトは以下からとってきました。
https://lexica.art/?prompt=bd40c03c-026b-46fe-8d0f-c9825ace2b27
President Donald J Trump as a Greek god, detailed face, gorgeous, amazing, muscular, fit, very muscular male body, Caesar victorious, proud Emperor , intricate, highly detailed, digital painting, artstation, concept art, sharp focus, illustration, art by greg rutkowski and alphonse mucha
strength
strengthはどれくらいプロンプトを優先するかというものです。
0を指定すると元の画像そのままです。0.1程度でもほぼ変わりません。
一方で1.0を指定するとプロンプトを完全に優先します。
ただし1.0でも元の画像の色味などは保持されます。
概要
項目 | 詳細 |
---|---|
コマンド例 | python scripts/txt2img.py –outdir "C:\output" |
形式 | 文字列 |
デフォルト値 | outputs/txt2img-samples |
ヘルプ | strength for noising/unnoising. 1.0 corresponds to full destruction of information in init image |
ヘルプ(日本語) | ノイズ/非ノイズの強さ。1.0は初期画像を完全に壊して作り変えます |
サンプル
では0.1~1.0まで0.1刻みでStrengthを変更していきます。
まずこちらをご確認ください。
オープンワールドのゲームで出会ったらドキドキするたたずまいです。
せっかくですのでこいつらをキノコにしてやります。
使用するのはこちらのプロンプト。
https://lexica.art/?q=mashroom&prompt=0139ae37-aa5e-44fb-af5e-6d8e2c50da01
a humanoid mushroom creature, plant filaments, humanoid shape, full body, photorealistic, 4 k, octane render, cinematic lighting, artistic photography, insanely detailed and intricate
ではどうぞ。
ちょっと想像してたのと違いました。
が、最終的には倒すのも億劫な雑魚感が出ています。
詳細
少ししっかり見ていきます。
元画像(←)とStrength=0.0(→)の比較
まるっきり同じに見えますが実はほんの少しノイズがのっています。
Strength=0.3
ノイズが多くなるだけでさほど画像に変化はありません。
Strength=0.4
背景を森に変えてきました。
巨大ロボ感はなくなっています。ちょっと勝てそう。
Strength = 0.6
急激に弱そうになりました。
構図や色味は維持されつつも結構キノコです。
Strength = 0.8
キノコだ。うん、キノコ。
Strength = 1.0
何となく構図は維持されていますが、全く別物ですね。何これ?
どこら辺を使うかは好みです。
まとめ
img2imgにもさまざまなパラメータがありますが以下の2つの調整程度で色々楽しめます。
- init-img
- strength
それ以外のパラメータは以下のページをご参照ください。
Stable Diffusion txt2imgのパラメータ一覧
おわり
コメントを残す