--- license: apache-2.0 tags: - pytorch - diffusers - unconditional-image-generation datasets: - uoft-cs/cifar10 language: - en base_model: - google/ddpm-cifar10-32 pipeline_tag: unconditional-image-generation library_name: diffusers --- # Flow Matching CIFAR-10 Model A flow matching model for unconditional image generation trained on the CIFAR-10 dataset. This model uses continuous normalizing flows with the FlowMatchEulerDiscreteScheduler for efficient sampling. ## Model Details - **Architecture**: UNet2DModel with flow matching - **Dataset**: CIFAR-10 (32x32 RGB images) - **Scheduler**: FlowMatchEulerDiscreteScheduler - **Training Steps**: 1000 timesteps - **Framework**: Diffusers 0.35.0.dev0 ## Flow Matching Configuration The model uses FlowMatchEulerDiscreteScheduler with the following key parameters: - **Base shift**: 0.5 - **Shift**: 1.0 (exponential time shifting) - **Base image sequence length**: 256 - **Max image sequence length**: 4096 - **Stochastic sampling**: Disabled for deterministic generation ## Usage ### Basic Generation ```python from diffusers import DDPMPipeline # Load the flow matching model pipeline = DDPMPipeline.from_pretrained("FrankCCCCC/cfm-cifar10-32") # Generate an image image = pipeline().images[0] image.save("generated_cifar10.png") ``` ### Custom Inference Steps ```python from diffusers import DDPMPipeline pipeline = DDPMPipeline.from_pretrained("FrankCCCCC/cfm-cifar10-32") # Generate with custom number of inference steps num_inference_steps: int = 1000 pipeline.scheduler.set_timesteps(num_inference_steps) image = pipeline().images[0] image.save("fast_generated_cifar10.png") ``` ### Batch Generation ```python from diffusers import DDPMPipeline pipeline = DDPMPipeline.from_pretrained("FrankCCCCC/cfm-cifar10-32") # Generate multiple images at once images = pipeline(batch_size=4).images for i, image in enumerate(images): image.save(f"generated_cifar10_{i}.png") ``` ## Flow Matching vs Standard Diffusion This model implements flow matching, which offers several advantages over standard diffusion models: - **Faster sampling**: More efficient ODE solving with fewer steps - **Better training stability**: Continuous normalizing flows provide smoother optimization - **Flexible scheduling**: Exponential time shifting for improved sample quality ## Model Architecture - **UNet**: Standard UNet2DModel for denoising/flow prediction - **Scheduler**: FlowMatchEulerDiscreteScheduler with exponential time shifting - **Output**: 32x32 RGB images matching CIFAR-10 distribution ## Requirements ```bash pip install diffusers torch torchvision ``` ## Samples 1. ![sample_1](https://huggingface.co/FrankCCCCC/cfm-cifar10-32/resolve/main/images/sample0.jpg) 2. ![sample_2](https://huggingface.co/FrankCCCCC/cfm-cifar10-32/resolve/main/images/sample1.jpg) 3. ![sample_3](https://huggingface.co/FrankCCCCC/cfm-cifar10-32/resolve/main/images/sample2.jpg) 4. ![sample_4](https://huggingface.co/FrankCCCCC/cfm-cifar10-32/resolve/main/images/sample3.jpg) 5. ![sample_5](https://huggingface.co/FrankCCCCC/cfm-cifar10-32/resolve/main/images/sample4.jpg) ## Citation If you use this model, please cite the original flow matching and diffusion literature: ```bibtex @inproceedings{DDPM, author = {Ho, Jonathan and Jain, Ajay and Abbeel, Pieter}, booktitle = {Advances in Neural Information Processing Systems}, title = {Denoising Diffusion Probabilistic Models}, url = {https://proceedings.neurips.cc/paper_files/paper/2020/file/4c5bcfec8584af0d967f1ab10179ca4b-Paper.pdf}, year = {2020} } @inproceedings{FM, title={Flow Matching for Generative Modeling}, author={Yaron Lipman and Ricky T. Q. Chen and Heli Ben-Hamu and Maximilian Nickel and Matthew Le}, booktitle={The Eleventh International Conference on Learning Representations }, year={2023}, url={https://openreview.net/forum?id=PqvMRDCJT9t} } ```