Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat: Benchmarking Workflow] add stuff for a benchmarking workflow #5839

Merged
merged 118 commits into from
Dec 12, 2023

Conversation

sayakpaul
Copy link
Member

@sayakpaul sayakpaul commented Nov 17, 2023

What does this PR do?

Adds utilities running benchmarks as an automated workflow. I think this could lift a lot of manual burden off of our shoulders.

As was discussing with @williamberman.

Curious to know what others think about it. @patrickvonplaten @DN6

Some comments in line.

The final artifact of the workflow would be a dataset like this: https://huggingface.co/datasets/diffusers/benchmarks.

Comment on lines 1 to 9
name: Benchmarking tests

on:
pull_request:
branches:
- main
push:
branches:
- ci-*
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should ideally be done weekly or bi-weekly and only on main. For testing, I am running it on PRs.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think bi-weekly (twice a month?) Works here. Or even monthly is a good cadence.

Copy link
Member Author

@sayakpaul sayakpaul Nov 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup. Will keep it to bi-weekly. Will incorporate that change once we're one with how we want to report the benchmarks and the pipelines we want to benchmark.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should change this to a cron job

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this will be changed.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to cron job.

@HuggingFaceDocBuilderDev

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

@patrickvonplaten
Copy link
Contributor

I like the idea - @DN6 wdyt?

@sayakpaul
Copy link
Member Author

@DN6 a gentle ping.

benchmarks/benchmark_sd.py Outdated Show resolved Hide resolved
@DN6
Copy link
Collaborator

DN6 commented Nov 27, 2023

Left a couple of comments, but overall LGTM 👍🏽 @sayakpaul

@sayakpaul sayakpaul marked this pull request as ready for review December 7, 2023 10:52
@sayakpaul
Copy link
Member Author

@DN6 could you go through PR rigorously? https://huggingface.co/datasets/diffusers/benchmarks is the reported dataset. Have a look at it too :)

Once the workflow successfully completes, I will make the changes necessary for the crown job. Are we sticking to bi-weekly for now?

@sayakpaul
Copy link
Member Author

@DN6 one final review please :)

@sayakpaul sayakpaul requested a review from DN6 December 9, 2023 04:11
Copy link
Collaborator

@DN6 DN6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍🏽

@sayakpaul sayakpaul merged commit 1d686ba into main Dec 12, 2023
16 checks passed
@sayakpaul sayakpaul deleted the feat/ci-benchmarking branch December 12, 2023 05:33
donhardman pushed a commit to donhardman/diffusers that referenced this pull request Dec 18, 2023
…uggingface#5839)

* add poc for benchmarking workflow.

* import

* fix argument

* fix: argument

* fix: path

* fix

* fix

* path

* output csv files.

* workflow cleanup

* append token

* add utility to push to hf dataset

* fix: kw arg

* better reporting

* fix: headers

* better formatting of the numbers.

* better type annotation

* fix: formatting

* moentarily disable check

* push results.

* remove disable check

* introduce base classes.

* img2img class

* add inpainting pipeline

* intoduce base benchmark class.

* add img2img and inpainting

* feat: utility to compare changes

* fix

* fix import

* add args

* basepath

* better exception handling

* better path handling

* fix

* fix

* remove

* ifx

* fix

* add: support for controlnet.

* image_url -> url

* move images to huggingface hub

* correct urls.

* root_ckpt

* flush before benchmarking

* don't install accelerate from source

* add runner

* simplify Diffusers Benchmarking step

* change runner

* fix: subprocess call.

* filter percentage values

* fix controlnet benchmark

* add t2i adapters.

* fix filter columns

* fix t2i adapter benchmark

* fix init.

* fix

* remove safetensors flag

* fix args print

* fix

* feat: run_command

* add adapter resolution mapping

* benchmark t2i adapter fix.

* fix adapter input

* fix

* convert to L.

* add flush() add appropriate places

* better filtering

* okay

* get env for torch

* convert to float

* fix

* filter out nans.

* better coment

* sdxl

* sdxl for other benchmarks.

* fix: condition

* fix: condition for inpainting

* fix: mapping for resolution

* fix

* include kandinsky and wuerstchen

* fix: Wuerstchen

* Empty-Commit

