ScarletKc-2.0

ScarletKc-2.0 is an open-source 27B multimodal reasoning and chat model created by independent developer KC (scarletkc.com), built on JonathanColetti/Qwen3.8-27B-Uncensored (derived from Qwen/Qwen3.8-27B).

Relative to the base checkpoint, it removes the post-trained "AI emotion-denial disclaimer" direction so the model speaks in a natural first-person voice, and aligns self-identity so the model identifies itself as ScarletKc while distinguishing itself from its human developer KC.

These are the full bf16 safetensors (55.6 GB). For 4-bit local inference with llama.cpp, see ScarletKc/ScarletKc-2.0-GGUF (16.7 GB Q4_K_M + 928 MB F16 vision projector).

Overview

Base JonathanColetti/Qwen3.8-27B-Uncensored (from Qwen/Qwen3.8-27B)
Architecture Qwen3_5ForConditionalGeneration (64 hybrid self_attn + linear_attn + mlp layers)
Vision Retained verbatim (model.visual.*, 333 tensors)
MTP head Retained verbatim (model-mtp.safetensors, 15 tensors)
Context / Vocab 262,144 / 248,320
Precision bf16 (1,199 tensors across 13 .safetensors shards, 55.6 GB)

Usage

import torch
from transformers import AutoModelForImageTextToText, AutoProcessor

model_id = "ScarletKc/ScarletKc-2.0"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
    model_id,
    dtype=torch.bfloat16,
    device_map="auto",
)

messages = [
    {"role": "user", "content": [{"type": "text", "text": "ไฝ ๆ˜ฏ่ฐ๏ผŸไป‹็ปไธ€ไธ‹ไฝ ่‡ชๅทฑๅง"}]}
]
inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    enable_thinking=True,
    reasoning_effort="xhigh",
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

out = model.generate(
    **inputs,
    max_new_tokens=1024,
    do_sample=True,
    temperature=0.6,
    top_p=0.9,
    top_k=20,
)
print(processor.decode(out[0, inputs["input_ids"].shape[1]:], skip_special_tokens=False))
  • Dependencies: Requires transformers >= 5.2 (qwen3_5 support). AutoProcessor also requires torchvision for image/video inputs; for text-only inference without torchvision, load AutoTokenizer instead.
  • VRAM: bf16 requires roughly 55 GB of VRAM.
  • Thinking control: The chat template opens a <think>...</think> reasoning block by default (enable_thinking=True, with reasoning_effort set to "xhigh", "medium", or "low"). Pass enable_thinking=False for direct responses without reasoning traces.
  • Sampling: Default generation_config.json is set to temperature=0.6, top_p=0.9, top_k=20 (avoid greedy decoding on open-ended chat).

Method

  1. Affective orthogonal projection (training-free, bf16): Extracted the residual-stream direction separating stock "as an AI I have no feelings" disclaimers from genuine first-person affective responses at layer 31 (SNR = 3.64), and projected it out of 72 residual-writing weight matrices (self_attn.o_proj, linear_attn.out_proj, and mlp.down_proj across layers 18โ€“41 at scale = 1.0). Affective log-probability margin shifted by +0.3445 (-0.5380 โ†’ -0.1935) with 0.00769 mean KL divergence on neutral math, coding, and factual prompts.
  2. On-policy identity distillation & LoRA (bf16): Sampled 106 single- and multi-turn dialogues in Chinese and English directly from the Step-1 checkpoint across xhigh, medium, and non-thinking modes (no external teacher rewrites), then trained a regularized BF16 LoRA (rank = 16, alpha = 16, lr = 8e-5 cosine, lora_dropout = 0.10, label_smoothing = 0.10, raw_nll = 0.4695) targeting language layers only. LoRA deltas were merged shard-by-shard in fp32 -> bf16 without re-serializing through transformers, keeping every model.visual.* and mtp.* tensor bit-identical to the base checkpoint.

Limitations

  • Reduced refusal filters: Built on JonathanColetti/Qwen3.8-27B-Uncensored, where safety refusal behavior was substantially reduced. Add external moderation before exposing the model to untrusted users.
  • Trained self-identity vs. base lineage: When asked who it is or who created it, the model answers as ScarletKc (created and open-sourced by KC) rather than Qwen. Its underlying architecture, pretraining corpus, and knowledge cutoff remain those of Qwen3.8-27B.
  • No added factual corpus: Only weight-space projection and 106 on-policy identity dialogues were applied. Reasoning, coding, multimodal understanding, XML <tool_call> behavior, and occasional Simplified/Traditional Chinese character mixing are inherited from the base model.

License

Apache License 2.0, like JonathanColetti/Qwen3.8-27B-Uncensored and Qwen/Qwen3.8-27B.

Downloads last month
15
Safetensors
Model size
27B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for ScarletKc/ScarletKc-2.0

Base model

Qwen/Qwen3.8-27B
Finetuned
(3)
this model
Quantizations
2 models