FurrySpec | Simple Furry Mix
About this model
š If you like what I do and want to support the development, feel free to buy me a coffee:
Hola!,
This week, I've been testing various merging methods and realized that most checkpoints suffer from a damaged Layer 11. This is the reason why they are sometimes incompatible with LoRAs. However, VAEs tend to filter out these issues, or they get ignored if the checkpoint is in FP32.
Since I do everything using my free Google Colab account, I have to be very picky with RAM usage, but luckily, I managed to merge several checkpoints in a short time. (I'm not publishing those, as they are just tests or works in progress).
The main idea behind this project was to merge checkpoints with the damaged Layer 11 and then repair them using NoobAI as a base, since this flaw typically occurs during merging. I wrote a script for this purpose, and I also created a tool that prevents NaN generation in already published checkpoints (just click here).
How to replace damaged parts?
Simply copy and paste this script into Colab.
import torch
from safetensors.torch import load_file, save_file
import gc
# 1. ROUTES
# We will use Illustrious/ Noobai as the donor because we have confirmed that it is 100% clean
ruta_master_con_nans = "/content/HerrscherAGGA2026_FurrySpec_V15.safetensors"
ruta_donante_sano = "/content/civitai_downloads/furryspecSimpleFurry_v1.safetensors"
ruta_salida_parcheada = "/content/HerrscherAGGA2026_FurrySpec_V2.safetensors"
print("Initiating surgical patching of Layer 11...")
# 2. Load models
master = load_file(ruta_master_con_nans)
sano = load_file(ruta_donante_sano)
# 3. Identify and replace only the broken tensioners in Layer 11
parches = 0
# We specifically looked at the CLIP architecture (conditioner)
keys_a_revisar = [k for k in master.keys() if "layers.11" in k]
for key in keys_a_revisar:
if torch.isnan(master[key]).any() or torch.isinf(master[key]).any():
print(f"Repairing an infected tensioner: {key}")
if key in sano:
# Direct replacement for the sound value of Illustrious/ Noob
master[key] = sano[key].to(master[key].dtype)
parches += 1
else:
# If it's not in the donor (unlikely), we clean with zeros
master[key] = torch.nan_to_num(master[key], nan=0.0)
parches += 1
# 4. Final Verification (Safety cleaning of the entire model)
for key in master.keys():
if torch.isnan(master[key]).any() or torch.isinf(master[key]).any():
master[key] = torch.nan_to_num(master[key], nan=0.0)
# 5. Guardar
print(f"\nā
Surgery completed. Specific {parches} patches were applied.")
save_file(master, ruta_salida_parcheada)
print(f"š¾ Save on: {ruta_salida_parcheada}")
# 6. Cleaning
del master, sano
gc.collect()
torch.cuda.empty_cache()Here is the recipe:
furry = [
{"path": "/content/civitai_downloads/furrytoonmix_xlIllustriousV2.safetensors", "alpha": 1.0},
{"path": "/content/civitai_downloads/yiffymix_v63Noobxl.safetensors", "alpha": 0.35},
{"path": "/content/civitai_downloads/oopsAllToons_naiV10Toonitup.safetensors", "alpha": 0.30},
{"path": "/content/civitai_downloads/bananaSplitzXL_vee9PointOh.safetensors", "alpha": 0.30},
{"path": "/content/civitai_downloads/molKeunMix_deepnavyV4.safetensors", "alpha": 0.25},
]Related Models
Similar AI models you may like
Juggernaut XL
Pony Diffusion V6 XL
CyberRealistic Pony
CyberRealistic
epiCRealism XL
Nova Anime XL
⨠Lazy Embeddings for ALL illustrious NoobAI Pony SDXL models LazyPositive LazyNegative (Positive and Negative plus more!)