Views
No views yet
| File | Size | Description |
|---|---|---|
z_image_turbo_bf16.bpk | 11 GB | Transformer weights in BF16 precision |
1use burn::backend::candle::{Candle, CandleDevice};
2use half::bf16;
3use qwen3_burn::{Qwen3Config, Qwen3Model, Qwen3Tokenizer};
4use z_image::{GenerateFromTextOpts, modules::ae::AutoEncoderConfig, modules::transformer::ZImageModelConfig};
5
6type Backend = Candle<bf16, i64>;
7
8fn main() {
9 let device = CandleDevice::metal(0);
10 let model_dir = PathBuf::from("./models");
11
12 // Load components
13 let tokenizer = Qwen3Tokenizer::from_file(model_dir.join("qwen3-tokenizer.json")).unwrap();
14
15 let mut text_encoder: Qwen3Model<Backend> = Qwen3Config::z_image_text_encoder().init(&device);
16 text_encoder.load_weights(model_dir.join("qwen3_4b_text_encoder.safetensors")).unwrap();
17
18 let mut transformer = ZImageModelConfig::default().init(&device);
19 transformer.load_weights(model_dir.join("z_image_turbo_bf16.bpk")).unwrap();
20
21 let mut ae = AutoEncoderConfig::flux_ae().init(&device);
22 ae.load_weights(model_dir.join("ae.safetensors")).unwrap();
23
24 // Generate image
25 let opts = GenerateFromTextOpts {
26 prompt: "A beautiful sunset over mountains".to_string(),
27 out_path: PathBuf::from("output.png"),
28 width: 512,
29 height: 512,
30 };
31
32 z_image::generate_from_text(&opts, &tokenizer, &text_encoder, &ae, &transformer, &device).unwrap();
33}