Arthemy Z-Image Saver
Freeze a good Z-Image tuning into a real .safetensors file
- model
You've spent an evening pushing Z-Image's layer sliders and found a tuning you actually like. Now what? If you close ComfyUI, it's gone. Arthemy Z-Image Saver is the "now what" - it serializes the tuned model state in memory into a standalone .safetensors file you can load later with a plain UNETLoader, no tuner node required. It's how the pack's author turns a happy accident of sliders into a reusable "tuned model."
The inputs
Refreshingly few for an output node:
model- theMODELyou want frozen. In practice this is the output ofArthemyZImage_Tuner_SimpleorArthemyZImage_Tuner_Lab.filename_prefix- the output name, defaultz-image_arthemy_tuned. Your file lands atComfyUI/output/diffusion_models/z-image_arthemy_tuned.safetensors.save_precision-fp16,bf16, orfloat32, defaultbf16. That default is right: Z-Image ships in bf16, so this matches the original with no pointless conversion.fp16if you need a few GB back,float32if you want to be pedantic about precision (bigger file, no visible gain for most people).
How it works
This one is simple under the hood: it grabs the tuned diffusion_model state dict, moves every tensor to CPU, casts it to your chosen precision, and writes the whole thing with safetensors. Two things worth understanding:
- It saves the entire model, not a delta. The result is a full checkpoint roughly the size of the original - Z-Image is 6B parameters, so expect a file in the ~12GB bf16 neighborhood. This is not a LoRA; don't go hunting for a small patch file.
- It saves whatever you hand it. Feed it the tuner's output and you get a tuned model. Feed it the loader's output directly and you get an untouched stock model with a fresh name. There's no verification, so double-check you've wired the branch you meant to save.
Wiring
Add it as a parallel branch off the tuner, or after the sampler - either way it runs alongside your normal generation:
ArthemyTunerLoader ──> ArthemyZImage_Tuner_Simple ──> KSampler ──> ...
│
└──> ArthemyZImage_Saver
Reusing the result
Once it's saved, load it anywhere a UNet goes:
UNETLoader (models/unet/z-image_arthemy_tuned.safetensors) ──> KSampler ──> ...
The tuned file behaves like any other Z-Image model, so pair it with the usual stack - ModelSamplingAuraFlow shift for Turbo, the Qwen3-4B text encoder - and you get your tuning back without dragging the slider rig through every workflow.
Common issues
- The file is huge - that's expected, it's a full model. If you wanted a small shareable patch, this isn't the tool.
- Saved model doesn't look tuned - check which branch you wired into
model; saving from the loader instead of the tuner gives you stock weights. - Wrong precision on load - you picked
fp16on a Turbo model that expects bf16 math; it usually still works but can drift. When in doubt,bf16. - Output folder confusion - note it's
output/diffusion_models/, not theunetfolder. Move or symlink it intomodels/unet/if you want it in the loader's dropdown.
One workflow tip: keep a scratch filename_prefix while experimenting, and only give the file a real name once you're sure the tuning is a keeper. There's no overwrite warning if you reuse a prefix - it'll happily clobber the earlier save.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| filename_prefix | STRING | z-image_arthemy_tuned | — |
| save_precisionopt | COMBO | bf16 | 3 options: fp16, bf16, float32 |
Outputs (0)
No outputs