Tailored news hub
home›Immagini›

Come Bonsai Image Ternary 4B rivoluziona la diffusione testo-immagine

Scopri come i pesi ternari riducono le dimensioni dei modelli di diffusione di 6,4 volte mantenendo un'alta qualità e prestazioni eccezionali.

Come Bonsai Image Ternary 4B rivoluziona la diffusione testo-immagine
#Enterprise#Generazione Contenuti#Open Source#Privacy#Strumenti Dev

Esplora l'innovativo modello Bonsai Image Ternary 4B, un diffusion transformer compatto basato su architettura FLUX.2 Klein 4B. Analizza l'uso dei pesi ternari, che riducono il modello a soli 1,21 GB, le sue prestazioni su diverse GPU e la sua efficienza nel deployment, definendo un nuovo standard per la generazione di immagini AI.

Un Diffusion Transformer da 1,21 GB con pesi ternari

Bonsai Image Ternary 4B è un modello di diffusione testo-immagine compatto basato sull’architettura FLUX.2 Klein 4B. La sua innovazione principale è l’uso di pesi ternari — ogni peso assume un valore in {‑1, 0, +1} — che riduce il transformer da 7,75 GB a soli 1,21 GB (6,4× più piccolo). La progettazione ternaria orientata alla qualità aggiunge uno stato zero che migliora in modo dimostrabile la fedeltà visiva e la coerenza con il prompt.

Il modello gira nativamente su Linux e Windows tramite CUDA e il kernel a bit ridotti Gemlite, producendo un’immagine 1024×1024 in 4,5 s su una RTX 3080 e 2,8 s su una A100. Un campionatore FlowMatch‑Euler a 4 passi con guidance = 1,0 elimina la necessità di prompt negativi o CFG. È disponibile anche una variante per Apple Silicon.

Rappresentazione e archiviazione dei pesi ternari

Ogni peso ternario è definito come:

w_i = scale_g * t_i, t_i ∈ {−1, 0, +1}

Un unico fattore di scala FP16 condiviso è memorizzato per ogni gruppo di 128 pesi. I valori ternari trasportano log₂(3) ≈ 1,585 bit e, sommando il sovraccarico del fattore di scala, la larghezza effettiva in bit è di circa 1,71 bit/peso, una riduzione idealizzata di 9,4×. Tutti i 100 layer lineari pesanti in matmul — proiezioni Q/K/V, pesi MLP, layer lineari add‑K/Q/V a doppio flusso — sono ternari; i tensori di supporto sensibili alla precisione rimangono in FP16.

FormatoDimensione transformerRiduzioneRapporto
FP16 FLUX.2 Klein 4B7,75 GB—1,0×
Ternary Bonsai 4B1,21 GB84,4%6,4×

Il deployment CUDA utilizza un impacchettamento INT2 (2 bit per ternario), che porta a una rappresentazione su disco di 1,54 GB. Lo stato zero è la leva qualitativa che mantiene le prestazioni visive vicine a quelle del modello FP16 completo.

Architettura di deployment ed efficienza in esecuzione

La spina dorsale del modello è FLUX.2 Klein 4B, un transformer di diffusione MMDiT a 25 blocchi (5 a doppio flusso + 20 a flusso singolo). Il campionatore è FlowMatchEuler‑discreto con 4 passi, guidance = 1,0 e shift = 3,0.

In inferenza, il text encoder Qwen3‑4B viene compresso a 4 bit HQQ e scaricato immediatamente dopo la codifica del prompt. Il ciclo di denoising trasporta quindi solo il transformer ternario compatto e un VAE FP16 con decodifica a riquadri da 128 px. Il payload CUDA totale è di 4,55 GB:

ComponenteDimensione
Transformer INT2 Gemlite1,54 GB
Text encoder HQQ a 4 bit2,84 GB
VAE FP160,17 GB

Il picco di HBM a 1024² su una RTX 3080 è di circa 6,8 GiB end‑to‑end. Lo stack funziona nativamente su Linux x86_64 e Windows tramite gli stessi kernel CUDA/Gemlite.

Throughput e prestazioni benchmark

Throughput (4 passi di denoising, 1024² se non diversamente indicato)

Piattaforma512² (s)1024² (s)
A100 (Colab)1,12,8
RTX PRO 6000 Blackwell (Colab)1,02,1
RTX 3080 10 GB1,44,5
RTX 3060 6 GB (laptop)3,317,5

Benchmark — più alto è meglio. I modelli di confronto sono stati valutati con impostazioni corrispondenti; le spine dorsali più piccole sono state testate a 512×512 dove indicato.

ModelloTransformer (GB)GenEvalHPSv3DPG-Bench
Bonsai Ternary 4B1,210,72312,220,851
Bonsai Binary 4B0,930,67111,150,822
FLUX.2 Klein 4B (FP16)7,750,81912,840,853
FLUX.1-schnell23,80,71612,670,848
SDXL5,140,30010,050,740
PixArt-Σ XL 21,200,54111,930,769
Stable Diffusion 1.51,720,3964,200,601
BK-SDM-Small0,980,2973,050,559

Bonsai Image 4B ternario si avvicina molto al FLUX.2 Klein 4B FP16 riducendo l’ingombro del transformer di 6,4×, spostando di fatto la frontiera qualità‑impronta.

Casi d’uso e limitazioni

Casi d’uso

  • Strumenti creativi locali su GPU consumer con CUDA.
  • Generazione privata con residenza dei dati per flussi di lavoro sensibili alla conformità.
  • Iterazione rapida grazie alla bassa latenza e all’assenza di code remote.
  • Servizio su GPU commodity con pressione di memoria ridotta.
  • Deployment nativo su Windows e Linux.

Limitazioni

  • Non è identico a livello di bit al FLUX.2 Klein 4B FP16; la qualità dipende dalla complessità del prompt e dei dettagli.
  • L’esecuzione ternaria si basa sui kernel GEMM a bassa bitness Gemlite, poiché i percorsi hardware standard non sono ancora completamente nativi per il ternario.
  • Dopo la compressione del transformer, il VAE può diventare un collo di bottiglia di memoria visibile, mitigato dallo scaricamento del text encoder e dalla decodifica a riquadri.
git clone https://github.com/PrismML-Eng/Bonsai-Image-Demo.git
cd Bonsai-Image-Demo
./setup.sh
./scripts/download_model.sh   # ternary is the default
./scripts/serve.sh
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned   # one-time
.\setup.ps1
.\scripts\download_model.ps1
.\scripts\serve.ps1
from backend_gpu.server import build_pipeline

pipe = build_pipeline(model_id="prism-ml/bonsai-image-ternary-4B-gemlite-2bit")
image = pipe(
    prompt="A bonsai tree in a quiet ceramic studio, soft morning light",
    num_inference_steps=4,
    guidance_scale=1.0,
    height=1024,
    width=1024,
).images[0]
image.save("bonsai.png")
Articoli Correlati