# [[스테이블 디퓨전 아티팩트 디버깅(Artifact Debugging)|스테이블 디퓨전 아티팩트 디버깅(Artifact Debugging)]]

## 📌 Brief Summary
스테이블 디퓨전 모델이 이미지를 생성할 때 발생하는 시각적 결함(예: 손가락이 6개이거나 왜곡된 눈, 원치 않는 워터마크 등)을 진단하고 수정하는 과정이다 [1]. 주로 부정 프롬프트(Negative Prompt)를 표적화하여 이러한 결함 요소들을 배제하는 방식으로 이루어진다 [2, 3]. 단순하고 포괄적인 부정 단어의 나열보다는 생성된 결과를 확인한 후, 실제 발생하는 문제에 맞춰 최소한의 구체적인 키워드를 적용하고 다듬는 반복적인 프롬프트 최적화가 핵심이다 [4].

## 📖 Core 대Content
* **아티팩트의 주요 원인 및 유형:** 
  강력한 긍정 프롬프트를 작성하더라도 모델 자체의 편향성이나 훈련 데이터의 특성 때문에 아티팩트가 발생할 수 있다 [5]. 대표적인 결함으로는 손가락이 6개로 나오거나 눈이 정렬되지 않는 해부학적 왜곡, 원치 않는 워터마크나 텍스트, 밀랍처럼 인위적인 피부 질감, 흐릿한 초점 등이 있다 [1, 3, 6].

* **표적화된 부정 프롬프트(Negative Prompt) 활용:** 
  아티팩트를 디버깅하기 위해서는 결함을 먼저 파악한 뒤, 이에 맞춘 구체적인 부정 프롬프트를 작성해야 한다 [7]. "나쁜(bad)" 혹은 "못생긴 얼굴(ugly face)"과 같은 모호한 단어는 효과가 떨어지며, "여분의 손가락(extra fingers)", "비대칭 눈(asymmetrical eyes)", "워터마크(watermark)"와 같이 실제 나타난 문제를 구체적인 명사나 시각적 특징으로 지칭하는 것이 70% 이상 실패율을 줄이고 두 배의 정밀도를 제공한다 [3, 8].

* **디버깅 워크플로우 및 가중치 조절:** 
  가장 신뢰할 수 있는 디버깅 방식은 '기본 프롬프트로 생성 -> 반복되는 결함 파악 -> 구체적인 부정 키워드 추가 -> 재실행 및 효과 없는 단어 삭제(Pruning)'의 반복 프로세스이다 [4]. 특정 아티팩트가 지속해서 발생할 경우 `(blurry:1.3)`과 같이 키워드에 가중치를 부여하여 모델이 해당 개념을 회피하도록 강제할 수 있다 [9, 10]. 다만 과도한 가중치는 모델의 구도나 구조에 왜곡 등 새로운 문제를 유발할 수 있으므로 최소한의 가중치를 신중하게 사용해야 한다 [10].

* **모델 버전에 따른 디버깅 전략:** 
  스테이블 디퓨전 모델 버전에 따라 반응이 다르므로 디버깅 전략도 달라져야 한다. SD 1.5 버전은 전형적인 아티팩트 발생 빈도가 높아 상대적으로 긴 정리용 부정 프롬프트 목록에 잘 반응한다 [11]. 반면 SDXL 및 Flux 모델은 지나치게 긴 부정 프롬프트를 사용할 경우 이미지의 디테일이 납작해지거나 부자연스러워지므로, 문제에 직결된 짧고 선택적인 목록을 사용하는 것이 훨씬 효과적이다 [11, 12]. 

* **고급 디버깅 (단계 인지 및 적용 타이밍):**
  2024년 ECCV 연구에 따르면, SD v2 모델에서 부정 프롬프트의 주된 영향력은 확산(Diffusion)의 초기 단계가 아닌 10단계(step 10) 이후에 지연되어 나타난다 [13]. 이 때문에 초반부터 너무 강력한 부정적 압박을 가하면 결함을 지우기 전에 오히려 구조를 왜곡할 수 있으므로, 5~10개 정도의 표적화되고 가중치가 조절된 용어만을 사용하는 것이 이미지 충실도를 높이고 아티팩트를 효과적으로 제거하는 지름길이다 [13-15].

## 🔗 Knowledge Connections
- **Related Topics:** [[부정 프롬프트(Negative Prompt)|부정 프롬프트(Negative Prompt)]], [[가중치 부여(Prompt Weighting)|가중치 부여(Prompt Weighting)]], [[CFG 스케일(Classifier-Free Guidance Scale)|CFG 스케일(Classifier-Free Guidance Scale)]]
- **Projects/Contexts:** [[스테이블 디퓨전(Stable Diffusion) 이미지 생성 최적화|스테이블 디퓨전(Stable Diffusion) 이미지 생성 최적화]], [[반복적 프롬프트 엔지니어링 워크플로우(Iterative Prompt Engineering Workflow)|반복적 프롬프트 엔지니어링 워크플로우(Iterative Prompt Engineering Workflow)]]
- **Contradictions/Notes:** 초보자들은 흔히 인터넷에 떠도는 긴 "나쁜 품질" 단어 목록을 부정 프롬프트에 붙여넣어 해결하려 하지만(junk drawer), SDXL이나 Flux와 같은 최신 모델에서는 이런 방식이 오히려 퀄리티를 저하시킨다. 따라서 발생한 문제(아티팩트)만을 타겟팅하는 짧은 용어 목록을 사용하는 것이 실제 디버깅에 훨씬 효과적이라는 점을 유의해야 한다 [1, 11, 12].

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