Forensic weight analysis · Civitai · Krea-2 LoRA · 11 Oct 2026

Same slider.
Turned around.

On 27 September 2026, llikswonskcalb added a Krea2 version to “[BSS] - Aging Slider” on Civitai. Its weights are Loraholic’s “THE age slider” (Krea-2, published 25 June 2026), multiplied by −0.7: all 256 layers point in the same direction, reversed. The file’s own header names Loraholic’s file. Every number on this page is reproducible.

256/256
layers at cosine −1.0000: Loraholic’s direction, reversed, in every one
−0.700
the same factor in every layer (±0.0002, BF16 rounding). The header says rescale_factor = -0.7
3/4
rank slots are all zero in every layer: stored as rank 4, filled as rank 1
94
days between Loraholic’s upload and llikswonskcalb’s
Scroll · the evidence tells the story ↓
01 · The files

One file. One multiplication.

Read the row as a recipe: Loraholic’s file × −0.7, re-saved at rank 4, = the file llikswonskcalb published. The SHA-256 under the row identifies the exact files analysed.

Loraholic
original creator
llikswonskcalb
published the copy
Loraholic Civitai →
THE age slider - (ZIT + Krea-2)
Krea-2 · 25 Jun 2026, 03:50 UTC
256 layers · 6.9 MB · rank 1
× −0.7rank 1 → 4
=
llikswonskcalb Civitai →
[BSS] - Aging Slider
Krea2 · 27 Sep 2026, 06:48 UTC
256 layers · 27.3 MB · rank 4 · 1,141 downloads
Added to llikswonskcalb’s existing page, next to three Illustrious versions
SHA-256
age_krea2_loraholic.safetensors43FB1A7DC734F99DF01ADD68C15A1BDDB9BFDBCA0A8773AFA9B4968C03F60A9C
bss_aging_krea2.safetensorsE81DB12C2FB0480BD11F494E4C7FBD20CE45E16EA825611E5A3A9578DA8C7BBF
02 · The file says it itself

The header names the original

A .safetensors file starts with a short JSON header in front of the weights, and tools can write free text into its __metadata__ field. Below are both headers as they are stored in the files, key by key.

9 of the 13 fields in Loraholic’s header are identical in llikswonskcalb’s file. The copy changes 4 (name, ss_output_name, sshs_legacy_hash, sshs_model_hash) and adds 2 (rank, rescale_factor).

= identical in both files (dimmed) Loraholic’s file name fields that describe the operation
Loraholic · age_krea2_loraholic.safetensors
 {
   "__metadata__": {
=    "format": "pt",
=    "metadata_edited_by": "ZImageSliderTool",
≠    "name": "age_krea2_loraholic",
 
=    "release_base_model": "krea2",
=    "release_description": "age_krea2_loraholic",
=    "release_version": "0.10.18",
 
=    "software": "{\"name\": \"ai-toolkit\", \"repo\": \"https://github.com/ostris/ai-toolkit\", \"version\": \"0.10.18\"}",
=    "ss_base_model_version": "krea2",
≠    "ss_output_name": "age_krea2_loraholic",
≠    "sshs_legacy_hash": "7a86592d",
≠    "sshs_model_hash": "8f79beda2c199a722aecc8b038cf86bf1e96015ad7e9295a124a7fbb89537a63",
=    "training_info": "{\"step\": 999999, \"epoch\": 1}",
=    "version": "1.0"
   }
 }
llikswonskcalb · bss_aging_krea2.safetensors
 {
   "__metadata__": {
=    "format": "pt",
=    "metadata_edited_by": "ZImageSliderTool",
≠    "name": "aging_krea2_reversed_0.7_r4",
+    "rank": "4",
=    "release_base_model": "krea2",
=    "release_description": "age_krea2_loraholic",
=    "release_version": "0.10.18",
+    "rescale_factor": "-0.7",
=    "software": "{\"name\": \"ai-toolkit\", \"repo\": \"https://github.com/ostris/ai-toolkit\", \"version\": \"0.10.18\"}",
=    "ss_base_model_version": "krea2",
≠    "ss_output_name": "aging_krea2_reversed_0.7_r4",
≠    "sshs_legacy_hash": "d30f4d41",
≠    "sshs_model_hash": "8e795e0f94c706ca11a323df105071b2619fdc8b4ff2723d62bf60aebd4517d3",
=    "training_info": "{\"step\": 999999, \"epoch\": 1}",
=    "version": "1.0"
   }
 }
Check it yourself (replace PATH with the file path in quotes)
python -c "import json,struct;f=open(PATH,'rb');n=struct.unpack('<Q',f.read(8))[0];print(json.loads(f.read(n))['__metadata__'])"
03 · How you measure a copy

