CoolFace
Modelpublic

lite-infer/qwen-image-edit-2509-nunchaku-lite-nvfp4_r32-bnb4-text-encoder

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes14downloads
Model Card

Qwen Image Edit 2509 Nunchaku Lite NVFP4 r32

This directory is a Diffusers-loadable conversion of:

  • —Base Diffusers model: Qwen/Qwen-Image-Edit-2509
  • —Source Nunchaku checkpoint repo: nunchaku-ai/nunchaku-qwen-image-edit-2509
  • —Source safetensors checkpoint: svdq-fp4_r32-qwen-image-edit-2509.safetensors

The transformer is packaged for the Diffusers Nunchaku Lite loader:

  • —quant_method: nunchaku_lite
  • —SVDQ precision: nvfp4
  • —SVDQ rank: 32
  • —SVDQ targets: 720
  • —AWQ targets: 120

The text encoder is saved with BitsAndBytes 4-bit NF4:

  • —quant_method: bitsandbytes
  • —load_in_4bit: true
  • —bnb_4bit_quant_type: nf4
  • —bnb_4bit_compute_dtype: bfloat16

Benchmark

Measured with 40 inference steps on a 1248x832 input image. Latency is the mean of 3 measured runs after 1 warmup. Max VRAM is peak CUDA allocated memory during generation.

CheckpointLatencyMax VRAM
Converted Diffusers Nunchaku Lite NVFP4 r32 + BNB4 text encoder173.44 s21.55 GiB
Original Nunchaku FP4 r32 safetensors90.82 s35.45 GiB

Original baseline: nunchaku-ai/nunchaku-qwen-image-edit-2509/svdq-fp4_r32-qwen-image-edit-2509.safetensors loaded through the native Nunchaku transformer.

Output Comparison

[image]

The comparison uses the same input image, prompt, seed, and 40-step settings. The NVFP4 panel was regenerated from this converted checkpoint.

Run

python
import torch
from PIL import Image
from diffusers import QwenImageEditPlusPipeline

model_path = "lite-infer/qwen-image-edit-2509-nunchaku-lite-nvfp4_r32-bnb4-text-encoder"
image_path = "input.png"
output_path = "output.png"

pipe = QwenImageEditPlusPipeline.from_pretrained(model_path, torch_dtype=torch.bfloat16)
pipe.to("cuda")

image = Image.open(image_path).convert("RGB")
prompt = "Change the image to watercolor style."

result = pipe(
    image=image,
    prompt=prompt,
    generator=torch.Generator(device="cuda").manual_seed(1),
    true_cfg_scale=4.0,
    negative_prompt=" ",
    num_inference_steps=40,
    guidance_scale=1.0,
    num_images_per_prompt=1,
)

result.images[0].save(output_path)