Z-Image and Turbo produces corrupted output on an NVIDIA RTX 5070 Ti 16 GB running Windows 11.

#32
by Bernte - opened

Z-Image Turbo – RTX 5070 Ti / Blackwell Troubleshooting Report

Summary

Z-Image and Turbo produces severely corrupted output on an NVIDIA RTX 5070 Ti 16 GB running Windows 11.

The workflow completes successfully without a CUDA error, Python exception, or out-of-memory error, but the resulting image is unusable and appears as severe noise/corruption.

The same system successfully runs other models, including Krea/Flux and H3.

Both Z-Image Turbo BF16 and NVFP4 were tested and both produce corrupted output.

The exact cause is currently unknown.

A possible Z-Image / Blackwell compatibility issue is being investigated, but this has not been confirmed.


Hardware

  • GPU: NVIDIA GeForce RTX 5070 Ti 16 GB
  • Architecture: NVIDIA Blackwell
  • CPU: AMD Ryzen 7 5700X
  • OS: Windows 11
  • NVIDIA Driver: 616.92

Software Environment

ComfyUI:        0.36.0
Python:         3.13.14
PyTorch:        2.12.1+cu130
torchvision:    0.27.1+cu130
torchaudio:     2.11.0+cu130
CUDA:           13.0

comfy-aimdo:    0.5.5
comfy-kitchen:  0.2.35

SageAttention:
2.2.0+cu130torch2.10.0andhigher.post5-cp310-abi3-win_amd64

The versions were verified directly using ComfyUI's embedded Python environment.
Z-Image Models Tested
BF16

z_image_turbo_bf16.safetensors

Result:

FAIL – severely corrupted output
NVFP4

Z-Image Turbo NVFP4 was also tested.

Result:

FAIL – severely corrupted output
Important Observation

Both precision/model variants fail:

Z-Image Turbo BF16   -> corrupted output
Z-Image Turbo NVFP4  -> corrupted output

This suggests that the problem is not limited to the BF16 model or BF16 precision alone.
Symptoms

The generated images can contain:

    severe noise

    black/gray areas

    random colors

    colored lines

    severe visual distortion

    completely unusable image content

The sampler itself completes normally.
No Runtime Error

The workflow does not produce a conventional CUDA or Python failure.

Example:

100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 8/8

followed by:

[INFO] Prompt executed in 7.10 seconds

There is no reported:

CUDA error
RuntimeError
Out of memory
Python exception

The workflow therefore appears to complete successfully while producing invalid output.
Relevant ComfyUI Log

Example:

[INFO] got prompt
[INFO] model weight dtype torch.bfloat16, manual cast: None
[INFO] model_type FLOW
[INFO] Model storage policy: fast_disk=True paths=['C:\ComfyUI_windows_portable\ComfyUI\models\diffusion_models\z_image_turbo_bf16.safetensors']
[INFO] Requested to load Lumina2
[INFO] Model Lumina2 prepared for dynamic VRAM loading. 11738MB Staged. 0 patches attached. Force pre-loaded 205 weights: 1045 KB.
100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 8/8 [00:04<00:00, 1.70it/s]
[INFO] 0 models unloaded.
[INFO] Model AutoencodingEngine prepared for dynamic VRAM loading. 159MB Staged. 0 patches attached. Force pre-loaded 108 weights: 182 KB.
[INFO] Prompt executed in 7.10 seconds

ComfyUI Environment

Relevant startup information:

[INFO] Total VRAM 16275 MB, total RAM 65458 MB
[INFO] pytorch version: 2.12.1+cu130
[INFO] Set vram state to: NORMAL_VRAM
[INFO] Device: cuda:0 NVIDIA GeForce RTX 5070 Ti : cudaMallocAsync
[INFO] Using async weight offloading with 2 streams
[INFO] Enabled pinned memory 26183.0
[INFO] Using pytorch attention
[INFO] Using Comfy Kitchen attention
[INFO] DynamicVRAM support detected and enabled
[INFO] Python version: 3.13.14
[INFO] ComfyUI version: 0.36.0
[INFO] comfy-aimdo version: 0.5.5
[INFO] comfy-kitchen version: 0.2.35

Crystools reports:

[Crystools INFO] GPU/s:
[Crystools INFO] 0) NVIDIA GeForce RTX 5070 Ti
[Crystools INFO] NVIDIA Driver: 616.92

Text Encoder

The workflow uses:

qwen_3_4b.safetensors

The text encoder was tested with CPU/offloading variations.

Moving the Qwen text encoder to CPU did not resolve the corruption.
VAE

The workflow uses:

