Skip to content

Commit 2c45e3b

Browse files
authored
Merge pull request #27 from neph1/update-v0.14.0
Update v0.14.0
2 parents 5438589 + deb66fe commit 2c45e3b

File tree

4 files changed

+42
-11
lines changed

4 files changed

+42
-11
lines changed

config/config_categories.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
Dataset: data_root, video_column, caption_column, dataset_file, id_token, image_resolution_buckets, video_resolution_buckets, caption_dropout_p, enable_precomputations, precomputation_once, precomputation_items, precomputation_dir
2-
Training: training_type, seed, train_steps, rank, lora_alpha, target_modules, gradient_accumulation_steps, checkpointing_steps, checkpointing_limit, enable_slicing, enable_tiling, batch_size, resume_from_checkpoint
2+
Training: training_type, seed, train_steps, gradient_accumulation_steps, checkpointing_steps, checkpointing_limit, enable_slicing, enable_tiling, batch_size, resume_from_checkpoint
33
Optimizer: optimizer, lr, beta1, beta2, epsilon, weight_decay, max_grad_norm, lr_scheduler, lr_num_cycles, lr_warmup_steps
44
Validation: validation_steps, num_validation_videos, validation_dataset_file
55
Accelerate: gpu_ids, nccl_timeout, gradient_checkpointing, allow_tf32, dataloader_num_workers, report_to, accelerate_config
6-
Model: model_name, pretrained_model_name_or_path, text_encoder_dtype, text_encoder_2_dtype, text_encoder_3_dtype, vae_dtype, layerwise_upcasting_modules, layerwise_upcasting_storage_dtype, layerwise_upcasting_granularity, enable_model_cpu_offload
7-
Parallelism: parallel_backend, pp_degree, dp_degree, dp_shards, cp_degree, tp_degree, num_gpus, master_address, master_port, nproc_per_node
6+
Model: model_name, pretrained_model_name_or_path, text_encoder_dtype, text_encoder_2_dtype, text_encoder_3_dtype, vae_dtype, layerwise_upcasting_modules, layerwise_upcasting_storage_dtype, layerwise_upcasting_granularity, enable_model_cpu_offload, text_encoder_id, text_encoder_2_id, text_encoder_3_id, tokenizer_id, tokenizer_2_id, tokenized_3_id, transformer_id, vae_id
7+
Parallelism: parallel_backend, pp_degree, dp_degree, dp_shards, cp_degree, tp_degree, num_gpus, master_address, master_port, nproc_per_node
8+
Control: control_type, rank, lora_alpha, target_modules

config/config_template.yaml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ caption_dropout_technique: 'empty'
88
checkpointing_limit: 102
99
checkpointing_steps: 500
1010
cp_degree: 1
11+
control_type: ['none', 'canny', 'custom']
1112
dataloader_num_workers: 0
1213
dataset_config: ''
1314
diffusion_options: '--flow_weighting_scheme logit_normal'
@@ -17,6 +18,8 @@ enable_model_cpu_offload: false
1718
enable_precomputation: false
1819
enable_slicing: true
1920
enable_tiling: true
21+
frame_conditioning_type: ['index', 'prefix', 'random', 'first_and_last', 'full']
22+
frame_conditioning_index: '0'
2023
epsilon: 1e-8
2124
gpu_ids: '0'
2225
gradient_accumulation_steps: 4
@@ -54,13 +57,21 @@ target_modules: to_q to_k to_v to_out.0
5457
text_encoder_dtype: [bf16, fp16, fp32]
5558
text_encoder_2_dtype: [bf16, fp16, fp32]
5659
text_encoder_3_dtype: [bf16, fp16, fp32]
60+
text_encoder_id: ''
61+
text_encoder_2_id: ''
62+
text_encoder_3_id: ''
63+
tokenizer_id: ''
64+
tokenizer_2_id: ''
65+
tokenizer_3_id: ''
5766
tp_degree: 1
5867
tracker_name: finetrainers
5968
transformer_dtype: [bf16, fp16, fp32]
69+
transformer_id: ''
6070
train_steps: 3000
61-
training_type: ['lora', 'full-finetune']
71+
training_type: ['lora', 'control-lora', 'full-finetune']
6272
use_8bit_bnb: false
6373
vae_dtype: [bf16, fp16, fp32]
74+
vae_id: ''
6475
validation_dataset_file: ''
6576
validation_steps: 100
6677
weight_decay: 0.001

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[project]
22
name = "finetrainers-ui"
3-
version = "0.10.0"
3+
version = "0.13.0"
44
dependencies = [
55
"gradio",
6-
"torch>=2.4.1"
6+
"torch>=2.5.1"
77
]
88
description = "A gradio based ui for training video transformer models with finetrainers as backend"
99
readme = "README.md"

