使用 https://github.com/tdrussell/diffusion-pipe 进行训练
训练数据由以下内容组合而成:
同人作品图像
从音乐视频中提取的关键帧图像
从音乐视频中截取的短片段,每个约40帧
训练配置:
dataset.toml
# 纵横比分桶设置
enable_ar_bucket = true
min_ar = 0.5
max_ar = 2.0
num_ar_buckets = 7
[[directory]] # 图像
# 包含图像及其对应标注文件的目录路径。
path = '/mnt/d/huanvideo/training_data/images'
num_repeats = 5
resolutions = [1024]
frame_buckets = [1] # 图像使用1帧。
[[directory]] # 视频
# 包含视频及其对应标注文件的目录路径。
path = '/mnt/d/huanvideo/training_data/videos'
num_repeats = 5
resolutions = [368] # 设置视频分辨率为256(例如244p)。
frame_buckets = [33, 49, 81] # 定义视频的帧分桶。
config.toml
# 数据集配置文件。
output_dir = '/mnt/d/huanvideo/training_output'
dataset = 'dataset.toml'
# 训练设置
epochs = 50
micro_batch_size_per_gpu = 1
pipeline_stages = 1
gradient_accumulation_steps = 4
gradient_clipping = 1.0
warmup_steps = 100
# 评估设置
eval_every_n_epochs = 5
eval_before_first_step = true
eval_micro_batch_size_per_gpu = 1
eval_gradient_accumulation_steps = 1
# 其他设置
save_every_n_epochs = 15
checkpoint_every_n_minutes = 30
activation_checkpointing = true
partition_method = 'parameters'
save_dtype = 'bfloat16'
caching_batch_size = 1
steps_per_print = 1
video_clip_mode = 'single_middle'
[model]
type = 'hunyuan-video'
transformer_path = '/mnt/d/huanvideo/models/diffusion_models/hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors'
vae_path = '/mnt/d/huanvideo/models/vae/hunyuan_video_vae_bf16.safetensors'
llm_path = '/mnt/d/huanvideo/models/llm'
clip_path = '/mnt/d/huanvideo/models/clip'
dtype = 'bfloat16'
transformer_dtype = 'float8'
timestep_sample_method = 'logit_normal'
[adapter]
type = 'lora'
rank = 32
dtype = 'bfloat16'
[optimizer]
type = 'adamw_optimi'
lr = 5e-5
betas = [0.9, 0.99]
weight_decay = 0.02
eps = 1e-8