ae.safetensors

The VAE loads successfully.

The problem was also investigated separately from the VAE.
Latent / VAE Test

The latent was saved directly after the sampler and before VAE decoding.

The corruption was still present.

This indicates that the issue does not appear to be simply a VAE decoding problem.

The corruption appears to already exist in the latent/output produced by the sampling stage.
SageAttention Tests

SageAttention was tested both enabled and disabled.

Installed version:

sageattention-2.2.0+cu130torch2.10.0andhigher.post5-cp310-abi3-win_amd64

Changing SageAttention settings did not resolve the problem.
ComfyUI Versions

Multiple ComfyUI versions were tested, including:

ComfyUI 0.35.x
ComfyUI 0.36.0

The problem remained.
CPU / Offloading Tests

Different CPU/offloading configurations were tested.

The Qwen text encoder was also moved to CPU.

The problem remained.

This makes a simple VRAM/offloading problem less likely.
Launch Options

Multiple ComfyUI launch flags/configurations were tested.

The problem remained.
Model Loader Verification

The diffusion model selection was checked.

The correct Z-Image model was confirmed as loaded.

The log reports:

model weight dtype torch.bfloat16
model_type FLOW

and the expected model path:

C:\ComfyUI_windows_portable\ComfyUI\models\diffusion_models\z_image_turbo_bf16.safetensors

Therefore, the issue does not appear to be caused by accidentally loading a different diffusion model.
Other Models Work

The same computer, GPU, driver, Python environment, PyTorch/CUDA environment, and ComfyUI installation successfully run other models.

Tested examples:

    Krea/Flux

    H3

These models produce normal images.

This is an important observation because the GPU and general ComfyUI installation are capable of running other models correctly.

The problem appears to be specific to the Z-Image workflow/execution path.
PyTorch Verification

The installed versions were verified directly using ComfyUI's embedded Python:

.\python_embeded\python.exe -c "import torch, torchvision, torchaudio; print('torch:', torch.__version__); print('torchvision:', torchvision.__version__); print('torchaudio:', torchaudio.__version__)"

Output:

torch: 2.12.1+cu130
torchvision: 0.27.1+cu130
torchaudio: 2.11.0+cu130

Available Newer PyTorch Versions

The CUDA 13.0 PyTorch package index was checked.

Available latest versions were:

torch:       2.14.0+cu130
torchvision: 0.29.0+cu130
torchaudio:  2.11.0+cu130

Currently installed:

torch:       2.12.1+cu130
torchvision: 0.27.1+cu130
torchaudio:  2.11.0+cu130

The newer PyTorch stack is being considered as an A/B test.

The purpose is to determine whether the corruption is affected by the PyTorch/CUDA runtime.
Test Matrix
Test	Result
Z-Image Turbo BF16	FAIL – corrupted
Z-Image Turbo NVFP4	FAIL – corrupted
Krea/Flux	WORKS
H3	WORKS
CPU Qwen text encoder	FAIL
SageAttention enabled	FAIL
SageAttention disabled	FAIL
Save latent before VAE	FAIL
Multiple ComfyUI versions	FAIL
Multiple launch configurations	FAIL
Correct model verified	FAIL
PyTorch 2.12.1 + CUDA 13.0	FAIL
What Has Been Made Less Likely

Based on the tests above, the following do not appear to be the sole cause:

    VAE decoding

    BF16 precision alone

    NVFP4 precision alone

    SageAttention alone

    Qwen text encoder being on the GPU

    insufficient VRAM

    incorrect model selection

    general ComfyUI failure

    general GPU failure

This is because:

    the latent is already corrupted before VAE decoding

    both BF16 and NVFP4 fail

    SageAttention on/off makes no difference

    CPU text encoder makes no difference

    there is no out-of-memory error

    other models work normally

    the correct Z-Image model is confirmed as loaded

Current Hypothesis

The exact cause has not been identified.

A possible compatibility issue involving Z-Image and NVIDIA Blackwell / sm_120 is being investigated.

Potential areas include:

    Z-Image-specific CUDA kernels

    Blackwell sm_120 support

    BF16 operations

    NVFP4 operations

    Qwen3-4B conditioning

    attention implementation

    numerical instability

    NaN/Inf propagation

    PyTorch + CUDA 13.0

    model-specific operations that behave differently on Blackwell

This is currently a hypothesis and has not been confirmed.
Expected Behavior

Z-Image Turbo should generate a normal image on an NVIDIA RTX 5070 Ti / Blackwell GPU.

The sampler should produce a valid latent and the VAE should decode it into a normal image.
Actual Behavior

