Trained on Anima Base 1
Updated dataset, and partitioned by resolution for multi-resolution training.
Using captions.json with 16 mixed tag/natural language variants with tag dropout and shuffle.
Training config:
# trained using diffusion-pipe commit b0aa4f1e03169f3280c8518d37570a448420f8be
# NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE="1" NCCL_CUMEM_ENABLE="0" deepspeed --num_gpus=1 train.py --deepspeed --config anima-lora.toml
output_dir = '/mnt/d/anima/training_output/blending-v22'
dataset = 'dataset-anima-blending.toml'
# training settings
epochs = 5
# Per-resolution batch sizes
micro_batch_size_per_gpu = [[512, 64], [1024, 32], [1280, 24]]
pipeline_stages = 1
gradient_accumulation_steps = 1
gradient_clipping = 1
warmup_steps = 100
lr_scheduler = 'cosine'
# misc settings
save_every_n_epochs = 1
activation_checkpointing = true
partition_method = 'parameters'
save_dtype = 'bfloat16'
caching_batch_size = 1
map_num_proc = 8
steps_per_print = 1
compile = true
[model]
type = 'anima'
transformer_path = '/mnt/c/workspace/models/diffusion_models/anima-base-v1.0.safetensors'
vae_path = '/mnt/c/workspace/models/vae/qwen_image_vae.safetensors'
llm_path = '/mnt/c/workspace/models/text_encoders/qwen_3_06b_base.safetensors'
dtype = 'bfloat16'
#cache_text_embeddings = false
llm_adapter_lr = 0
#timestep_sample_method = 'uniform'
flux_shift = true
multiscale_loss_weight = 0.5
sigmoid_scale = 1.3
[adapter]
type = 'lora'
rank = 32
dtype = 'bfloat16'
[optimizer]
type = 'adamw_optimi'
lr = 4e-5
betas = [0.9, 0.99]
weight_decay = 0.01
eps = 1e-8
resolutions = [1024, 1280, 1536]
# captions.json 16 tag+nl variants - effective 16 repeats for all images
enable_ar_bucket = true
min_ar = 0.5
max_ar = 2.0
num_ar_buckets = 9
[[directory]]
path = '/mnt/d/training_data/images_blending_update/1280x1280'
resolutions = [512, 1024, 1280]
[[directory]]
path = '/mnt/d/training_data/images_blending_update/1024x1024'
resolutions = [512, 1024]
[[directory]]
path = '/mnt/d/training_data/images_blending_update/512x512'
resolutions = [512]