run_trainer.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,22 @@ def run(self, config: Config, finetrainers_path: str, log_file: str):
3333
"--text_encoder_3_dtype", config.get('text_encoder_3_dtype'),
3434
"--transformer_dtype", config.get('transformer_dtype'),
3535
"--vae_dtype", config.get('vae_dtype')]
36+
if config.get('text_encoder_id'):
37+
model_cmd += ["--text_encoder_id", config.get('text_encoder_id')]
38+
if config.get('text_encoder_2_id'):
39+
model_cmd += ["--text_encoder_2_id", config.get('text_encoder_2_id')]
40+
if config.get('text_encoder_3_id'):
41+
model_cmd += ["--text_encoder_3_id", config.get('text_encoder_3_id')]
42+
if config.get('transformer_id'):
43+
model_cmd += ["--transformer_id", config.get('transformer_id')]
44+
if config.get('vae_id'):
45+
model_cmd += ["--vae_id", config.get('vae_id')]
46+
if config.get('tokenizer_id'):
47+
model_cmd += ["--tokenizer_id", config.get('tokenizer_id')]
48+
if config.get('tokenizer_2_id'):
49+
model_cmd += ["--tokenizer_2_id", config.get('tokenizer_2_id')]
50+
if config.get('tokenizer_3_id'):
51+
model_cmd += ["--tokenizer_3_id", config.get('tokenizer_3_id')]
3652

3753
if config.get('layerwise_upcasting_modules') != 'none':
3854
model_cmd +=["--layerwise_upcasting_modules", config.get('layerwise_upcasting_modules'),
@@ -55,10 +71,7 @@ def run(self, config: Config, finetrainers_path: str, log_file: str):
5571
training_cmd = ["--training_type", config.get('training_type'),
5672
"--seed", config.get('seed'),
5773
"--batch_size", config.get('batch_size'),
58-
"--train_steps", config.get('train_steps'),
59-
"--rank", config.get('rank'),
60-
"--lora_alpha", config.get('lora_alpha'),
61-
"--target_modules"]
74+
"--train_steps", config.get('train_steps')]
6275
training_cmd += config.get('target_modules').split(' ')
6376
training_cmd += ["--gradient_accumulation_steps", config.get('gradient_accumulation_steps'),
6477
'--gradient_checkpointing' if config.get('gradient_checkpointing') else '',
@@ -87,6 +100,12 @@ def run(self, config: Config, finetrainers_path: str, log_file: str):
87100
validation_cmd = ["--validation_dataset_file" if config.get('validation_dataset_file') else '',
88101
"--num_validation_videos", config.get('num_validation_videos'),
89102
"--validation_steps", config.get('validation_steps')]
103+
104+
control_cmd = ["--rank", config.get('rank'),
105+
"--lora_alpha", config.get('lora_alpha'),
106+
"--control_type", config.get('control_type'),
107+
"--frame_conditioning_index", config.get('frame_conditioning_index'),
108+
"--frame_conditioning_type", config.get('frame_conditioning_type')]
90109

91110
miscellaneous_cmd = ["--tracker_name", config.get('tracker_name'),
92111
"--output_dir", config.get('output_dir'),
@@ -105,7 +124,7 @@ def run(self, config: Config, finetrainers_path: str, log_file: str):
105124
pre_command = ["accelerate", "launch", "--config_file", f"{finetrainers_path}/accelerate_configs/{config.get('accelerate_config')}", "--gpu_ids", config.get('gpu_ids')]
106125
elif parallel_backend == 'ptd':
107126
pre_command = ["torchrun", "--standalone", "--nnodes", num_gpus, "--nproc_per_node", config.get('nproc_per_node'), "--rdzv_backend", "c10d", "--rdzv_endpoint", f"{address}:{port}"]
108-
cmd = pre_command + [f"{finetrainers_path}/train.py"] + parallel_cmd + model_cmd + dataset_cmd + dataloader_cmd + training_cmd + optimizer_cmd + validation_cmd + miscellaneous_cmd
127+
cmd = pre_command + [f"{finetrainers_path}/train.py"] + parallel_cmd + model_cmd + dataset_cmd + dataloader_cmd + training_cmd + optimizer_cmd + validation_cmd + miscellaneous_cmd + control_cmd
109128
fixed_cmd = []
110129
for i in range(len(cmd)):
111130
if cmd[i] != '':

0 commit comments

Comments
 (0)