Stable Diffusion WebUI를 사용하다 보면,
“샘플러별로 어떤 이미지가 생성될까?”, “여러 프롬프트를 한 번에 비교해보고 싶다”
라는 생각을 하신 적 있으실 겁니다.
이럴 때 유용하게 사용할 수 있는 기능이 바로 WebUI Script의 X/Y/Z plot 기능입니다.
이번 포스팅에서는 이 기능의 구조와 사용 방법, 그리고 실제 예시까지 단계별로 정리해보겠습니다.
🎯 X/Y/Z plot Script 기능 활성화
먼저 WebUI Forge를 실행한 뒤, 화면 하단으로 스크롤을 내려보면
Script 항목이 보입니다. 기본값은 None으로 되어 있는데,
여기를 클릭하면 여러 스크립트 중 `X/Y/Z plot`을 선택할 수 있습니다.
선택하면 아래에 X, Y, Z type과 values를 입력할 수 있는 칸이 나타나며,
각 축에 원하는 항목과 값을 넣어 이미지를 생성할 수 있습니다.

| 구분 | 설명 |
| X type / Y type / Z type | 각각 가로(X), 세로(Y), 페이지(Z)에 대응되는 항목을 선택 |
| X/Y/Z values | 선택한 항목에 적용할 값 입력 (쉼표로 구분) |
⚙️ 체크박스 옵션 설명
X/Y/Z plot 하단에는 다양한 체크박스 옵션이 있습니다.
각 기능은 다음과 같습니다 👇
- 🧾 Draw legend
→ 각 축의 값(예: CFG Scale, Sampler 이름 등)을 최종 Grid 이미지에 텍스트로 표시합니다. - 🎲 Keep -1 for seeds
→ 시드값을 고정하지 않고 계속 변화시켜, 생성될 때마다 다른 형태의 이미지를 만듭니다. - 🔄 Vary seeds for X, Y, Z
→ X/Y/Z 축 각각에 대해 독립적인 시드 변화를 줍니다. - 🖼️ Include Sub Images
→ 개별 이미지를 별도로 저장합니다. (체크하지 않으면 Grid 합성본만 생성) - 🧱 Include Sub Grids
→ 선택한 항목이 여러 개인 경우, 각 항목별로 개별 Grid 이미지를 생성합니다.
(예: X Grid, Y Grid, Z Grid) - 💬 Use text inputs instead of dropdowns
→ Type 선택 시 드롭다운 대신 직접 텍스트 입력 방식으로 전환합니다.
(일반적으로는 잘 사용하지 않지만, 커스텀 모델명 입력 시 유용합니다 😊)
🧠 X/Y/Z plot을 사용하여 이미지 생성하기
이미지를 생성하기 전, 먼저 평소처럼 프롬프트와 Generation 옵션을 설정합니다.
빠른 테스트용이라면 Hires fix나 ADetailer는 끄고, 기본 옵션만 켜두시면 됩니다.

✨ 참고: 예시에서는 Illustrious XL 모델을 사용하였습니다.
프롬프트 예시는 아래 내용을 참고하세요.
- 기본 프롬프트
(본인이 원하는 이미지 키워드 입력)
woman, solo, medium breasts, beautiful face, detailed eyes, long hair, straight hair, swept bangs, hair over shoulder, blonde hair, looking at viewer, frontal shot, standing, Three-quarter shot, dynamic pose, BREAK detailed clothes, bright colors clothes, outdoors, fantasy armor, short sleeves, collared shirt, breastplate, corset, harness, belt, thigh pouch, leggings, poleyn, knee guards, medieval, fantasy, masterpiece, best quality, amazing quality, very aesthetic, high resolution, absurdres, very awa, newest, realistic, detailed eyes, stunningly beautiful, intricate details
- 부정 프롬프트
(원하지 않는 요소 제거용)
poorly detailed, jpeg artifacts, worst quality, bad quality, nipples, navel over clothes, signature, logo, label
🧩 1차원 — 타입 1개만 사용
가장 간단한 형태입니다. X, Y, Z type 중 하나를 선택해서 이미지를 생성합니다.
테스트 하기 위해 X type 하나만 사용하고, 나머지 Y/Z는 Nothing으로 둡니다.
X type에 Sampler를 선택하고,
values를 클릭하면 드랍다운 메뉴가 나타나고 여기서 DPM++ 2M, Euler a를 선택합니다.
그리고 ‘Draw legend’와 ‘Include Sub Images’를 체크합니다.
⚠️ Z type 하나만 사용할 경우 X type으로 지정한 것과 같은 결과가 나옵니다.
X는 가로 그리드, Y는 세로 그리드를 기준으로 이미지를 정렬합니다.


