This repository stores code to train Stable Diffusion models using different Federated Learning strategies, and within each strategy, using different aggregation algorithms.
The three strategies used are:
- Centralized - A baseline (non-FL) strategy.
- Centralized FL - Train a model using FL with a central aggregator
- Decentralized FL - Train a model using blockchained FL and decentralized aggregation.
Six different aggregation algorithms were used in this analysis. They are:
This repository also includes code to evaluate the trained models via IS, FID, a downstream ResNet50 classifier, and a t-SNE projection of latent vectors.
A detailed written report of this experiment can be found in REPORT.pdf
Each subdirectory contains instructions to train a model using that FL strategy in its respective README, however they all require the global Python dependencies to be installed:
pip install -r requirements.txt

