Views
No views yet
pip install git+https://github.com/huggingface/diffusers.git transformers accelerate safetensors1from diffusers import ModularPipeline
2import torch
3
4pipe = ModularPipeline.from_pretrained(
5 "akshan-main/modular-zimage-upscale",
6 trust_remote_code=True,
7)
8pipe.load_components(torch_dtype=torch.bfloat16)
9pipe.to("cuda")
10
11image = ... # your PIL image
12
13result = pipe(
14 prompt="high quality, detailed, sharp",
15 image=image,
16 scale_factor=2.0,
17 num_inference_steps=8,
18 generator=torch.Generator("cuda").manual_seed(42),
19 output="images",
20)
21result[0].save("upscaled.png")strength1result = pipe(
2 prompt="high quality, detailed, sharp",
3 image=image,
4 scale_factor=2.0,
5 num_inference_steps=8,
6 generator=torch.Generator("cuda").manual_seed(42),
7 output="images",
8)1result = pipe(
2 prompt="high quality, detailed, sharp",
3 image=image,
4 scale_factor=4.0,
5 progressive=False,
6 generator=torch.Generator("cuda").manual_seed(42),
7 output="images",
8)1from diffusers.models.controlnets import ZImageControlNetModel
2from huggingface_hub import hf_hub_download
3
4controlnet = ZImageControlNetModel.from_single_file(
5 hf_hub_download(
6 "alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union",
7 filename="Z-Image-Turbo-Fun-Controlnet-Union.safetensors",
8 ),
9 torch_dtype=torch.bfloat16,
10)
11controlnet = ZImageControlNetModel.from_transformer(controlnet, pipe.transformer)
12pipe.update_components(controlnet=controlnet)
13
14result = pipe(
15 prompt="high quality, detailed, sharp",
16 image=image,
17 control_image=image,
18 controlnet_conditioning_scale=0.75,
19 scale_factor=2.0,
20 output="images",
21)| Parameter | Default | Description |
|---|---|---|
image | required | Input image (PIL) |
prompt | "" | Text prompt |
negative_prompt | None | Negative text prompt. Limited effect since CFG is disabled by default |
scale_factor | 2.0 | Scale multiplier |
strength | 0.4 | Denoise strength. Lower = closer to input |
num_inference_steps | 8 | Denoising steps. Z-Image Turbo converges quickly, 4-8 is sufficient |
tile_size | 64 | Tile size in latent pixels |
tile_overlap | 8 | Tile overlap in latent pixels |
control_image | None | ControlNet conditioning image (optional) |
controlnet_conditioning_scale | 0.75 | ControlNet strength |
progressive | True | Split upscale_factor > 2 into multiple passes. For Z-Image, False often works better |
auto_strength | True | Auto-scale strength based on upscale factor and pass index |
generator | None | Torch generator for reproducibility |
output | "images" | Output key |
progressive=False for more faithful resultsMultiDiffusionUpscaleBlocks (SequentialPipelineBlocks)
text_encoder ZImageTextEncoderStep (reused)
upscale ZImageUpscaleStep (Lanczos)
multidiffusion ZImageMultiDiffusionStep
- VAE encode full image
- Per timestep: transformer on each latent tile (+optional ControlNet), cosine-weighted blend
- VAE decode full latents