「解像度を上げたら、人物が2人になった」
AI画像生成の初心者が必ず一度は遭遇する現象です。これは不具合ではなく、高解像度化の正しい手順を踏んでいないことが原因です。
この記事では、破綻させずに高解像度化するための考え方と設定を解説します。
結論:低解像度で当ててから拡大する
これが唯一の正解です。
- モデルの基準解像度で生成する(SD1.5系: 512×512 / SDXL系: 1024×1024)
- 構図・顔・雰囲気が当たった1枚を見つける
- その1枚を Hires.fix で拡大する
最初から高解像度で生成してはいけません。 理由は3つあります。
- VRAMが足りない —— 解像度を上げると消費量が跳ね上がる
- 時間がかかる —— 試行錯誤の回転数が落ちる
- 構図が破綻する —— これが最も厄介(後述)
なぜ高解像度で直接生成すると人物が増えるのか
これを理解すると、すべての設定に納得がいきます。
AIモデルは、特定の解像度の画像で学習されています。
- SD1.5系 → 512×512 前後
- SDXL系 → 1024×1024 前後
この基準から大きく外れた解像度(たとえばSD1.5で1024×1536)を指定すると、AIは「学習したことのない広さの画面」に直面します。そして**「この広さなら被写体を複数置くのが自然だろう」と解釈**し、人物を2人、3人と生やします。
顔が2つできる、体が縦に引き伸ばされる、といった現象もすべて同じ原因です。
だから、基準解像度で生成してから拡大する必要があるのです。
Hires.fix の設定
WebUIの「Hires. fix」チェックボックスを有効にすると、次の項目が現れます。
| 項目 | 意味 | 推奨値 |
|---|---|---|
| Upscaler | 拡大方式 | R-ESRGAN 4x+ Anime6B(イラスト)/ R-ESRGAN 4x+(実写) |
| Hires steps | 拡大後の描き込み回数 | 0(=Sampling stepsと同じ)または 10〜20 |
| Denoising strength | どれだけ描き直すか | 0.3〜0.5 |
| Upscale by | 拡大倍率 | 1.5〜2.0 |
Denoising strength が最重要
Hires.fixにおいても、結果を決めるのはこの値です。
| 値 | 挙動 |
|---|---|
| 0.2以下 | ただ拡大されただけ。ぼやける |
| 0.3〜0.5 | ディテールが増える。実用域 |
| 0.6以上 | 描き直しすぎ。人物が二重になる・別人になる |
0.4から始めてください。 「もっとディテールを」と上げていくと、必ずどこかで構図が壊れます。
倍率は欲張らない
Upscale by は 1.5〜2.0倍に留めるのが安全です。
いきなり4倍を狙うと、VRAMを食い尽くすうえ、破綻のリスクも上がります。さらに大きくしたい場合は、Hires.fixで2倍 → 生成後にimg2imgでもう一段拡大という段階的なアプローチが確実です。
アップスケーラーの選び方
| アップスケーラー | 向き | 特徴 |
|---|---|---|
| R-ESRGAN 4x+ Anime6B | イラスト・アニメ | 線を保ったまま拡大。定番 |
| R-ESRGAN 4x+ | 実写 | 自然な質感で拡大 |
| Latent | 汎用 | ディテールは増えるがDenoisingを高めにしないとぼやける |
| SwinIR / LDSR | 汎用 | 高品質だが遅い |
**迷ったら R-ESRGAN 4x+ Anime6B(イラスト)か R-ESRGAN 4x+(実写)**を選んでください。Latent系はDenoisingとの相性がシビアで、初心者が最初に触ると「ぼやける」で詰まりがちです。
VRAMが足りないときの回避策
高解像度化はVRAMを大量に消費します。エラーが出たら、次の順で試してください。
- 拡大倍率を下げる(2.0 → 1.5)
- 元の解像度を下げる(生成時のサイズを小さく)
- Hires stepsを減らす
--medvramオプションを付ける- Hires.fixを使わず、生成後にimg2imgで段階的に拡大する
VRAM別の詳しい対処は VRAM別 最適化ガイド にまとめています。
img2imgで段階拡大する方法
Hires.fixが重すぎる環境では、こちらのほうが現実的です。
- 通常生成で1枚出す
- img2imgに送る
- サイズを1.5倍に設定
- Denoising strength 0.3〜0.4
- 生成 → さらに拡大したければ繰り返す
一度に大きくせず、小刻みに複数回拡大するのがコツです。
高解像度化と顔の破綻
高解像度化すると、顔の粗が余計に目立ちます。
拡大前は小さくて気にならなかった目の左右差や口元の歪みが、拡大によってはっきり見えるようになるためです。
対策はシンプルで、ADetailerを併用することです。ADetailerガイド の設定を入れておけば、高解像度化の過程で顔が自動的に描き直され、破綻が消えます。
それでも残った崩れは inpaint で個別に潰してください。
推奨ワークフロー(まとめ)
1. 基準解像度で生成(SD1.5:512x512 / SDXL:1024x1024)
→ seedを振って構図の当たりを探す
2. 当たった1枚のseedを固定
3. Hires.fix を有効化
- Upscaler: R-ESRGAN 4x+ Anime6B
- Upscale by: 2.0
- Denoising: 0.4
4. ADetailer を有効化(顔・手)
5. 生成
6. 残った破綻を inpaint で修正
この順番を守るだけで、破綻率は大きく下がります。
Denoising strength が最重要パラメータ
Hires.fix で唯一いちばん重要な数値が Denoising strength です。ここを理解していないと、いつまでも安定しません。
これは「拡大後に、元の絵をどれだけ描き直すか」を決める値です。
| 値 | 何が起きるか |
|---|---|
| 0.1〜0.2 | ほぼ拡大だけ。元の絵は保たれるが、ぼやけたまま |
| 0.3〜0.5 | 実用域。ディテールが足され、構図は保たれる |
| 0.6〜0.7 | かなり描き直す。細部が元と変わり始める |
| 0.8以上 | 別の絵になる。人物が増える・構図が崩れる |
迷ったら 0.4 から始めてください。
- ぼやけている → 少し上げる(0.5〜0.55)
- 構図が変わってしまう/人が増える → 下げる(0.3〜0.35)
「Hires.fixをかけたら別人になった」という失敗は、ほぼ Denoising strength の上げすぎです。
倍率は 1.5〜2.0 倍まで
Upscale by を 3倍・4倍と一気に上げるのは失敗のもとです。
- 拡大幅が大きいほど、モデルが「埋める」情報量が増える
- その結果、元になかったものを描き足す(人物の増殖、余計な手足)
- VRAMも急激に食う(VRAM最適化ガイド)
大きくしたいなら、2倍を2回に分けてください。1回目でHires.fix、2回目は Extras タブや img2img でのアップスケールを使うと、破綻が起きにくくなります。
顔と手は Hires.fix では直らない
ここを誤解している人が非常に多いのですが——
Hires.fix は全体を均等に拡大・描き直す処理です。画面に占める割合の小さい顔や手には、十分な計算が回りません。
引きの構図では、拡大しても顔は崩れたままです。
顔と手は、専用の処理で直します。
**正しい順番は「Hires.fix → ADetailer → inpaint」**です。この順を守らないと、いつまでも顔が崩れます。
失敗パターン早見表
| 症状 | 原因 | 対処 |
|---|---|---|
| 人物が2人生える | 基準解像度を大きく超えて直接生成 | 基準解像度で生成しHires.fixで拡大 |
| 拡大したのにぼやける | Denoisingが低すぎる/Latent使用 | 0.4に上げる/R-ESRGANに変更 |
| 拡大後に別人になる | Denoisingが高すぎる | 0.5以下に下げる |
| 顔の粗が目立つ | 拡大で破綻が露出 | ADetailerを併用 |
| VRAMエラー | 倍率が高すぎる | 倍率を1.5に。段階拡大に切替 |
まとめ
- 低解像度で当てて、Hires.fixで拡大する(唯一の正解)
- 高解像度で直接生成すると人物が増える(モデルの学習解像度から外れるため)
- Hires.fixの Denoising は0.4から。上げすぎると二重になる
- アップスケーラーは R-ESRGAN系が無難
- ADetailerを併用して、拡大で露出する顔の破綻を潰す
環境構築から見直すなら Stable Diffusion WebUI導入ガイド、パラメータの意味は Sampler・CFG Scale・Stepsの最適値 を参照してください。





