A LoRA of Happy Meek (official transliteration: Happy Mik) from Umamusume: Pretty Derby based on 72 fanarts.
A byproduct of the quest of finding out how many bytes a character is worth. It's likely less than 1MB.
4 versions are provided:
Rank-1 LoRA
Rank-4 LoRA
Rank-16 LoRA
Rank-4 Hadamard Product LoRA
(Currently Civitai's versioned model uploading isn't working for me, so the 4 versions are only available in the hf repo for now)
There doesn't seem to be a clear winner. However, these are n=1
runs without any hyperparameter tuning, so the results may not be representative. Higher ranked versions appear to be slightly better at multiple outfits.
The character tag is mik
.
Top related tags:
1girl, animal ears, horse ears, solo, hair ornament, flower, hair flower, hairclip, looking at viewer, shirt, horse girl, short sleeves, pink eyes, medium hair, bow, blush, tail, blunt bangs, horse tail, puffy sleeves, puffy short sleeves, skirt, closed mouth, upper body, gloves, bowtie, white shirt, white gloves, jacket, pleated skirt, white jacket, twitter username, grey hair, brooch, jewelry, vest, simple background, artist name, short hair, red eyes
For specific outfits, refer to the preview images or the dataset.
Dataset: 72 fanarts from Danbooru and Pixiv
Non-booru images were tagged with SmilingWolf/wd-v1-4-convnextv2-tagger-v2 with a threshold of 0.35.
Training cost: ~0.5 T4-hour each
Training config (common except the dims settings):
[model_arguments]
v2 = false
v_parameterization = false
pretrained_model_name_or_path = "Animefull-final-pruned.ckpt"
[additional_network_arguments]
no_metadata = false
unet_lr = 0.0005
text_encoder_lr = 0.0005
network_dim = 4
network_alpha = 1
network_train_unet_only = false
network_train_text_encoder_only = false
[optimizer_arguments]
optimizer_type = "AdamW8bit"
learning_rate = 0.0005
max_grad_norm = 1.0
lr_scheduler = "cosine"
lr_warmup_steps = 0
[dataset_arguments]
debug_dataset = false
[training_arguments]
save_precision = "fp16"
save_every_n_epochs = 1
train_batch_size = 4
max_token_length = 225
mem_eff_attn = false
xformers = true
max_train_epochs = 50
max_data_loader_n_workers = 8
persistent_data_loader_workers = true
gradient_checkpointing = false
gradient_accumulation_steps = 1
mixed_precision = "fp16"
clip_skip = 2
lowram = true
[sample_prompt_arguments]
sample_every_n_epochs = 2
sample_sampler = "k_euler_a"
[saving_arguments]
save_model_as = "safetensors"