CoolFace
Modelpublic

aimeri/spoomplesmaxx-cardmaker-v2

sourceHugging Faceapache-2.0updated 18d agoView on Hugging Face
0likes334downloads
Model Card

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

<TBD>

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

SettingValue
Training rows6773 (0.0M tokens per epoch)
Epochs2 (569 optimizer steps)
Per-device batch size1
Gradient accumulation16 (effective batch size 16)
Max sequence length16384
Optimizertorchao AdamW8bit, bf16 stochastic rounding (β₁ 0.9, β₂ 0.999, ε 1e-8)
Learning rate1e-5, cosine schedule
Warmup3% of steps
Weight decay0.01 (matrices only, none on norms)
Max grad norm1.0
Precisionbf16 (no fp32 master weights)
Seed1985
FrameworksTransformers 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):

CheckpointEval loss
Base (step 0, eval_on_start)1.595
Step 2001.061
Step 4000.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.