Juggernaut-XI-v11 · OpenVINO INT4 (CPU)
RunDiffusion/Juggernaut-XI-v11 轉成 OpenVINO IR,
unet(transformer) 與 text_encoder 以 NNCF 做 weight-only INT4(asymmetric, group_size 128),
其餘組件 INT8。不需要 GPU,純 CPU 即可生圖。
- 權重體積 6.65 GB → 2.27 GB(-65.8%)
- 1024×1024 / 30 steps / CFG 5.0:**~101 s 出一張(3.3 s/step)**(Xeon Platinum 8559C, 16 vCPU)
- 512×512 / 30 steps:**~32 s 出一張(1.07 s/step)**
- load + compile:14.7 s
轉換環境:openvino 2026.4.0 / nncf 3.4.0 / optimum 2.3.0 / optimum-intel 2.2.0 / diffusers 0.39.0 / transformers 5.5.4 / tokenizers 0.22.2 / huggingface-hub 1.21.0 / torch 2.14.1 / pillow 12.3.0 / psutil 7.2.2
⚠️ 上游 Juggernaut-XI-v11 為 CC BY-NC-ND 4.0(非商用、禁止改作再散布)。此 repo 的 OpenVINO/INT4 轉換版本同樣受該授權約束,請勿用於商業或付費 API 服務。
模型頁展示(10 張)
1024 × 1024(30 steps, DPM++ 2M Karras, CFG 5.0)
512 × 512 對照組(同 prompt / 同 seed)
Prompts 見 outputs/prompts.txt。
安裝
pip install -U optimum optimum-intel openvino nncf \
diffusers transformers tokenizers huggingface-hub \
torch pillow psutil
用法
import torch
from optimum.intel import OVDiffusionPipeline
pipe = OVDiffusionPipeline.from_pretrained(
"HelloSun/Juggernaut-XI-v11-OpenVINO-INT4",
compile=True,
device="CPU",
)
prompt = (
"Young Chinese woman in red Hanfu, intricate embroidery, impeccable makeup, "
"red floral forehead pattern, elaborate high bun, golden phoenix headdress, "
"soft-lit outdoor night background, silhouetted tiered pagoda, blurred colorful "
"distant lights, photorealistic, ultra detailed, 8k"
)
generator = torch.Generator(device="cpu").manual_seed(42)
image = pipe(
prompt=prompt,
negative_prompt="lowres, worst quality, low quality, blurry, jpeg artifacts, watermark",
width=1024, height=1024,
num_inference_steps=30,
guidance_scale=5.0,
generator=generator,
).images[0]
image.save("hanfu.png")
完整腳本:
| 檔案 | 用途 |
|---|---|
inference_int4.py |
單張 txt2img / img2img 推論 |
quantize_int4.py |
由 FP16 pipeline 產生 INT4 pipeline(OVQuantizer + NNCF) |
generate5.py |
5 組固定 seed 批次生成,callback 記錄每 step 時間與 RSS |
REPORT.md |
完整轉換與實驗報告 |
outputs/benchmark.json |
機器資訊 + 每 step 時間/RSS 原始數據 |
outputs/prompts.txt |
全部 prompt / negative prompt / seed |
轉換步驟(重現本 repo)
# 1) 匯出 FP16
optimum-cli export openvino -m RunDiffusion/Juggernaut-XI-v11 \
--task text-to-image --library diffusers --weight-format fp16 \
./juggernaut-xi-v11-ov-fp16
# 2) NNCF weight-only INT4(unet + text_encoder INT4,其餘 INT8)
python quantize_int4.py \
--model_path ./juggernaut-xi-v11-ov-fp16 \
--output_path ./juggernaut-xi-v11-ov-int4
量化設定(quantize_int4.py 內):
int4 = dict(bits=4, sym=False, group_size=128, group_size_fallback="adjust", ratio=1.0)
OVPipelineQuantizationConfig(
quantization_configs={
"unet": OVWeightQuantizationConfig(**int4),
"text_encoder": OVWeightQuantizationConfig(**int4),
},
default_config=OVWeightQuantizationConfig(bits=8),
)
實驗數據
環境:Intel Xeon Platinum 8559C(2 socket / 96 core / 192 thread,容器 cgroup 限 16 vCPU)、
AVX-512、2 TB RAM、無 GPU。lscpu CPU(s)=192,os.cpu_count()=192,OpenVINO 2026.4.0。
| 項目 | 數值 |
|---|---|
load + compile(compile=True) |
14.67 s(結束時 RSS 3530 MB) |
| 1024×1024 / 30 steps 單張總時間 | 100.19 – 116.66 s(平均 104.65 s) |
| 1024×1024 單步時間 | 平均 3.43 s、中位數 3.36 s、範圍 3.12 – 3.90 s(暖機除外) |
| 512×512 / 30 steps 單張總時間 | 32.04 – 32.83 s(平均 32.55 s) |
| 512×512 單步時間 | 平均 1.07 s、中位數 1.08 s |
| 峰值 RSS(連續生成) | ~9.8 GB |
| FP16 pipeline 大小 | 6635.4 MB |
| INT4 pipeline 大小 | 2268.7 MB(-65.8%) |
| 量化時間(weight-only, data-free) | 52.5 s |
逐張明細:
| 影像 | seed | 解析度 | steps | CFG | 總時間 | 單步平均 | 峰值 RSS |
|---|---|---|---|---|---|---|---|
| 01_hanfu | 42 | 1024² | 30 | 5.0 | 116.66 s | 3.821 s | 8521 MB |
| 02_astronaut | 43 | 1024² | 30 | 5.0 | 104.79 s | 3.432 s | 9772 MB |
| 03_taipei | 44 | 1024² | 30 | 5.0 | 100.93 s | 3.308 s | 9777 MB |
| 04_shiba | 45 | 1024² | 30 | 5.0 | 100.19 s | 3.285 s | 9781 MB |
| 05_ink | 46 | 1024² | 30 | 5.0 | 100.70 s | 3.303 s | 9784 MB |
| 01_hanfu_512 | 42 | 512² | 30 | 5.0 | 32.63 s | 1.074 s | 9824 MB |
| 02_astronaut_512 | 43 | 512² | 30 | 5.0 | 32.48 s | 1.069 s | 9827 MB |
| 03_taipei_512 | 44 | 512² | 30 | 5.0 | 32.04 s | 1.054 s | 9828 MB |
| 04_shiba_512 | 45 | 512² | 30 | 5.0 | 32.80 s | 1.077 s | 9829 MB |
| 05_ink_512 | 46 | 512² | 30 | 5.0 | 32.83 s | 1.080 s | 9829 MB |
執行緒縮減實驗(同一 prompt,1024²,30 steps):16 threads = 3.49 s/step、8 threads = 3.64 s/step, 減半只慢約 5% → 瓶頸在記憶體頻寬而非算力。想更快請降 steps,或改用 Juggernaut-XI-Lightning(5–7 step)。
建議參數
沿用上游模型卡建議:sampler DPM++ 2M Karras、steps 30–40、CFG 3–7(越低越寫實)。
本 repo 的 scheduler_config.json 已設為 DPMSolverMultistepScheduler + use_karras_sigmas=true,
model_index.json["scheduler"] 也同步指向它,開箱即對應 Karras 2M。
上游推薦解析度為 832×1216 / 1216×832(portrait / landscape),本 repo 範例採 1024×1024 與 512×512。
Credits
- 模型:RunDiffusion/Juggernaut-XI-v11 by RunDiffusion / KandooAI(CC BY-NC-ND 4.0)
- 轉換與範例:HelloSun/Juggernaut-XI-v11-OpenVINO-INT4
Model tree for HelloSun/Juggernaut-XI-v11-OpenVINO-INT4
Base model
stabilityai/stable-diffusion-xl-base-1.0








