huggingface / huggingface/diffusers

Explicit support of masked loss and schedulefree optimizers

Open
#10,389 2 comments 0 reactions 0 assignees View on GitHub
stale
Dominant language
Python
Stars
34.5k
Forks
7.3k
Avg merge
3d 3h
Merged PRs (30d)
91

Description

ETA: this is my first massive involvement with scripts using diffusers, so I might not be getting some concepts for now, but I'm trying to learn as I go.

I'm trying to extend a script from the advanced_diffusion_training folder that deals with finetuning a dreambooth lora for flux (https://github.com/huggingface/diffusers/blob/main/examples/advanced_diffusion_training/train_dreambooth_lora_flux_advanced.py),
but I'm trying to:

1. add support for schedulefree optimizers (primarily `AdamWScheduleFree`)
2. add a way to use masked loss (based on the mask images or alpha channel info). (possibly related to https://github.com/huggingface/diffusers/issues/10194)

I'm basing both additions on the way it's handled in sd-scripts by kohya-ss (https://github.com/kohya-ss/sd-scripts/blob/sd3/flux_train_network.py is the main source of inspiration), but

1. I'm not sure I'm adding schedulefree optimizer `train` / `eval` switching in all the right places (before actual training, before sampling images, before saving checpoints, &c)
2. the masked loss part has me stumped; I think that we can use the way the dataset is constructed (`DreamBoothDataset` has no out-of-the-box support for `alpha_mask`, but `DreamBoothSubset` from sd-scripts does), but maybe I’m missing something

My current attempts live here: https://gist.github.com/StrangeTcy/dc15b5880dd0d0d92639fe7aba595d54

Any pointers would be welcome.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.