Vai al contenuto

Diffusers supporta FLUX.3 Image Klein: modello aperto con layout a box

Grafica con i loghi di Black Forest Labs e Hugging Face e la scritta FLUX .3 Klein in Diffusers.
Foto: Hugging Face

Il 15 ottobre 2026 Black Forest Labs rilascia FLUX.3 Image Klein, il suo nuovo modello aperto per la generazione di immagini, che funziona in Diffusers fin dal primo giorno. Lo racconta il blog di Hugging Face. Un solo modello copre testo-immagine e immagine-immagine con più riferimenti, e aggiunge il controllo del layout: nel prompt si scrivono dei bounding box per dire dove deve andare ogni elemento o quali parti di un riferimento vanno spostate.

Secondo Hugging Face, il checkpoint distillato produce un’immagine 1024 × 1024 in circa 2 secondi su una H100.

I due checkpoint e come si caricano

La collezione FLUX.3 Image Klein contiene due checkpoint aperti.

Checkpoint Cos’è Impostazioni predefinite
black-forest-labs/flux-3-image-klein Distillato sul passo temporale, per inferenza veloce 16 passi, senza CFG
black-forest-labs/flux-3-image-klein-base Modello base 50 passi, con CFG

Il base è quello da usare per il fine-tuning. Per iniziare, il blog indica di installare le ultime versioni con pip install -U diffusers transformers: transformers serve per l’encoder di testo Qwen3-VL. Il modello si carica con ModularPipeline.from_pretrained, poi load_components in bfloat16 e to("cuda").

La pipeline è modulare: i blocchi si possono togliere o aggiungere. Il VAE ha la stessa architettura di Flux.2 e la pipeline accetta un solo prompt per chiamata. Hugging Face mette a disposizione anche uno space per provare il modello subito.

La scheda del modello su Hugging Face precisa che per accedere ai file bisogna accettare le condizioni e condividere i propri dati di contatto.

Più riferimenti e layout con i bounding box

Per l’immagine-immagine si passa una o più immagini con l’argomento image. Il prompt va scritto come didascalia dell’immagine che si vuole ottenere, con la modifica già inclusa. Con più riferimenti li si richiama nel testo come <ref_image_0>, <ref_image_1>, nell’ordine in cui sono passati. La scheda del modello indica fino a 10 immagini di riferimento.

Il controllo del layout funziona così:

  • dopo la didascalia si aggiunge una lista JSON di regioni, ciascuna con id, bbox e desc;
  • la didascalia cita ogni regione come <id>;
  • i box sono scritti [y_min, x_min, y_max, x_max], con la y per prima, su una scala da 0 a 1000: poiché la scala è normalizzata, lo stesso box vale per qualsiasi dimensione dell’immagine;
  • per modificare un riferimento, ogni regione indica da dove viene il contenuto (src_bbox) e dove va (tgt_bbox); se i due box coincidono, la regione resta dov’è.

Secondo la scheda del modello, i box guidano posizione e scala ma non sono maschere rigide: un elemento può uscire dal suo box, quelli piccoli possono non comparire e le modifiche possono toccare anche zone fuori dall’area richiesta.

Versioni quantizzate per GPU più piccole

Black Forest Labs distribuisce il transformer anche come file singolo, in bf16 e in due formati quantizzati: fp8r (FP8 per riga) e nvfp4. Si caricano con from_single_file e BFLQuantizationConfig.

I kernel veloci di fp8r richiedono GPU con compute capability 8.9 o superiore (Ada, Hopper, Blackwell). Quelli di nvfp4 richiedono una Blackwell, con flashinfer-python e flashinfer-cubin alla stessa versione. Sulle altre GPU i pesi vengono dequantizzati a ogni passo: si risparmia memoria, ma non si guadagna velocità.

Memoria e tempi misurati

Il blog riporta il picco di memoria allocata dopo il caricamento dei pesi e dopo l’inferenza.

Variante (GPU) Dopo il caricamento Dopo l’inferenza
nvfp4 (RTX6000) 13,4 GiB 15,3 GiB
fp8r (H100) 14,35 GiB 16,27 GiB
bf16 (H100) 18,80 GiB 20,72 GiB

I tempi del checkpoint distillato a 16 passi sono medie di tre prove dopo il riscaldamento, su una singola H100 80GB, senza offloading e con il backend di attenzione predefinito. Il blog riporta un picco di memoria di 23,8 GiB per tutti e tre i flussi di lavoro.

Flusso di lavoro Dimensione output Tempo
Testo-immagine 1024 × 1024 1,93 s
Immagine-immagine, un riferimento 1024 × 1024 1024 × 1024 3,87 s
Modifica di layout, un riferimento 1360 × 768 1360 × 768 4,10 s

Un riferimento fa circa raddoppiare il tempo: i suoi token entrano nella stessa sequenza del testo e dell’immagine generata, e un riferimento 1024 × 1024 ne aggiunge 4.096 a ogni chiamata del transformer.

Per usare meno memoria Hugging Face suggerisce di caricare un transformer quantizzato, di eseguire a parte l’encoder di testo liberandolo subito dopo (gira una sola volta per immagine, prima del denoising) e di attivare l’offload automatico su CPU con ComponentsManager. Gli autori precisano di non aver misurato quest’ultima opzione.

Addestrare le proprie LoRA

Secondo Hugging Face, FLUX.3 è una buona base per LoRA personalizzate, sia per testo-immagine sia per l’editing.

  • Diffusers include script DreamBooth LoRA per entrambi i compiti, train_dreambooth_lora_flux3_klein.py e train_dreambooth_lora_flux3_klein_img2img.py; si può addestrare anche con AI Toolkit di Ostris;
  • lo script img2img lavora su triplette (immagine di riferimento, immagine di destinazione, istruzione), con il riferimento indicato nel prompt come <ref_image_0>;
  • per ridurre la memoria in addestramento si aggiungono --gradient_checkpointing, --cache_latents e --use_8bit_adam.

La scheda del modello indica come licenza la FLUX Kommunity License v1.0: consente l’uso non commerciale e, agli utenti con ricavi annualizzati lordi inferiori a 5 milioni di dollari (affiliate incluse), la generazione di output commerciali alle condizioni previste. Per altri usi serve una licenza commerciale.

Leggi anche