見出し画像

Glaze 2.0 (2.1)のアスペクト比別処理時間

アスペクト比1:1の画像は倍の処理時間を要する

Glaze 2.0導入以降、数百枚の画像に処理を施してますが、その中で画像によって極端に処理時間がかかるものがあると気付きました。それが表題のアスペクト比1:1のイラストや写真といった画像です。720x720、1280x1280、1920x1920など縦横比が同じものですね。

具体的な処理時間1 Ryzen 5 5600G

Ryzen 5 5600G (SMT on CPB off)で2048x2048 (アスペクト比1:1) の画像を処理
Ryzen 5 5600G (SMT on CPB off)で2048x2730 (アスペクト比3:4) の画像を処理

ほぼほぼ2倍の処理時間がかかります。1:1を除けば多少の誤差はありますが1:2・2:3・3:4・9:16など縦長横長になる画像はほぼ横ばいで、アスペクト比が1:1のものだけが妙にかかる状況です。

この原因はわかりませんが、イラスト内容や画像サイズで多少の誤差はあれどここまで大きく離れることは無いので、Glaze 2.0で同アスペクト比の画像を処理するのは多少効率が落ちます。

Glaze 2.1でのCPU処理

Ryzen 5 5600G (SMT on CPB off)で3072x3072 (アスペクト比1:1) の画像を処理
Ryzen 5 5600G (SMT on CPB off)で2304x3072 (アスペクト比3:4) の画像を処理
  • アスペクト比 1:1 53:53→59:20 (1.1倍増)

  • アスペクト比 3:4 26:46→32:04 (1.19倍増)

サイズが微増していますが、検証した限りアスペクト比程の差は無いので参考までに。1.1~1.2倍ほど処理時間増。

具体的な処理時間 GeForce GTX 1060 6GB

GTX 1060 6GBで3072x3072(アスペクト比1:1)の画像を処理
GTX 1060 6GBで2304x3072(アスペクト比3:4)の画像を処理

またこの傾向はCPU処理のみならず、先日導入したGTX 1060 6GBによるGPGPU処理でも変化は無いようで、後者は1:2/2:3/9:16も調べましたがほぼ01:40で横ばいでした。

Glaze 2.1 - GPU処理

GTX 1060 6GBで3072x3072(アスペクト比1:1)の画像を処理
GTX 1060 6GBで2304x3072(アスペクト比3:4)の画像を処理
  • アスペクト比 1:1 3:23 (2.0)→3:38 (2.1) 1.07倍差

  • アスペクト比 3:4 1:42 (2.0)→1:57 (2.1) 1.14倍差

アスペクト比1:1の画像を高速処理する回避策

上下左右を足す

これは意外と簡単で、単純に1:1のアスペクト比でなければ良いようです。例えば800x800の画像であれば、アスペクト比3:2の1200x800になるよう適当な真っ黒な画像でも上下左右に加えて(もしくは横長縦長の真っ黒な画像の中心に写真・イラストを置いて)処理すれば半分の時間で処理が行われます。処理後中心部分だけ切り出して再度PNGで保存すれば良いわけです。

少し手間がかかりますが高速なGPUを利用できない場合には有用かもしれません。高速なGeForceがあるのならスルーして倍の時間かけてもいいんじゃないかな。

Nightshadeには該当しない

GTX 1060 6GBでNightshade 1.0を処理した際

Glazeでそのような挙動があるのであれば、Nightshadeはどうなのかと検証して見ると、1:1/1:2/2:3/9:16といずれも誤差の範囲で1:30~1:40で処理が行われました。これはCPU処理でも同じ傾向です。Glazeでだけ生じる話のようですね。

この記事が気に入ったらサポートをしてみませんか?