Albumentations vs PIL/Pillow Benchmarks

On this page

This route is reserved for benchmark results generated during the website build.

The benchmark implementation source is public:

Methodology Notes

Pillow is benchmarked only where it has a direct transform analogue. The benchmark does not recreate Albumentations-style augmentation with custom Pillow glue. Unsupported transforms stay unsupported so the comparison remains honest.

The generated benchmark page should preserve these distinctions:

  • image-only Pillow operations versus Albumentations pipeline transforms
  • RGB/Pillow-mode assumptions versus arbitrary-channel NumPy arrays
  • unsupported Pillow transforms, especially target-aware and multichannel augmentation
  • hardware, Python version, library versions, and image shape

Generated benchmark tables

Values are taken from the benchmark JSON downloaded during the website build. AlbumentationsX 2.2.5, PIL/Pillow 12.2.0.

Run context: macOS-26.4.1-arm64-arm-64bit, Python 3.12.8, CPUs 16, media image, dataset files 50000, channels 3, runs 5.

Higher median throughput is better. Speedup range matches the interactive benchmark pages (AlbumentationsX interval vs competitor interval). means unsupported or missing data.

RGB (micro)

TransformAlbumentationsX (median ± std)PIL/Pillow (median ± std)Speedup (AlbX / other, range)
Affine1456 ± 23613 ± 12.3-2.4x
AutoContrast1619 ± 442239 ± 30.7-0.7x
Blur7544 ± 1341870 ± 133.9-4.1x
Brightness9849 ± 991340 ± 67.2-7.5x
CLAHE644 ± 5
CenterCrop12895346 ± 1281
ChannelDropout11971 ± 434
ChannelShuffle8235 ± 86
ColorJiggle1208 ± 16
ColorJitter1221 ± 10
Colorize3858 ± 113697 ± 181.0-1.1x
Contrast10045 ± 1191055 ± 69.4-9.7x
CornerIllumination866 ± 28
Dithering6 ± 01426 ± 160.0-0.0x
Elastic453 ± 2
Equalize1086 ± 122204 ± 20.5-0.5x
Erasing27849 ± 4028
GaussianBlur2462 ± 11765 ± 33.2-3.2x
GaussianIllumination773 ± 21
GaussianNoise328 ± 20
Grayscale19593 ± 35019267 ± 611.0-1.0x
HorizontalFlip13200 ± 43014680 ± 1940.9-0.9x
Hue1908 ± 18
Invert31753 ± 13275503 ± 175.5-6.0x
JpegCompression1351 ± 111305 ± 51.0-1.0x
LinearIllumination557 ± 18
LongestMaxSize3847 ± 62
MedianBlur1546 ± 1611 ± 0140-147x
MotionBlur3847 ± 49
Normalize1642 ± 26
OpticalDistortion395 ± 4
Pad34979 ± 327427167 ± 2821.2-1.4x
Perspective1185 ± 9
PhotoMetricDistort1070 ± 19
PlankianJitter3278 ± 13
PlasmaBrightness394 ± 9
PlasmaContrast250 ± 6
PlasmaShadow526 ± 8
Posterize28724 ± 32595429 ± 104.7-5.9x
RGBShift5025 ± 48
Rain2169 ± 27
RandomCrop12893574 ± 1964
RandomGamma14482 ± 424
RandomJigsaw9413 ± 136
RandomResizedCrop4354 ± 22
RandomRotate908652 ± 167
Resize3542 ± 111087 ± 93.2-3.3x
Rotate2996 ± 124101 ± 1190.7-0.8x
SaltAndPepper946 ± 4
Saturation1389 ± 271324 ± 61.0-1.1x
Sharpen2221 ± 35
Shear1322 ± 7502 ± 22.6-2.7x
SmallestMaxSize2676 ± 7
Snow754 ± 4
Solarize13505 ± 4425403 ± 132.4-2.6x
ThinPlateSpline92 ± 1
Transpose8184 ± 19911038 ± 1720.7-0.8x
UnsharpMask3063 ± 37478 ± 26.3-6.5x
VerticalFlip29169 ± 265741794 ± 1890.6-0.8x