[bug]: FLUX.1 diffusers LoRA converter maps both guidance-embedder layers onto `guidance_in`
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 85/100
Direzione di ricerca
Il bug è in invokeai/backend/patches/lora_conversions/flux_diffusers_lora_conversion_utils.py righe 186-188 dove entrambi i layer guidance embedder mappano a guidance_in. Cambia i mapping a guidance_in.in_layer e guidance_in.out_layer come con time_in. Esegui lo script di riproduzione dell'issue per confermare che non ci sia KeyError e che entrambi i layer appaiano. Fatto quando lo script passa e i mapping corrispondono agli embedder vicini.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is there an existing issue for this problem?
- I have searched the existing issues
Install method
Manual (dev checkout)
Operating system
Windows
GPU vendor
Not GPU-specific (reproduced on CPU)
GPU model
No response
GPU VRAM
No response
Version number
main at 0ddc9df91b
What happened
The FLUX.1 diffusers LoRA converter maps both guidance-embedder layers onto the same module:
# invokeai/backend/patches/lora_conversions/flux_diffusers_lora_conversion_utils.py:186-188
add_lora_layer_if_present("time_text_embed.guidance_embedder.linear_1", "guidance_in")
add_lora_layer_if_present("time_text_embed.guidance_embedder.linear_2", "guidance_in")
guidance_in is an MLPEmbedder with no parameters of its own. The second layer overwrites the first, and patching fails:
File "invokeai/backend/patches/layers/lora_layer_base.py", line 63, in get_parameters
lora_weight = self.get_weight(orig_parameters["weight"])
KeyError: 'weight'
The neighbouring timestep and text embedders map to in_layer / out_layer. This affects diffusers-format FLUX.1 dev LoRAs that train the guidance embedder.
What you expected to happen
linear_1 → guidance_in.in_layer and linear_2 → guidance_in.out_layer, like time_in and vector_in.
How to reproduce the problem
import torch
import invokeai.backend.model_manager.load # noqa: F401
from invokeai.backend.flux.model import Flux
from invokeai.backend.flux.util import get_flux_transformers_params
from invokeai.backend.model_manager.taxonomy import FluxVariantType
from invokeai.backend.patches.layer_patcher import LayerPatcher
from invokeai.backend.patches.lora_conversions.flux_diffusers_lora_conversion_utils import (
lora_model_from_flux_diffusers_state_dict,
)
sd = {}
for name, d_in in (("linear_1", 256), ("linear_2", 3072)):
p = f"transformer.time_text_embed.guidance_embedder.{name}"
sd |= {f"{p}.lora_A.weight": torch.randn(4, d_in), f"{p}.lora_B.weight": torch.randn(3072, 4)}
patch = lora_model_from_flux_diffusers_state_dict(sd, alpha=None)
print(list(patch.layers)) # ['lora_transformer-guidance_in']
with torch.device("meta"):
flux = Flux(get_flux_transformers_params(FluxVariantType.Dev))
flux.guidance_in.to_empty(device="cpu")
with LayerPatcher.apply_smart_model_patches(
model=flux, patches=[(patch, 1.0)], prefix="lora_transformer-", dtype=torch.float32, force_direct_patching=True
):
pass
Additional context
For LoRAs that train every layer this is currently masked by #10022, which fails the load first.
Found while checking every LoRA layout OneTrainer writes (b08db37) against main: OneTrainer's own savers run on meta-device models of the real architectures, then identification, LoRALoader and LayerPatcher module resolution on the InvokeAI model.
Discord username
No response
- Lingua principale
- TypeScript
- Stelle
- 28.8k
- Fork
- 3.1k
- Merge medio
- 3g 9h
- PR unite (30g)
- 168
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di invoke-ai/InvokeAI
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
invoke-ai/InvokeAI#10022 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
[bug]: LoHa on Conv2d layers with conv-shaped factors fails at generation timeForse già presa @guishiw l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
invoke-ai/InvokeAI#10017 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di invoke-ai/InvokeAI
Issue simili
-
category::task code priority::normal
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
e0ipso/strikethroo#145 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
cocos/cocos-docs#3333 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
RevenueCat/react-native-purchases#2079 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
RevenueCat/purchases-hybrid-common#2039 ·
I maintainer di solito rispondono entro 1 giorno
-
agent-reported area/react bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno