Stable Diffusion 設定テンプレート


## 🔧 Stable Diffusion 設定テンプレート（Promptとパラメータ）

```text
📌 Prompt（正のプロンプト）:
1girl, full body, 3D anime style, realistic lighting, beautiful detailed face, dynamic pose, high-quality render, soft shadows, smooth skin, large eyes, expressive, colorful background

📌 Negative Prompt（負のプロンプト）:
lowres, bad anatomy, worst quality, blurry, extra limbs, fused fingers, missing hands, deformed face, glitch, jpeg artifacts, watermark, cropped

📌 モデル:
Anything v4.5 もしくは anime-3D-render-style

📌 LoRA:
3D_anime_figure_v1 (weight: 0.7〜1.0)

📌 画像生成パラメータ:
- Steps: 40  
- Sampler: DPM++ 2M Karras  
- CFG Scale: 8  
- Resolution: 768x1152  
- Seed: -1（もしくは任意の固定値で再現性）  
- Denoising Strength: 0.6（※img2img使用時のみ）
```

---

## 🧩 コマンド形式（WebUI・API・自動化用）

```json
{
  "prompt": "1girl, full body, 3D anime style, realistic lighting, beautiful detailed face, dynamic pose, high-quality render, soft shadows, smooth skin, large eyes, expressive, colorful background",
  "negative_prompt": "lowres, bad anatomy, worst quality, blurry, extra limbs, fused fingers, missing hands, deformed face, glitch, jpeg artifacts, watermark, cropped",
  "sampler_name": "DPM++ 2M Karras",
  "steps": 40,
  "cfg_scale": 8,
  "width": 768,
  "height": 1152,
  "seed": -1,
  "denoising_strength": 0.6,
  "model": "anime-3D-render-style",
  "lora": {
    "name": "3D_anime_figure_v1",
    "weight": 0.9
  }
}
```

---

## 💡補足

* `Steps` や `CFG Scale` を変更すれば画風が大きく変化します。
* LoRAの`weight`を調整することで3D感の強度を制御可能です（推奨: 0.7〜1.0）。
* `Seed`を固定すると同じ画像が再現可能になります。

以下に、Stable Diffusion における各パラメータを**数式的・工学的な視点**で表現・解説します。

---

## 🔧 各パラメータの定義と式的解釈

---

### 1. **CFG Scale（Classifier-Free Guidance Scale）**

* **式**：

  $$
  \hat{\mathbf{x}} = \mathbf{x}_{\text{uncond}} + s \cdot (\mathbf{x}_{\text{cond}} - \mathbf{x}_{\text{uncond}})
  $$
* **意味**：
  条件付き生成（プロンプトに従う）と非条件生成（プロンプトなし）の差分を拡大し、望ましい方向に導くスケール係数。
* **解説**：

  * $s = 8$：プロンプトへの忠実度を強める。
  * 高すぎると崩壊、低すぎるとぼやける。

---

### 2. **Steps（サンプリングステップ数）**

* **式**（概念）：

  $$
  \mathbf{x}_T \to \mathbf{x}_{T-1} \to \dots \to \mathbf{x}_0
  $$
* **意味**：
  ノイズから画像を生成する逆拡散プロセスの段階数。
* **解説**：

  * 40 steps → 品質と速度のバランスが良い。
  * 多すぎると過学習的、少なすぎると粗い画像。

---

### 3. **Sampler（サンプラー）**

* **例：DPM++ 2M Karras**
* **解説**：

  * 高精度な収束性と速度を両立する数値積分手法（ODE solver）。
  * ノイズ除去の軌道最適化に基づく。

---

### 4. **Resolution（解像度）**

* **式**：

  $$
  \text{Total Pixels} = \text{Width} \times \text{Height}
  $$
* **数値**：

  $$
  768 \times 1152 = 884,736\ \text{pixels}
  $$
* **解説**：
  高解像度ほど詳細な表現が可能だが、VRAM負荷が増大。

---

### 5. **Seed（乱数シード）**

* **式**：

  $$
  \text{Noise}_0 = \text{NoiseGenerator}(\text{Seed})
  $$
* **解説**：

  * 乱数の初期値。固定すれば同じ絵が生成可能。
  * $-1$は自動ランダムシードを意味する。

---

### 6. **Denoising Strength（img2img専用）**

