ローカルの画像生成AIを使って、A0ポスターサイズ、抱き枕サイズまで画像をアップスケールするやり方
350dpiのA0(11,589 x 16,384)、pixivFactoryの抱き枕カバー推奨サイズ(5,217 x 16,044)までのアップスケールを私の場合どうやっているのかを解説していきます
直接貼られている画像はnote側でめちゃくちゃ圧縮されてるはずですので、解像度の具合は最後の方に貼ったリンク先から確認してください
生成環境
stable-diffusion-webui-forge f0.0.17v1.8.0rc-latest-276-g29be1da7
GPU 3060(12G)
メモリ32G
使用checkpoint ponyベースマージモデル(SDXL) "Hyper-SDXL-8steps-lora"をマージしているので、t2iをCFG1.5 sampling steps 12で生成できる状態です
必要な拡張、モデル
checkpointは好みの物を使用
肌・瞳の質感はかなりcheckpointの影響を受けます
元画像をローカルで出力しているなら同じモデルで問題無いと思います
controlnet
forgeに最初から入ってたはず
tileを使用し、モデルはbdsqlsz_controlllite_xl_tile_anime_α
ここは使用するローカルモデルとの相性もあると思うので各々いい感じのやつを探してください
SD upscaler
i2iタブのscript内にあるやつ
たしかこれもforgeでは最初から入ってたはず
使用モデルは4x-UltraSharp
ADetailer
顔を自動で検出してinpaintしてくれる拡張機能
最初のアップスケールで一回だけ使ってます
生成サイズ
A0は768 x1,024で生成したものを最終的に12,288x16,384までアップスケールしてから11,589x16,384でトリミングします。
抱き枕は512x1,536で生成したものを最終的に5,528x16,584までアップスケールしてから5,217x16,044に縮小、トリミングします。
![](https://assets.st-note.com/img/1729487013-zVSgQhcq8CrkdBI3DXKpO0sF.png?width=1200)
2倍にする
まずは生成したものをi2iで2倍にします。(長辺がA0で1024→2048、抱き枕で1536→3072)
Denoising strength は0.17でやってます。これはサイズを変更せずにi2iをするとわかるんですが、画像に変化が起きる最低値を取っています。ただ、この値はモデルによって変わる可能性があると思うので、各自で使用モデルの最低値を求めて下さい。
![](https://assets.st-note.com/img/1729487338-LtyP1Qgw3TJVD8BhFkURHfvX.png?width=1200)
0.16までは全ピクセル一致で変化がありません
![](https://assets.st-note.com/img/1729491208-6XuMQAp7ez2voE5OslV4m1dK.jpg?width=1200)
よーく見るとホントに薄っすらと変化がありますがおそらくi2i前のアップスケール時のseed差による変化だと思われます。画像サイズに変更がない場合全ピクセルで完全に一致します
![](https://assets.st-note.com/img/1729491184-45zu8vPO2eKdH1U9objxIXyA.jpg?width=1200)
0.01の差で一気に画像に変化が現れます
i2iの設定
![](https://assets.st-note.com/img/1729496669-7gqa1cnyDBSXHLVm986xiUpP.png?width=1200)
controlnet の設定
![](https://assets.st-note.com/img/1729496393-KEI8whHdyzSC72bRZfPVt0Jv.png?width=1200)
ADetailerの設定
![](https://assets.st-note.com/img/1729496487-i5uIBsfPCV0ZmwJAGq2T9KSp.png?width=1200)
SD upscalerはまだ使いません
![](https://assets.st-note.com/img/1729494519-D7OZSFPRVqglKYvLkXWawri8.jpg?width=1200)
2倍にする
更に倍します。(長辺がA0で2048→4096、抱き枕で3072→6144)
controlnetの設定は引き続き同じもので、Adetailerはオフに、ここからはcontrolnetとSD upscalerだけを使用していきます。
また、適時気になる所は修正しておきます。ここでは耳に生まれたピアスと左手、右手指周辺が気になるで修正しておきました。
i2iの設定
![](https://assets.st-note.com/img/1729497222-quFJpZ3kDHUEYKxrzom9NlQ0.png?width=1200)
SD upscaler の設定
![](https://assets.st-note.com/img/1729497284-4SH92LpFQvtqN0D6yJTRdzbP.png?width=1200)
scale factorはベース画像を何倍の大きさにするかの設定です。デフォルトで2になってます。
SD upscalerを使用する場合、i2iの設定にあるresize to/resize byの値でタイルサイズが決まります。
上記の設定だと1536x2048のベース画像をSD upscalerで2倍の3072x4096に拡大して、1536x2048の大きさのタイルで分割してi2iをかけていくという処理になります。このタイルサイズを大きくし過ぎると、VRAMが不足して共有メモリを使い始めて、めちゃくちゃ処理に時間がかかるようになります。なので私の環境ではタイルサイズはずっと1536x2048でやっています。
![](https://assets.st-note.com/img/1729497609-8vGFePrKk03zEmYadVCslOLb.jpg?width=1200)
2倍にする
ひとつ前と同じ設定で更に倍します(長辺がA0で4096→8192、抱き枕で6144→12288)
![](https://assets.st-note.com/img/1729498229-gfN2EeLbdsZm14hWl78cICw5.jpg?width=1200)
この辺りで顔を切り抜いてinpaintでさらに高精細化を図ります。
なんの根拠もないんですが、体感的には”1024x1024で切り抜いた範囲に両目がギリギリ収まっている状態”で瞳を等倍inpaintするのが一番いい感じに仕上がる気がしています。なので、画像に対しての顔の大きさで変わってきますが、ここか一個前の段階で目周りにinpaintをかけます。
![](https://assets.st-note.com/img/1729498730-USN4MIiK6goZvYzsnBdCpyWe.jpg?width=1200)
![](https://assets.st-note.com/img/1729498807-zjbrmFBQg3VWdM48I7XJeD6h.jpg?width=1200)
![](https://assets.st-note.com/img/1729498931-O8NI1v0zM3JtaZ54fghbYiDF.png?width=1200)
soft inpaintingはONだけど中身の設定はデフォルトのまま
![](https://assets.st-note.com/img/1729499074-PM4ZH2ulhvRpe1qJQXDtIsSL.jpg?width=1200)
2倍にする(1.35倍にする)
更に2倍i2iです。抱き枕の場合最後は1.35倍でi2iです。
(長辺がA0で8192→16384、抱き枕で12288→16584)
controlnet tile+denoising0.17であれば、よほどSD upscalerのタイルの継ぎ目が出てしまうという事はないのですが、タイツ等で細かい模様がある場合、継ぎ目が出てしまう事があります。そういう場合はSD upscalerのTile overlapを256にすれば、だいたい綺麗になります。(生成速度は無視することとする)
12288x16384の画像はnote君にアップロードすることすら拒否されたので下に今回使用した各サイズの画像といっしょにまとめて置いておきました。
比較用に1536x2048からwifu2xで12288x16384まで拡大した画像も入ってます。
トリミング
あとは適当な画像編集ソフトでA0なら(11,589 x 16,384)、pixivFactoryの抱き枕カバー推奨サイズなら(5,217 x 16,044)にトリミング、縮小したりして調整して完成です。そこそこ時間はかかるけど3060でもOOMせずに超高解像にできるので、皆さん気軽に16000pxの壁を超えるといいんだよ。