anima/rank64: epoch 2 LoRA (mega-liminal-anima-r64-e02, 277 MB)
Browse files
anima/rank64/adapter_config.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"alora_invocation_tokens": null,
|
| 3 |
+
"alpha_pattern": {},
|
| 4 |
+
"arrow_config": null,
|
| 5 |
+
"auto_mapping": null,
|
| 6 |
+
"base_model_name_or_path": null,
|
| 7 |
+
"bias": "none",
|
| 8 |
+
"corda_config": null,
|
| 9 |
+
"ensure_weight_tying": false,
|
| 10 |
+
"eva_config": null,
|
| 11 |
+
"exclude_modules": null,
|
| 12 |
+
"fan_in_fan_out": false,
|
| 13 |
+
"inference_mode": false,
|
| 14 |
+
"init_lora_weights": true,
|
| 15 |
+
"kasa_config": null,
|
| 16 |
+
"layer_replication": null,
|
| 17 |
+
"layers_pattern": null,
|
| 18 |
+
"layers_to_transform": null,
|
| 19 |
+
"loftq_config": {},
|
| 20 |
+
"lora_alpha": 64,
|
| 21 |
+
"lora_bias": false,
|
| 22 |
+
"lora_dropout": 0.0,
|
| 23 |
+
"lora_ga_config": null,
|
| 24 |
+
"megatron_config": null,
|
| 25 |
+
"megatron_core": "megatron.core",
|
| 26 |
+
"modules_to_save": null,
|
| 27 |
+
"monteclora_config": null,
|
| 28 |
+
"peft_type": "LORA",
|
| 29 |
+
"peft_version": "0.21.0",
|
| 30 |
+
"qalora_group_size": 16,
|
| 31 |
+
"r": 64,
|
| 32 |
+
"rank_pattern": {},
|
| 33 |
+
"revision": null,
|
| 34 |
+
"target_modules": [
|
| 35 |
+
"v_proj",
|
| 36 |
+
"adaln_modulation_cross_attn.1",
|
| 37 |
+
"adaln_modulation_mlp.1",
|
| 38 |
+
"adaln_modulation_mlp.2",
|
| 39 |
+
"o_proj",
|
| 40 |
+
"layer1",
|
| 41 |
+
"adaln_modulation_self_attn.1",
|
| 42 |
+
"q_proj",
|
| 43 |
+
"adaln_modulation_cross_attn.2",
|
| 44 |
+
"adaln_modulation_self_attn.2",
|
| 45 |
+
"layer2",
|
| 46 |
+
"output_proj",
|
| 47 |
+
"k_proj",
|
| 48 |
+
"mlp.2",
|
| 49 |
+
"mlp.0"
|
| 50 |
+
],
|
| 51 |
+
"target_parameters": null,
|
| 52 |
+
"task_type": null,
|
| 53 |
+
"trainable_token_indices": null,
|
| 54 |
+
"use_bdlora": null,
|
| 55 |
+
"use_dora": false,
|
| 56 |
+
"use_qalora": false,
|
| 57 |
+
"use_rslora": false,
|
| 58 |
+
"velora_config": null
|
| 59 |
+
}
|
anima/rank64/mega-liminal-anima-r64-e02.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:db7b813cd867ddbb7d7565b1e126f64e262afd548d16202fed00258019de502e
|
| 3 |
+
size 277206000
|
anima/rank64/training/liminal_dataset.toml
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# liminal_dataset.toml — the liminal Anima LoRA (2026-09-25). One [[directory]] per class folder; num_repeats from the
|
| 2 |
+
# anima-trainer's dampened_repeats (alpha 0.5, max 8x per image, effective <= 1.25 x top) so sparse classes contribute
|
| 3 |
+
# without memorization. The '3d' folder is omitted entirely (all 38 were Garry's Mod / Source-engine screenshots).
|
| 4 |
+
# Captions: 'liminal, <class>, <Qwen3.5-9B description>' — tag-order sensitive model -> never shuffled.
|
| 5 |
+
# samples per epoch: 2789
|
| 6 |
+
resolutions = [1024] # Anima's ~1 MP sweet spot; 60% of the kept images are >= 1 MP, 7% are 0.26-0.45 MP
|
| 7 |
+
enable_ar_bucket = true
|
| 8 |
+
min_ar = 0.5
|
| 9 |
+
max_ar = 2.0
|
| 10 |
+
num_ar_buckets = 7
|
| 11 |
+
frame_buckets = [1]
|
| 12 |
+
shuffle_caption = false
|
| 13 |
+
|
| 14 |
+
[[directory]] # mega liminal: 870 images x 1 = 870 samples/epoch
|
| 15 |
+
path = '/root/liminal/data/liminal/1_liminal, mega liminal'
|
| 16 |
+
caption_extension = '.txt'
|
| 17 |
+
num_repeats = 1
|
| 18 |
+
|
| 19 |
+
[[directory]] # landscape: 766 images x 1 = 766 samples/epoch
|
| 20 |
+
path = '/root/liminal/data/liminal/1_liminal, landscape'
|
| 21 |
+
caption_extension = '.txt'
|
| 22 |
+
num_repeats = 1
|
| 23 |
+
|
| 24 |
+
[[directory]] # suburban: 111 images x 3 = 333 samples/epoch
|
| 25 |
+
path = '/root/liminal/data/liminal/1_liminal, suburban'
|
| 26 |
+
caption_extension = '.txt'
|
| 27 |
+
num_repeats = 3
|
| 28 |
+
|
| 29 |
+
[[directory]] # simulacrum: 36 images x 5 = 180 samples/epoch
|
| 30 |
+
path = '/root/liminal/data/liminal/1_liminal, simulacrum'
|
| 31 |
+
caption_extension = '.txt'
|
| 32 |
+
num_repeats = 5
|
| 33 |
+
|
| 34 |
+
[[directory]] # vanishing point: 21 images x 6 = 126 samples/epoch
|
| 35 |
+
path = '/root/liminal/data/liminal/1_liminal, vanishing point'
|
| 36 |
+
caption_extension = '.txt'
|
| 37 |
+
num_repeats = 6
|
| 38 |
+
|
| 39 |
+
[[directory]] # empty mall: 20 images x 7 = 140 samples/epoch
|
| 40 |
+
path = '/root/liminal/data/liminal/1_liminal, empty mall'
|
| 41 |
+
caption_extension = '.txt'
|
| 42 |
+
num_repeats = 7
|
| 43 |
+
|
| 44 |
+
[[directory]] # hand sourced: 18 images x 7 = 126 samples/epoch
|
| 45 |
+
path = '/root/liminal/data/liminal/1_liminal, hand sourced'
|
| 46 |
+
caption_extension = '.txt'
|
| 47 |
+
num_repeats = 7
|
| 48 |
+
|
| 49 |
+
[[directory]] # parking garage: 13 images x 8 = 104 samples/epoch
|
| 50 |
+
path = '/root/liminal/data/liminal/1_liminal, parking garage'
|
| 51 |
+
caption_extension = '.txt'
|
| 52 |
+
num_repeats = 8
|
| 53 |
+
|
| 54 |
+
[[directory]] # cityscape: 10 images x 8 = 80 samples/epoch
|
| 55 |
+
path = '/root/liminal/data/liminal/1_liminal, cityscape'
|
| 56 |
+
caption_extension = '.txt'
|
| 57 |
+
num_repeats = 8
|
| 58 |
+
|
| 59 |
+
[[directory]] # movie theatre: 8 images x 8 = 64 samples/epoch
|
| 60 |
+
path = '/root/liminal/data/liminal/1_liminal, movie theatre'
|
| 61 |
+
caption_extension = '.txt'
|
| 62 |
+
num_repeats = 8
|
anima/rank64/training/liminal_lora.toml
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# liminal_lora.toml — diffusion-pipe (Phil's fork, main 812449a) config for the liminal Anima LoRA (2026-09-25).
|
| 2 |
+
# Based on the anima-trainer template (geolip_anima_trainer/templates/anima_lora.toml) with the house riders:
|
| 3 |
+
# plain Adam (never AdamW) with fp32 master weights (the fork's bf16_master_weights), llm_adapter_lr = 0 (Anima's text adapter
|
| 4 |
+
# frozen), bf16 throughout, no fp8. Two RTX 5090s, data-parallel: deepspeed --num_gpus=2, pipeline_stages = 1.
|
| 5 |
+
output_dir = '/root/liminal/runs/liminal_lora'
|
| 6 |
+
dataset = '/root/liminal/configs/liminal_dataset.toml'
|
| 7 |
+
|
| 8 |
+
epochs = 16 # 2789 samples/epoch at effective batch 8 -> ~349 steps/epoch; snapshots every 2 epochs
|
| 9 |
+
micro_batch_size_per_gpu = 4
|
| 10 |
+
pipeline_stages = 1
|
| 11 |
+
gradient_accumulation_steps = 1
|
| 12 |
+
gradient_clipping = 1.0
|
| 13 |
+
warmup_steps = 100
|
| 14 |
+
seed = 42
|
| 15 |
+
|
| 16 |
+
save_every_n_epochs = 2
|
| 17 |
+
checkpoint_every_n_minutes = 30 # full training state for --resume_from_checkpoint (pruned to the newest 2)
|
| 18 |
+
save_dtype = 'bfloat16'
|
| 19 |
+
|
| 20 |
+
activation_checkpointing = true # 32 GB cards: OFF needs ~89 GB at 1024^2 micro-batch 4
|
| 21 |
+
compile = false
|
| 22 |
+
partition_method = 'parameters'
|
| 23 |
+
caching_batch_size = 8
|
| 24 |
+
map_num_proc = 32
|
| 25 |
+
steps_per_print = 10
|
| 26 |
+
blocks_to_swap = 0
|
| 27 |
+
bf16_master_weights = true # the fork's MasterWeightsAdam: fp32 masters inside plain Adam (needs dtype bf16 + type adam)
|
| 28 |
+
|
| 29 |
+
[model]
|
| 30 |
+
type = 'anima'
|
| 31 |
+
transformer_path = '/root/liminal/models/anima/anima-base-v1.0.safetensors'
|
| 32 |
+
vae_path = '/root/liminal/models/anima/qwen_image_vae.safetensors'
|
| 33 |
+
llm_path = '/root/liminal/models/anima/qwen_3_06b_base.safetensors'
|
| 34 |
+
dtype = 'bfloat16'
|
| 35 |
+
llm_adapter_lr = 0
|
| 36 |
+
|
| 37 |
+
[adapter]
|
| 38 |
+
type = 'lora'
|
| 39 |
+
rank = 64 # multi-class style LoRA (ten classes) -> the template's multi-concept rank
|
| 40 |
+
dtype = 'bfloat16'
|
| 41 |
+
|
| 42 |
+
[optimizer]
|
| 43 |
+
type = 'adam'
|
| 44 |
+
lr = 2e-5 # the template's Anima starting point ("Anima likes LOW lr")
|
| 45 |
+
betas = [0.9, 0.99]
|
| 46 |
+
weight_decay = 0.0
|
| 47 |
+
eps = 1e-8
|
anima/rank64/training/runs/events.out.tfevents.1790381639.30ed19890bfc.67782.0
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3bec7981a4cd9355c4d024bc82808c11ffe289187ad91e9094613c477e32ab59
|
| 3 |
+
size 35202
|