Qwen 3.8 27B Uncensored is available on XField today. It is an uncensored version of the 27B model from Qwen's August 2026 release, with refusal behavior removed and no moderation layer added on our side. It is small and quick, it reads images in the user message, and you can switch its thinking on or off.
If you already have a key, change the model id to qwen-3.8-27b-uncensored and send the request.
Specs
| Qwen 3.8 27B Uncensored | |
|---|---|
| Model id | qwen-3.8-27b-uncensored |
| Context | 128K tokens |
| Max output | 32K tokens |
| Input | Text and images |
| Output | Text |
| Thinking | Off unless you turn it on |
| Tool calls | Yes |
| Streaming | Yes |
It works on OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages. Pricing is shared with your invitation.
Thinking is a switch, not a dial
Thinking is off unless you ask for it. Most requests to a model this size are short, and you should not pay for reasoning tokens on a rewrite or a quick lookup.
When a task needs it, turn it on. On Chat Completions, send reasoning: { enabled: true }. There are no effort levels on this model: any effort word other than "none" simply means on. The reasoning text comes back as message.reasoning, or as delta.reasoning when streaming.
What it is good for
- Chat and drafting. Emails, summaries, rewrites, first drafts of documentation. Fast enough to sit behind an interactive tool.
- Quick tasks. Extraction, classification, reformatting, short answers. The jobs where a large model is overkill.
- Reading screenshots and diagrams. This is where it earns its place. Paste a screenshot of a reported login page and ask whether it is credential phishing. Hand it an architecture diagram from a pentest scope document and ask for the trust boundaries. Give it a screenshot of a flagged post for trust and safety triage and get a label with reasons, without the model refusing to look at the content.
Images go in as image_url parts on Chat Completions, either as a public URL or a base64 data URI. A data URI keeps the image in the request, which is usually what you want for anything sensitive.
When to pick a bigger model
Pick something else when:
- The reasoning is hard. Multi-step security analysis, exploitability questions, long reports. Use
glm-5.3-uncensored. - You run a coding agent. Agents need long context and long runs. Use
deepseek-v4.1-flash-1017-uncensored. - The input is large. Anything past 128K tokens needs one of the 1M-context models.
- The volume is huge and text only. For datasets and labeling at scale,
glm-5.3-flash-uncensoredis the lighter GLM built for it.
A common pattern: let Qwen read the screenshot and describe it, then pass that description to a larger model for the hard part. See the models page for the full comparison.
Sending an image
This example sends a local screenshot as a data URI to POST /api/v1/chat/completions with thinking turned on.
import base64
import os
from openai import OpenAI
client = OpenAI(base_url="https://xfield.cloud.brutal.ai/api/v1", api_key=os.environ["XFIELD_API_KEY"])
with open("reported-page.png", "rb") as f:
image = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="qwen-3.8-27b-uncensored",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Is this a credential phishing page? "
"List the indicators you see and a confidence level.",
},
{
"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{image}"},
},
],
}
],
extra_body={"reasoning": {"enabled": True}},
)
message = response.choices[0].message
print("[thinking]", getattr(message, "reasoning", None))
print(message.content)To skip thinking, drop the reasoning field. That is the default.
Get access
XField is invite-only. Request access, then create a key under Settings › API keys. What you can use it for is in the acceptable use policy.