🧮 2차원 — 타입 2개 사용
이번에는 X와 Y를 모두 사용해봅니다.
| 항목 | 값 |
| X type | Steps → 15, 30 |
| Y type | CFG Scale → 5, 10 |
➡ 이렇게 설정하면 아래와 같이 2x2 조합으로 총 4장의 이미지가 생성됩니다.
- CFG 5일 때: Steps 15, 30
- CFG 10일 때: Steps 15, 30
※ 테스트하는 모델에 따라 결과 차이가 클 수 있습니다.
예를 들어 SD1.5 모델은 CFG 변화에 더 민감하게 반응합니다.


🧬 3차원 — X, Y, Z 모두 사용
X, Y, Z type을 모두 선택해서 이미지를 생성합니다.
각 항목별로 2개의 값을 넣으면 2×2×2 = 8장,
그리드 합성까지 포함하면 총 9장이 생성됩니다.
| 축 | Type | Values |
| X | Prompt S/R | "fantasy armor, short sleeves, collared shirt, breastplate, corset, harness, belt, thigh pouch, leggings, poleyn, knee guards", " fantasy armor, long sleeves, shoulder armor, (armored dress:1.2), armored long boots, thighs, white plate armor, gauntlets, greaves" |
| Y | Sampler | DPM++ 2M, Euler a |
| Z | Checkpoint name | 모델 2개 선택 |
⚠️ X values의 첫 번째 쌍따옴표에 있는 프롬프트 내용은 위에서 사용했던 원문 프롬프트에 들어있는 내용이므로 본인이 직접 작성했다면 다르게 입력해야 합니다. 아래 규칙을 참고하여 직접 작성해주시면 됩니다. 철자 하나라도 틀리거나 띄어쓰기가 두 번 들어간다든가 하면 내용이 다르다는 경고와 함께 이미지 생성이 실패가 됩니다.

🧾 Prompt S/R 입력 규칙
1️⃣ X values에 들어가는 첫 번째 프롬프트는 원본 프롬프트에 반드시 포함되어야 합니다.
2️⃣ 여러 문구를 구분할 때 콤마(,) 로 구분합니다.
3️⃣ 하나의 프롬프트 묶음은 쌍따옴표(" ") 로 감싸야 합니다.
4️⃣ 여러 묶음을 나열할 때는 "..." , "..." 형식으로 입력합니다.
5️⃣ 마지막에 콤마(,)만 찍을 경우 첫 번째 입력한 프롬프트를 제거하여 생성합니다.
위 규칙을 따르면 각 프롬프트 세트가 독립된 이미지로 생성됩니다.
5️⃣의 내용이 햇갈릴 수 있는데, 프롬프트들을 입력하고 마지막에 콤마를 넣고 생성하면
첫 번째 프롬프트 문구(원본에 포함된)를 제거하고 생성한다는 의미입니다.
👇 Prompt S/R values의 프롬프트 마지막에 콤마(,)를 붙이고 생성한 이미지 예시

💡 Checkpoint name의 경우, 드롭다운 목록이 너무 많을 때는
values 입력란을 클릭하고 모델 이름 일부를 직접 입력하면 자동 검색됩니다.


🧭 기타 기능 및 팁
X/Y/Z plot 하단에는 작은 버튼 세 개가 있습니다.
- 🔁 Swap X/Y axes
→ X축과 Y축을 서로 바꿔서 그리드 방향을 전환합니다.
또한 Y type을 사용하지 않을 경우,
해당 항목을 Nothing으로 설정하면 X와 Z만으로 조합을 만들 수 있습니다.
이때 Prompt S/R 항목의 values 입력란은 유지되므로 다시 설정하기 편합니다.
또한 Sampler 항목을 Nothing으로 할 경우 values가 초기화되는 항목도 있지만,
다시 Sampler로 설정하면 기존에 선택된 values가 원상복구됩니다.
그러나 Checkpoint 등 일부 항목은 설정 변경 시 내용이 사라질 수 있으니 주의하세요 😊
이번 포스팅에서는 Stable Diffusion WebUI의
Script → X/Y/Z plot 기능에 대해 알아보았습니다.
이 기능은 단순히 자동 비교용 스크립트가 아니라,
모델·샘플러·프롬프트의 차이를 한눈에 확인할 수 있는 강력한 도구입니다.
감사합니다 🙏
