model: | |
base_learning_rate: 1.0e-6 | |
target: ldm.models.diffusion.ddpm.LatentDiffusion | |
params: | |
linear_start: 0.00085 | |
linear_end: 0.0120 | |
num_timesteps_cond: 1 | |
log_every_t: 200 | |
timesteps: 1000 | |
first_stage_key: image | |
cond_stage_key: caption | |
image_size: 64 | |
channels: 4 | |
cond_stage_trainable: true | |
conditioning_key: crossattn | |
monitor: val/loss_simple_ema | |
scale_factor: 0.18215 | |
use_ema: False | |
unfreeze_model: True | |
model_lr: 1.0e-6 | |
unet_config: | |
target: ldm.modules.diffusionmodules.openaimodel.UNetModel | |
params: | |
image_size: 32 # unused | |
in_channels: 4 | |
out_channels: 4 | |
model_channels: 320 | |
attention_resolutions: [ 4, 2, 1 ] | |
num_res_blocks: 2 | |
channel_mult: [ 1, 2, 4, 4 ] | |
num_heads: 8 | |
use_spatial_transformer: True | |
transformer_depth: 1 | |
context_dim: 768 | |
use_checkpoint: True | |
legacy: False | |
first_stage_config: | |
target: ldm.models.autoencoder.AutoencoderKL | |
params: | |
embed_dim: 4 | |
monitor: val/rec_loss | |
ddconfig: | |
double_z: true | |
z_channels: 4 | |
resolution: 512 | |
in_channels: 3 | |
out_ch: 3 | |
ch: 128 | |
ch_mult: | |
- 1 | |
- 2 | |
- 4 | |
- 4 | |
num_res_blocks: 2 | |
attn_resolutions: [] | |
dropout: 0.0 | |
lossconfig: | |
target: torch.nn.Identity | |
cond_stage_config: | |
target: ldm.modules.encoders.modules.FrozenCLIPEmbedder | |
data: | |
target: main.DataModuleFromConfig | |
params: | |
batch_size: 4 # prefer highest possible without getting CUDA Out of Memory error, A100 40GB =~20 80GB= ~48 | |
num_workers: 8 | |
wrap: falsegit | |
train: | |
target: ldm.data.every_dream.EveryDreamBatch | |
params: | |
repeats: 5 # rough suggestions: 5 with 5000+ images, 15 for 1000 images, use micro yaml for <100 | |
debug_level: 1 # 1 to print if images are dropped due to multiple-aspect ratio image batching | |
conditional_dropout: 0.04 # experimental, likelihood to drop the caption, may help with poorly captioned images | |
resolution: 512 # use 512 for 24GB, can use 576, 640, 704, 768, on higher VRAM cards only.. | |
validation: | |
target: ldm.data.ed_validate.EDValidateBatch | |
params: | |
repeats: 0.5 | |
test: | |
target: ldm.data.ed_validate.EDValidateBatch | |
params: | |
repeats: 0.2 | |
lightning: | |
modelcheckpoint: | |
params: | |
every_n_epochs: 1 # produce a ckpt every epoch, leave 1! | |
#every_n_train_steps: 1400 # can only use epoch or train step checkpoints | |
save_top_k: 6 # save the best N ckpts according to loss, can reduce to save disk space but suggest at LEAST 2, more if you have max_epochs below higher! | |
save_last: True | |
filename: "{epoch:02d}-{step:05d}" | |
callbacks: | |
image_logger: | |
target: main.ImageLogger | |
params: | |
batch_frequency: 200 | |
max_images: 16 | |
increase_log_steps: False | |
trainer: | |
benchmark: True | |
max_epochs: 6 # better to run several epochs and test your checkpoints! Try 4-5, you get a checkpoint every epoch to test! | |
max_steps: 99000 # better to end on epochs not steps, especially with >500 images to ensure even distribution, but you can set this if you really want... | |
check_val_every_n_epoch: 1 | |
gpus: 0, |