huggingface / huggingface/diffusers

Wrong default layers for Flux 2 Klein

Offen
#13,445 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug lora needs-code-example pipelines
Vorherrschende Sprache
Python
Sterne
34.5k
Forks
7.3k
Ø Merge
3 T. 3 Std.
Gemergte PRs (30 T.)
91

Beschreibung

### Describe the bug

Thanks a lot for taking the time to review this issue 🤗

There seems to be a mismatch between the default values exposed via CLI arguments and the layers that are actually used internally in the script:

Script:
[pipeline_flux2_klein.py](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein.py)
[train_dreambooth_lora_flux2_klein.py](https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/train_dreambooth_lora_flux2_klein.py)

The argument definition specifies:

```
parser.add_argument(
"--text_encoder_out_layers",
type=int,
nargs="+",
default=[10, 20, 30],
help="Text encoder hidden layers to compute the final text embeddings.",
)
```
However, inside the implementation the following layers are actually used:
`hidden_states_layers: list[int] = (9, 18, 27)`
**Expected behavior**
The default CLI argument values should match the layers that are actually used internally, or the internal implementation should respect the provided CLI values.
**Actual behavior**
There is an off-by-one inconsistency between:
CLI defaults: [10, 20, 30]
Internal usage: (9, 18, 27)
This can lead to confusion and potentially incorrect assumptions when tuning or debugging training behavior.
**Possible cause**
This might be a copy-paste artifact from:
[train_dreambooth_lora_flux2.py](https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/train_dreambooth_lora_flux2.py)
which uses a different setup (e.g. Mistral-based text encoder in a dev version), where layer indexing may differ.
**Additional context**
This discrepancy cost me ~72 GPU hours before I realized what was going on, so I figured it’s worth documenting 😅
**Suggested fix**
Either align defaults with (9, 18, 27)
Or make sure --text_encoder_out_layers is actually used consistently throughout the script

### Reproduction

No special setup required — this is directly visible from reading the script.

### Logs

```shell

```

### System Info

N/A

### Who can help?

_No response_

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit src/diffusers/pipelines/flux2/pipeline_flux2_klein.py und examples/dreambooth/train_dreambooth_lora_flux2_klein.py und vergleiche den CLI-Standardwert für --text_encoder_out_layers mit dem internen Wert hidden_states_layers. Verfolge, wie das Argument die Berechnung der Text-Embeddings erreicht, und überprüfe die beabsichtigte Layer-Indizierung. Als erledigt gilt die Aufgabe, wenn die Standardwerte und die tatsächlich verwendeten Layer konsistent sind und explizit angegebene CLI-Werte respektiert werden, falls dies das gewählte Verhalten ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python, pytorch
Bereich
machine-learning
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
65/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.