What “reversed” looks like in math

A LoRA layer is a matrix of millions of numbers pointing in a direction in a very high-dimensional space. For each layer we compare that matrix (B·A) in llikswonskcalb’s file with the same layer in Loraholic’s file.

~0.01

Independent training. Two people training on the same concept, even with the same images and the same recipe, land on directions that barely overlap.

0.99

Heavy derivation. Fine-tuning on top of someone’s model leaves similarity high but never perfect: training always moves the numbers.

1.0000

A copy. The same numbers, possibly multiplied by a constant. This does not occur by training. It occurs by copying.

−1.0000

The same direction, reversed. A copy multiplied by a negative number. Cosine ignores how large the factor is and keeps only its sign: every layer at −1.0000 means every layer is the original, turned around.

04 · Layer by layer

Every layer, turned around

Each square is one layer of llikswonskcalb’s file: 32 rows for the blocks of the network (28 main blocks and 4 text-fusion blocks), 8 columns for the layers inside a block. Blue with a minus sign: the layer is Loraholic’s, reversed. Hover or tap a square for its numbers.

−Loraholic’s layer, reversed (cosine −1.0000) not explained by the original: trained by llikswonskcalb
Scanning [BSS] - Aging Slider · Krea2

256 layers, one by one

Each layer is compared with the same layer of Loraholic’s THE age slider: cosine, fitted factor c, and R², the share of the layer that the scaled original explains.

Keep scrolling to run the comparison ↓
256 of 256 layers: Loraholic’s THE age slider × −0.700. Zero trained.
05 · The smoking number

The header says −0.7. So does every layer.

For each layer we fit llikswonskcalb’s layer as c × Loraholic’s layer. If the layer had been trained, c would scatter like noise. Below, one bar per layer, hanging down from zero: the bar’s length is c. A flat wall at the dashed line means every layer carries the original at exactly the factor the header states.

Fitted factor c, per layer

THE age slider (Loraholic)−0.7000 × 204, −0.7001 × 33, −0.6999 × 16, −0.7002 × 3

Fitted coefficient per layer: -0.7000 in 204 layers, -0.7001 in 33, -0.6999 in 16, -0.7002 in 3. The ±0.0002 spread is BF16 rounding, the precision both files are stored in. R² ≥ 0.99999 in every layer.

Rank padding: stored as rank 4, filled as rank 1

rank 1: carries the layer (shade = size) ranks 2–4: every value is 0.0

Loraholic's file is rank 1. llikswonskcalb's file is stored as rank 4, but in all 256 layers ranks 2, 3 and 4 are exactly zero (A rows and B columns are all 0.0; 2nd–4th singular values / 1st = 0.0). A trained rank-4 LoRA never has three all-zero ranks. The padding makes the file 4x larger (27.3 MB vs 6.9 MB) and changes its hash.

Training never produces a constant. The header says rescale_factor = -0.7, and 256 of 256 layers carry the original at −0.700.

06 · What “reversed 0.7” means

Turn the copy up, the original turns down

Multiplying by a negative factor swaps the slider's direction, so the copy's positive weights produce what the original's negative weights do. Strength 0.7 means the copy at +1.0 equals the original at -0.7.

07 · Timeline

94 days later

Loraholic’s slider went up on 25 Jun 2026, 03:50 UTC. llikswonskcalb’s Krea2 version followed on 27 Sep 2026, 06:48 UTC.

Both uploads

94 days after Loraholic uploaded THE age slider, llikswonskcalb published it as the Krea2 version of [BSS] - Aging Slider, multiplied by −0.7.

08 · Could this be coincidence?

No. Here is the scale of “no”.

Independent training on the same conceptsimilarity ≈ 0.01
Observed in llikswonskcalb’s file: 256 separate layerssimilarity = −1.0000

Hitting similarity 1.0000 in a single layer by chance is comparable to guessing a 40-digit number on the first try. This file does it in 256 layers at once, every one reversed, every one at the same factor −0.700.

And the file does not leave it to statistics: its header names Loraholic’s file as release_description and states rescale_factor = -0.7.

There is one process that produces this result: taking Loraholic’s file, multiplying it by −0.7 and saving it again.

09 · Verify it yourself

For the technical reader

Read a file’s header (replace PATH with the file path in quotes)
python -c "import json,struct;f=open(PATH,'rb');n=struct.unpack('<Q',f.read(8))[0];print(json.loads(f.read(n))['__metadata__'])"
[BSS] - Aging Slider · Krea2: all 256 layers