ComfyUI Node

Krea2 Model Save

Make your Krea 2 merge permanent — and FP8 it on the way out

By isiwork·Created about a month ago·Updated about a month ago· 2
Krea2 Model Save
  • model
  • saved_path
filename_prefixkrea2_merged
save_dtypebf16

The companion node to Krea2 Model Merge Simple in the same pack, and the one that answers the obvious question: "okay, I merged two Krea 2 checkpoints - where's the file?" The merge node is lazy on purpose, so its output only exists in memory while the graph runs. Krea2 Model Save is what turns that patched MODEL into an actual .safetensors on disk that you can load next week without re-merging.

Where it earns its keep is the save_dtype dropdown. Krea 2's BF16 checkpoint is a chunky ~26GB. Save as fp8_scaled and you get a ~12-13GB file - the same careful FP8 scheme the ecosystem settled on for Krea 2, where only 2D weight matrices go to float8_e4m3fn and everything else stays at higher precision. Save a merged or just plain-loaded model as FP8 and you've effectively made your own quantized checkpoint.

How it saves

The interesting engineering is that it streams. Instead of dumping the whole model to RAM, it materializes each patched tensor one at a time, casts it, and writes it straight to a temporary file - then checks the file with safe_open and atomically renames it into place. That's why a 26GB save doesn't eat 26GB of extra RAM.

For fp8_scaled it does the quantization itself: per-tensor scale from the max absolute value, clamp into float8_e4m3fn, and it regenerates weight_scale, comfy_quant, and the _quantization_metadata block rather than reusing the source model's. Merging two FP8 checkpoints with different quantization masks would be a mess - this avoids the whole class of problem.

Output lands in ComfyUI/models/diffusion_models/. If a file with your name already exists it appends a numeric suffix (krea2_merged_01.safetensors) instead of clobbering.

The inputs

  • model - any MODEL wire, merged or not. You can use this node on a plain loaded checkpoint too; it doesn't care where the model came from.
  • filename_prefix - save name, default krea2_merged. The .safetensors extension gets added for you.
  • save_dtype - bf16 (default), fp16, fp32, or fp8_scaled. Pick bf16 for a faithful round-trip, fp8_scaled when you want the smaller file.

One output: saved_path, a string with the actual path it wrote, useful if the suffix logic kicked in and you're not sure of the filename.

The gotcha nobody tells you

This saves the diffusion model only - the UNet, not a complete checkpoint. No text encoder, no VAE. You won't find checkpoints/ it's not going to; it lives in diffusion_models/ and reloads with UNETLoader. Krea 2 needs three files to run anyway (model, Qwen3-VL text encoder, Qwen-Image VAE), so you're never losing a CLIP or VAE that lived in this wire - but if you expected a drag-and-drop checkpoint, that's not what this produces.

Install and warnings

Same pack as the merge node, so one install covers both: search ComfyUI-Krea2-Model-Merge in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/isiwork/ComfyUI-Krea2-Model-Merge

Then restart ComfyUI. No dependencies - the pack's requirements.txt explicitly says ComfyUI already ships everything it needs.

Two things to take seriously because they're straight from the author: this is beta - the test report says full-size BF16/FP8 checkpoints haven't been validated on all environments yet, and Windows long-running saves are explicitly untested. So keep your originals backed up, and don't kill ComfyUI or the PC mid-save. The node also checks free disk space before it starts and refuses if there isn't roughly the file size plus 256MB headroom, so "why did my save fail" is usually answerable in one glance at your disk.

CategoryKrea2 Model Merge

Inputs (3)

NameTypeDefaultDescription
modelMODEL
filename_prefixSTRINGkrea2_merged
save_dtypeCOMBObf164 options: bf16, fp16, fp32, fp8_scaled

Outputs (1)

NameTypeDescription
saved_pathSTRING