안녕하세요 Allan입니다.
이번 포스팅에서는 스테이블 디퓨전에서 이미지를 한 번에 여러 장 생성할 수 있도록하는 Batch count와 Batch size에 대해서 알아보도록 하겠습니다.
Ⅰ. Batch size와 Batch count의 차이점
먼저 Batch size와 Batch count의 차이점을 말씀드리겠습니다.
Batch size는 한 번의 작업에 생성할 이미지의 갯수이고
Batch count는 몇 회의 작업을 할 것인지를 설정하는 파라미터입니다.
즉, 스테이블 디퓨전에서 이미지를 생성할 때는 한 번에 Batch size 만큼의 이미지를 Batch count에서 설정한 횟수 만큼 반복하여 생성합니다.
1. batch size : 1, batch count : 4
2. batch size : 2, batch count : 2
3. batch size : 4, batch count : 1
위의 설정값들은 모두 총 이미지를 4장 생성합니다.
하지만 각각 차지하는 vram의 크기나 이미지 생성속도에 차이가 발생합니다,
batch size는 한 번의 작업에 생성하는 이미지의 갯수를 의미하므로, batch size를 늘리게되면 이미지 생성 시에 차지하는 vram의 크기가 늘어납니다. 하지만 한 번에 이미지를 생성하기에 이미지 생성 속도는 매우 빠릅니다.
반면 batch count는 작업 횟수를 의미하므로 vram을 많이 잡아먹지는 않으나, batch count를 늘리면 여러 번 이미지를 생성해야해서 이미지 생성 소요 시간이 많이 늘어납니다.
위의 3가지 상황 중 가장 이미지 생성 속도가 빠른 상황은 batch size가 가장 큰 3번 상황입니다.
vram을 가장 많이 잡아먹는 상황이기도 합니다.
반대로 vram 사용량은 가장 적으나 이미지 생성 시간은 가장 느린 상황은 batch count가 가장 큰 1번 상황입니다.
Ⅱ. batch count와 batch size 실제 이미지 생성 속도 차이
image size : 512*512
Sampling method : euler a
Sampling steps : 30
위의 이미지 정보를 기반으로 batch size와 batch count를 조절하여 이미지 생성 시간을 측정한 결과입니다.
- batch size : 1, batch count 4 : 26초
- batch size : 4, batch count 1 : 18초
- batch size : 2, batch count 2 : 20초
가장 좋은 방법은 batch size와 batch count를 적절하게 조합하여 이미지 생성 속도와 vram 사용량을 모두 잡은 3번 방법입니다.