Instructions to use aimeri/spoomplesmaxx-cardmaker-v2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use aimeri/spoomplesmaxx-cardmaker-v2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="aimeri/spoomplesmaxx-cardmaker-v2") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("aimeri/spoomplesmaxx-cardmaker-v2") model = AutoModelForCausalLM.from_pretrained("aimeri/spoomplesmaxx-cardmaker-v2", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use aimeri/spoomplesmaxx-cardmaker-v2 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "aimeri/spoomplesmaxx-cardmaker-v2" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "aimeri/spoomplesmaxx-cardmaker-v2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/aimeri/spoomplesmaxx-cardmaker-v2
- SGLang
How to use aimeri/spoomplesmaxx-cardmaker-v2 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "aimeri/spoomplesmaxx-cardmaker-v2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "aimeri/spoomplesmaxx-cardmaker-v2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "aimeri/spoomplesmaxx-cardmaker-v2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "aimeri/spoomplesmaxx-cardmaker-v2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use aimeri/spoomplesmaxx-cardmaker-v2 with Docker Model Runner:
docker model run hf.co/aimeri/spoomplesmaxx-cardmaker-v2
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 ofmistralai/Ministral-3-14B-Base-2512with 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_mesandmes_examplerather 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