今日はHires.fixという手法を使って画像を高解像度化してみようと思います。Hires.fixはStable Diffusionモデルから生成された画像を高解像度にアップスケールする手法の一つです。この手法を用いることで、短い時間で高画質な画像を生成することが可能になります。
今回の記事では、Hires.fixが何かについて簡単に調べてみた後、実際にComfyUIでHires.fixを使って画像を生成しようと思います。
Hires.fixとは
Stable Diffusionのhires.fixは、概要でも説明した通り生成された画像の高解像度化を目的とした機能です。通常、生成された画像は解像度が比較的低く、ディテールが不足していることがあります。hires.fixは、そのような画像をより高解像度で細部まで鮮明にするための手法です。
処理の流れ
- 低解像度画像の生成:
- 通常の生成プロセスを通じて低解像度の画像を生成します。
- アップスケーリング:
- 特定のアルゴリズムを使って生成された低解像度の画像を高解像度に拡大します。
- ディテールの補完:
- 2の画像に対して、1と同じモデルとプロンプトを使用しimage2imageします。
メリット
- 高解像度な画像の生成にかかる時間を短縮
- ディテールが作り込まれた画像を生成
生成手順
ComfyUIのインストール
こちらの記事を参照ください。
ワークフローの作成
理解のためデフォルトのワークフローから自分で追加していきます
Load Default
して、ワークフローをデフォルトに戻しますUpscale Latent
ノードとKSampler
ノードを追加します- 図のようにつなげます
- 右側KSamplerのmodel, positive, negativeは左側KSamplerモデルが繋いでるノードと同じノードにつなぎます
生成する
upscale latent
ノードの幅と高さをEmpty Latent Image
ノードで設定している幅と高さより大きく設定する- 今回はとりあえず1024x1024に設定しました
- その他モデルやプロンプトなどを好きに設定して
Queue Prompt
を押す。
生成結果
以下にhires.fix前後の画像を貼っておきます。特に目の部分が顕著ですが、高解像度化しながらディテールも追加されているのがわかると思います。
hires.fix前
hires.fix後
最後に
実際に作成してみたワークフローを見るとHires.fixの処理の流れが見えてきます。
- まず、一個目のKSamplerで低解像度の画像を生成する。
- 次に、Upscale Latentでアルゴリズム(upscale_method)を使って解像度を上げる。
- 最後に、2で作成した画像を入力として、2個目のKsamplerで高解像度の画像を新しく生成する。
前の項で説明した通りの流れになっていることがわかると思います。このようにワークフローから仕組みが見えてきやすいのが、ComfyUIを使うメリットの一つだと思っています。
画像生成に関連する他のテクニックを試したい方は下記のリンク集をぜひご活用ください。