How to use PCA in CNN for image recognition using Keras?
Standard implementations of PCA calculates statistics across the entire dataset in order to find the projection that has the greatest variance. The entire dataset needs to be loaded into memory for that calculation.
You are using ImageDataGenerator to generate synthetic variations of the data, greatly increasing the size of the training set that has to be loaded into memory.
Here a couple of options to run PCA:

Reduce the number of variations in ImageDataGenerator
Use approximate PCA
Get a larger machine or distribute across a cluster