Generation errors
This one is the base model, the turbo model is coming. Make sure to increase the CFG and steps (like CFG 3.5-6 and steps of 20 +). Will check the model again.
The error was using --scaling_mode tensor together with --convrot, instead of --scaling_mode row.
Why it caused fuzziness: tensor-wise scaling computes a single scale factor for the entire weight matrix. If even a few values in that matrix are outliers (much larger or smaller than the rest), that one global scale has to stretch to accommodate them β which means everything else in the matrix gets quantized more coarsely than it needs to be. The result is a systematic loss of fine detail across the model: smoothed-out textures, softer edges, that "waxy" look you saw in the first Z-Image ConvRot attempt.
This is somewhat counterintuitive because ConvRot's whole purpose is to suppress outliers via Hadamard rotation before quantization β you'd expect it to make tensor-wise scaling less vulnerable to this problem, not more. But empirically, pairing it with tensor mode still produced fuzzy output, while pairing it with row mode (which computes a separate scale per row of the matrix, so outliers in one row don't degrade precision in unrelated rows) gave sharp results.
How we found it: by isolating variables one at a time rather than guessing:
Plain INT8 row-wise (no ConvRot) β sharp. This ruled out "INT8 itself is the problem."
INT8 + ConvRot + tensor scaling (the recipe used throughout this session for ACE-Step, Flux1/Flux2 PiD, QwenImage PiD) β fuzzy.
INT8 + ConvRot + row scaling (swapping only the scaling mode) β sharp, matching step 1's quality.
Since the only variable that changed between steps 2 and 3 was the scaling mode, that pinpointed it precisely β not a runtime dequant bug, not a Hadamard group-size issue, just the wrong scaling mode being paired with ConvRot.
The fix going forward: --scaling_mode row is now mandatory whenever --convrot is used. Your updated default ConvRot recipe is --int8 --scaling_mode row --simple --low-memory --convrot --convrot-group-size 64 (using 64 specifically because it's a power of 4, which comfy_kitchen's Hadamard construction requires).
--convrot-group-size 64 may be not necessary. The default value 256 is also OK. It seems the tools will pad the array size to a multiple of convrot-group-size.


