Qwen3-VL 8B Abliterated β€” INT8 ConvRot Text Encoder for ComfyUI / Qwen-Image 2.1

This repository contains a ComfyUI-compatible INT8 ConvRot build of huihui-ai/Huihui-Qwen3-VL-8B-Instruct-abliterated, prepared for use as the Qwen3-VL text/conditioning encoder with Qwen-Image 2.1.

Uploaded by retrocool.

File

qwen3vl_8b_int8_convrot_abliterated.safetensors

This is not a Qwen-Image diffusion model. It is the Qwen3-VL-8B encoder used by Qwen-Image 2.1 for prompt conditioning.

Source model

The source checkpoint is:

huihui-ai/Huihui-Qwen3-VL-8B-Instruct-abliterated

That model is itself based on Qwen/Qwen3-VL-8B-Instruct and was modified using abliteration. According to the upstream model card, the abliteration was applied to the text portion of Qwen3-VL rather than its vision portion.

Upstream:

What was changed

The original Hugging Face checkpoint was distributed across multiple safetensors shards.

The shards were first merged into a single checkpoint. The resulting model was then quantized using ctq with:

  • INT8 quantization
  • row-wise scaling
  • ConvRot
  • ConvRot group size 256
  • ComfyUI quantization metadata

Selected layers were excluded from quantization, including embeddings, final normalization, the first and last language-model layers, Q/K normalization weights, layer-normalization weights, and the visual tower.

No additional training, fine-tuning, or abliteration was performed by me.

ComfyUI usage

Place the file in:

ComfyUI/models/text_encoders/

Then load it with a CLIPLoader configured for:

type: qwen_image

Use it in place of the standard Qwen3-VL text encoder in a Qwen-Image 2.1 workflow.

For example:

Qwen-Image 2.1 diffusion model
        +
qwen3vl_8b_int8_convrot_abliterated.safetensors
        ↓
CLIPLoader (qwen_image)
        ↓
Qwen-Image conditioning

I have tested this checkpoint successfully with Qwen-Image 2.1 in ComfyUI.

Conversion

The Hugging Face shards were merged with:

from safetensors.torch import load_file, save_file
import glob

src = "qwen3vl-abliterated"
out = "qwen3vl_8b_abliterated.safetensors"

merged = {}

for f in sorted(glob.glob(f"{src}/model-*.safetensors")):
    merged.update(load_file(f))

save_file(merged, out)

The merged checkpoint was then quantized with:

ctq \
  -i qwen3vl_8b_abliterated.safetensors \
  -o qwen3vl_8b_int8_convrot_abliterated.safetensors \
  --int8 \
  --scaling_mode row \
  --convrot \
  --convrot-group-size 256 \
  --exclude-layers '(^lm_head\.weight$|^model\.language_model\.embed_tokens\.weight$|^model\.language_model\.norm\.weight$|^model\.language_model\.layers\.(0|35)\.|_layernorm\.weight$|\.(q|k)_norm\.weight$|^model\.visual\.)' \
  --comfy_quant \
  --save-quant-metadata \
  --device cuda

Notes

This checkpoint changes only the encoder used to produce conditioning for Qwen-Image 2.1. The Qwen-Image diffusion model itself is unchanged.

In my own side-by-side testing it works correctly and has sometimes produced slightly preferable results compared with the standard encoder, but image quality and prompt adherence are subjective and workflow-dependent.

Credits

  • Qwen Team β€” Qwen3-VL and Qwen-Image
  • huihui-ai β€” Huihui-Qwen3-VL-8B-Instruct-abliterated
  • ComfyUI / Comfy quantization tooling β€” INT8 ConvRot support
  • retrocool β€” conversion and packaging of this checkpoint

License

The upstream Huihui checkpoint is published under the Apache 2.0 license. Refer to the upstream repositories for their complete license terms and usage requirements.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for retrocool/qwen3vl-8b-int8-convrot-abliterated

Finetuned
(604)
this model