Skip to content

Commit ebaf4ef

Browse files
committed
add bucket underfill warning for small batch sizes
source: kohya-ss/sd-scripts#2141
1 parent 3d3fd13 commit ebaf4ef

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/dataset/buckets.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,30 @@ def show_bucket_info(self):
110110

111111
logger.info(f"total batches: {len(self)}")
112112

113+
# Warn of any particularly small buckets compared to the current batch size
114+
already_warned_underfilled_bucket = False
115+
for bucket_reso in self.bucket_resos:
116+
bucket = self.buckets[bucket_reso]
117+
if len(bucket) < (self.batch_size / 2):
118+
119+
if not already_warned_underfilled_bucket:
120+
logger.warning(f"These buckets have too few entries to even half fill the batch_size:")
121+
already_warned_underfilled_bucket = True
122+
123+
# Get sample filename from the first item in the bucket
124+
if len(bucket) > 0:
125+
item_info = bucket[0]
126+
# Use item_key which works for both images and videos
127+
sample_filename = item_info.item_key
128+
129+
display_filename_len = 55
130+
if sample_filename and len(sample_filename) > display_filename_len:
131+
sample_filename = f"...{sample_filename[-(display_filename_len - 3):]}"
132+
133+
logger.warning(f" bucket {bucket_reso}: {len(bucket)} items (example: {sample_filename})")
134+
else:
135+
logger.warning(f" bucket {bucket_reso}: {len(bucket)} items (empty bucket)")
136+
113137
def shuffle(self):
114138
# shuffle each bucket
115139
for bucket in self.buckets.values():

0 commit comments

Comments
 (0)