Instructions to use saik0s/comfy_backup with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use saik0s/comfy_backup with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="saik0s/comfy_backup", filename="ComfyUI/models/text_encoders/gemma-3-12b-it-q2_k.gguf", )
llm.create_chat_completion( messages = "No input example has been defined for this model task." )
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use saik0s/comfy_backup with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: llama cli -hf saik0s/comfy_backup:Q4_K_S
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: llama cli -hf saik0s/comfy_backup:Q4_K_S
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: ./llama-cli -hf saik0s/comfy_backup:Q4_K_S
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf saik0s/comfy_backup:Q4_K_S # Run inference directly in the terminal: ./build/bin/llama-cli -hf saik0s/comfy_backup:Q4_K_S
Use Docker
docker model run hf.co/saik0s/comfy_backup:Q4_K_S
- LM Studio
- Jan
- Ollama
How to use saik0s/comfy_backup with Ollama:
ollama run hf.co/saik0s/comfy_backup:Q4_K_S
- Unsloth Studio
How to use saik0s/comfy_backup with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for saik0s/comfy_backup to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for saik0s/comfy_backup to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for saik0s/comfy_backup to start chatting
- Pi
How to use saik0s/comfy_backup with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf saik0s/comfy_backup:Q4_K_S
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "saik0s/comfy_backup:Q4_K_S" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use saik0s/comfy_backup with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf saik0s/comfy_backup:Q4_K_S
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default saik0s/comfy_backup:Q4_K_S
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use saik0s/comfy_backup with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf saik0s/comfy_backup:Q4_K_S
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "saik0s/comfy_backup:Q4_K_S" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use saik0s/comfy_backup with Docker Model Runner:
docker model run hf.co/saik0s/comfy_backup:Q4_K_S
- Lemonade
How to use saik0s/comfy_backup with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull saik0s/comfy_backup:Q4_K_S
Run and chat with the model
lemonade run user.comfy_backup-Q4_K_S
List all available models
lemonade list
| This document serves as a quick overview of the quality of various quantization methods, with a focus on INT8. | |
| We capture the latents per step, and measure how much they diverge from the BF16 baseline. | |
| ## General Model Quality | |
| The general takeaway is that in terms of tested quantization methods the ranking is: | |
| GGUF Q8 > INT8 ConvRot > MXFP8 > FP8 >= INT8 Row > INT8 Tensorwise | |
| Every INT8 ConvRot and INT8 Row checkpoint was created from BF16 via on the fly quantization, unless stated otherwise. | |
| INT8 ConvRot is row-wise INT8 with parameters and activations rotated before quantization via ConvRot. | |
| INT8 Row is just regular row wise INT8. | |
| Anima | |
| 100 samples per column. | |
| | Metric | INT8 ConvRot | INT8 Row | [INT8 Row Bedovyy](https://huggingface.co/Bedovyy/Anima-INT8/blob/main/anima-preview3-base-int8rowwise.safetensors) | [INT8 Tensor Silver](https://huggingface.co/silveroxides/Anima-Quantized/blob/main/anima-preview3-base-int8tensorwise_learned.safetensors) | [FP8](https://huggingface.co/Bedovyy/Anima-FP8/blob/main/anima-preview3-base-fp8.safetensors) | GGUF_Q8 | INT8 QuaRot | |
| | :--- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.00746 ±0.00103` ★ | `0.01467 ±0.00167` | `0.01438 ±0.00213` | `0.04069 ±0.00331` | `0.01756 ±0.00175` | `0.01364 ±0.00155` | `0.00952 ±0.00164` | | |
| | MAE ↓ | `0.03456 ±0.00256` ★ | `0.05743 ±0.00350` | `0.05508 ±0.00437` | `0.10956 ±0.00503` | `0.06204 ±0.00323` | `0.04882 ±0.00332` | `0.03733 ±0.00304` | | |
| | Max err ↓ | `1.03295 ±0.04107` ★ | `1.27721 ±0.03917` | `1.24410 ±0.04644` | `1.72119 ±0.04671` | `1.33251 ±0.03424` | `1.21710 ±0.03939` | `1.09261 ±0.04083` | | |
| | Rel-RMSE ↓ | `0.09032 ±0.00626` ★ | `0.13396 ±0.00720` | `0.13084 ±0.00920` | `0.23802 ±0.01011` | `0.14523 ±0.00679` | `0.12124 ±0.00714` | `0.09632 ±0.00664` | | |
| | SNR dB ↑ | `24.05 ±0.53` ★ | `19.68 ±0.39` | `20.24 ±0.52` | `14.48 ±0.36` | `19.66 ±0.35` | `21.98 ±0.46` | `23.98 ±0.45` | | |
| | Cos-sim ↑ | `0.992165 ±0.001113` ★ | `0.984617 ±0.001780` | `0.984765 ±0.002368` | `0.957751 ±0.003461` | `0.981587 ±0.001878` | `0.985553 ±0.001704` | `0.990093 ±0.001646` | | |
| | Var ratio →1 | `1.00173 ±0.00081` | `1.00005 ±0.00145` ★ | `0.99824 ±0.00155` | `0.99655 ±0.00221` | `0.99871 ±0.00107` | `1.00965 ±0.00085` | `1.00392 ±0.00087` | | |
| | Outlier% ↓ | `0.00008 ±0.00002` ★ | `0.00022 ±0.00004` | `0.00022 ±0.00005` | `0.00103 ±0.00015` | `0.00027 ±0.00006` | `0.00019 ±0.00003` | `0.00019 ±0.00008` | | |
| | Ch-MSE max ↓ | `0.01443 ±0.00204` ★ | `0.02867 ±0.00359` | `0.02837 ±0.00452` | `0.08719 ±0.00820` | `0.03471 ±0.00401` | `0.02732 ±0.00333` | `0.01964 ±0.00419` | | |
| | Ch-MSE std ↓ | `0.00346 ±0.00048` ★ | `0.00684 ±0.00083` | `0.00670 ±0.00102` | `0.02075 ±0.00198` | `0.00816 ±0.00091` | `0.00648 ±0.00077` | `0.00468 ±0.00098` | | |
| | ΔMSE/step ↓ | `0.000757 ±0.000111` ★ | `0.001306 ±0.000160` | `0.001300 ±0.000199` | `0.003241 ±0.000283` | `0.001577 ±0.000154` | `0.001251 ±0.000142` | `0.000903 ±0.000139` | | |
| | ΔCos/step ↑ | `-0.0007054 ±0.0001211` ★ | `-0.0010668 ±0.0001787` | `-0.0012205 ±0.0002166` | `-0.0028863 ±0.0003109` | `-0.0015127 ±0.0001643` | `-0.0012179 ±0.0001540` | `-0.0008402 ±0.0001416` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| Z Image Turbo | |
| 64 samples per column | |
| (Different prompt, seeds and resolution from the other Z Image Turbo test. This one is just here to get more samples against MXFP8 checkpoints, which are hard to find in the wild.) | |
| | Metric | GGUF_Q8 | I8ConvRot | I8Row | [MXFP8](https://huggingface.co/Ccre/Z-Image-Turbo-MXFP8) | | |
| | :--- | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.03616 ±0.00313` ★ | `0.04834 ±0.00355` | `0.14951 ±0.00857` | `0.11037 ±0.00473` | | |
| | MAE ↓ | `0.08745 ±0.00362` ★ | `0.10531 ±0.00384` | `0.21607 ±0.00612` | `0.17953 ±0.00387` | | |
| | Max err ↓ | `3.34811 ±0.09199` ★ | `3.61884 ±0.09058` | `4.52879 ±0.07883` | `4.33244 ±0.07534` | | |
| | Rel-RMSE ↓ | `0.16740 ±0.00628` ★ | `0.19634 ±0.00660` | `0.35659 ±0.00968` | `0.30729 ±0.00645` | | |
| | SNR dB ↑ | `16.42 ±0.29` ★ | `14.86 ±0.26` | `9.27 ±0.23` | `10.59 ±0.18` | | |
| | Cos-sim ↑ | `0.978215 ±0.001696` ★ | `0.971225 ±0.001920` | `0.916394 ±0.004070` | `0.935860 ±0.002428` | | |
| | Var ratio →1 | `1.00006 ±0.00050` ★ | `1.00338 ±0.00045` | `0.97402 ±0.00155` | `0.99629 ±0.00101` | | |
| | Outlier% ↓ | `0.00054 ±0.00011` ★ | `0.00084 ±0.00013` | `0.00418 ±0.00049` | `0.00251 ±0.00024` | | |
| | Ch-MSE max ↓ | `0.06081 ±0.00660` ★ | `0.08189 ±0.00736` | `0.28000 ±0.02181` | `0.19093 ±0.01077` | | |
| | Ch-MSE std ↓ | `0.01206 ±0.00163` ★ | `0.01657 ±0.00178` | `0.06623 ±0.00638` | `0.04204 ±0.00300` | | |
| | ΔMSE/step ↓ | `0.006970 ±0.000753` ★ | `0.008928 ±0.000936` | `0.016678 ±0.001880` | `0.015876 ±0.001259` | | |
| | ΔCos/step ↑ | `-0.0038860 ±0.0004616` ★ | `-0.0049137 ±0.0005605` | `-0.0090652 ±0.0010369` | `-0.0086360 ±0.0007459` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| Flux2 Klein 9B Base | |
| 32 samples per column | |
| | Metric | INT8 ConvRot | INT8 Row | [INT8 Row ModelOpt](https://huggingface.co/vistralis/FLUX.2-klein-base-9b-INT8-transformer) | GGUF Q8 0 | FP8_Official | | |
| | :--- | ---: | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.02204 ±0.00475` ★ | `0.06017 ±0.01167` | `0.04246 ±0.00481` | `0.03024 ±0.00811` | `0.04142 ±0.00540` | | |
| | MAE ↓ | `0.05193 ±0.00639` ★ | `0.10543 ±0.01075` | `0.08763 ±0.00509` | `0.05821 ±0.01005` | `0.08112 ±0.00684` | | |
| | Max err ↓ | `1.57007 ±0.12075` ★ | `2.13746 ±0.09461` | `1.94028 ±0.08472` | `1.62537 ±0.17338` | `1.99069 ±0.11125` | | |
| | Rel-RMSE ↓ | `0.11172 ±0.01310` ★ | `0.21613 ±0.01848` | `0.18317 ±0.01103` | `0.12411 ±0.01924` | `0.16800 ±0.01327` | | |
| | SNR dB ↑ | `23.10 ±0.81` | `15.79 ±0.59` | `17.03 ±0.50` | `23.52 ±1.11` ★ | `19.12 ±0.69` | | |
| | Cos-sim ↑ | `0.987098 ±0.002851` ★ | `0.961752 ±0.007710` | `0.973305 ±0.003089` | `0.981972 ±0.005046` | `0.975436 ±0.003389` | | |
| | Var ratio →1 | `1.00008 ±0.00121` ★ | `1.00311 ±0.00263` | `1.00190 ±0.00224` | `1.00229 ±0.00136` | `1.00226 ±0.00181` | | |
| | Outlier% ↓ | `0.00055 ±0.00017` ★ | `0.00220 ±0.00071` | `0.00121 ±0.00027` | `0.00104 ±0.00036` | `0.00118 ±0.00021` | | |
| | Ch-MSE max ↓ | `0.04205 ±0.00912` ★ | `0.10400 ±0.01834` | `0.07711 ±0.00852` | `0.05674 ±0.01541` | `0.07300 ±0.00954` | | |
| | Ch-MSE std ↓ | `0.00632 ±0.00136` ★ | `0.01511 ±0.00252` | `0.01146 ±0.00125` | `0.00832 ±0.00209` | `0.01073 ±0.00139` | | |
| | ΔMSE/step ↓ | `0.003857 ±0.000759` ★ | `0.008846 ±0.001371` | `0.006936 ±0.000717` | `0.004814 ±0.001172` | `0.006657 ±0.000822` | | |
| | ΔCos/step ↑ | `-0.0017513 ±0.0004183` ★ | `-0.0034872 ±0.0008234` | `-0.0026765 ±0.0005044` | `-0.0022502 ±0.0006240` | `-0.0030834 ±0.0005014` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| Z Image Turbo | |
| 32 samples per column | |
| | Metric | INT8 ConvRot | INT8 Row | GGUF Q8 | FP8 | | |
| | :--- | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.04326 ±0.00622` | `0.10273 ±0.00973` | `0.02627 ±0.00370` ★ | `0.09472 ±0.00712` | | |
| | MAE ↓ | `0.09578 ±0.00821` | `0.17967 ±0.00961` | `0.07105 ±0.00531` ★ | `0.18951 ±0.00700` | | |
| | Max err ↓ | `2.24582 ±0.10280` | `2.99726 ±0.08630` | `2.05538 ±0.09594` ★ | `2.87146 ±0.06808` | | |
| | Rel-RMSE ↓ | `0.16181 ±0.01205` | `0.27953 ±0.01342` | `0.12857 ±0.00877` ★ | `0.28443 ±0.01002` | | |
| | SNR dB ↑ | `17.97 ±0.63` | `11.91 ±0.41` | `19.79 ±0.57` ★ | `11.17 ±0.29` | | |
| | Cos-sim ↑ | `0.972530 ±0.003675` | `0.935604 ±0.005455` | `0.982917 ±0.002238` ★ | `0.933439 ±0.004578` | | |
| | Var ratio →1 | `1.00117 ±0.00131` ★ | `0.99202 ±0.00301` | `1.00208 ±0.00098` | `0.94623 ±0.00320` | | |
| | Outlier% ↓ | `0.00053 ±0.00012` | `0.00172 ±0.00033` | `0.00032 ±0.00010` ★ | `0.00083 ±0.00014` | | |
| | Ch-MSE max ↓ | `0.07861 ±0.01218` | `0.19714 ±0.02157` | `0.04706 ±0.00714` ★ | `0.17641 ±0.01822` | | |
| | Ch-MSE std ↓ | `0.01621 ±0.00276` | `0.04345 ±0.00546` | `0.00956 ±0.00172` ★ | `0.03825 ±0.00444` | | |
| | ΔMSE/step ↓ | `0.008738 ±0.001514` | `0.015233 ±0.002232` | `0.005719 ±0.001069` ★ | `0.012003 ±0.001665` | | |
| | ΔCos/step ↑ | `-0.0050629 ±0.0009302` | `-0.0086229 ±0.0012933` | `-0.0033847 ±0.0006569` ★ | `-0.0071850 ±0.0011542` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| Chroma | |
| 32 samples per column | |
| | Metric | INT8 ConvRot | INT8 Row | GGUF Q8 | FP8 Mixed | | |
| | :--- | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.01021 ±0.00360` | `0.02799 ±0.00564` | `0.00555 ±0.00138` ★ | `0.02030 ±0.00274` | | |
| | MAE ↓ | `0.03999 ±0.00420` | `0.07773 ±0.00677` | `0.02807 ±0.00324` ★ | `0.06772 ±0.00447` | | |
| | Max err ↓ | `1.46539 ±0.20187` | `2.22444 ±0.21730` | `1.35671 ±0.22226` ★ | `2.04296 ±0.19891` | | |
| | Rel-RMSE ↓ | `0.09169 ±0.01286` | `0.16790 ±0.01750` | `0.06770 ±0.00925` ★ | `0.14417 ±0.01110` | | |
| | SNR dB ↑ | `23.54 ±0.99` | `17.33 ±0.89` | `26.31 ±1.11` ★ | `18.79 ±0.76` | | |
| | Cos-sim ↑ | `0.990995 ±0.002884` | `0.976308 ±0.004694` | `0.995231 ±0.001197` ★ | `0.982911 ±0.002356` | | |
| | Var ratio →1 | `0.99150 ±0.00407` | `1.03855 ±0.00951` | `1.00278 ±0.00227` ★ | `1.00961 ±0.00768` | | |
| | Outlier% ↓ | `0.00041 ±0.00029` | `0.00129 ±0.00049` | `0.00015 ±0.00007` ★ | `0.00059 ±0.00018` | | |
| | Ch-MSE max ↓ | `0.02014 ±0.00781` | `0.05817 ±0.01315` | `0.01074 ±0.00273` ★ | `0.03952 ±0.00520` | | |
| | Ch-MSE std ↓ | `0.00431 ±0.00173` | `0.01372 ±0.00325` | `0.00243 ±0.00070` ★ | `0.00934 ±0.00135` | | |
| | ΔMSE/step ↓ | `0.000707 ±0.000291` | `0.001820 ±0.000582` | `0.000410 ±0.000138` ★ | `0.001372 ±0.000381` | | |
| | ΔCos/step ↑ | `-0.0005174 ±0.0003418` | `-0.0010664 ±0.0007771` | `-0.0002943 ±0.0001454` ★ | `-0.0009653 ±0.0004437` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| Qwen Image 2512 | |
| 16 samples per column. | |
| | Metric | [FP8](https://huggingface.co/unsloth/Qwen-Image-2512-FP8/blob/main/qwen-image-2512-fp8.safetensors) | [GGUF Q4 K M](https://huggingface.co/unsloth/Qwen-Image-2512-GGUF/blob/main/qwen-image-2512-Q4_K_M.gguf) | [GGUF Q8](https://huggingface.co/unsloth/Qwen-Image-2512-GGUF/blob/main/qwen-image-2512-Q8_0.gguf) | I8 Conv | I8 Row | [Nunchaku BestQuality](https://huggingface.co/QuantFunc/Nunchaku-Qwen-Image-2512/blob/main/nunchaku_qwen_image_2512_best_quality_int4.safetensors) | | |
| | :--- | ---: | ---: | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.01643 ±0.00334` | `0.02188 ±0.00320` | `0.01062 ±0.00377` | `0.00894 ±0.00256` ★ | `0.01305 ±0.00436` | `0.02146 ±0.00354` | | |
| | MAE ↓ | `0.07556 ±0.00707` | `0.07740 ±0.00661` | `0.04068 ±0.00892` | `0.04043 ±0.00619` ★ | `0.05007 ±0.00917` | `0.08532 ±0.00742` | | |
| | Max err ↓ | `0.93735 ±0.06070` | `1.05423 ±0.05437` | `0.65768 ±0.09201` ★ | `0.73333 ±0.08073` | `0.75177 ±0.07628` | `0.96512 ±0.04607` | | |
| | Rel-RMSE ↓ | `0.22316 ±0.02186` | `0.25253 ±0.02143` | `0.13382 ±0.02853` ★ | `0.13795 ±0.02225` | `0.16354 ±0.02883` | `0.24947 ±0.02144` | | |
| | SNR dB ↑ | `14.08 ±0.75` | `13.78 ±0.84` | `22.44 ±1.67` ★ | `20.34 ±1.31` | `18.70 ±1.27` | `13.54 ±0.72` | | |
| | Cos-sim ↑ | `0.943337 ±0.010885` | `0.929011 ±0.010479` | `0.967114 ±0.011496` | `0.972459 ±0.007414` ★ | `0.957911 ±0.013642` | `0.927933 ±0.011458` | | |
| | Var ratio →1 | `1.00262 ±0.00459` | `0.99685 ±0.00597` | `0.99789 ±0.00268` ★ | `0.98840 ±0.00348` | `1.00248 ±0.00378` | `0.94775 ±0.00588` | | |
| | Outlier% ↓ | `0.00076 ±0.00029` | `0.00162 ±0.00044` | `0.00079 ±0.00040` | `0.00064 ±0.00029` ★ | `0.00116 ±0.00051` | `0.00093 ±0.00046` | | |
| | Ch-MSE max ↓ | `0.02873 ±0.00637` | `0.04307 ±0.00754` | `0.02095 ±0.00768` | `0.01662 ±0.00475` ★ | `0.02675 ±0.00918` | `0.03918 ±0.00712` | | |
| | Ch-MSE std ↓ | `0.00681 ±0.00167` | `0.01152 ±0.00214` | `0.00555 ±0.00216` | `0.00420 ±0.00124` ★ | `0.00735 ±0.00270` | `0.01014 ±0.00205` | | |
| | ΔMSE/step ↓ | `0.001429 ±0.000380` | `0.002038 ±0.000518` | `0.001062 ±0.000426` | `0.000907 ±0.000322` ★ | `0.001278 ±0.000448` | `0.002092 ±0.000484` | | |
| | ΔCos/step ↑ | `-0.0023754 ±0.0015020` ★ | `-0.0055836 ±0.0019522` | `-0.0029254 ±0.0013186` | `-0.0024572 ±0.0010212` | `-0.0034970 ±0.0014186` | `-0.0057739 ±0.0019517` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| HiDream O1 | |
| 16 Samples per column. | |
| FP8 Naive refers to using a BF16 checkpoint with the dtype set to FP8, which naively casts most weights to FP8. | |
| | Metric | FP8_Naive | [FP8 Scaled](https://huggingface.co/Comfy-Org/HiDream-O1-Image/blob/main/checkpoints/hidream_o1_image_dev_fp8_scaled.safetensors) | INT8 ConvRot | INT8 Row | [MXFP8](https://huggingface.co/Comfy-Org/HiDream-O1-Image/blob/main/checkpoints/hidream_o1_image_dev_mxfp8.safetensors) | | |
| | :--- | ---: | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.02261 ±0.00697` | `0.00324 ±0.00098` | `0.00199 ±0.00058` ★ | `0.05192 ±0.01084` | `0.00354 ±0.00070` | | |
| | MAE ↓ | `0.06901 ±0.01116` | `0.02499 ±0.00291` | `0.01877 ±0.00202` ★ | `0.13052 ±0.01274` | `0.02768 ±0.00254` | | |
| | Max err ↓ | `0.86595 ±0.05077` | `0.53393 ±0.04962` | `0.45624 ±0.03571` ★ | `1.15126 ±0.04459` | `0.56008 ±0.03832` | | |
| | Rel-RMSE ↓ | `0.23140 ±0.03353` | `0.08793 ±0.01196` | `0.06738 ±0.00849` ★ | `0.40533 ±0.03865` | `0.09269 ±0.00912` | | |
| | SNR dB ↑ | `14.86 ±1.00` | `22.98 ±0.91` | `25.65 ±0.85` ★ | `8.77 ±0.76` | `22.65 ±0.79` | | |
| | Cos-sim ↑ | `0.957479 ±0.013819` | `0.993943 ±0.001945` | `0.996338 ±0.001124` ★ | `0.901425 ±0.020387` | `0.993764 ±0.001271` | | |
| | Var ratio →1 | `0.96638 ±0.00868` | `0.96287 ±0.00445` | `0.99691 ±0.00313` | `1.00254 ±0.02455` ★ | `1.01115 ±0.00402` | | |
| | Outlier% ↓ | `0.00499 ±0.00257` | `0.00028 ±0.00015` | `0.00010 ±0.00008` ★ | `0.01168 ±0.00462` | `0.00022 ±0.00008` | | |
| | Ch-MSE max ↓ | `0.02596 ±0.00826` | `0.00362 ±0.00109` | `0.00237 ±0.00068` ★ | `0.05824 ±0.01247` | `0.00399 ±0.00077` | | |
| | Ch-MSE std ↓ | `0.00305 ±0.00116` | `0.00034 ±0.00011` | `0.00034 ±0.00012` ★ | `0.00590 ±0.00154` | `0.00044 ±0.00009` | | |
| | ΔMSE/step ↓ | `0.002661 ±0.000879` | `0.000514 ±0.000244` | `0.000299 ±0.000185` ★ | `0.005193 ±0.001433` | `0.000592 ±0.000248` | | |
| | ΔCos/step ↑ | `-0.0044397 ±0.0016674` | `-0.0008584 ±0.0004631` | `-0.0005061 ±0.0003415` ★ | `-0.0064275 ±0.0033903` | `-0.0009670 ±0.0004783` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| #### Anima on a 5060 | |
| 16 samples per column. | |
| | Metric | INT8ConvRot | MXFP8 | | |
| | :--- | ---: | ---: | | |
| | MSE ↓ | `0.00576 ±0.00109` ★ | `0.01461 ±0.00217` | | |
| | MAE ↓ | `0.03466 ±0.00317` ★ | `0.06382 ±0.00463` | | |
| | Max err ↓ | `0.66684 ±0.06254` ★ | `0.92180 ±0.05310` | | |
| | Rel-RMSE ↓ | `0.08546 ±0.00846` ★ | `0.14716 ±0.01107` | | |
| | SNR dB ↑ | `24.22 ±0.73` ★ | `18.90 ±0.58` | | |
| | Cos-sim ↑ | `0.991708 ±0.001573` ★ | `0.979025 ±0.003469` | | |
| | Var ratio →1 | `1.00804 ±0.00188` ★ | `1.01619 ±0.00334` | | |
| | Outlier% ↓ | `0.00003 ±0.00001` ★ | `0.00015 ±0.00005` | | |
| | Ch-MSE max ↓ | `0.01101 ±0.00206` ★ | `0.02518 ±0.00361` | | |
| | Ch-MSE std ↓ | `0.00259 ±0.00050` ★ | `0.00598 ±0.00085` | | |
| | ΔMSE/step ↓ | `0.000954 ±0.000213` ★ | `0.002096 ±0.000369` | | |
| | ΔCos/step ↑ | `-0.0010690 ±0.0003465` ★ | `-0.0023829 ±0.0006197` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| ## Lora | |
| In this table, we compare the quality of our various lora approaches, against a standard bf16 lora loader baseline. | |
| The TLDR is that Pre-Lora is within marging of error of Dynamic Lora. Post-Lora is slightly worse. GGUF Q8 dequantizes to bf16 during inference to apply the lora math which is both slow and cheating. Nunchaku lora appears to be a little broken. | |
| Interesting observation: These consistently score higher than their non-lora counterparts. I suspect it could be that there is a QAT like effect for applying loras trained with quantization to quantized models. Alternatively, maybe there is a reverse QAT like effect when using QLora on a BF16 model, lowering the quality, bringing it closer to quantized models. | |
| Anima: | |
| 32 Samples per column. | |
| | Metric | INT8 ConvRot Pre-Lora | INT8 ConvRot Dynamic Lora | INT8 ConvRot Post-Lora | GGUF Q8_0 Lora | FP8 Lora | | |
| | :--- | ---: | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.00073 ±0.00021` ★ | `0.00090 ±0.00028` | `0.00186 ±0.00043` | `0.00158 ±0.00048` | `0.00641 ±0.00092` | | |
| | MAE ↓ | `0.01302 ±0.00091` ★ | `0.01327 ±0.00113` | `0.01990 ±0.00175` | `0.01694 ±0.00196` | `0.04095 ±0.00311` | | |
| | Max err ↓ | `0.30456 ±0.04180` | `0.30054 ±0.04417` ★ | `0.42361 ±0.04273` | `0.37600 ±0.04041` | `0.63406 ±0.04540` | | |
| | Rel-RMSE ↓ | `0.04963 ±0.00505` ★ | `0.05100 ±0.00601` | `0.07606 ±0.00772` | `0.06606 ±0.00872` | `0.14956 ±0.01150` | | |
| | SNR dB ↑ | `27.39 ±0.59` | `27.52 ±0.65` ★ | `24.32 ±0.66` | `26.01 ±0.83` | `18.25 ±0.64` | | |
| | Cos-sim ↑ | `0.997709 ±0.000687` ★ | `0.997376 ±0.000778` | `0.994509 ±0.001267` | `0.995339 ±0.001409` | `0.981066 ±0.002814` | | |
| | Var ratio →1 | `1.00645 ±0.00144` | `0.99760 ±0.00114` | `1.00029 ±0.00176` | `1.00010 ±0.00113` ★ | `0.98184 ±0.00368` | | |
| | Outlier% ↓ | `0.00002 ±0.00002` | `0.00001 ±0.00001` ★ | `0.00005 ±0.00003` | `0.00004 ±0.00003` | `0.00023 ±0.00008` | | |
| | Ch-MSE max ↓ | `0.00141 ±0.00044` ★ | `0.00194 ±0.00067` | `0.00400 ±0.00099` | `0.00314 ±0.00099` | `0.01286 ±0.00201` | | |
| | Ch-MSE std ↓ | `0.00035 ±0.00011` ★ | `0.00047 ±0.00016` | `0.00098 ±0.00025` | `0.00079 ±0.00026` | `0.00326 ±0.00052` | | |
| | ΔMSE/step ↓ | `0.000077 ±0.000031` ★ | `0.000099 ±0.000039` | `0.000194 ±0.000061` | `0.000167 ±0.000062` | `0.000599 ±0.000122` | | |
| | ΔCos/step ↑ | `-0.0001550 ±0.0001023` ★ | `-0.0002021 ±0.0001127` | `-0.0004421 ±0.0001852` | `-0.0004007 ±0.0001874` | `-0.0014563 ±0.0004473` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| Qwen Image 2512 | |
| 16 Samples per column. | |
| | Metric | FP8 | GGUF Q4 K M | GGUF Q8 | INT8 ConvRot Post-Lora | INT8 ConvRot Pre-Lora | Nunchaku_BestQuality | | |
| | :--- | ---: | ---: | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.01139 ±0.00146` | `0.00874 ±0.00147` | `0.00135 ±0.00058` | `0.00185 ±0.00050` | `0.00111 ±0.00032` ★ | `0.04326 ±0.00328` | | |
| | MAE ↓ | `0.06940 ±0.00369` | `0.05205 ±0.00418` | `0.01490 ±0.00233` ★ | `0.02129 ±0.00215` | `0.01637 ±0.00156` | `0.14596 ±0.00556` | | |
| | Max err ↓ | `0.83818 ±0.05885` | `0.68868 ±0.04720` | `0.37840 ±0.05948` ★ | `0.45491 ±0.05199` | `0.38492 ±0.03914` | `1.08649 ±0.03813` | | |
| | Rel-RMSE ↓ | `0.18603 ±0.01147` | `0.14543 ±0.01242` | `0.04687 ±0.00796` ★ | `0.06366 ±0.00756` | `0.05016 ±0.00546` | `0.36876 ±0.01457` | | |
| | SNR dB ↑ | `15.19 ±0.48` | `18.56 ±0.65` | `29.23 ±0.95` ★ | `25.81 ±0.80` | `27.56 ±0.70` | `9.33 ±0.35` | | |
| | Cos-sim ↑ | `0.957885 ±0.005072` | `0.971353 ±0.004980` | `0.995827 ±0.001845` | `0.993908 ±0.001672` | `0.996241 ±0.001149` ★ | `0.874391 ±0.010770` | | |
| | Var ratio →1 | `1.03367 ±0.00407` | `0.98059 ±0.00510` | `0.99394 ±0.00142` | `0.99124 ±0.00185` | `0.99651 ±0.00217` ★ | `1.17955 ±0.01708` | | |
| | Outlier% ↓ | `0.00016 ±0.00005` | `0.00008 ±0.00003` | `0.00002 ±0.00001` | `0.00002 ±0.00001` | `0.00001 ±0.00000` ★ | `0.00097 ±0.00018` | | |
| | Ch-MSE max ↓ | `0.02053 ±0.00283` | `0.01603 ±0.00271` | `0.00269 ±0.00108` | `0.00388 ±0.00111` | `0.00204 ±0.00053` ★ | `0.08783 ±0.00643` | | |
| | Ch-MSE std ↓ | `0.00464 ±0.00075` | `0.00399 ±0.00073` | `0.00067 ±0.00029` | `0.00089 ±0.00025` | `0.00048 ±0.00013` ★ | `0.02458 ±0.00197` | | |
| | ΔMSE/step ↓ | `0.000958 ±0.000252` | `0.001059 ±0.000261` | `0.000183 ±0.000087` | `0.000237 ±0.000087` | `0.000152 ±0.000071` ★ | `0.003098 ±0.000772` | | |
| | ΔCos/step ↑ | `-0.0007560 ±0.0012897` | `-0.0025382 ±0.0009487` | `-0.0004476 ±0.0002795` | `-0.0005603 ±0.0003156` | `-0.0003486 ±0.0002816` ★ | `-0.0054101 ±0.0030137` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| ### Some loras require stochastic lora to work | |
| Anima, 16 samples: | |
| | Metric | I8Dynamic | I8None | I8Pre | I8Stoch | | |
| | :--- | ---: | ---: | ---: | ---: | | |
| | MSE ↓ | `0.01128 ±0.00309` ★ | `0.23273 ±0.01757` | `0.01204 ±0.00277` | `0.01488 ±0.00385` | | |
| | MAE ↓ | `0.04268 ±0.00710` ★ | `0.35066 ±0.01357` | `0.04434 ±0.00612` | `0.05195 ±0.00784` | | |
| | Max err ↓ | `0.77778 ±0.07449` ★ | `1.83527 ±0.05833` | `0.83019 ±0.06939` | `0.90528 ±0.06125` | | |
| | Rel-RMSE ↓ | `0.11532 ±0.01719` ★ | `0.79263 ±0.03690` | `0.12302 ±0.01520` | `0.13954 ±0.01769` | | |
| | SNR dB ↑ | `23.07 ±1.13` ★ | `2.63 ±0.40` | `22.50 ±1.05` | `21.04 ±0.92` | | |
| | Cos-sim ↑ | `0.983092 ±0.004472` ★ | `0.594366 ±0.035211` | `0.982433 ±0.003686` | `0.977338 ±0.005859` | | |
| | Var ratio →1 | `0.99949 ±0.00296` ★ | `0.69981 ±0.03352` | `0.99129 ±0.00373` | `0.99126 ±0.00392` | | |
| | Outlier% ↓ | `0.00027 ±0.00009` ★ | `0.02900 ±0.00621` | `0.00029 ±0.00009` | `0.00032 ±0.00009` | | |
| | Ch-MSE max ↓ | `0.01921 ±0.00513` ★ | `0.50483 ±0.04664` | `0.02048 ±0.00468` | `0.02571 ±0.00644` | | |
| | Ch-MSE std ↓ | `0.00436 ±0.00115` ★ | `0.13416 ±0.01344` | `0.00491 ±0.00116` | `0.00583 ±0.00143` | | |
| | ΔMSE/step ↓ | `0.001330 ±0.000360` ★ | `0.015669 ±0.001669` | `0.001472 ±0.000345` | `0.001712 ±0.000422` | | |
| | ΔCos/step ↑ | `-0.0017781 ±0.0005309` ★ | `-0.0205223 ±0.0046041` | `-0.0019693 ±0.0004810` | `-0.0023263 ±0.0006257` | | |
| > ★ = best value for that metric | ± = avg of per-timestep SE (std/√n\_seeds) `[--stratify-std]` | |
| # Collecting your own measurements: | |
| Use this custom node: https://github.com/BobJohnson24/ComfyUI-EvalSampler | |