Final Boss: 1,600 training steps in 134.4 seconds

September 23, 2026 · View on GitHub

A 104.1M-parameter image model. A 6.8 MB LoRA. A 3.4 MB rank-8 distill.

Measured on one RTX A6000 at native 256×256: 134.4 seconds for 1,600 updates, checkpoint saves and the first preview. The synchronized optimizer updates alone took 126.3 seconds. Loading cached base weights, creating teacher targets, training, verification and 32 final images took 248.7 seconds. Downloads are excluded. Timing evidence.

Download on Hugging Face · Code and reproduction

See it

Original → Distill → Off. Same neutral prompt, seed, 256×256 resolution, 50 Euler steps and CFG 3. Both adapters use strength 1; Off uses strength 0. These are ordinary LoRAs. The distill is a fitted rank-8 approximation of the rank-16 teacher; this release does not use nonlinear particle adapters.

The 1,600-step result

1,600-step original, distill and off

The converged result

The longer run selected step 28,000 and stopped at 28,800 under a validation plateau rule. It took about 47.5 minutes including validation and sampling. The speed headline describes the separate 1,600-step run, not convergence.

Converged original, distill and off

Unseen subject and preservation control

Neither the bridge guardian nor fruit prompt was used to train the original or fit the distill. The guardian effect is milder; fruit appearance can change.

Converged held-out guardian and fruit control

All four subjects at both seeds (42 and 1234), without cherry-picking variants: 1,600 steps · converged. Every original PNG has a JSON sidecar with its exact prompt, seed and adapter hash.

Get the adapters

VersionOriginal rank 16Distilled rank 8
Fast / 1,600 steps6.8 MB LoRA3.4 MB distill
Converged / selected step 28,0006.8 MB LoRA3.4 MB distill

Use the converged original for the closest fit to this recipe; use its distill for half as many adapter parameters (849,408 versus 1,698,816). The 1,600-step pair is the exact artifact from the timed run. Base model weights are separate. The recommended strength range is 0–1. Native loading is verified; ComfyUI compatibility has not been validated.

Run it

Install a CUDA-enabled PyTorch build, then:

git clone https://github.com/HyperGAN/supra-particle-sliders.git
cd supra-particle-sliders
pip install -r requirements.txt
hf download ntc-ai/supra-particle-sliders distilled/final-boss-converged-rank8.safetensors --local-dir adapters
python scripts/infer_supra.py --allow-hub \
  --adapter adapters/distilled/final-boss-converged-rank8.safetensors \
  --prompt "An armored knight holding a sword in a ruined cathedral, full body, game concept art." \
  --scale 1 --seed 42 --out final-boss.png

The first inference downloads pinned Supra2-IMG, Flan-T5 Base and VAE weights. The inference script reads adapter rank from metadata and checks model pins. Set CUDA_VISIBLE_DEVICES to select a GPU. See the training recipe and release reproduction.

Shared core

The concept slider trains particle_sliders.winning_formulation() from particle-sliders-core at a119ca1ecd3d5d6c437065839d22739b04f2f4d8. The deprecated package name concept-slider-core is not used. The train entry in this repo is scripts/train_lora_supra.py. It calls winning_formulation().require(...) and takes the regularizer and losses from that stamp. Generator learning rate 1e-4 and batch 4 are a Supra model surface.

Sampling stays the Supra Euler card: native 256×256, 50 steps, CFG 3, t = i/K, z <- z + (1/K) * v. The concept-slider Hub id is ntc-ai/supra-concept-sliders. There is no ComfyUI node in this repository. The ordinary LoRA release on this page remains ntc-ai/supra-particle-sliders.

vendor/particle-sliders/.../supra_model.py is the DiT backbone for that ordinary LoRA. It is not the particle game. See the shared-core note, including the research trainer that still lives in HyperGAN/particle-sliders.

python scripts/train_lora_supra.py --dummy --steps 8 --device cpu
python scripts/train_lora_supra.py --print-card

How it learns

Six matched neutral/final-boss prompt pairs teach the slider to add imposing silhouettes, dark armor, crowns and oversized weapons while preserving the subject. Frozen positive-prompt velocities supervise neutral-prompt LoRA velocities on cached trajectories. Every fifth update preserves a lake, bicycle or cat. AdamW, batch 4, rank/alpha 16, bf16 forward, fp32 weights. No training images are supplied. This follows the Krea2 final-boss recipe and the release format of Anima sliders.

Distillation uses activation-weighted reduced-rank regression. Rank 8 is fixed before evaluation. Calibration seeds 49001/49002 and evaluation seeds 59001/59002 are disjoint. The projection fits minimize each teacher branch's activation error; this is not a new 1,600-step optimizer run.

Distill teacherHeld-out projection relative MSEVelocity relative MSEMean endpoint relative MSE
1,600 steps0.00030.00290.0008
Converged0.01060.00580.0116

Projection errors are normalized by the teacher branch output. Velocity and endpoint errors are normalized by the teacher-minus-base edit. Lower is better; these measure approximation error, not image quality. The reports include all per-subject values, including the control where the teacher edit is small. 1,600-step report · converged report.

Both distills pass exact export/reload and strength-zero equality checks. The convergence run reduced its selection score from 0.2240 at step 400 to 0.0555 at step 28,000. Fresh-seed validation covers all six training subjects; showcase seeds and the guardian/fruit prompts do not select checkpoints.

Validation convergence

Limits and provenance

Supra is a small native 256px model. Fine detail, faces and lettering are limited; unwanted text can appear in cave images. The original can shift unrelated objects, and the smaller distill can alter details or weaken the edit. The timing is one measured run, not a cross-model benchmark or a convergence claim.

The 104.1M count covers the DiT; the frozen text encoder and VAE are additional. The original adapter trains only 1.70M parameters. Peak allocated PyTorch memory for the timed run was 1541 MiB; that is not total GPU memory. Another workload used GPU 0 while this run used GPU 1.

Base: SupraLabs/Supra2-IMG, pinned to 10dec6e4b4b5d1c44fd1d7d3fe5e50137333da5b. Encoder and VAE revisions are embedded in the adapter metadata. The DiT backbone in vendor/ is the ordinary-LoRA architecture, checked against backend.lock.json. The particle game is the particle-sliders-core pin in that lock, not a vendored copy of the game and not concept-slider-core. Source and adapters are Apache-2.0; the DiT file is MIT and the VAE is separately MIT licensed. No base weights are redistributed.

Catalog and sample metadata · Release checksums · Source provenance