(
vae,
image_encoder,
unet,
pose_net,
face_encoder,
app,
face_helper,
handler_ante,
scheduler,
accelerator,
feature_extractor,
width,
height,
torch_dtype,
validation_image_folder,
validation_image,
validation_control_folder,
output_dir,
generator,
global_step,
num_validation_cases=1,
)
| 1577 | |
| 1578 | |
| 1579 | def log_validation( |
| 1580 | vae, |
| 1581 | image_encoder, |
| 1582 | unet, |
| 1583 | pose_net, |
| 1584 | face_encoder, |
| 1585 | app, |
| 1586 | face_helper, |
| 1587 | handler_ante, |
| 1588 | scheduler, |
| 1589 | accelerator, |
| 1590 | feature_extractor, |
| 1591 | width, |
| 1592 | height, |
| 1593 | torch_dtype, |
| 1594 | validation_image_folder, |
| 1595 | validation_image, |
| 1596 | validation_control_folder, |
| 1597 | output_dir, |
| 1598 | generator, |
| 1599 | global_step, |
| 1600 | num_validation_cases=1, |
| 1601 | ): |
| 1602 | logger.info("Running validation... ") |
| 1603 | validation_unet = accelerator.unwrap_model(unet) |
| 1604 | validation_image_encoder = accelerator.unwrap_model(image_encoder) |
| 1605 | validation_vae = accelerator.unwrap_model(vae) |
| 1606 | validation_pose_net = accelerator.unwrap_model(pose_net) |
| 1607 | validation_face_encoder = accelerator.unwrap_model(face_encoder) |
| 1608 | |
| 1609 | pipeline = ValidationAnimationPipeline( |
| 1610 | vae=validation_vae, |
| 1611 | image_encoder=validation_image_encoder, |
| 1612 | unet=validation_unet, |
| 1613 | scheduler=scheduler, |
| 1614 | feature_extractor=feature_extractor, |
| 1615 | pose_net=validation_pose_net, |
| 1616 | face_encoder=validation_face_encoder, |
| 1617 | ) |
| 1618 | pipeline = pipeline.to(accelerator.device) |
| 1619 | validation_images = load_images_from_folder(validation_image_folder) |
| 1620 | validation_image_path = validation_image |
| 1621 | if validation_image is None: |
| 1622 | validation_image = validation_images[0] |
| 1623 | else: |
| 1624 | validation_image = Image.open(validation_image).convert('RGB') |
| 1625 | validation_control_images = load_images_from_folder(validation_control_folder) |
| 1626 | |
| 1627 | val_save_dir = os.path.join(output_dir, "validation_images") |
| 1628 | if not os.path.exists(val_save_dir): |
| 1629 | os.makedirs(val_save_dir) |
| 1630 | |
| 1631 | with accelerator.autocast(): |
| 1632 | for val_img_idx in range(num_validation_cases): |
| 1633 | # num_frames = args.num_frames |
| 1634 | num_frames = len(validation_control_images) |
| 1635 | |
| 1636 | face_helper.clean_all() |
no test coverage detected