Skip to content
NewDeepSeek V4.1 Flash 1017 Uncensored is live, with 1M tokens of context.Read the launch
Journal

Qwen 3.8 27B Uncensored is live

Qwen 3.8 27B Uncensored is now on XField: a compact model with 128K context, optional thinking and image input, for quick answers and drafts.

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 idqwen-3.8-27b-uncensored
Context128K tokens
Max output32K tokens
InputText and images
OutputText
ThinkingOff unless you turn it on
Tool callsYes
StreamingYes

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-uncensored is 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.

triage.py
Python
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.

Keep your stack.
Lose the refusals.

Tell us what you are building. We reply with an invitation, a key and pricing for your volume.