yilei.wang commited on
Commit
fb354a9
·
1 Parent(s): 990f24f

README & .gitattributes

Browse files
Files changed (2) hide show
  1. .gitattributes +27 -9
  2. README.md +73 -1
.gitattributes CHANGED
@@ -1,35 +1,53 @@
1
  *.7z filter=lfs diff=lfs merge=lfs -text
2
  *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
 
4
  *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
7
  *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
10
  *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
  *.model filter=lfs diff=lfs merge=lfs -text
13
  *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
  *.onnx filter=lfs diff=lfs merge=lfs -text
17
  *.ot filter=lfs diff=lfs merge=lfs -text
18
  *.parquet filter=lfs diff=lfs merge=lfs -text
19
  *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
  *.pt filter=lfs diff=lfs merge=lfs -text
23
  *.pth filter=lfs diff=lfs merge=lfs -text
24
  *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
  *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
  *.tflite filter=lfs diff=lfs merge=lfs -text
30
  *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
  *.xz filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
1
  *.7z filter=lfs diff=lfs merge=lfs -text
2
  *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bin.* filter=lfs diff=lfs merge=lfs -text
5
  *.bz2 filter=lfs diff=lfs merge=lfs -text
 
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
7
  *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
10
  *.lfs.* filter=lfs diff=lfs merge=lfs -text
 
11
  *.model filter=lfs diff=lfs merge=lfs -text
12
  *.msgpack filter=lfs diff=lfs merge=lfs -text
 
 
13
  *.onnx filter=lfs diff=lfs merge=lfs -text
14
  *.ot filter=lfs diff=lfs merge=lfs -text
15
  *.parquet filter=lfs diff=lfs merge=lfs -text
16
  *.pb filter=lfs diff=lfs merge=lfs -text
 
 
17
  *.pt filter=lfs diff=lfs merge=lfs -text
18
  *.pth filter=lfs diff=lfs merge=lfs -text
19
  *.rar filter=lfs diff=lfs merge=lfs -text
 
20
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
21
  *.tar.* filter=lfs diff=lfs merge=lfs -text
 
22
  *.tflite filter=lfs diff=lfs merge=lfs -text
23
  *.tgz filter=lfs diff=lfs merge=lfs -text
 
24
  *.xz filter=lfs diff=lfs merge=lfs -text
25
  *.zip filter=lfs diff=lfs merge=lfs -text
26
+ *.zstandard filter=lfs diff=lfs merge=lfs -text
27
+ *.tfevents* filter=lfs diff=lfs merge=lfs -text
28
+ *.db* filter=lfs diff=lfs merge=lfs -text
29
+ *.ark* filter=lfs diff=lfs merge=lfs -text
30
+ **/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
31
+ **/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
32
+ **/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
33
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
34
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
35
+ *.gguf* filter=lfs diff=lfs merge=lfs -text
36
+ *.ggml filter=lfs diff=lfs merge=lfs -text
37
+ *.llamafile* filter=lfs diff=lfs merge=lfs -text
38
+ *.pt2 filter=lfs diff=lfs merge=lfs -text
39
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
40
+ *.npy filter=lfs diff=lfs merge=lfs -text
41
+ *.npz filter=lfs diff=lfs merge=lfs -text
42
+ *.pickle filter=lfs diff=lfs merge=lfs -text
43
+ *.pkl filter=lfs diff=lfs merge=lfs -text
44
+ *.tar filter=lfs diff=lfs merge=lfs -text
45
+ *.wasm filter=lfs diff=lfs merge=lfs -text
46
  *.zst filter=lfs diff=lfs merge=lfs -text
47
  *tfevents* filter=lfs diff=lfs merge=lfs -text
48
+ tokenizer.txt filter=lfs diff=lfs merge=lfs -text
49
+ *.mnn filter=lfs diff=lfs merge=lfs -text
50
+ *.weigth filter=lfs diff=lfs merge=lfs -text
51
+ *.weight filter=lfs diff=lfs merge=lfs -text
52
+ bin/libMNN.so filter=lfs diff=lfs merge=lfs -text
53
+ bin/MNN.dll filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -8,4 +8,76 @@ base_model:
8
  pipeline_tag: text-to-image
9
  tags:
10
  - art
11
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  pipeline_tag: text-to-image
9
  tags:
10
  - art
