CaptchaKraken/Twilight-FP8
CaptchaKraken Twilight (FP8)
A standalone captcha-solving model: the `CaptchaKrakenV1_Lora` adapter merged into Qwen/Qwen3.5-9B and quantized to FP8-dynamic. One download, no adapter to wire up.
Twilight is the stronger of two hardware tiers, and matches the accuracy of serving the base with the adapter attached at runtime. **Sunlight** is the same adapter and base at AWQ 4-bit, ~5 GB smaller and ~4 points weaker.
- Weights: ~14.0 GB · Min VRAM: ~22 GB
- Base revision:
c202236235762e1c871ad0ccb60c8ee5ba337b9a - Quantized: language-model linears at FP8 (channel-wise weights, per-token dynamic activations). The vision tower, the linear-attention projections and the multi-token-prediction head stay bf16 — the same configuration as the FP8-dynamic base this project serves in production, so numerics match what the hosted API runs. FP8-dynamic needs no calibration data.
- Solves: reCAPTCHA and hCaptcha grids, plus hCaptcha drag / click / path / fit puzzles.
Serving (vLLM)
vllm serve CaptchaKraken/Twilight-FP8 \
--max-model-len 8192 --gpu-memory-utilization 0.85 --trust-remote-code --port 8000No --enable-lora and no adapter flags — the adapter is already merged in.
Prompts — read this before integrating
This model only performs as measured when it is sent the prompts it was trained on. prompts.json in this repo carries them, along with the puzzle-type → template mapping and a prompt_version. Resolve prompts from that file rather than hardcoding a copy: a mismatched prompt does not error, it silently collapses accuracy.
Two integration requirements:
- Disable thinking. Send
chat_template_kwargs: {"enable_thinking": false}. With thinking on and a qwen3 reasoning parser, the answer is routed intoreasoningandcontentcomes back empty. - Coordinates are normalized 0–1000, top-left
(0,0), bottom-right(1000,1000)— not pixels.
Evaluation
Scored with the project's soft-tolerance grader on 156 human-labelled held-out captchas, through an OpenAI-compatible vLLM endpoint. Samples promoted into the labelled-train pool are excluded, so nothing here was trained on. Grid puzzles are exact tile-set match with per-error decay; click/drag receive partial credit by normalized distance — so these are graded scores, not "percent solved".
Merging costs nothing: Twilight matches the served base+adapter setup within noise. The 4-bit gap concentrates in coordinate-precision puzzles (drag, path) rather than tile selection, where the two are identical.
License
CaptchaKraken Source-Available License v1.0 — see `LICENSE`.
Use it, modify it, build commercially on it where captcha solving is an internal component of a product that delivers value beyond the solve — scrapers, anti-detection browsers, automation frameworks, QA and accessibility tooling.
You may not sell the solve: no reselling or offering for a fee a captcha solving service or API whose primary value is solving captchas, no thin wrappers exposing this model's solving capability, and no relaying its outputs through a paid or public captcha-solving API. Those require a separate written commercial agreement.
Copyright (c) 2026 CaptchaKraken LLC. All rights reserved.
