(
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,
)
| 1551 | |
| 1552 | |
| 1553 | def log_validation( |
| 1554 | vae, |
| 1555 | image_encoder, |
| 1556 | unet, |
| 1557 | pose_net, |
| 1558 | face_encoder, |
| 1559 | app, |
| 1560 | face_helper, |
| 1561 | handler_ante, |
| 1562 | scheduler, |
| 1563 | accelerator, |
| 1564 | feature_extractor, |
| 1565 | width, |
| 1566 | height, |
| 1567 | torch_dtype, |
| 1568 | validation_image_folder, |
| 1569 | validation_image, |
| 1570 | validation_control_folder, |
| 1571 | output_dir, |
| 1572 | generator, |
| 1573 | global_step, |
| 1574 | num_validation_cases=1, |
| 1575 | ): |
| 1576 | logger.info("Running validation... ") |
| 1577 | validation_unet = accelerator.unwrap_model(unet) |
| 1578 | validation_image_encoder = accelerator.unwrap_model(image_encoder) |
| 1579 | validation_vae = accelerator.unwrap_model(vae) |
| 1580 | validation_pose_net = accelerator.unwrap_model(pose_net) |
| 1581 | validation_face_encoder = accelerator.unwrap_model(face_encoder) |
| 1582 | |
| 1583 | pipeline = ValidationAnimationPipeline( |
| 1584 | vae=validation_vae, |
| 1585 | image_encoder=validation_image_encoder, |
| 1586 | unet=validation_unet, |
| 1587 | scheduler=scheduler, |
| 1588 | feature_extractor=feature_extractor, |
| 1589 | pose_net=validation_pose_net, |
| 1590 | face_encoder=validation_face_encoder, |
| 1591 | ) |
| 1592 | pipeline = pipeline.to(accelerator.device) |
| 1593 | validation_images = load_images_from_folder(validation_image_folder) |
| 1594 | validation_image_path = validation_image |
| 1595 | if validation_image is None: |
| 1596 | validation_image = validation_images[0] |
| 1597 | else: |
| 1598 | validation_image = Image.open(validation_image).convert('RGB') |
| 1599 | validation_control_images = load_images_from_folder(validation_control_folder) |
| 1600 | |
| 1601 | val_save_dir = os.path.join(output_dir, "validation_images") |
| 1602 | if not os.path.exists(val_save_dir): |
| 1603 | os.makedirs(val_save_dir) |
| 1604 | |
| 1605 | with accelerator.autocast(): |
| 1606 | for val_img_idx in range(num_validation_cases): |
| 1607 | # num_frames = args.num_frames |
| 1608 | num_frames = len(validation_control_images) |
| 1609 | |
| 1610 | face_helper.clean_all() |
no test coverage detected