ImageScale

(comfyanonymous/ComfyUI)
image/upscaling/Upscale Image
pixel 画像を拡大/縮小/切り取りする

古典的な画像処理アルゴリズムを使って、pixel 画像を拡大/縮小します。 拡大率指定版の ImageScaleBy もあります。

機械学習技術を使う ImageUpscaleWithModel と比較すると、以下のような特徴があります:

  • 拡大/縮小後のサイズを pixel 単位で指定できる。
  • かなり速い。 処理はほぼ一瞬。
  • 結果が予想できる。 ボケる (bilinear, bicubic) かジャギる (nearest-exact, area) かのどちらか。 不自然な副作用が無い。
  • 拡大時に細部を描き込んだりすることはできない。
upscale_method

具体的な拡大/縮小法を指定します。

拡大時:

  • nearest-exact: 単純に、一番近い元画像のピクセルをそのままコピーする。 元のドットがそのまま残り、ジャギーの目立つ画像になる。
  • bilinear: 元画像で近いピクセル 4点を選び、距離に応じた平均を取る。 具体的には、上の 2点で線形補間、下の 2点で線形補間、最後にそれらの間で線形補間する。 ボケた画像になる。 異方性のアーティファクトが目立つことがある。
  • bicubic: bilinear と同じ手順だが、こちらは線形補間ではなく 3次スプライン補間を使う。 ボケた画像になる。
  • area: nearest-exact と同じ。

縮小時:

  • nearest-exact: 単純に、一番近い元画像のピクセルをそのままコピーする。 モアレ模様が発生したり、ポツポツと不自然な点が残ったりすることがある。
  • bilinear: 縮小にも関わらず拡大時と同じ動作をする。 結果として、モアレ模様が発生したり、ポツポツと不自然な点が残ったりすることがある。
  • bicubic: 縮小にも関わらず拡大時と同じ動作をする。 結果として、モアレ模様が発生したり、ポツポツと不自然な点が残ったりすることがある。
  • area: adaptive average pooling を使って縮小を行う。 具体的には、元画像のピクセルを縮小画像のピクセルに対応させて平均を取る。 元画像側オーバーラップを 1以下となるように調整して、無用なボケを防ぐ。 モアレ模様などの問題が発生しにくい。

関連

使用例

2 段の Hires. Fix (→高解像度の画像を出したい (Hires. Fix の基本形))