Skip to content

Friction log from new user #24

Closed
Closed

Description

@osanseviero

Hey all! I'm writing a friction log as a new user and someone with 0 experience with diffusion models. I hope this is useful.

Overall, I loved that the README had a definition section, it was very quick to get things going and I was able to have some result with existing pipelines very quickly. As a first step I just went through the README, I'll kick off some training tomorrow. Awesome work everyone

1. Going through the README

I1. (first code example)
When I see https://huggingface.co/fusing/ddpm-lsun-church, the repo shows as transformers. Two questions arise

  • Do we want a new tag for diffusers?
  • What about adding a code snippet? DiffusionPipeline.from_pretrained(model_id)
    (both should be easy and happy to help with it)

I2 (first code example)
I tried the code snippet suggested at https://huggingface.co/fusing/ddpm-lsun-church, but it fails

model_id = "fusing/ddpm-lsun-church"
ddpm = DiffusionPipeline.from_pretrained(model_id)

with


AttributeError: module 'diffusers' has no attribute 'GaussianDDPMScheduler'

(same for second exampke)

This also makes me wonder what's the difference between just using the diffusion pipeline directly as in the model card vs using DDPMScheduler + UNetModel approach as in the README. Is the pipeline approach just a wrapper of both?

I3 (second code example)

Should num_inference_steps be len(noise_scheduler) as in first example?

I4
I just quickly browsed through the RL guide, but it seems the pretrained model is downloaded from Dropbox 😅 should we add it to the Hub?

I5
The short examples in section 2 are 🔥. They are short, clear, concise and nice results!

I6
It would be nice to have metadata in the model repos to be able to filter models depending what they can do (tts, text-to-image, etc).

Activity

  1. osanseviero commented on Jun 19, 2022

    @osanseviero
    ContributorAuthor

    As a second step I trained a model with a new dataset based on the example script. It was very straightforward 🔥 and everything worked together very nicely, except for my GPU not allowing larger models, so I had to decrease resolution. I would have loved a push_to_hub method to upload it

  2. patil-suraj commented on Jun 19, 2022

    @patil-suraj
    Contributor

    Thanks a lot for the feedback !

    I1. (first code example):

    • Yes, diffusers tag would be awesome.
    • Yes, we could definitely add code snippet once the API is finalised.

    I2 (first code example):
    The example is failing because of renaming. GaussianDDPMScheduler is now DDPMScheduler. These will be fixed once we settle on names. Fixed this example for now :)

    This also makes me wonder what's the difference between just using the diffusion pipeline directly as in the model card vs using DDPMScheduler + UNetModel approach as in the README. Is the pipeline approach just a wrapper of both?

    We are aiming for two APIs here:

    • press a button API with pipeline, where user could just load the pipeline and use it as it is for inference. This is more abstract and black-box API to play with pre-trained pipelines.
    • barebone/follow-the-equation: Which offers more control , allows to mix and match different schedulers and models, write your own denoising loop. This is close to how these models are presented in research papers.

    I3 (second code example)

    Should num_inference_steps be len(noise_scheduler) as in first example?

    some schedulers like DDIM allows you to use different num_inference_steps than what was used during the training to allow fast inference. So this is intended, num_inference_steps and len(noise_scheduler) can be different.

    I4 and I6:
    The models were added in a fast hacky way to get the initial version rolling. All of these will improved before formal release.

    I would have loved a push_to_hub method to upload it

    @anton-l is already working on it :)

  3. osanseviero commented on Jun 19, 2022

    @osanseviero
    ContributorAuthor

    I1

    • Happy to help with setting up the code snippet + tag once the API is finalised.

    I2

    • Thanks!

    I3

    • Cool, then this is analogous to *Model classes and pipeline in transformers. Sounds exciting!

    For push to Hub, feel free me to tag me in the PR once opened, it would be cool to have metrics and other metadata out-of-the-box

  4. patrickvonplaten commented on Jul 21, 2022

    @patrickvonplaten
    Contributor

    Thanks for the feedback here @osanseviero - think we applied almost all of it now :-)

  5. added a commit that references this issue on Oct 30, 2025
  6. added a commit that references this issue on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions