The scree plot approach doesn't work terribly well for microscopy signals - I think partly due to how we often have a component present at low concentration in only a few pixels (so it's statistical significance is low) and since we often have noise that might be considered "real" (say, a poor dark reference).
The best approach is to get a rough idea of the number of components from the scree plot, then use s.plot_decomposition_results() and step through the pairs of loadings and factors. If the factors (ala EDS spectra) look like total garbage, they are probably safe to not include.
Sometimes I find (for instance) that components 0-3 are real, and 6 and 7 look a bit real as well. Maybe there's some contrast on the edge of my sample in the loadings.
Then I use s2 = s.get_decomposition_model([0,1,2,3,6,7]).
Often you can remove a significant component that just shows noise because it describes the dark reference I mentioned earlier. On stacks of TEM images PCA often shows you the edges of the quadrants of the detector, which can be nice to remove, as well.
Does that make sense?