- 15 Apr, 2025 1 commit
-
-
Hameer Abbasi authored
* Add AuraFlowLoraLoaderMixin * Add comments, remove qkv fusion * Add Tests * Add AuraFlowLoraLoaderMixin to documentation * Add Suggested changes * Change attention_kwargs->joint_attention_kwargs * Rebasing derp. * fix * fix * Quality fixes. * make style * `make fix-copies` * `ruff check --fix` * Attept 1 to fix tests. * Attept 2 to fix tests. * Attept 3 to fix tests. * Address review comments. * Rebasing derp. * Get more tests passing by copying from Flux. Address review comments. * `joint_attention_kwargs`->`attention_kwargs` * Add `lora_scale` property for te LoRAs. * Make test better. * Remove useless property. * Skip TE-only tests for AuraFlow. * Support LoRA for non-CLIP TEs. * Restore LoRA tests. * Undo adding LoRA support for non-CLIP TEs. * Undo support for TE in AuraFlow LoRA. * `make fix-copies` * Sync with upstream changes. * Remove unneeded stuff. * Mirror `Lumina2`. * Skip for MPS. * Address review comments. * Remove duplicated code. * Remove unnecessary code. * Remove repeated docs. * Propagate attention. * Fix TE target modules. * MPS fix for LoRA tests. * Unrelated TE LoRA tests fix. * Fix AuraFlow LoRA tests by applying to the right denoiser layers. Co-authored-by:
AstraliteHeart <81396681+AstraliteHeart@users.noreply.github.com> * Apply style fixes * empty commit * Fix the repo consistency issues. * Remove unrelated changes. * Style. * Fix `test_lora_fuse_nan`. * fix quality issues. * `pytest.xfail` -> `ValueError`. * Add back `skip_mps`. * Apply style fixes * `make fix-copies` --------- Co-authored-by:
Warlord-K <warlordk28@gmail.com> Co-authored-by:
hlky <hlky@hlky.ac> Co-authored-by:
Sayak Paul <spsayakpaul@gmail.com> Co-authored-by:
AstraliteHeart <81396681+AstraliteHeart@users.noreply.github.com> Co-authored-by:
github-actions[bot] <github-actions[bot]@users.noreply.github.com>
-
- 10 Apr, 2025 1 commit
-
-
Sayak Paul authored
* support musubi wan loras. * Update src/diffusers/loaders/lora_conversion_utils.py Co-authored-by:
hlky <hlky@hlky.ac> * support i2v loras from musubi too. --------- Co-authored-by:
hlky <hlky@hlky.ac>
-
- 08 Apr, 2025 2 commits
-
-
hlky authored
* Flux quantized with lora * fix * changes * Apply suggestions from code review Co-authored-by:
Sayak Paul <spsayakpaul@gmail.com> * Apply style fixes * enable model cpu offload() * Update src/diffusers/loaders/lora_pipeline.py Co-authored-by:
hlky <hlky@hlky.ac> * update * Apply suggestions from code review * update * add peft as an additional dependency for gguf --------- Co-authored-by:
Sayak Paul <spsayakpaul@gmail.com> Co-authored-by:
github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by:
Dhruv Nair <dhruv.nair@gmail.com>
-
Benjamin Bossan authored
* [WIP][LoRA] Implement hot-swapping of LoRA This PR adds the possibility to hot-swap LoRA adapters. It is WIP. Description As of now, users can already load multiple LoRA adapters. They can offload existing adapters or they can unload them (i.e. delete them). However, they cannot "hotswap" adapters yet, i.e. substitute the weights from one LoRA adapter with the weights of another, without the need to create a separate LoRA adapter. Generally, hot-swapping may not appear not super useful but when the model is compiled, it is necessary to prevent recompilation. See #9279 for more context. Caveats To hot-swap a LoRA adapter for another, these two adapters should target exactly the same layers and the "hyper-parameters" of the two adapters should be identical. For instance, the LoRA alpha has to be the same: Given that we keep the alpha from the first adapter, the LoRA scaling would be incorrect for the second adapter otherwise. Theoretically, we could override the scaling dict with the alpha values derived from the second adapter's config, but changing the dict will trigger a guard for recompilation, defeating the main purpose of the feature. I also found that compilation flags can have an impact on whether this works or not. E.g. when passing "reduce-overhead", there will be errors of the type: > input name: arg861_1. data pointer changed from 139647332027392 to 139647331054592 I don't know enough about compilation to determine whether this is problematic or not. Current state This is obviously WIP right now to collect feedback and discuss which direction to take this. If this PR turns out to be useful, the hot-swapping functions will be added to PEFT itself and can be imported here (or there is a separate copy in diffusers to avoid the need for a min PEFT version to use this feature). Moreover, more tests need to be added to better cover this feature, although we don't necessarily need tests for the hot-swapping functionality itself, since those tests will be added to PEFT. Furthermore, as of now, this is only implemented for the unet. Other pipeline components have yet to implement this feature. Finally, it should be properly documented. I would like to collect feedback on the current state of the PR before putting more time into finalizing it. * Reviewer feedback * Reviewer feedback, adjust test * Fix, doc * Make fix * Fix for possible g++ error * Add test for recompilation w/o hotswapping * Make hotswap work Requires https://github.com/huggingface/peft/pull/2366 More changes to make hotswapping work. Together with the mentioned PEFT PR, the tests pass for me locally. List of changes: - docstring for hotswap - remove code copied from PEFT, import from PEFT now - adjustments to PeftAdapterMixin.load_lora_adapter (unfortunately, some state dict renaming was necessary, LMK if there is a better solution) - adjustments to UNet2DConditionLoadersMixin._process_lora: LMK if this is even necessary or not, I'm unsure what the overall relationship is between this and PeftAdapterMixin.load_lora_adapter - also in UNet2DConditionLoadersMixin._process_lora, I saw that there is no LoRA unloading when loading the adapter fails, so I added it there (in line with what happens in PeftAdapterMixin.load_lora_adapter) - rewritten tests to avoid shelling out, make the test more precise by making sure that the outputs align, parametrize it - also checked the pipeline code mentioned in this comment: https://github.com/huggingface/diffusers/pull/9453#issuecomment-2418508871; when running this inside the with torch._dynamo.config.patch(error_on_recompile=True) context, there is no error, so I think hotswapping is now working with pipelines. * Address reviewer feedback: - Revert deprecated method - Fix PEFT doc link to main - Don't use private function - Clarify magic numbers - Add pipeline test Moreover: - Extend docstrings - Extend existing test for outputs != 0 - Extend existing test for wrong adapter name * Change order of test decorators parameterized.expand seems to ignore skip decorators if added in last place (i.e. innermost decorator). * Split model and pipeline tests Also increase test coverage by also targeting conv2d layers (support of which was added recently on the PEFT PR). * Reviewer feedback: Move decorator to test classes ... instead of having them on each test method. * Apply suggestions from code review Co-authored-by:
hlky <hlky@hlky.ac> * Reviewer feedback: version check, TODO comment * Add enable_lora_hotswap method * Reviewer feedback: check _lora_loadable_modules * Revert changes in unet.py * Add possibility to ignore enabled at wrong time * Fix docstrings * Log possible PEFT error, test * Raise helpful error if hotswap not supported I.e. for the text encoder * Formatting * More linter * More ruff * Doc-builder complaint * Update docstring: - mention no text encoder support yet - make it clear that LoRA is meant - mention that same adapter name should be passed * Fix error in docstring * Update more methods with hotswap argument - SDXL - SD3 - Flux No changes were made to load_lora_into_transformer. * Add hotswap argument to load_lora_into_transformer For SD3 and Flux. Use shorter docstring for brevity. * Extend docstrings * Add version guards to tests * Formatting * Fix LoRA loading call to add prefix=None See: https://github.com/huggingface/diffusers/pull/10187#issuecomment-2717571064 * Run make fix-copies * Add hot swap documentation to the docs * Apply suggestions from code review Co-authored-by:
Steven Liu <59462357+stevhliu@users.noreply.github.com> --------- Co-authored-by:
Sayak Paul <spsayakpaul@gmail.com> Co-authored-by:
hlky <hlky@hlky.ac> Co-authored-by:
YiYi Xu <yixu310@gmail.com> Co-authored-by:
Steven Liu <59462357+stevhliu@users.noreply.github.com>
-
- 19 Mar, 2025 1 commit
-
-
Linoy Tsaban authored
* @hlky t2v->i2v * Apply style fixes * try with ones to not nullify layers * fix method name * revert to zeros * add check to state_dict keys * add comment * copies fix * Revert "copies fix" This reverts commit 051f534d185c0ea065bf36a9926c4b48f496d429. * remove copied from * Update src/diffusers/loaders/lora_pipeline.py Co-authored-by:
hlky <hlky@hlky.ac> * Update src/diffusers/loaders/lora_pipeline.py Co-authored-by:
hlky <hlky@hlky.ac> * update * update * Update src/diffusers/loaders/lora_pipeline.py Co-authored-by:
hlky <hlky@hlky.ac> * Apply style fixes --------- Co-authored-by:
github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by:
Linoy <linoy@hf.co> Co-authored-by:
hlky <hlky@hlky.ac>
-
- 11 Mar, 2025 2 commits
-
-
CyberVy authored
* Update lora_pipeline.py * Apply style fixes * fix-copies --------- Co-authored-by:
hlky <hlky@hlky.ac> Co-authored-by:
github-actions[bot] <github-actions[bot]@users.noreply.github.com>
-
Sayak Paul authored
* support wan i2v loras from the world. * remove copied from. * upates * add lora.
-
- 10 Mar, 2025 2 commits
-
-
Aryan authored
* update * make fix-copies * update
-
Sayak Paul authored
* updates * updates * updates * updates * notebooks revert * fix-copies. * seeing * fix * revert * fixes * fixes * fixes * remove print * fix * conflicts ii. * updates * fixes * better filtering of prefix. --------- Co-authored-by:hlky <hlky@hlky.ac>
-
- 08 Mar, 2025 1 commit
-
-
Sayak Paul authored
* more sanity of mind with copied from ... * better * better
-
- 04 Mar, 2025 2 commits
-
-
Aryan authored
* update * refactor image-to-video pipeline * update * fix copied from * use FP32LayerNorm
-
Sayak Paul authored
* feat: support non-diffusers lumina2 LoRAs. * revert ipynb changes (but I don't know why this is required
☹ ️) * empty --------- Co-authored-by:Dhruv Nair <dhruv.nair@gmail.com> Co-authored-by:
YiYi Xu <yixu310@gmail.com>
-
- 20 Feb, 2025 1 commit
-
-
Sayak Paul authored
* feat: lora support for Lumina2. * fix-copies. * updates * updates * docs. * fix * add: training script. * tests * updates * updates * major updates. * updates * fixes * docs. * updates * updates
-
- 15 Jan, 2025 1 commit
-
-
Sayak Paul authored
* feat: support loading loras into 4bit quantized models. * updates * update * remove weight check.
-
- 09 Jan, 2025 1 commit
-
-
Sayak Paul authored
* factor out text encoder loading. * make fix-copies * remove copied from fuse_lora and unfuse_lora as needed. * remove unused imports
-
- 07 Jan, 2025 1 commit
-
-
Aryan authored
* update * fix make copies * update * add relevant markers to the integration test suite. * add copied. * fox-copies * temporarily add print. * directly place on CUDA as CPU isn't that big on the CIO. * fixes to fuse_lora, aryan was right. * fixes --------- Co-authored-by:Sayak Paul <spsayakpaul@gmail.com>
-
- 06 Jan, 2025 1 commit
-
-
Sayak Paul authored
* fix: lora unloading when using expanded Flux LoRAs. * fix argument name. Co-authored-by:
a-r-r-o-w <contact.aryanvs@gmail.com> * docs. --------- Co-authored-by:
a-r-r-o-w <contact.aryanvs@gmail.com>
-
- 02 Jan, 2025 1 commit
-
-
maxs-kan authored
* check for base_layer key in transformer state dict * test_lora_expansion_works_for_absent_keys * check * Update tests/lora/test_lora_layers_flux.py Co-authored-by:
Sayak Paul <spsayakpaul@gmail.com> * check * test_lora_expansion_works_for_absent_keys/test_lora_expansion_works_for_extra_keys * absent->extra --------- Co-authored-by:
hlky <hlky@hlky.ac> Co-authored-by:
Sayak Paul <spsayakpaul@gmail.com>
-
- 25 Dec, 2024 1 commit
-
-
Sayak Paul authored
* feat: support unload_lora_weights() for Flux Control. * tighten test * minor * updates * meta device fixes.
-
- 20 Dec, 2024 1 commit
-
-
Sayak Paul authored
* lora expansion with dummy zeros. * updates * fix working 🥳 * working. * use torch.device meta for state dict expansion. * tests Co-authored-by:
a-r-r-o-w <contact.aryanvs@gmail.com> * fixes * fixes * switch to debug * fix * Apply suggestions from code review Co-authored-by:
Aryan <aryan@huggingface.co> * fix stuff * docs --------- Co-authored-by:
a-r-r-o-w <contact.aryanvs@gmail.com> Co-authored-by:
Aryan <aryan@huggingface.co>
-
- 19 Dec, 2024 1 commit
-
-
Shenghai Yuan authored
* 1217 * 1217 * 1217 * update * reverse * add test * update test * make style * update * make style --------- Co-authored-by:Aryan <aryan@huggingface.co>
-
- 18 Dec, 2024 1 commit
-
-
Sayak Paul authored
* feat: lora support for SANA. * make fix-copies * rename test class. * attention_kwargs -> cross_attention_kwargs. * Revert "attention_kwargs -> cross_attention_kwargs." This reverts commit 23433bf9bccc12e0f2f55df26bae58a894e8b43b. * exhaust 119 max line limit * sana lora fine-tuning script. * readme * add a note about the supported models. * Apply suggestions from code review Co-authored-by:
Aryan <aryan@huggingface.co> * style * docs for attention_kwargs. * remove lora_scale from pag pipeline. * copy fix --------- Co-authored-by:
Aryan <aryan@huggingface.co>
-
- 17 Dec, 2024 2 commits
-
-
Aryan authored
* add lora support for ltx * add tests * fix copied from comments * update --------- Co-authored-by:Sayak Paul <spsayakpaul@gmail.com>
-
Aryan authored
update
-
- 15 Dec, 2024 1 commit
-
-
Aryan authored
* add test for expanding lora and normal lora error * Update tests/lora/test_lora_layers_flux.py * fix things. * Update src/diffusers/loaders/peft.py --------- Co-authored-by:Sayak Paul <spsayakpaul@gmail.com>
-
- 11 Dec, 2024 1 commit
-
-
Jonathan Yin authored
Fix Nonetype attribute error
-
- 10 Dec, 2024 1 commit
-
-
Aryan authored
* update --------- Co-authored-by:
yiyixuxu <yixu310@gmail.com> Co-authored-by:
Sayak Paul <spsayakpaul@gmail.com>
-
- 20 Nov, 2024 1 commit
-
-
Sayak Paul authored
* feat: add lora support to Mochi-1.
-
- 19 Nov, 2024 1 commit
-
-
Sayak Paul authored
* feat: save_lora_adapter.
-
- 02 Nov, 2024 1 commit
-
-
Sayak Paul authored
* add first draft. * fix * updates. * updates. * updates * updates * updates. * fix-copies * lora constants. * add tests * Apply suggestions from code review Co-authored-by:
Benjamin Bossan <BenjaminBossan@users.noreply.github.com> * docstrings. --------- Co-authored-by:
Benjamin Bossan <BenjaminBossan@users.noreply.github.com>
-
- 16 Oct, 2024 1 commit
-
-
Sayak Paul authored
* log a warning when there are missing keys in the LoRA loading. * handle missing keys and unexpected keys better. * add tests * fix-copies. * updates * tests * concat warning. * Add Differential Diffusion to Kolors (#9423) * Added diff diff support for kolors img2img * Fized relative imports * Fized relative imports * Added diff diff support for Kolors * Fized import issues * Added map * Fized import issues * Fixed naming issues * Added diffdiff support for Kolors img2img pipeline * Removed example docstrings * Added map input * Updated latents Co-authored-by:
Álvaro Somoza <asomoza@users.noreply.github.com> * Updated `original_with_noise` Co-authored-by:
Álvaro Somoza <asomoza@users.noreply.github.com> * Improved code quality --------- Co-authored-by:
Álvaro Somoza <asomoza@users.noreply.github.com> * FluxMultiControlNetModel (#9647) * tests * Update src/diffusers/loaders/lora_pipeline.py Co-authored-by:
YiYi Xu <yixu310@gmail.com> * fix --------- Co-authored-by:
M Saqlain <118016760+saqlain2204@users.noreply.github.com> Co-authored-by:
Álvaro Somoza <asomoza@users.noreply.github.com> Co-authored-by:
hlky <hlky@hlky.ac> Co-authored-by:
YiYi Xu <yixu310@gmail.com>
-
- 09 Oct, 2024 1 commit
-
-
Sayak Paul authored
* allow loras to be loaded with low_cpu_mem_usage. * add flux support but note https://github.com/huggingface/diffusers/pull/9510\#issuecomment-2378316687 * low_cpu_mem_usage. * fix-copies * fix-copies again * tests * _LOW_CPU_MEM_USAGE_DEFAULT_LORA * _peft_version default. * version checks. * version check. * version check. * version check. * require peft 0.13.1. * explicitly specify low_cpu_mem_usage=False. * docs. * transformers version 4.45.2. * update * fix * empty * better name initialize_dummy_state_dict. * doc todos. * Apply suggestions from code review Co-authored-by:
Steven Liu <59462357+stevhliu@users.noreply.github.com> * style * fix-copies --------- Co-authored-by:
Steven Liu <59462357+stevhliu@users.noreply.github.com>
-
- 08 Oct, 2024 1 commit
-
-
Sayak Paul authored
* handle dora. * print test * debug * fix * fix-copies * update logits * add warning in the test. * make is_dora check consistent. * fix-copies
-
- 19 Sep, 2024 1 commit
-
-
Aryan authored
* cogvideox lora training draft * update * update * update * update * update * make fix-copies * update * update * apply suggestions from review * apply suggestions from reveiw * fix typo * Update examples/cogvideo/train_cogvideox_lora.py Co-authored-by:
YiYi Xu <yixu310@gmail.com> * fix lora alpha * use correct lora scaling for final test pipeline * Update examples/cogvideo/train_cogvideox_lora.py Co-authored-by:
YiYi Xu <yixu310@gmail.com> * apply suggestions from review; prodigy optimizer YiYi Xu <yixu310@gmail.com> * add tests * make style * add README * update * update * make style * fix * update * add test skeleton * revert lora utils changes * add cleaner modifications to lora testing utils * update lora tests * deepspeed stuff * add requirements.txt * deepspeed refactor * add lora stuff to img2vid pipeline to fix tests * fight tests * add co-authors Co-Authored-By:
Fu-Yun Wang <1697256461@qq.com> Co-Authored-By:
zR <2448370773@qq.com> * fight lora runner tests * import Dummy optim and scheduler only wheh required * update docs * add coauthors Co-Authored-By:
Fu-Yun Wang <1697256461@qq.com> * remove option to train text encoder Co-Authored-By:
bghira <bghira@users.github.com> * update tests * fight more tests * update * fix vid2vid * fix typo * remove lora tests; todo in follow-up PR * undo img2vid changes * remove text encoder related changes in lora loader mixin * Revert "remove text encoder related changes in lora loader mixin" This reverts commit f8a8444487db27859be812866db4e8cec7f25691. * update * round 1 of fighting tests * round 2 of fighting tests * fix copied from comment * fix typo in lora test * update styling Co-Authored-By:
YiYi Xu <yixu310@gmail.com> --------- Co-authored-by:
YiYi Xu <yixu310@gmail.com> Co-authored-by:
zR <2448370773@qq.com> Co-authored-by:
Fu-Yun Wang <1697256461@qq.com> Co-authored-by:
bghira <bghira@users.github.com>
-
- 29 Aug, 2024 1 commit
-
-
Sayak Paul authored
* support kohya lora in flux. * format * support xlabs * diffusion_model prefix. * Apply suggestions from code review Co-authored-by:
apolinário <joaopaulo.passos@gmail.com> * empty commit. Co-authored-by:
Leommm-byte <leom20031@gmail.com> --------- Co-authored-by:
apolinário <joaopaulo.passos@gmail.com> Co-authored-by:
Leommm-byte <leom20031@gmail.com>
-
- 22 Aug, 2024 2 commits
-
-
Sayak Paul authored
* support parsing alpha from a flux lora state dict. * conditional import. * fix breaking changes. * safeguard alpha. * fix
-
Steven Liu authored
fix docstring Co-authored-by:Sayak Paul <spsayakpaul@gmail.com>
-
- 05 Aug, 2024 1 commit
-
-
Sayak Paul authored
* feat: lora support for Flux. add tests fix imports major fixes. * fix fixes final fixes? * fix * remove is_peft_available.
-
- 26 Jul, 2024 1 commit
-
-
Sayak Paul authored
* introduce to promote reusability. * up * add more tests * up * remove comments. * fix fuse_nan test * clarify the scope of fuse_lora and unfuse_lora * remove space * rewrite fuse_lora a bit. * feedback * copy over load_lora_into_text_encoder. * address dhruv's feedback. * fix-copies * fix issubclass. * num_fused_loras * fix * fix * remove mapping * up * fix * style * fix-copies * change to SD3TransformerLoRALoadersMixin * Apply suggestions from code review Co-authored-by:
Dhruv Nair <dhruv.nair@gmail.com> * up * handle wuerstchen * up * move lora to lora_pipeline.py * up * fix-copies * fix documentation. * comment set_adapters(). * fix-copies * fix set_adapters() at the model level. * fix? * fix * loraloadermixin. --------- Co-authored-by:
Dhruv Nair <dhruv.nair@gmail.com>
-
- 25 Jul, 2024 1 commit
-