The base idea is to have a Model class that takes different modules corresponding to the different aspects of the Diffusion Model process (noise schedule, noise type, denoising network, loss function, guidance, etc.) and allow the user to mix and match different modules to achieve different results. The library ships with a bunch of prebuilt modules and the plan is to add many more. I also made it super easy to implement your own modules, you just need to extend from one of the base classes available.
Contrary to HuggingFace Diffusers, this library is focused on designing and training your own Diffusion Models rather than finetuning pretrained ones (although this is possible).
I would really appreciate your feedback.