The workflow completes successfully, but the generated output is severely corrupted.

No useful runtime error is reported.
Next Test

The next planned A/B test is to update the PyTorch stack while remaining on CUDA 13.0:

torch       2.14.0+cu130
torchvision 0.29.0+cu130
torchaudio  2.11.0+cu130

Then run the exact same Z-Image workflow again.

The result should help determine whether the issue is related to the current PyTorch runtime.
Request for Help

Could someone familiar with Z-Image, ComfyUI, or NVIDIA Blackwell GPUs help determine whether this is a known compatibility issue?

Specifically:

    Is NVIDIA RTX 5070 Ti / Blackwell officially supported for Z-Image Turbo?

    Are there known issues with sm_120?

    Are there specific PyTorch/CUDA versions recommended for RTX 5070 Ti?

    Is CUDA 13.0 required or recommended?

    Are there known BF16 issues with Z-Image on Blackwell?

    Are there known NVFP4 issues with Z-Image on Blackwell?

    Are there recommended environment variables or launch flags for Blackwell?

    Is there a recommended way to detect NaN/Inf values during Z-Image sampling?

    Could Qwen3-4B conditioning produce invalid values specifically on Blackwell?

    Are there Z-Image-specific CUDA kernels or operations that may not yet be compatible with sm_120?

    Is there a known debugging workflow for identifying the exact Z-Image operation where the values become invalid?

Any debugging guidance would be greatly appreciated.
Short Technical Summary

GPU:
NVIDIA GeForce RTX 5070 Ti 16 GB
Blackwell

OS:
Windows 11

Driver:
616.92

ComfyUI:
0.36.0

Python:
3.13.14

PyTorch:
2.12.1+cu130

torchvision:
0.27.1+cu130

torchaudio:
2.11.0+cu130

CUDA:
13.0

Z-Image BF16:
FAIL - corrupted output

Z-Image NVFP4:
FAIL - corrupted output

Krea/Flux:
WORKS

H3:
WORKS

Sampler:
Completes normally

CUDA error:
None

Python error:
None

OOM:
None

Latent before VAE:
Already corrupted

Qwen on CPU:
No improvement

SageAttention on/off:
No improvement

Multiple ComfyUI versions:
No improvement

Conclusion

The issue is reproducible with Z-Image Turbo on an RTX 5070 Ti / Blackwell system.

Both BF16 and NVFP4 produce corrupted output.

Other models work correctly on the same system.

The corruption is present before VAE decoding and occurs without a reported runtime error.

The next major variable to test is the PyTorch runtime, followed by investigation of possible Z-Image / Blackwell / sm_120 compatibility issues.

Same file works fine on my RTX 5060 Ti 16 GB, which is also Blackwell. z_image_turbo_bf16.safetensors at 1024x1024, 8 steps takes about 11 s per image with a 14.6 GB peak, and the images are clean. So I don't think it's a Blackwell or a 16 GB problem. Your log looks normal too, 8 steps in 4 s is about what I'd expect for a 5070 Ti. Since the noise is already in the latent and other models work, I'd test a clean run with --disable-all-custom-nodes and the Z-Image Turbo workflow from the built-in Templates menu. If that works, add your nodes back one by one. Timings for my card are here: https://vramready.com/benchmarks/

Thanks for your suggestions. Unfortunately, disabling all custom nodes does not help either. I have also re-downloaded all the models to make sure the files are not corrupted, but the problem persists. The images still have strange colors and patterns.

Thanks for testing. The latent is already broken before the VAE, and Flux works fine, so I think it is something that only Z-Image does differently. A few things I would try:

  1. Load the built-in template (Workflow > Browse Templates > Z-Image Turbo) and change nothing. It should be 8 steps, CFG 1, res_multistep / simple, ModelSamplingAuraFlow shift 3. With a higher CFG or another sampler, Z-Image gives exactly this kind of colored noise.
  2. Start ComfyUI with no extra flags at all. Especially no --fast, --force-fp16 or --fp16-unet. Z-Image runs in bf16; forced fp16 can overflow and give garbage without any error.
  3. Try the FP8 text encoder instead of the full one: qwen_3_4b_fp8_mixed.safetensors from Comfy-Org/z_image_turbo. That is the one I use, and it rules out the encoder file.
  4. If you use MSI Afterburner or any GPU overclock or undervolt, reset it to default and try again. Memory overclocks can break one model and not another.
    For me, z_image_turbo_bf16 at 1024x1024 works on a 5060 Ti with ComfyUI portable and PyTorch 2.12 cu130, so Blackwell itself should be fine.

Sign up or log in to comment