Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

빙글빙글 돌아가는 바람개비

[Study] Scheduler 본문

Image Generation/Study

[Study] Scheduler

바람개비은하 2026. 4. 15. 00:46

Scheduler는 스텝을 어디에 놓을지 정한다

Stable Diffusion에서 sampler와 scheduler는 자주 붙어서 보인다. 예를 들어 DPM++ 2M Karras라고 적혀 있으면, 전체가 하나의 sampler 이름처럼 보이기 쉽다.

하지만 나눠서 보면 역할이 다르다. DPM++ 2M은 한 스텝에서 latent를 어떻게 갱신할지 정하는 방식이고, Karras는 그 스텝들을 어떤 노이즈 구간에 배치할지 정하는 방식이다.

이미지 생성은 완전한 노이즈에서 시작해서 조금씩 깨끗한 이미지 쪽으로 이동한다. 이때 20 steps로 생성한다면, 모델은 총 20번만 중간 상태를 확인할 수 있다. Scheduler는 그 20번을 어디에 쓸지 정한다.

큰 노이즈
구도 형성
형태 정리
디테일 보정
최종 이미지

초반에는 큰 구도와 포즈가 잡히고, 중간에서는 형태와 색이 정리된다. 후반으로 갈수록 경계선, 피부 질감, 머리카락, 옷 주름 같은 작은 차이가 살아난다. 그래서 같은 20 steps라도 어디에 스텝을 더 많이 쓰느냐에 따라 결과가 달라진다.


Sampler와 Scheduler를 분리해서 보기

Sampler는 이동 방법이다. 현재 latent와 모델이 예측한 노이즈를 보고 다음 latent를 계산한다. Euler, DDIM, DPM++ 같은 이름들이 여기에 해당한다.

Scheduler는 이동할 위치 목록이다. 노이즈가 큰 지점부터 작은 지점까지 어떤 순서와 간격으로 밟을지를 정한다. Linear, Exponential, Karras, AYS 같은 이름들이 여기에 해당한다.

구분 하는 일 예시
Sampler 한 스텝에서 다음 latent를 어떻게 계산할지 정한다. Euler, DDIM, DPM++ 2M
Scheduler 전체 과정에서 어떤 노이즈 레벨을 밟을지 정한다. Linear, Exponential, Karras, AYS

따라서 DPM++ 2M KarrasDPM++ 2M sampler에 Karras scheduler를 붙인 조합이다. 같은 sampler라도 scheduler를 바꾸면 결과가 조금씩 달라진다.


Linear

Linear는 가장 기본적인 방식이다. 노이즈 구간을 비교적 단순하게 나눠서 스텝을 배치한다. 특정 구간에 강하게 몰아주기보다는 모델이 원래 쓰는 흐름을 크게 건드리지 않는 쪽에 가깝다.

장점은 예측하기 쉽다는 점이다. 다른 scheduler와 비교할 때 기준점으로 쓰기 좋고, 특별한 튜닝 없이도 안정적으로 동작한다.

다만 step 수가 적을 때는 손해가 날 수 있다. 10~15 steps처럼 확인할 수 있는 지점이 적은 상황에서는, 중요한 구간에 스텝을 더 몰아주는 방식이 더 유리할 때가 많다. Linear는 그런 최적화가 약하다.

Linear는 “무난한 기준값”에 가깝다. 결과를 비교할 때 출발점으로 보기 좋지만, 저스텝 고품질 생성에서는 다른 scheduler가 더 나은 경우가 많다.

Exponential

Exponential은 노이즈를 일정한 차이로 줄이지 않고, 일정한 비율로 줄이는 방식이다. 예를 들어 100, 50, 25, 12.5처럼 줄어드는 식이다.

이렇게 하면 큰 노이즈 구간에서는 비교적 크게 움직이고, 노이즈가 작아질수록 더 조심스럽게 움직이게 된다. 체감상 진행이 부드럽고, Karras보다 덜 날카로운 결과가 나오는 경우도 있다.

모델에 따라 Karras가 너무 거칠거나 샤프하게 느껴질 때가 있다. 그럴 때 Exponential로 바꾸면 질감이 조금 더 자연스럽게 정리되는 경우가 있다.

100
50
25
12.5
6.25

Karras

Karras는 Stable Diffusion에서 가장 많이 보이는 scheduler 중 하나다. DPM++ 2M Karras처럼 sampler 이름 뒤에 붙어 있는 경우가 많다.

Karras의 느낌은 비교적 명확하다. 후반부, 즉 이미지가 어느 정도 잡힌 뒤 디테일을 다듬는 구간에 스텝을 더 잘 배치한다. 그래서 같은 step 수에서도 결과가 더 선명하고 정돈되어 보일 때가 많다.

특히 DPM++ 계열 sampler와 조합했을 때 안정적인 편이라, 실전에서는 기본값처럼 많이 쓰인다. 인물, 제품 이미지, 일러스트처럼 선명도가 중요한 작업에서는 먼저 시도해볼 만하다.

단점도 있다. 모델에 따라 피부 질감이나 배경이 지나치게 날카로워 보일 수 있고, 이미 샤프한 체크포인트에서는 거친 느낌이 더 강해질 수 있다. 그럴 때는 Exponential 쪽이 더 나을 수 있다.


AYS

AYS는 Align Your Steps의 약자다. 앞의 scheduler들이 “이런 곡선으로 나누면 대체로 괜찮다”에 가깝다면, AYS는 특정 조건에서 좋은 스텝 위치를 미리 찾아둔 방식에 가깝다.

특히 의미가 있는 곳은 저스텝 생성이다. 30~40 steps를 쓰면 scheduler 차이가 어느 정도 묻힐 수 있지만, 8~10 steps처럼 적게 뽑을 때는 어떤 지점을 밟느냐가 훨씬 중요해진다. AYS는 이 구간에서 품질을 최대한 유지하려는 목적이 강하다.

다만 AYS가 항상 정답은 아니다. 특정 모델, 특정 step 수, 특정 sampler 조합에서 최적화된 성격이 강하다. 조건이 달라지면 기대만큼 차이가 나지 않을 수 있다.

AYS는 “빠르게 뽑을 때 써볼 만한 선택지”로 보면 편하다. 특히 10 steps 안팎에서 품질을 최대한 유지하고 싶을 때 의미가 있다.

 

정리

Scheduler는 이미지 생성에서 스텝을 어디에 배치할지 정하는 설정이다. Sampler가 이동 방법이라면, Scheduler는 지나갈 노이즈 지점을 정한다.

그래서 sampler를 바꾸지 않아도 scheduler만 바꿔서 결과의 느낌을 조절할 수 있다. Karras는 선명하고 안정적인 기본값으로 많이 쓰이고, Exponential은 조금 더 부드러운 결과가 필요할 때, AYS는 적은 step으로 빠르게 뽑을 때 의미가 있다.

결국 정답은 모델과 프롬프트에 따라 달라진다. 다만 처음부터 모든 조합을 다 시험할 필요는 없다. Karras로 시작해서, 너무 거칠면 Exponential, 너무 적은 step을 써야 하면 AYS. 이 정도 기준만 있어도 대부분의 경우 충분하다.

'Image Generation > Study' 카테고리의 다른 글

[Study] Dreambooth 원리  (0) 2026.04.12
[Study] CFG++  (0) 2026.04.06
[Study] DiT: Diffusion에 Transformer를 쓰는 방식  (0) 2026.04.01
[Study] MMDiT를 이용한 SD3  (0) 2026.03.29
[Study] SDXL 살펴보기  (0) 2026.03.26