* **式**：

  $$
  \mathbf{x}_0^{\text{img2img}} = \mathbf{x}_t + \alpha \cdot \mathcal{N}(0, 1)
  \quad\text{where }\alpha = 1 - \text{Denoising Strength}
  $$
* **意味**：
  入力画像にどれだけノイズを加えて変形させるか。
* **解説**：

  * 値が高いほど元画像から大きく変化。
  * 0.6 → 適度に原形を残しつつ変化させる。

---

### 7. **LoRA（Low-Rank Adaptation）**

* **式（近似）**：

  $$
  \mathbf{W}_{\text{LoRA}} = \mathbf{W} + \alpha \cdot (\mathbf{A} \cdot \mathbf{B})
  $$
* **意味**：
  既存モデルの重み $\mathbf{W}$ に対し、学習済み低ランク変化 $(\mathbf{A}\cdot\mathbf{B})$ を加える手法。
* **解説**：

  * `weight = 0.7～1.0` → LoRA影響度のスケール。
  * 大きくするほどLoRAの影響が強くなる（例：3D感強調）。

---

## 🔄 全体プロセスの流れ式（拡散生成モデル）

1. **初期ノイズ生成**：

   $$
   \mathbf{x}_T \sim \mathcal{N}(0, I)
   $$
2. **逆拡散**：

   $$
   \mathbf{x}_{t-1} = f(\mathbf{x}_t, \text{Prompt}, s, \text{LoRA})
   \quad\text{for }t = T \to 1
   $$
3. **最終画像出力**：

   $$
   \mathbf{x}_0 \Rightarrow \text{Image}
   $$

---



## 1. **初期ノイズ生成（Initial Noise Sampling）**

### 数式：

$$
\mathbf{x}_T \sim \mathcal{N}(0, \mathbf{I})
$$

### 解説：

* $\mathbf{x}_T$：純粋な**ガウスノイズ**ベクトル（最もノイズが多い状態）。
* $\mathcal{N}(0, \mathbf{I})$：平均0、分散1の正規分布に従う乱数。
* これは**画像の潜在空間における初期状態**で、ここから徐々に意味のある画像へと「ノイズ除去」していく。

---

## 2. **逆拡散（Reverse Diffusion Process）**

### 数式（1ステップ）：

$$
\mathbf{x}_{t-1} = \mathbf{x}_t - f_\theta(\mathbf{x}_t, t, \text{Prompt}) + \boldsymbol{\epsilon}
$$

### または DPM++ や Euler系では：

$$
\mathbf{x}_{t-1} = \text{SolverStep}(\mathbf{x}_t, \nabla_{\mathbf{x}} \log p(\mathbf{x}_t|\text{Prompt}), t)
$$

### 解説：

* $t$：サンプリングステップ数（例：40から1へ）。
* $f_\theta$：**学習済みのノイズ予測モデル**（例：UNet）。
* $\text{Prompt}$：条件付き生成（文や画像）を導入するトークン情報。
* $\boldsymbol{\epsilon}$：（必要に応じて）少量の追加ノイズ。

### 注意：

* CFGスケール（Classifier-Free Guidance）ありの場合は：

  $$
  f_\theta^{\text{CFG}} = f_\theta(\mathbf{x}_t, t, \text{uncond}) + s \cdot \left(f_\theta(\mathbf{x}_t, t, \text{cond}) - f_\theta(\mathbf{x}_t, t, \text{uncond})\right)
  $$

---

## 3. **最終画像出力（Final Image Generation）**

### 数式（潜在空間 → 画像空間）：

$$
\text{Image} = \text{Decoder}(\mathbf{x}_0)
$$

### 解説：

* $\mathbf{x}_0$：逆拡散の最終出力（**最もノイズが少ない潜在ベクトル**）。
* $\text{Decoder}$：VAE（変分オートエンコーダ）の**デコーダ部分**。

  * 入力：潜在空間
  * 出力：RGB画像（ピクセル値）

---

## 🌐 全体流れ（統一的な式）：

1. **ノイズ初期化**：

   $$
   \mathbf{x}_T \sim \mathcal{N}(0, \mathbf{I})
   $$

2. **逆拡散プロセス**（CFGあり）：

   $$
   \mathbf{x}_{t-1} = \mathbf{x}_t - f_\theta^{\text{CFG}}(\mathbf{x}_t, t) + \boldsymbol{\epsilon}
   \quad (t = T \to 1)
   $$

3. **画像デコード**：

   $$
   \text{Image} = \text{Decoder}(\mathbf{x}_0)
   $$

---