Scribble at 2023-10-19 09:16:41 Last modified: 2023-10-19 09:33:40

添付画像

Stable Diffusion Web UI に対応するプラグインとして、Tiled Diffusion という拡張機能がある。img2img にて元の画像に新しく効果を加えるというところまでは標準的な img2img の機能と同じだが、Tiled Diffusion は画像のサイズや縦横比率を変えたり精細化にも対応している。そして、グラフィック・カードの性能も過剰に要求しないため、家庭で Stable Diffusion Web UI を導入している環境でも既存の画像を余計なコストをかけずに拡大・高精細化できる。よって、生成 AI を利用しているデザイン・オフィスも増えつつあるようだが、単純で負荷のかからない条件で小さなサイズの画像を大量に出力してから、よさそうな画像を選別して、改めて Tiled Diffusion で版下や公開ページに使える品質へとアップ・スケールしていたりするようだ。

ただし、どうしても避けられない問題が一つある。それは、出力に要する時間だ。そして、Tiled Diffusion を解説しているウェブ・ページの幾つかは、実際にどのていどの所要時間がかかるかという実例を紹介していないし、Tiled Diffusion を使うと画質にどのような変化があるかも大して詳しく紹介していない。そこで、まず Tiled Diffusion を使うときに原則として注意しておきたい点だけ簡単に書いておこう。

上に添付しているのは、"scenary, nature, outdoor, mountain, forest, sky, clouds, wallpaper, best quality, perspective" という簡単なプロンプトだけで出力した風景画の一部を切り出して並べたものだ(実際の画像サイズつまり縮尺は違うが、同じ範囲を切り出して絵柄のサイズとして同じに揃えてある)。最初に出力した画像の条件は、Steps: 20, Sampler: DDIM, CFG scale: 7, Size: 630x891 となっている。出力が速いサンプリング方法として DDIM を選択し、DDIM はノイズの収束が早いステップで終わるため、ステップ数は15や20もあれば十分だ。サイズはおおよそA版の縦横比にしてある。この縦横比でサイズを大きくしていくと、印刷用の入稿データとして使えるくらいの精細度が得られる。

並んでいる画像で (a) が最初に出力したオリジナルの画像である。(b) 以降は (a) を img2img で処理したものである。次に、(b) は "scale factor"(面積ではなく辺の長さの倍数)というパラメータだけを2に変更した結果である。(c) は scale factor = 4、(d) は scale factor = 8 だ。scale factor が8になると、画像のサイズは 4,992 x 7,104 ピクセルという大きなものになるが、Ryzen 5 + 16 GB RAM + NVIDIA GeForce RTX 2060 6 GB という、Stable Diffusion がかろうじて使える僕の環境でも、問題なく出力できる。次に (e) は出力目的を "latent upscale" に変更した場合、(f) は (e) までの変更に加えて CFG scale を7から10に変更した場合だが、さほど画質は変わっていない。そして最後の (g) になって、ようやく画質が少し向上して葉っぱの陰影もはっきりしてように見えるが、これは (f) までの設定に加えて、Tiled VAE の "Fast Encoder Color Fix" を有効にした場合である。

所要時間は、(a) 7秒、(b) 24秒、(c) 32秒、(d) 1分50秒、(e) 1分41秒、(f) 1分40秒、(g) 2分49秒となっていて、さすがに辺の長さを8倍にすると処理に時間がかかる。それでも、2分以内に処理が終わるのだから、印刷にも使えるくらいの大きさへ変換するには実用的と言って良い所要時間だろう。最後の (g) は Tiled VAE の処理を使っているが、これは Tiled Diffusion で処理すると色が落ちてしまう場合があるからで、もちろん色が変わらなければ使わなくてもよい。

さて問題は、Tiled Diffusion について解説しているサイトの中に、img2img の処理についてもプロンプトを使って品質を向上させようと書いている場合があることだ。これは、特に画像のサイズを大きくすることだけが目的であれば、全く余計なことであり、無駄に所要時間が多くかかるだけなので、僕はお勧めしない。なぜなら、

プロンプト:wallpaper, heroic fantasy art, clean art, professional, colorful, rich deep color, UHD, HDR, 64K, cinema 4D, best quality, artstation, anime key visual, official art, unreal engine, studio quality, OverallDetail, <lora:flat2:-0.5>

ネガティヴ・プロンプト:Negative prompt: easynegative, FastNegativeV2, an7-neg, badquality, nncursedV0, verybadimagenegative_v1.3

という positive / negative 双方のプロンプトを加えてみたら、単純に辺の長さを8倍にした (d) の条件で処理させるだけでも、プロンプトを追加して処理させると、画像を生成するのに30分近くもかかる。これでは、仮にマシンのスペックが高いとしても実用的な所要時間で処理できるとは言えない。もちろん商業的な品質の画像を出力するのに30分の所要時間がかかって何がいけないのか(1970年代のコンピュータなら、もっと少ないデータを処理させても結果が出てくるのに数日もかかった!)という反論もありえるが、実際に出力された画像の品質を眺めると、10倍以上の時間をかけただけの画質になっているとは思えない。これでは元の 630x891 というサイズの画像を単純に拡大するのと大差ない。実際、上で示した画像の一覧は、わざわざ条件を替えて並べているからこそ目立つにすぎないのである。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook