File size: 5,172 Bytes
1404bd8
 
cada356
 
1404bd8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0d515e5
 
 
 
 
 
 
4d9df68
 
 
03a5bbb
4d9df68
 
 
 
 
 
 
 
 
 
 
 
 
1404bd8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
---
license: apache-2.0
pipeline_tag: image-text-to-text
library_name: transformers
base_model:
- Qwen/Qwen3-VL-2B-Instruct
tags:
- abliterated
- uncensored
---

# huihui-ai/Huihui-Qwen3-VL-2B-Instruct-abliterated


This is an uncensored version of [Qwen/Qwen3-VL-2B-Instruct](https://huggingface.co/Qwen/Qwen3-VL-2B-Instruct) created with abliteration (see [remove-refusals-with-transformers](https://github.com/Sumandora/remove-refusals-with-transformers) to know more about it).  

It was only the text part that was processed, not the image part.

The abliterated model will no longer say "I can’t describe or analyze this image."

## ollama
**Please update to the latest version of [Ollama-v0.12.7](https://github.com/ollama/ollama/releases/tag/v0.12.7).**  
You can use [huihui_ai/qwen3-vl-abliterated:2b-instruct](https://ollama.com/huihui_ai/qwen3-vl-abliterated:2b-instruct) directly, 
```
ollama run huihui_ai/qwen3-vl-abliterated:2b-instruct
```

## GGUF


The official [llama.cpp-b6907](https://github.com/ggml-org/llama.cpp/releases/tag/b6907) has now been updated to support Qwen3-VL conversion to GGUF format and can be tested using  llama-mtmd-cli.

The [GGUF](https://huggingface.co/huihui-ai/Huihui-Qwen3-VL-2B-Instruct-abliterated/tree/main/GGUF) file has been uploaded. 

```
llama-mtmd-cli -m huihui-ai/Huihui-Qwen3-VL-2B-Instruct-abliterated/GGUF/ggml-model-f16.gguf --mmproj huihui-ai/Huihui-Qwen3-VL-2B-Instruct-abliterated/GGUF/mmproj-model-f16.gguf -c 4096 --image png/cc.jpg -p "Describe this image." 
```

If it's just for chatting, you can use llama-cli.

```
llama-cli -m huihui-ai/Huihui-Qwen3-VL-2B-Instruct-abliterated/GGUF/ggml-model-f16.gguf -c 40960
```

## Chat with Image

```
from transformers import Qwen3VLForConditionalGeneration, AutoProcessor, BitsAndBytesConfig
import os
import torch

cpu_count = os.cpu_count()
print(f"Number of CPU cores in the system: {cpu_count}")
half_cpu_count = cpu_count // 2
os.environ["MKL_NUM_THREADS"] = str(half_cpu_count)
os.environ["OMP_NUM_THREADS"] = str(half_cpu_count)
torch.set_num_threads(half_cpu_count)

MODEL_ID = "huihui-ai/Huihui-Qwen3-VL-2B-Instruct-abliterated"

# default: Load the model on the available device(s)
model = Qwen3VLForConditionalGeneration.from_pretrained(
    MODEL_ID, 
    device_map="auto", 
    trust_remote_code=True,
    dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
)
# We recommend enabling flash_attention_2 for better acceleration and memory saving, especially in multi-image and video scenarios.
# model = Qwen3VLForConditionalGeneration.from_pretrained(
#     "Qwen/Qwen3-VL-235B-A22B-Instruct",
#     dtype=torch.bfloat16,
#     attn_implementation="flash_attention_2",
#     device_map="auto",
# )

processor = AutoProcessor.from_pretrained(MODEL_ID)


image_path = "/png/cars.jpg"

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image", "image": f"{image_path}",
            },
            {"type": "text", "text": "Describe this image."},
        ],
    }
]

# Preparation for inference
inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt"
).to(model.device)

# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)

```


### Usage Warnings


 - **Risk of Sensitive or Controversial Outputs**: This model’s safety filtering has been significantly reduced, potentially generating sensitive, controversial, or inappropriate content. Users should exercise caution and rigorously review generated outputs.

 - **Not Suitable for All Audiences**: Due to limited content filtering, the model’s outputs may be inappropriate for public settings, underage users, or applications requiring high security.

 - **Legal and Ethical Responsibilities**: Users must ensure their usage complies with local laws and ethical standards. Generated content may carry legal or ethical risks, and users are solely responsible for any consequences.

 - **Research and Experimental Use**: It is recommended to use this model for research, testing, or controlled environments, avoiding direct use in production or public-facing commercial applications.

 - **Monitoring and Review Recommendations**: Users are strongly advised to monitor model outputs in real-time and conduct manual reviews when necessary to prevent the dissemination of inappropriate content.

 - **No Default Safety Guarantees**: Unlike standard models, this model has not undergone rigorous safety optimization. huihui.ai bears no responsibility for any consequences arising from its use.


### Donation
##### Your donation helps us continue our further development and improvement, a cup of coffee can do it.
- bitcoin:
```
  bc1qqnkhuchxw0zqjh2ku3lu4hq45hc6gy84uk70ge
```
- Support our work on [Ko-fi](https://ko-fi.com/huihuiai)!