spoomplesmaxx-cardmaker-v2

A full-parameter fine-tune of aimeri/Ministral-3-14B-Base-2512-text (the text-only export of mistralai/Ministral-3-14B-Base-2512) that turns a short, open-ended prompt into a complete SillyTavern character card. Give it a concept, an archetype, a name and a few constraints, or just a one-liner, and it generates a full V2/V3-style card (description, personality, scenario, first message, example messages, and sometimes a lorebook). This release is training checkpoint ckpt-569.

Model Details

  • Developed by: aimeri
  • Base model: aimeri/Ministral-3-14B-Base-2512-text, the language model of mistralai/Ministral-3-14B-Base-2512 with the vision tower removed (Apache 2.0)
  • Language: English
  • Finetuned from a base (not instruct) checkpoint so output is the card itself, with no assistant-style preamble, disclaimers, or refusals.
  • Chat template: ChatML (<|im_start|> = id 20, <|im_end|> = id 21 and end-of-sequence), claimed from two unused reserved slots of the Tekken vocabulary; no vocabulary resize.
  • License: Apache 2.0

Uses

Direct Use

Generating SillyTavern-compatible character cards on demand from a natural-language request. The intended workflow is "describe a character, get a card," with the card output piped through a structural validator before import.

Out-of-Scope Use

This is a single-turn card generator, not a roleplay or chat model. The assistant turn is a static card definition, not a conversation. It is not intended for multi-turn roleplay, as a general-purpose assistant, or for factual question answering.

How to Get Started

Training Details

Procedure

Full-parameter supervised fine-tuning (no LoRA) with the Hugging Face Trainer. Each row of aimeri/st-characters-alpaca-v2 became one ChatML exchange: the instruction (plus input when present) as the user turn and the card as the assistant turn, with no system prompt. Loss was computed on the assistant (card) completion only.

  • Weights, gradients and activations in bf16; optimizer states in 8-bit (torchao AdamW8bit) with bf16 stochastic rounding on the weight update, so sub-ULP updates are not lost to round-to-nearest.
  • Chunked cross-entropy over the 131k vocabulary (logits never fully materialised) and gradient checkpointing.
  • Batch size 1 with no packing or padding; rows longer than the maximum sequence length were dropped, not truncated.
  • One GPU (NVIDIA RTX PRO 6000 Blackwell Server Edition (96 GB)) on Google Colab, checkpoints shipped off-box during training.

Training hyperparameters

Setting Value
Training rows 6773 (0.0M tokens per epoch)
Epochs 2 (569 optimizer steps)
Per-device batch size 1
Gradient accumulation 16 (effective batch size 16)
Max sequence length 16384
Optimizer torchao AdamW8bit, bf16 stochastic rounding (β₁ 0.9, β₂ 0.999, ε 1e-8)
Learning rate 1e-5, cosine schedule
Warmup 3% of steps
Weight decay 0.01 (matrices only, none on norms)
Max grad norm 1.0
Precision bf16 (no fp32 master weights)
Seed 1985
Frameworks Transformers 5.16.1, torchao 0.10.0, PyTorch 2.11.0+cu128, Datasets 4.0.0, Accelerate 1.14.0

Results

Evaluation loss on a 357-row held-out split (5% of the dataset; the in-training eval used a fixed 128-row subset of it):

Checkpoint Eval loss
Base (step 0, eval_on_start) 1.595
Step 200 1.061
Step 400 0.985
Final (step 569) 0.965

Evaluation

Quality was judged primarily behaviorally rather than by a single metric. Eval loss is a weak proxy for card quality on a held-out set this small (357 rows). A fixed prompt battery probed the behaviors that matter for this task:

  • Structure & completeness: clean, parseable cards with all expected fields on easy archetypes.
  • Constraint adherence: exact name / age / occupation, and a character's voice actually showing up in first_mes and mes_example rather than drifting generic.
  • Sparse invention: building a full, internally consistent card from a near-empty prompt.
  • First-message craft: second-person address to {{user}}, scene-setting, action formatting, in-voice dialogue, and a natural hand-off.
  • Register: antagonist/villain cards produced in-character, with no disclaimers, moralizing, or assistant-voice leakage. This is the main reason the model was trained from a base rather than an instruct checkpoint.

The battery output for this release is in battery.json.

Bias, Risks, and Limitations

  • Mature content. This model was trained on a mix of Safe for Work and Not Safe For Work cards, and it may generate objectionable content. Please use discretion when generating new cards.
  • Structural validity is not guaranteed. Output is generated text, not schema-validated card JSON. Run it through a parser/validator before importing into SillyTavern.
  • Card conventions. Output uses {{user}} / {{char}} macros and assumes a SillyTavern runtime.
  • Single-turn only. This generates a card, not a conversation; it is not itself a roleplay partner.
  • Inherited bias. The model carries the biases of both the base model and the curated card sources, including their genre, aesthetic, and demographic skew. "High quality" reflects a subjective curation judgment.

Citation

If you use this model, please reference this repository, the text-only base and the original Ministral 3 release.

Downloads last month
53
Safetensors
Model size
14B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for aimeri/spoomplesmaxx-cardmaker-v2

Finetuned
(1)
this model
Finetunes
1 model