* [Community] AnimateDiff + Controlnet Pipeline (huggingface#5928)

* begin work on animatediff + controlnet pipeline

* complete todos, uncomment multicontrolnet, input checks

Co-Authored-By: EdoardoBotta <[email protected]>

* update

Co-Authored-By: EdoardoBotta <[email protected]>

* add example

* update community README

* Update examples/community/README.md

---------

Co-authored-by: EdoardoBotta <[email protected]>
Co-authored-by: Patrick von Platen <[email protected]>

* EulerDiscreteScheduler add `rescale_betas_zero_snr` (huggingface#6024)

* EulerDiscreteScheduler add `rescale_betas_zero_snr`

* Revert "[Community] AnimateDiff + Controlnet Pipeline (huggingface#5928)"

This reverts commit 821726d.

* Revert "EulerDiscreteScheduler add `rescale_betas_zero_snr` (huggingface#6024)"

This reverts commit 3dc2362.

* add SDXL turbo

* add lcm lora to the mix as well.

* fix

* increase steps to 2 when running turbo i2i

* debug

* debug

* debug

* fix for good

* fix and isolate better

* fuse lora so that torch compile works with peft

* fix: LCMLoRA

* better identification for LCM

* change to cron job

---------

Co-authored-by: Patrick von Platen <[email protected]>
Co-authored-by: Dhruv Nair <[email protected]>
Co-authored-by: Aryan V S <[email protected]>
Co-authored-by: EdoardoBotta <[email protected]>
Co-authored-by: Beinsezii <[email protected]>
AmericanPresidentJimmyCarter pushed a commit to AmericanPresidentJimmyCarter/diffusers that referenced this pull request Apr 26, 2024
…uggingface#5839)

* add poc for benchmarking workflow.

* import

* fix argument

* fix: argument

* fix: path

* fix

* fix

* path

* output csv files.

* workflow cleanup

* append token

* add utility to push to hf dataset

* fix: kw arg

* better reporting

* fix: headers

* better formatting of the numbers.

* better type annotation

* fix: formatting

* moentarily disable check

* push results.

* remove disable check

* introduce base classes.

* img2img class

* add inpainting pipeline

* intoduce base benchmark class.

* add img2img and inpainting

* feat: utility to compare changes

* fix

* fix import

* add args

* basepath

* better exception handling

* better path handling

* fix

* fix

* remove

* ifx

* fix

* add: support for controlnet.

* image_url -> url

* move images to huggingface hub

* correct urls.

* root_ckpt

* flush before benchmarking

* don't install accelerate from source

* add runner

* simplify Diffusers Benchmarking step

* change runner

* fix: subprocess call.

* filter percentage values

* fix controlnet benchmark

* add t2i adapters.

* fix filter columns

* fix t2i adapter benchmark

* fix init.

* fix

* remove safetensors flag

* fix args print

* fix

* feat: run_command

* add adapter resolution mapping

* benchmark t2i adapter fix.

* fix adapter input

* fix

* convert to L.

* add flush() add appropriate places

* better filtering

* okay

* get env for torch

* convert to float

* fix

* filter out nans.

* better coment

* sdxl

* sdxl for other benchmarks.

* fix: condition

* fix: condition for inpainting

* fix: mapping for resolution

* fix

* include kandinsky and wuerstchen

* fix: Wuerstchen

* Empty-Commit

* [Community] AnimateDiff + Controlnet Pipeline (huggingface#5928)

* begin work on animatediff + controlnet pipeline

* complete todos, uncomment multicontrolnet, input checks

Co-Authored-By: EdoardoBotta <[email protected]>

* update

Co-Authored-By: EdoardoBotta <[email protected]>

* add example

* update community README

* Update examples/community/README.md

---------

Co-authored-by: EdoardoBotta <[email protected]>
Co-authored-by: Patrick von Platen <[email protected]>

* EulerDiscreteScheduler add `rescale_betas_zero_snr` (huggingface#6024)

* EulerDiscreteScheduler add `rescale_betas_zero_snr`

* Revert "[Community] AnimateDiff + Controlnet Pipeline (huggingface#5928)"

This reverts commit 821726d.

* Revert "EulerDiscreteScheduler add `rescale_betas_zero_snr` (huggingface#6024)"

This reverts commit 3dc2362.

* add SDXL turbo

* add lcm lora to the mix as well.

* fix

* increase steps to 2 when running turbo i2i

* debug

* debug

* debug

* fix for good

* fix and isolate better

* fuse lora so that torch compile works with peft

* fix: LCMLoRA

* better identification for LCM

* change to cron job

---------

Co-authored-by: Patrick von Platen <[email protected]>
Co-authored-by: Dhruv Nair <[email protected]>
Co-authored-by: Aryan V S <[email protected]>
Co-authored-by: EdoardoBotta <[email protected]>
Co-authored-by: Beinsezii <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants