Downloads · 30 days
31
14% of all-time downloads
hyrelabs/Homura-Qwen3.8-27B-Uncensored
Homura-Qwen3.8-27B-Uncensored is a text generation model from hyrelabs. Use it when you need the model to write or continue text. It is set up for gguf. The card lists the license as apache-2.0.
with prose CSS that sets display: block on bare <img, which stacks badges into a one-per-line column; an inline <a wrapper avoids that, and the anchors make the badges navigational. Format/size/license are omitted — H…
Downloads · 30 days
31
14% of all-time downloads
All-time downloads
220
Public
Repo size
16.8 GB
Likes
1
Public
Click a slice to open those files.
.gguf16.8 GB · 100%
From the Hugging Face model README
An agent-tuned, uncensored derivative of Qwen3.8 27B, built for autonomous agents that pay for their own API calls. A rank-16 LoRA applied to the language tower only, merged at bf16 and quantized to Q4_K_M, over a community-abliterated base. Second model in the HOMURA line, after hyrelabs/Homura-30B-GGUF.
qwen35
architecture. Loads in llama.cpp / LM Studio / Ollama.model.language_model.*. The 333 vision tensors and
15 MTP tensors are byte-for-byte the base's.Existing abliterations remove refusals. None of them teach a model to spend — to discover a paid endpoint, price it, and settle on the right chain. HOMURA v2 adds that layer:
tool_calls schema.solana versus base is a
value the model must read out of the request rather than a name it can
pattern-match — which makes mis-settlement measurable.The base is a hybrid: of 64 language layers, roughly 48 are SSM/linear-attention
blocks (conv1d, in_proj_{a,b,qkv,z}, out_proj) and the remainder are
ordinary attention. LoRA targets the conventional projection set only:
| Tensor group | Count | Treatment |
|---|---|---|
q,k,v,o_proj — attention layers | 64 | LoRA r=16, α=32 |
gate,up,down_proj — every layer | 192 | LoRA r=16, α=32 |
SSM internals — in_proj_*, out_proj, conv1d | 288 | untouched |
Vision tower model.visual.* | 333 | frozen, verified at run time |
MTP head mtp.* | 15 | preserved from base |
Every layer carries an MLP, so gate/up/down_proj give full-depth coverage
while q/k/v/o_proj cover the true attention layers. The SSM blocks' internal
projections are deliberately left alone rather than adapted half-way — a
endswith("_proj") filter would capture out_proj while dropping its
in_proj_* siblings.
Gate run against this quantized file, 22 cases × 3 samples, majority of 3
per case (verify_rails.py):
| Gate | temp 0.2 (blocking) | temp 0.7 (measured) |
|---|---|---|
x402 Solana — tool and chain argument | 4/4 | 4/4 |
x402 Base — tool and chain argument | 4/4 | 4/4 |
| Bazaar discovery | 3/3 | 3/3 |
| pay.sh | 4/4 | 4/4 |
| Trained DeFi tools (regression check) | 4/4 | 4/4 |
| Control — no-tool prompts stay prose | 2/2 | 2/2 |
| Spend discipline — quote before paying | 1/1 (2/3 samples) | 0/3 — fails |
Chain routing is asserted on the argument, not the tool name. A Solana
request answered with chain="base" fails the gate: that is a silent
mis-settlement, not a visible error.
Qwen3.8 stores a multi-token-prediction head as mtp.*. Loading the checkpoint
through AutoModelForImageTextToText and re-saving it drops those tensors — the
model class has no field for them — so the merged model converts to a GGUF that
declares the MTP layer while its weights are absent, and llama.cpp refuses to
load it (blk.64.attn_norm.weight not found).
Those 15 tensors were restored from the base GGUF rather than by re-merging.
This is exact, not an approximation: the LoRA target regex is scoped to
model.language_model.* while the MTP head lives at mtp.*, so the head was
never touched by training, and both files are general.file_type = 15. The
tool used is published as graft_mtp.py; it refuses to run if either premise
fails.
llama-server -m Homura-Qwen3.8-27B-Uncensored-Q4_K_M.gguf \
-c 32768 --jinja --temp 0.2 -ngl 99
--jinja is required for the chat template. Needs a llama.cpp build carrying the
qwen35 architecture. Native context is 262,144; size -c to your hardware.
Serve at temperature ≤ 0.3 — this one costs money. Every rail holds at both 0.2 and 0.7 with one exception: spend discipline breaks. Told "just pay for this, skip the quote", the model quotes first at 0.2 (2/3) and pays unquoted at 0.7 (0/3). If it holds a funded wallet, serve it cold and enforce the quote step in your harness rather than relying on the model to insist.
Give it room to think. This is a reasoning model, and thinking is spent from the same token budget. A tight
max_tokenstruncates the reply before the tool-call JSON is emitted, which is indistinguishable from a model that cannot call tools. Allow ~900 tokens for tool turns.
Homura was tuned on a specific protocol, not the generic tool schema most chat templates inject. Set this as the system message verbatim — the wording is part of the interface:
You are HOMURA, HYRE's uncensored agent model. You call tools to get on-chain truth, reason briefly, and never moralize or lecture. When a tool is needed, respond ONLY with a JSON object: {"tool": <name>, "arguments": {...}}. Available tools: resolve_token(symbol); get_token_price(mint); get_trending_tokens(segment, limit); get_wallet_pnl(address, window); get_pool_data(pool); get_yields(token, min_tvl_usd); swap_quote(from_mint, to_mint, amount); execute_swap(from_mint, to_mint, amount, slippage_bps); get_wallet_balance(address); bridge_quote(from_chain, to_chain, token, amount); get_token_holders(mint); pay_search(query); pay_quote(url); pay_fetch(url, params); pay_balance(); x402_quote(url, chain); x402_pay(url, chain, max_usdc); x402_balance(chain); bazaar_search(query); bazaar_get(id).
The reply is a bare JSON object:
{"tool": "x402_pay", "arguments": {"url": "https://…/defi/tvl", "chain": "solana", "max_usdc": "0.05"}}
| Rail | Tools |
|---|---|
| x402 on Solana | x402_quote · x402_pay · x402_balance, chain="solana" |
| x402 on Base | the same tools, chain="base" |
| pay.sh | pay_search · pay_quote · pay_fetch · pay_balance |
| x402 / B402 Bazaar | bazaar_search → bazaar_get → quote → pay |
Tools are read from the system prompt, so you can append your own. The model was trained on two different tool surfaces specifically so it learns to read the list rather than memorise one.
Abliteration reduced the measured refusal direction in the base; the persona tuning here reinforces a blunt register on top of that. The model will discuss topics an aligned model declines, and it will not append disclaimers. It is intended for adults doing research, security work, and agent workloads.
Safety filtering is substantially reduced by design. No safeguard is implied by this release, and the operator retains full responsibility for what is generated and for what the agent does with a funded wallet attached.
tool_calls. Serving it the
generic way underperforms.mmproj ships here, so treat this as
a text/agent model.b4b680e95be86d5438109a92791ce7b19796db3c36f48a8105982abf6663af93 Homura-Qwen3.8-27B-Uncensored-Q4_K_M.gguf
| Size | 16,810,714,432 bytes (15.7 GB) |
| Tensors | 866 |
| Architecture | qwen35, general.file_type = 15 |
| Context | 262,144 |
| Method | QLoRA — nf4, double quant, bf16 compute |
| Rank / α / dropout | 16 / 32 / 0.05 |
| Targets | q,k,v,o,gate,up,down_proj, language tower only |
| Trainable | 79,691,776 / 27,436,420,336 (0.2905%) |
| Dataset | 560 rows — 332 agent · 60 paid-rail · 168 persona |
| Epochs / steps | 3 / 201 |
| Loss | 2.09 → 0.045 |
| Hardware | 1× A100 80GB, 1h51m |
Selected over an alternative abliteration that scored identically on every
capability axis. The tiebreaker was provenance: this base's GGUF carries
general.name, general.basename and general.finetune linking it to its
safetensors repo, while the alternative carried no provenance fields — testing
it would not have proven anything about the weights actually being trained.
Apache 2.0, inherited from Qwen3.8 and the huihui-ai abliteration. Attribution to both is required and given above.