# [[스테이블 디퓨전(Stable Diffusion) 이미지 생성 최적화]]

## 📌 Brief Summary
스테이블 디퓨전(Stable Diffusion)은 사용자가 직접 모델을 훈련시키고 하드웨어 수준에서 세밀하게 제어할 수 있는 강력한 오픈소스 기반의 이미지 생성 AI입니다. 이 모델에서 이미지 생성을 최적화하기 위해서는 쉼표로 구분된 태그 기반의 프롬프트 작성, 괄호와 숫자를 활용한 정밀한 가중치(Weights) 조절, 그리고 결함을 방지하는 네거티브 프롬프트(Negative Prompt)의 전략적 사용이 필수적입니다. 더 나아가 컨트롤넷(ControlNet)과 같은 고급 기능을 결합하면 피사체의 구도와 자세를 픽셀 단위로 통제하여 전문가 수준의 일관된 결과물을 도출할 수 있습니다. [1, 2]

## 📖 Core Content
*   **태그 기반 프롬프트 구조화 및 품질 키워드**
    스테이블 디퓨전은 완전한 문장보다는 쉼표로 구분된 태그(comma-separated tags) 방식의 프롬프트를 사용할 때 가장 잘 작동합니다. 가장 중요한 요소를 프롬프트의 맨 앞에 배치해야 하며, 결과물의 수준을 높이기 위해 `masterpiece`, `best quality`, `8k`, `highly detailed`, `sharp focus`와 같은 품질 향상(Quality) 키워드를 포함하는 것이 좋습니다. [3-5]

*   **프롬프트 가중치(Prompt Weights) 조절**
    단어의 중요도를 세밀하게 조정하는 가중치 제어는 스테이블 디퓨전의 핵심 기능입니다. `(keyword:factor)` 문법을 통해 가중치를 숫자로 직접 지정할 수 있습니다(예: `(dog:1.3)`). 
    *   일반적인 문법에서 `()`는 단어의 영향력을 강조(1.1배)하고, `[]`는 약화(0.9배)시킵니다. `+`와 `-` 기호를 사용할 수도 있습니다.
    *   가중치 중첩(`((dog:1.1))`)도 가능하나 너무 높은 가중치(예: 2.0 이상)는 이미지를 망칠 수 있습니다. 
    *   LoRA 모델 등을 섞어 사용할 때는 충돌을 피하기 위해 0.5~0.7 수준의 안전한 가중치에서 시작하는 것이 권장됩니다. [2, 6-10]

*   **네거티브 프롬프트(Negative Prompt)의 전략적 활용**
    긍정 프롬프트가 목표(Target)를 설정한다면, 네거티브 프롬프트는 회피해야 할 경계(Avoidance map)를 설정합니다.
    *   **구체성:** 단순히 "bad"라고 적는 것보다 "extra fingers", "watermark", "blurry", "deformed hands"처럼 발생한 시각적 결함을 구체적 명사나 특징으로 지시해야 합니다. 
    *   **모델별 최적화:** 구형 모델인 SD 1.5는 상대적으로 길고 포괄적인 네거티브 프롬프트 목록에 잘 반응하지만, SDXL이나 Flux와 같은 최신 모델에서는 너무 방대한 네거티브 프롬프트를 사용할 경우 오히려 이미지의 디테일이 평면화되거나 경직될 수 있습니다. 따라서 최신 모델에서는 5~10개의 타겟화된 핵심 용어만 사용하는 것이 좋습니다. [11-15]

*   **컨트롤넷(ControlNet)을 통한 픽셀 단위 제어**
    단순한 텍스트 프롬프팅의 한계를 극복하기 위해 컨트롤넷을 활용할 수 있습니다. 이는 이미지의 뼈대(Pose)나 윤곽선(Canny Edge) 정보를 모델에 강제로 주입하여 인체의 자세나 사물의 배치를 정확하게 픽셀 단위로 통제하는 고급 최적화 기술입니다. [2]

## 🔗 Knowledge Connections
- **Related Topics:** [[프롬프트 가중치(Prompt Weights)]], [[네거티브 프롬프트(Negative Prompt)]], [[분류기 없는 가이드 스케일(CFG Scale)]], [[컨트롤넷(ControlNet)]]
- **Projects/Contexts:** [[스테이블 디퓨전 모델별(SD 1.5, SDXL, Flux) 프롬프트 튜닝]], [[오픈소스 이미지 생성 모델 배포 및 제어]]
- **Contradictions/Notes:** 인터페이스나 버전에 따라 가중치 문법(Syntax)의 해석이 다를 수 있습니다. 일부 UI에서는 `()`로 가중치를 올리고 `[]`로 내리지만, 특정 시스템에서는 `[]`가 단순한 네거티브 프롬프트 구문으로만 작동하고 수치적 가중치(예: `[dog:2]`)를 무시할 수 있으므로 사용 중인 툴의 지원 문법을 반드시 확인해야 합니다. [16-18]

---
*Last updated: 2026-04-30*