PCの壁紙は横長
なぜ横長の絵を描きたいかというと、PCの画面のアスペクト比が16:9だから、というだけのことですw
さて。メモリ64GBのMac StudioでStable Diffusionしていると、搭載しているメモリの限界なのかStable Diffusionのソフトウェアとしての限界なのか、出力できる画像のサイズには限度がある。単純にピクセル数だけで見ると、メモリ64GBのMac Studioだと1024 x 1024 = 1,048,576ピクセル までは出力できるようで、これを超えない代表的なアスペクト比は以下の通り。
- 3:2、1248 x 832
- 4:3、1176 x 882
- 16:9、1360 x 765
- 11:8、1199 x 872
- 2:1、1440 x 720
これらのピクセル数であれば、例えば画像の下の方だけグチャグチャになるといったことは起きない。ただ、ことはそう単純ではなく、Stable Diffusionは512 x 512という正方形で学習しているため、どんなアスペクト比でもプロンプト通りに出力できるわけでない。おおむね人物を描写している画像ではポートレート、つまり縦長の画像が多く、風景を描写している場合はランドスケープ・横長の画像が多いので、アスペクト比によってSDが出力する画像にも「傾向」がある。
またControlNetもこのアスペクト比によって得手・不得手があるようで、どうすれば横長の絵を意図した通りに出力できるのか検証してみた。
結論
先に結論を書いておく。
ControlNet無 | ControlNet有 | |
---|---|---|
904 x 512(16:9) | プロンプトに従おうとするが画像が乱れる | プロンプトに従おうとするがグチャグチャ |
1024 x 512(2:1) | 概ねプロンプトに従う。 | ほぼ意図通りに出力 |
1280 x 720(16:9) | プロンプトは無視 | ほぼ意図通りに出力 |
1440 x 720(2:1) | プロンプトは無視、グチャグチャ | ほぼ意図通りに出力 |
プロンプト、ControlNetについては共通の設定とし、全てRestore facesはon。
a detailed photo of full body of 1girl, solo, (masterpiece:1.0), (best quality:1.4), (ultra highres:1.2), (photorealistic:1.4), 8k resolution, Canon EOS R5, 50mm, absurdres, ultra detailed, professional lighting
EasyNegative, NSFW, bad anatomy, skindentation, bad hands, extra fingers, (bad_prompt_version2:0.8), paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), (sepia), (deformed iris, deformed pupils, semi-realistic, 3d, render, cg, painting, drawing, cartoon, anime, comic:0.6), watermark, bad_quality
つまり16:9の壁紙を作りたければ、ControlNetの利用は必須で、1440 x 720(2:1)で出力してトリミングするか、1280 x 720(16:9)で出力する。必要であれば、img2imgでupscaleする、のが現時点ではベスト。
904 x 512、ControlNet無
a detailed photo of full body of 1girlというプロンプトには概ね従おうとするが、細部を見ると画像が乱れている。特に画面の右端がグチャグチャになる。
904 x 512、ControlNet有
プロンプト、ControlNet共に従おうとしているが、グチャグチャ。1枚も使える画像が出ない。
1024 x 512、ControlNet無
概ねプロンプトには従う。3枚目のみ、2人出力されている。
1024 x 512、ControlNet有
プロンプト、CotrolNet共によく従っている。4枚目に余計な脚が出力されているが、それ以外は良好。
1280 x 720、ControlNet無
プロンプトは無視、画像の乱れはほぼ無し。
1280 x 720、ControlNet有
プロンプト、ControlNet共によく従っている。2枚目、余計な腕が出力されている。
1440 x 720、ControlNet無
プロンプトは無視される可能性が高く、画像の乱れも見受けられる。
1440 x 720、ControlNet有
プロンプトには概ね従うし、ControlNetも概ね従う。7枚目に余計な脚、9枚目は2人出力されている。