11
+ ---
12
+
13
+ ## Overview
14
+
15
+ `Z-Image-Turbo-MNN-int4` is an **MNN diffusion resource package** for **Z-Image-Turbo**, to be used with the **MNN C++ `diffusion_demo`** binary (`model_type=2` / `STABLE_DIFFUSION_ZIMAGE`) for text-to-image inference.
16
+
17
+ ### What’s included (deduped)
18
+ - `text_encoder.mnn` / `text_encoder.mnn.weight`
19
+ - `unet.mnn` / `unet.mnn.weight` (denoiser/transformer; `diffusion_demo` uses the `unet` name)
20
+ - `vae_encoder.mnn` / `vae_decoder.mnn`
21
+ - `tokenizer.txt`
22
+ - `config.json`: resource description (filenames, precision labels, default inference parameters, etc.)
23
+ - `configuration.json`: generic task description (used by some loaders)
24
+ - `scheduler_config.json`: `FlowMatchEulerDiscreteScheduler` config used by ZImage
25
+
26
+ The directory name usually denotes the `(text_encoder_bits, unet_bits, vae_bits)` **weight-only quant bit-width**. Bit-width is set via `MNNConvert --weightQuantBits`. Treat `config.json` as the source of truth.
27
+
28
+ ### How to export / generate
29
+ 1) Export ONNX
30
+ - `text_encoder.onnx`, `unet.onnx`, `vae_encoder.onnx`, `vae_decoder.onnx`
31
+ - IO names expected by the MNN ZImage pipeline:
32
+ - text_encoder: inputs `input_ids`, `attention_mask`; output `last_hidden_state`
33
+ - unet: inputs `sample`, `timestep` (float), `encoder_hidden_states`; output `out_sample`
34
+ - vae_decoder: input `latent_sample`; output `sample`
35
+ 2) Convert ONNX → MNN (example 4/4/8):
36
+ ```bash
37
+ MNNConvert -f ONNX --modelFile text_encoder.onnx --MNNModel text_encoder.mnn --weightQuantBits 4
38
+ MNNConvert -f ONNX --modelFile unet.onnx --MNNModel unet.mnn --weightQuantBits 4
39
+ MNNConvert -f ONNX --modelFile vae_encoder.onnx --MNNModel vae_encoder.mnn --weightQuantBits 8
40
+ MNNConvert -f ONNX --modelFile vae_decoder.onnx --MNNModel vae_decoder.mnn --weightQuantBits 8
41
+ ```
42
+
43
+ ## How to run
44
+
45
+ ### Windows (PowerShell / cmd) — `z-image.bat`
46
+ ```powershell
47
+ .\z-image.bat "a cute cat" 1
48
+ ```
49
+ Arguments passed to `diffusion_demo.exe` (order):
50
+ `resource_path model_type memory_mode backend_type steps seed output_path size cfg gpu_mem_mode precision_mode te_on_cpu prompt_text`
51
+
52
+ Script parameters (modifiable at top of `z-image.bat`):
53
+ - `MODEL_DIR` (default `.`): model directory (relative or absolute)
54
+ - `MEMORY_TYPE` (0/1/2): Diffusion memory mode
55
+ - `BACKEND` (0=cpu, 3=opencl, 7=vulkan)
56
+ - `STEPS`: diffusion steps (3–12 recommended)
57
+ - `SEED`: 0=auto random; non-0=fixed seed
58
+ - `SIZE`: 512/640/768/896/1024
59
+ - `CFG`: classifier-free guidance scale (typ. 0.5–2.0; default 1.25)
60
+ - `GPU_MEM_MODE` (OpenCL only): 0=auto, 1=buffer, 2=image
61
+ - `PRECISION` (0=auto, 1=FP16, 2=FP32 normal, 3=FP32 high)
62
+ - `TE_ON_CPU` (0 same as UNet, 1 forces text_encoder on CPU)
63
+
64
+ ### Linux/macOS — `z-image.sh`
65
+ ```bash
66
+ ./z-image.sh "a cute cat" 1
67
+ ```
68
+ Same argument order to `diffusion_demo` as above. Script parameters mirror the Windows script:
69
+ - `MODEL_DIR`
70
+ - `MEMORY_TYPE`
71
+ - `BACKEND`
72
+ - `STEPS`
73
+ - `SEED`
74
+ - `SIZE`
75
+ - `CFG`
76
+ - `GPU_MEM_MODE`
77
+ - `PRECISION`
78
+ - `TE_ON_CPU`
79
+
80
+ ## Notes
81
+ - Weight files (`.mnn.weight`) are large; use Git LFS/external storage when sharing.
82
+ - For Z-Image support in MNN, refer to the fork: https://github.com/er6y/MNN
83
+ - Ensure MNN is built with diffusion enabled (`-DMNN_BUILD_DIFFUSION=ON`); for ZImage tokenizer, `MNN_BUILD_LLM` is also required.