From f1f1e37952a007ccf2b9f6edfbe1508d8fc0ef41 Mon Sep 17 00:00:00 2001 From: Fuou Marinas <57849916+FuouM@users.noreply.github.com> Date: Sun, 4 Aug 2024 15:53:09 +0700 Subject: [PATCH] Add Thin-Plate Spline Motion Model for Image Animation (#6) --- .gitignore | 2 +- README.md | 35 ++- __init__.py | 3 + constants.py | 8 +- pyproject.toml | 2 +- run.py | 81 +++++ spline_inference.py | 203 +++++++++++++ spline_module/avd_network.py | 63 ++++ spline_module/bg_motion_predictor.py | 29 ++ spline_module/config/mgif-256.yaml | 75 +++++ spline_module/config/taichi-256.yaml | 134 +++++++++ spline_module/config/ted-384.yaml | 73 +++++ spline_module/config/vox-256.yaml | 74 +++++ spline_module/dense_motion.py | 241 +++++++++++++++ spline_module/inpainting_network.py | 164 ++++++++++ spline_module/keypoint_detector.py | 29 ++ spline_module/model.py | 222 ++++++++++++++ spline_module/models/.gitkeep | 0 spline_module/util.py | 412 ++++++++++++++++++++++++++ workflows/SPLINE.json | 427 +++++++++++++++++++++++++++ workflows/workflow_spline.png | Bin 0 -> 237199 bytes 21 files changed, 2263 insertions(+), 14 deletions(-) create mode 100644 spline_inference.py create mode 100644 spline_module/avd_network.py create mode 100644 spline_module/bg_motion_predictor.py create mode 100644 spline_module/config/mgif-256.yaml create mode 100644 spline_module/config/taichi-256.yaml create mode 100644 spline_module/config/ted-384.yaml create mode 100644 spline_module/config/vox-256.yaml create mode 100644 spline_module/dense_motion.py create mode 100644 spline_module/inpainting_network.py create mode 100644 spline_module/keypoint_detector.py create mode 100644 spline_module/model.py create mode 100644 spline_module/models/.gitkeep create mode 100644 spline_module/util.py create mode 100644 workflows/SPLINE.json create mode 100644 workflows/workflow_spline.png diff --git a/.gitignore b/.gitignore index f42bb28..5c409c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ # Stuff articulate_module/models/*.pth - +spline_module/models/*.tar checkpoints/* !checkpoints/place_checkpoints_here.txt diff --git a/README.md b/README.md index 7791ae2..edc929f 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,15 @@ A ComfyUI-native node to run First Order Motion Model for Image Animation https://github.com/AliaksandrSiarohin/first-order-model -Now supports Face Swapping using Motion Supervised co-part Segmentation +Now supports: +1. Face Swapping using [Motion Supervised co-part Segmentation](https://github.com/AliaksandrSiarohin/motion-cosegmentation): +2. [Motion Representations for Articulated Animation](https://github.com/snap-research/articulated-animation) +3. [Thin-Plate Spline Motion Model for Image Animation](https://github.com/yoyo-nb/thin-plate-spline-motion-model) -https://github.com/AliaksandrSiarohin/motion-cosegmentation - -Now also supports Motion Representations for Articulated Animation - -https://github.com/snap-research/articulated-animation +https://github.com/user-attachments/assets/b2948efb-3b44-440b-bff2-dde7b95a9946 ## Workflow: - -https://github.com/FuouM/ComfyUI-FirstOrderMM/assets/57849916/e8adca97-b53c-48ce-a211-f336dbf7d7bc - - ### FOMM [FOMM.json](workflows/FOMM.json) @@ -35,6 +30,14 @@ https://github.com/FuouM/ComfyUI-FirstOrderMM/assets/57849916/e8adca97-b53c-48ce ![Workflow Articulate](workflows/workflow_articulate.png) + +### Spline + +[SPLINE.json](workflows/SPLINE.json) + +![Workflow Spline](workflows/workflow_spline.png) + + ## Arguments ### FOMM @@ -56,6 +59,14 @@ https://github.com/FuouM/ComfyUI-FirstOrderMM/assets/57849916/e8adca97-b53c-48ce Doesn't need any +### Spline + +* `predict_mode`: Can be + * `relative`: Similar to FOMM's `relative_movement` and `adapt_movement_scale` set to True + * `standard`: Similar to FOMM's `adapt_movement_scale` set to False + * `avd`: similar to `relative`, may yield better but more "jittery/jumpy" result +* `find_best_frame`: Same as FOMM + ## Installation 1. Clone the repo to `ComfyUI/custom_nodes/` @@ -113,4 +124,6 @@ resnet18-5c106cde.pth 79999_iter.pth ``` -For **Articulate**, download the model from [Pre-trained checkpoints](https://github.com/snap-research/articulated-animation?tab=readme-ov-file#pre-trained-checkpoints) section and place it here: `articulate_module\models\vox256.pth` \ No newline at end of file +For **Articulate**, download the model from [Pre-trained checkpoints](https://github.com/snap-research/articulated-animation?tab=readme-ov-file#pre-trained-checkpoints) section and place it here: `articulate_module/models/vox256.pth` + +For **Spline**, download the model from [Pre-trained models](https://github.com/yoyo-nb/thin-plate-spline-motion-model?tab=readme-ov-file#pre-trained-models) section and place it here: `spline_module/models/vox.pth.tar`. To use `find_best_frame`, install `face-alignment`. diff --git a/__init__.py b/__init__.py index d85937d..9edeec0 100644 --- a/__init__.py +++ b/__init__.py @@ -5,6 +5,7 @@ from .run import ( FOMM_Seg10Chooser, FOMM_Seg15Chooser, Articulate_Runner, + Spline_Runner ) NODE_CLASS_MAPPINGS = { @@ -14,6 +15,7 @@ NODE_CLASS_MAPPINGS = { "FOMM_Seg10Chooser": FOMM_Seg10Chooser, "FOMM_Seg15Chooser": FOMM_Seg15Chooser, "Articulate_Runner": Articulate_Runner, + "Spline_Runner": Spline_Runner, } NODE_DISPLAY_NAME_MAPPINGS = { @@ -23,6 +25,7 @@ NODE_DISPLAY_NAME_MAPPINGS = { "FOMM_Seg10Chooser": "FOMM Seg10 Chooser", "FOMM_Seg15Chooser": "FOMM Seg15 Chooser", "Articulate_Runner": "Articulate Runner", + "Spline_Runner": "Spline Runner", } diff --git a/constants.py b/constants.py index 2b0691a..9876432 100644 --- a/constants.py +++ b/constants.py @@ -100,4 +100,10 @@ seg_model_dict = { } ARTICULATE_MODEL_PATH = "articulate_module/models/vox256.pth" -ARTICULATE_CFG_PATH = "articulate_module/config/vox256.yaml" \ No newline at end of file +ARTICULATE_CFG_PATH = "articulate_module/config/vox256.yaml" + +SPLINE_MODES = ['relative', 'standard', 'avd'] +SPLINE_DEFAULT = 'relative' + +SPLINE_MODEL_PATH = "spline_module/models/vox.pth.tar" +SPLINE_CFG_PATH = "spline_module/config/vox-256.yaml" \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index ffe24f1..c90ad79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "comfyui-firstordermm" description = "A ComfyUI-native node to run First Order Motion Model for Image Animation. [a/https://github.com/AliaksandrSiarohin/first-order-model](https://github.com/AliaksandrSiarohin/first-order-model)" -version = "1.0.2" +version = "1.0.3" license = { file = "LICENSE" } dependencies = ["numpy", "torch", "scipy", "yaml", "matplotlib"] diff --git a/run.py b/run.py index 2564109..42c7645 100644 --- a/run.py +++ b/run.py @@ -13,6 +13,10 @@ from .articulate_inference import articulate_inference from .constants import ( ARTICULATE_CFG_PATH, ARTICULATE_MODEL_PATH, + SPLINE_CFG_PATH, + SPLINE_DEFAULT, + SPLINE_MODEL_PATH, + SPLINE_MODES, config_folder, default_model_name, default_partswap_model_name, @@ -29,6 +33,7 @@ from .fomm_loader import load_checkpoint from .partswap_inference import partswap_inference from .partswap_loader import load_partswap_checkpoint from .seg_viz import visualize_frame +from .spline_inference import spline_inference from .utils import ( build_seg_arguments, get_config_path, @@ -407,6 +412,82 @@ class Articulate_Runner: ) +class Spline_Runner: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "source_image": ("IMAGE",), + "driving_video_input": ("IMAGE",), + "frame_rate": ("FLOAT", {"default": 30.0}), + "predict_mode": (SPLINE_MODES, {"default": SPLINE_DEFAULT}), + "find_best_frame": ( + "BOOLEAN", + {"default": False}, + ), # Generate from the frame that is the most alligned with source + }, + "optional": {"audio": ("AUDIO",)}, + } + + RETURN_TYPES = ( + "IMAGE", + "AUDIO", + "FLOAT", + ) + RETURN_NAMES = ( + "images", + "audio", + "frame_rate", + ) + FUNCTION = "todo" + CATEGORY = "FirstOrderMM" + + def todo( + self, + source_image, + driving_video_input, + frame_rate: float, + predict_mode: str, + find_best_frame: bool, + audio=None, + ): + print(f"{type(source_image)=}") + print(f"{type(driving_video_input)=}") + print(f"{source_image.shape=}") + print(f"{driving_video_input.shape=}") + print(f"{type(audio)=}") + print(base_dir) + + config_path = f"{base_dir}/{SPLINE_CFG_PATH}" + checkpoint_path = f"{base_dir}/{SPLINE_MODEL_PATH}" + + source_image = reshape_image(source_image, (256, 256)) + driving_video = reshape_image(driving_video_input, (256, 256)).unsqueeze(0) + driving_video = driving_video.permute(0, 2, 1, 3, 4) + + print("After reshaping") + print(f"{source_image.shape=}") + print(f"{driving_video.shape=}") + params = { + "source_image": source_image, + "driving_video": driving_video, + "config_path": config_path, + "checkpoint_path": checkpoint_path, + "predict_mode": predict_mode, + "find_best_frame": find_best_frame, + } + + predictions = spline_inference(**params) + + output_images = out_video(predictions) + + return ( + output_images, + audio, + frame_rate, + ) + + def serialize_integers(int_list): return "_".join(map(str, int_list)) diff --git a/spline_inference.py b/spline_inference.py new file mode 100644 index 0000000..c432318 --- /dev/null +++ b/spline_inference.py @@ -0,0 +1,203 @@ +import torch +import numpy as np +from scipy.spatial import ConvexHull +import yaml +import tqdm +from comfy.utils import ProgressBar + +from .fomm_inference import find_best_frame + +from .spline_module.avd_network import AVDNetwork +from .spline_module.dense_motion import DenseMotionNetwork +from .spline_module.keypoint_detector import KPDetector +from .spline_module.inpainting_network import InpaintingNetwork + + +def spline_inference( + source_image, + driving_video: list, + config_path: str, + checkpoint_path: str, + predict_mode="relative", + find_best_frame=False, + cpu=False, +): + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + + inpainting, kp_detector, dense_motion_network, avd_network = load_checkpoints( + config_path, checkpoint_path, device + ) + + source_image = source_image.to(device) + driving_video = driving_video.to(device) + + if find_best_frame: + predictions = spline_inference_best_frame( + source_image, + driving_video, + inpainting, + kp_detector, + dense_motion_network, + avd_network, + predict_mode, + cpu, + ) + else: + predictions = inference( + source_image, + driving_video, + inpainting, + kp_detector, + dense_motion_network, + avd_network, + predict_mode, + ) + + return predictions + + +def spline_inference_best_frame( + source_image, + driving_video: list, + inpainting, + kp_detector, + dense_motion_network, + avd_network, + predict_mode, + cpu=False, +): + best_frame_idx = find_best_frame(source_image, driving_video, cpu) + + first_half = driving_video[ + :, :, : best_frame_idx + 1 + ] # Include the best frame in the first half + first_half = torch.flip(first_half, dims=[2]) # Reverse the first half + second_half = driving_video[:, :, best_frame_idx + 1 :] + + predictions_first = inference( + source_image, + first_half, + inpainting, + kp_detector, + dense_motion_network, + avd_network, + predict_mode, + ) + + predictions_second = inference( + source_image, + second_half, + inpainting, + kp_detector, + dense_motion_network, + avd_network, + predict_mode, + ) + + predictions = [] + predictions_first = predictions_first[::-1] # Reverse the first half back + predictions.extend(predictions_first) + predictions.extend(predictions_second) + return predictions + + +def inference( + source_image, + driving_video: list, + inpainting, + kp_detector, + dense_motion_network, + avd_network, + predict_mode, +): + with torch.no_grad(): + source = source_image + driving = driving_video + predictions = [] + + kp_source = kp_detector(source) + kp_driving_initial = kp_detector(driving[:, :, 0]) + + num_frames = driving.shape[2] + pbar = ProgressBar(num_frames) + + for frame_idx in tqdm.tqdm(range(num_frames)): + driving_frame = driving[:, :, frame_idx] + kp_driving = kp_detector(driving_frame) + if predict_mode == "standard": + kp_norm = kp_driving + elif predict_mode == "relative": + kp_norm = relative_kp( + kp_source=kp_source, + kp_driving=kp_driving, + kp_driving_initial=kp_driving_initial, + ) + elif predict_mode == "avd": + kp_norm = avd_network(kp_source, kp_driving) + + dense_motion = dense_motion_network( + source_image=source, + kp_driving=kp_norm, + kp_source=kp_source, + bg_param=None, + dropout_flag=False, + ) + + out = inpainting(source, dense_motion) + out_np = np.transpose(out["prediction"].data.cpu().numpy(), [0, 2, 3, 1])[0] + predictions.append(out_np) + pbar.update_absolute(frame_idx, num_frames) + + return predictions + + +def relative_kp(kp_source, kp_driving, kp_driving_initial): + source_area = ConvexHull(kp_source["fg_kp"][0].data.cpu().numpy()).volume + driving_area = ConvexHull(kp_driving_initial["fg_kp"][0].data.cpu().numpy()).volume + adapt_movement_scale = np.sqrt(source_area) / np.sqrt(driving_area) + + kp_new = {k: v for k, v in kp_driving.items()} + + kp_value_diff = kp_driving["fg_kp"] - kp_driving_initial["fg_kp"] + kp_value_diff *= adapt_movement_scale + kp_new["fg_kp"] = kp_value_diff + kp_source["fg_kp"] + + return kp_new + + +def load_checkpoints(config_path, checkpoint_path, device): + with open(config_path) as f: + config = yaml.full_load(f) + + inpainting = InpaintingNetwork( + **config["model_params"]["generator_params"], + **config["model_params"]["common_params"], + ) + kp_detector = KPDetector(**config["model_params"]["common_params"]) + dense_motion_network = DenseMotionNetwork( + **config["model_params"]["common_params"], + **config["model_params"]["dense_motion_params"], + ) + avd_network = AVDNetwork( + num_tps=config["model_params"]["common_params"]["num_tps"], + **config["model_params"]["avd_network_params"], + ) + kp_detector.to(device) + dense_motion_network.to(device) + inpainting.to(device) + avd_network.to(device) + + checkpoint = torch.load(checkpoint_path, map_location=device) + + inpainting.load_state_dict(checkpoint["inpainting_network"]) + kp_detector.load_state_dict(checkpoint["kp_detector"]) + dense_motion_network.load_state_dict(checkpoint["dense_motion_network"]) + if "avd_network" in checkpoint: + avd_network.load_state_dict(checkpoint["avd_network"]) + + inpainting.eval() + kp_detector.eval() + dense_motion_network.eval() + avd_network.eval() + + return inpainting, kp_detector, dense_motion_network, avd_network diff --git a/spline_module/avd_network.py b/spline_module/avd_network.py new file mode 100644 index 0000000..bfb97fb --- /dev/null +++ b/spline_module/avd_network.py @@ -0,0 +1,63 @@ +import torch +from torch import nn + + +class AVDNetwork(nn.Module): + """ + Animation via Disentanglement network + """ + + def __init__(self, num_tps, id_bottle_size=64, pose_bottle_size=64): + super(AVDNetwork, self).__init__() + input_size = 5 * 2 * num_tps + self.num_tps = num_tps + + self.id_encoder = nn.Sequential( + nn.Linear(input_size, 256), + nn.BatchNorm1d(256), + nn.ReLU(inplace=True), + nn.Linear(256, 512), + nn.BatchNorm1d(512), + nn.ReLU(inplace=True), + nn.Linear(512, 1024), + nn.BatchNorm1d(1024), + nn.ReLU(inplace=True), + nn.Linear(1024, id_bottle_size), + ) + + self.pose_encoder = nn.Sequential( + nn.Linear(input_size, 256), + nn.BatchNorm1d(256), + nn.ReLU(inplace=True), + nn.Linear(256, 512), + nn.BatchNorm1d(512), + nn.ReLU(inplace=True), + nn.Linear(512, 1024), + nn.BatchNorm1d(1024), + nn.ReLU(inplace=True), + nn.Linear(1024, pose_bottle_size), + ) + + self.decoder = nn.Sequential( + nn.Linear(pose_bottle_size + id_bottle_size, 1024), + nn.BatchNorm1d(1024), + nn.ReLU(), + nn.Linear(1024, 512), + nn.BatchNorm1d(512), + nn.ReLU(), + nn.Linear(512, 256), + nn.BatchNorm1d(256), + nn.ReLU(), + nn.Linear(256, input_size), + ) + + def forward(self, kp_source, kp_random): + bs = kp_source["fg_kp"].shape[0] + + pose_emb = self.pose_encoder(kp_random["fg_kp"].view(bs, -1)) + id_emb = self.id_encoder(kp_source["fg_kp"].view(bs, -1)) + + rec = self.decoder(torch.cat([pose_emb, id_emb], dim=1)) + + rec = {"fg_kp": rec.view(bs, self.num_tps * 5, -1)} + return rec diff --git a/spline_module/bg_motion_predictor.py b/spline_module/bg_motion_predictor.py new file mode 100644 index 0000000..272683c --- /dev/null +++ b/spline_module/bg_motion_predictor.py @@ -0,0 +1,29 @@ +import torch +from torch import nn +from torchvision import models + + +class BGMotionPredictor(nn.Module): + """ + Module for background estimation, return single transformation, parametrized as 3x3 matrix. The third row is [0 0 1] + """ + + def __init__(self): + super(BGMotionPredictor, self).__init__() + self.bg_encoder = models.resnet18(pretrained=False) + self.bg_encoder.conv1 = nn.Conv2d( + 6, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False + ) + num_features = self.bg_encoder.fc.in_features + self.bg_encoder.fc = nn.Linear(num_features, 6) + self.bg_encoder.fc.weight.data.zero_() + self.bg_encoder.fc.bias.data.copy_( + torch.tensor([1, 0, 0, 0, 1, 0], dtype=torch.float) + ) + + def forward(self, source_image, driving_image): + bs = source_image.shape[0] + out = torch.eye(3).unsqueeze(0).repeat(bs, 1, 1).type(source_image.type()) + prediction = self.bg_encoder(torch.cat([source_image, driving_image], dim=1)) + out[:, :2, :] = prediction.view(bs, 2, 3) + return out diff --git a/spline_module/config/mgif-256.yaml b/spline_module/config/mgif-256.yaml new file mode 100644 index 0000000..4cd2011 --- /dev/null +++ b/spline_module/config/mgif-256.yaml @@ -0,0 +1,75 @@ +dataset_params: + root_dir: ../moving-gif + frame_shape: null + id_sampling: False + augmentation_params: + flip_param: + horizontal_flip: True + time_flip: True + crop_param: + size: [256, 256] + resize_param: + ratio: [0.9, 1.1] + jitter_param: + hue: 0.5 + +model_params: + common_params: + num_tps: 10 + num_channels: 3 + bg: False + multi_mask: True + generator_params: + block_expansion: 64 + max_features: 512 + num_down_blocks: 3 + dense_motion_params: + block_expansion: 64 + max_features: 1024 + num_blocks: 5 + scale_factor: 0.25 + avd_network_params: + id_bottle_size: 128 + pose_bottle_size: 128 + + +train_params: + num_epochs: 100 + num_repeats: 50 + epoch_milestones: [70, 90] + lr_generator: 2.0e-4 + batch_size: 28 + scales: [1, 0.5, 0.25, 0.125] + dataloader_workers: 12 + checkpoint_freq: 50 + dropout_epoch: 35 + dropout_maxp: 0.5 + dropout_startp: 0.2 + dropout_inc_epoch: 10 + bg_start: 0 + transform_params: + sigma_affine: 0.05 + sigma_tps: 0.005 + points_tps: 5 + loss_weights: + perceptual: [10, 10, 10, 10, 10] + equivariance_value: 10 + warp_loss: 10 + bg: 10 + +train_avd_params: + num_epochs: 100 + num_repeats: 50 + batch_size: 256 + dataloader_workers: 24 + checkpoint_freq: 10 + epoch_milestones: [70, 90] + lr: 1.0e-3 + lambda_shift: 1 + lambda_affine: 1 + random_scale: 0.25 + +visualizer_params: + kp_size: 5 + draw_border: True + colormap: 'gist_rainbow' \ No newline at end of file diff --git a/spline_module/config/taichi-256.yaml b/spline_module/config/taichi-256.yaml new file mode 100644 index 0000000..2eb1d3a --- /dev/null +++ b/spline_module/config/taichi-256.yaml @@ -0,0 +1,134 @@ +# Dataset parameters +# Each dataset should contain 2 folders train and test +# Each video can be represented as: +# - an image of concatenated frames +# - '.mp4' or '.gif' +# - folder with all frames from a specific video +# In case of Taichi. Same (youtube) video can be splitted in many parts (chunks). Each part has a following +# format (id)#other#info.mp4. For example '12335#adsbf.mp4' has an id 12335. In case of TaiChi id stands for youtube +# video id. +dataset_params: + # Path to data, data can be stored in several formats: .mp4 or .gif videos, stacked .png images or folders with frames. + root_dir: ../taichi + # Image shape, needed for staked .png format. + frame_shape: null + # In case of TaiChi single video can be splitted in many chunks, or the maybe several videos for single person. + # In this case epoch can be a pass over different videos (if id_sampling=True) or over different chunks (if id_sampling=False) + # If the name of the video '12335#adsbf.mp4' the id is assumed to be 12335 + id_sampling: True + # Augmentation parameters see augmentation.py for all posible augmentations + augmentation_params: + flip_param: + horizontal_flip: True + time_flip: True + jitter_param: + brightness: 0.1 + contrast: 0.1 + saturation: 0.1 + hue: 0.1 + +# Defines model architecture +model_params: + common_params: + # Number of TPS transformation + num_tps: 10 + # Number of channels per image + num_channels: 3 + # Whether to estimate affine background transformation + bg: True + # Whether to estimate the multi-resolution occlusion masks + multi_mask: True + generator_params: + # Number of features mutliplier + block_expansion: 64 + # Maximum allowed number of features + max_features: 512 + # Number of downsampling blocks and Upsampling blocks. + num_down_blocks: 3 + dense_motion_params: + # Number of features mutliplier + block_expansion: 64 + # Maximum allowed number of features + max_features: 1024 + # Number of block in Unet. + num_blocks: 5 + # Optical flow is predicted on smaller images for better performance, + # scale_factor=0.25 means that 256x256 image will be resized to 64x64 + scale_factor: 0.25 + avd_network_params: + # Bottleneck for identity branch + id_bottle_size: 128 + # Bottleneck for pose branch + pose_bottle_size: 128 + +# Parameters of training +train_params: + # Number of training epochs + num_epochs: 100 + # For better i/o performance when number of videos is small number of epochs can be multiplied by this number. + # Thus effectivlly with num_repeats=100 each epoch is 100 times larger. + num_repeats: 150 + # Drop learning rate by 10 times after this epochs + epoch_milestones: [70, 90] + # Initial learing rate for all modules + lr_generator: 2.0e-4 + batch_size: 28 + # Scales for perceptual pyramide loss. If scales = [1, 0.5, 0.25, 0.125] and image resolution is 256x256, + # than the loss will be computer on resolutions 256x256, 128x128, 64x64, 32x32. + scales: [1, 0.5, 0.25, 0.125] + # Dataset preprocessing cpu workers + dataloader_workers: 12 + # Save checkpoint this frequently. If checkpoint_freq=50, checkpoint will be saved every 50 epochs. + checkpoint_freq: 50 + # Parameters of dropout + # The first dropout_epoch training uses dropout operation + dropout_epoch: 35 + # The probability P will linearly increase from dropout_startp to dropout_maxp in dropout_inc_epoch epochs + dropout_maxp: 0.7 + dropout_startp: 0.0 + dropout_inc_epoch: 10 + # Estimate affine background transformation from the bg_start epoch. + bg_start: 0 + # Parameters of random TPS transformation for equivariance loss + transform_params: + # Sigma for affine part + sigma_affine: 0.05 + # Sigma for deformation part + sigma_tps: 0.005 + # Number of point in the deformation grid + points_tps: 5 + loss_weights: + # Weights for perceptual loss. + perceptual: [10, 10, 10, 10, 10] + # Weights for value equivariance. + equivariance_value: 10 + # Weights for warp loss. + warp_loss: 10 + # Weights for bg loss. + bg: 10 + +# Parameters of training (animation-via-disentanglement) +train_avd_params: + # Number of training epochs, visualization is produced after each epoch. + num_epochs: 100 + # For better i/o performance when number of videos is small number of epochs can be multiplied by this number. + # Thus effectively with num_repeats=100 each epoch is 100 times larger. + num_repeats: 150 + # Batch size. + batch_size: 256 + # Save checkpoint this frequently. If checkpoint_freq=50, checkpoint will be saved every 50 epochs. + checkpoint_freq: 10 + # Dataset preprocessing cpu workers + dataloader_workers: 24 + # Drop learning rate 10 times after this epochs + epoch_milestones: [70, 90] + # Initial learning rate + lr: 1.0e-3 + # Weights for equivariance loss. + lambda_shift: 1 + random_scale: 0.25 + +visualizer_params: + kp_size: 5 + draw_border: True + colormap: 'gist_rainbow' \ No newline at end of file diff --git a/spline_module/config/ted-384.yaml b/spline_module/config/ted-384.yaml new file mode 100644 index 0000000..007b912 --- /dev/null +++ b/spline_module/config/ted-384.yaml @@ -0,0 +1,73 @@ +dataset_params: + root_dir: ../TED384-v2 + frame_shape: null + id_sampling: True + augmentation_params: + flip_param: + horizontal_flip: True + time_flip: True + jitter_param: + brightness: 0.1 + contrast: 0.1 + saturation: 0.1 + hue: 0.1 + +model_params: + common_params: + num_tps: 10 + num_channels: 3 + bg: True + multi_mask: True + generator_params: + block_expansion: 64 + max_features: 512 + num_down_blocks: 3 + dense_motion_params: + block_expansion: 64 + max_features: 1024 + num_blocks: 5 + scale_factor: 0.25 + avd_network_params: + id_bottle_size: 128 + pose_bottle_size: 128 + + +train_params: + num_epochs: 100 + num_repeats: 150 + epoch_milestones: [70, 90] + lr_generator: 2.0e-4 + batch_size: 12 + scales: [1, 0.5, 0.25, 0.125] + dataloader_workers: 6 + checkpoint_freq: 50 + dropout_epoch: 35 + dropout_maxp: 0.5 + dropout_startp: 0.0 + dropout_inc_epoch: 10 + bg_start: 0 + transform_params: + sigma_affine: 0.05 + sigma_tps: 0.005 + points_tps: 5 + loss_weights: + perceptual: [10, 10, 10, 10, 10] + equivariance_value: 10 + warp_loss: 10 + bg: 10 + +train_avd_params: + num_epochs: 30 + num_repeats: 500 + batch_size: 256 + dataloader_workers: 24 + checkpoint_freq: 10 + epoch_milestones: [20, 25] + lr: 1.0e-3 + lambda_shift: 1 + random_scale: 0.25 + +visualizer_params: + kp_size: 5 + draw_border: True + colormap: 'gist_rainbow' diff --git a/spline_module/config/vox-256.yaml b/spline_module/config/vox-256.yaml new file mode 100644 index 0000000..658a816 --- /dev/null +++ b/spline_module/config/vox-256.yaml @@ -0,0 +1,74 @@ +dataset_params: + root_dir: ../vox + frame_shape: null + id_sampling: True + augmentation_params: + flip_param: + horizontal_flip: True + time_flip: True + jitter_param: + brightness: 0.1 + contrast: 0.1 + saturation: 0.1 + hue: 0.1 + + +model_params: + common_params: + num_tps: 10 + num_channels: 3 + bg: True + multi_mask: True + generator_params: + block_expansion: 64 + max_features: 512 + num_down_blocks: 3 + dense_motion_params: + block_expansion: 64 + max_features: 1024 + num_blocks: 5 + scale_factor: 0.25 + avd_network_params: + id_bottle_size: 128 + pose_bottle_size: 128 + + +train_params: + num_epochs: 100 + num_repeats: 75 + epoch_milestones: [70, 90] + lr_generator: 2.0e-4 + batch_size: 28 + scales: [1, 0.5, 0.25, 0.125] + dataloader_workers: 12 + checkpoint_freq: 50 + dropout_epoch: 35 + dropout_maxp: 0.3 + dropout_startp: 0.1 + dropout_inc_epoch: 10 + bg_start: 10 + transform_params: + sigma_affine: 0.05 + sigma_tps: 0.005 + points_tps: 5 + loss_weights: + perceptual: [10, 10, 10, 10, 10] + equivariance_value: 10 + warp_loss: 10 + bg: 10 + +train_avd_params: + num_epochs: 200 + num_repeats: 300 + batch_size: 256 + dataloader_workers: 24 + checkpoint_freq: 50 + epoch_milestones: [140, 180] + lr: 1.0e-3 + lambda_shift: 1 + random_scale: 0.25 + +visualizer_params: + kp_size: 5 + draw_border: True + colormap: 'gist_rainbow' \ No newline at end of file diff --git a/spline_module/dense_motion.py b/spline_module/dense_motion.py new file mode 100644 index 0000000..4b0d842 --- /dev/null +++ b/spline_module/dense_motion.py @@ -0,0 +1,241 @@ +import math + +import torch +import torch.nn.functional as F +from torch import nn + +from .util import ( + TPS, + AntiAliasInterpolation2d, + Hourglass, + UpBlock2d, + from_homogeneous, + kp2gaussian, + make_coordinate_grid, + to_homogeneous, +) + + +class DenseMotionNetwork(nn.Module): + """ + Module that estimating an optical flow and multi-resolution occlusion masks + from K TPS transformations and an affine transformation. + """ + + def __init__( + self, + block_expansion, + num_blocks, + max_features, + num_tps, + num_channels, + scale_factor=0.25, + bg=False, + multi_mask=True, + kp_variance=0.01, + ): + super(DenseMotionNetwork, self).__init__() + + if scale_factor != 1: + self.down = AntiAliasInterpolation2d(num_channels, scale_factor) + self.scale_factor = scale_factor + self.multi_mask = multi_mask + + self.hourglass = Hourglass( + block_expansion=block_expansion, + in_features=(num_channels * (num_tps + 1) + num_tps * 5 + 1), + max_features=max_features, + num_blocks=num_blocks, + ) + + hourglass_output_size = self.hourglass.out_channels + self.maps = nn.Conv2d( + hourglass_output_size[-1], num_tps + 1, kernel_size=(7, 7), padding=(3, 3) + ) + + if multi_mask: + up = [] + self.up_nums = int(math.log(1 / scale_factor, 2)) + self.occlusion_num = 4 + + channel = [hourglass_output_size[-1] // (2**i) for i in range(self.up_nums)] + for i in range(self.up_nums): + up.append( + UpBlock2d(channel[i], channel[i] // 2, kernel_size=3, padding=1) + ) + self.up = nn.ModuleList(up) + + channel = [ + hourglass_output_size[-i - 1] + for i in range(self.occlusion_num - self.up_nums)[::-1] + ] + for i in range(self.up_nums): + channel.append(hourglass_output_size[-1] // (2 ** (i + 1))) + occlusion = [] + + for i in range(self.occlusion_num): + occlusion.append( + nn.Conv2d(channel[i], 1, kernel_size=(7, 7), padding=(3, 3)) + ) + self.occlusion = nn.ModuleList(occlusion) + else: + occlusion = [ + nn.Conv2d( + hourglass_output_size[-1], 1, kernel_size=(7, 7), padding=(3, 3) + ) + ] + self.occlusion = nn.ModuleList(occlusion) + + self.num_tps = num_tps + self.bg = bg + self.kp_variance = kp_variance + + def create_heatmap_representations(self, source_image, kp_driving, kp_source): + spatial_size = source_image.shape[2:] + gaussian_driving = kp2gaussian( + kp_driving["fg_kp"], spatial_size=spatial_size, kp_variance=self.kp_variance + ) + gaussian_source = kp2gaussian( + kp_source["fg_kp"], spatial_size=spatial_size, kp_variance=self.kp_variance + ) + heatmap = gaussian_driving - gaussian_source + + zeros = ( + torch.zeros(heatmap.shape[0], 1, spatial_size[0], spatial_size[1]) + .type(heatmap.type()) + .to(heatmap.device) + ) + heatmap = torch.cat([zeros, heatmap], dim=1) + + return heatmap + + def create_transformations(self, source_image, kp_driving, kp_source, bg_param): + # K TPS transformaions + bs, _, h, w = source_image.shape + kp_1 = kp_driving["fg_kp"] + kp_2 = kp_source["fg_kp"] + kp_1 = kp_1.view(bs, -1, 5, 2) + kp_2 = kp_2.view(bs, -1, 5, 2) + trans = TPS(mode="kp", bs=bs, kp_1=kp_1, kp_2=kp_2) + driving_to_source = trans.transform_frame(source_image) + + identity_grid = make_coordinate_grid((h, w), type=kp_1.type()).to(kp_1.device) + identity_grid = identity_grid.view(1, 1, h, w, 2) + identity_grid = identity_grid.repeat(bs, 1, 1, 1, 1) + + # affine background transformation + if bg_param is not None: + identity_grid = to_homogeneous(identity_grid) + identity_grid = torch.matmul( + bg_param.view(bs, 1, 1, 1, 3, 3), identity_grid.unsqueeze(-1) + ).squeeze(-1) + identity_grid = from_homogeneous(identity_grid) + + transformations = torch.cat([identity_grid, driving_to_source], dim=1) + return transformations + + def create_deformed_source_image(self, source_image, transformations): + bs, _, h, w = source_image.shape + source_repeat = ( + source_image.unsqueeze(1) + .unsqueeze(1) + .repeat(1, self.num_tps + 1, 1, 1, 1, 1) + ) + source_repeat = source_repeat.view(bs * (self.num_tps + 1), -1, h, w) + transformations = transformations.view((bs * (self.num_tps + 1), h, w, -1)) + deformed = F.grid_sample(source_repeat, transformations, align_corners=True) + deformed = deformed.view((bs, self.num_tps + 1, -1, h, w)) + return deformed + + def dropout_softmax(self, X, P): + """ + Dropout for TPS transformations. Eq(7) and Eq(8) in the paper. + """ + drop = ( + (torch.rand(X.shape[0], X.shape[1]) < (1 - P)).type(X.type()).to(X.device) + ) + drop[..., 0] = 1 + drop = drop.repeat(X.shape[2], X.shape[3], 1, 1).permute(2, 3, 0, 1) + + maxx = X.max(1).values.unsqueeze_(1) + X = X - maxx + X_exp = X.exp() + X[:, 1:, ...] /= 1 - P + mask_bool = drop == 0 + X_exp = X_exp.masked_fill(mask_bool, 0) + partition = X_exp.sum(dim=1, keepdim=True) + 1e-6 + return X_exp / partition + + def forward( + self, + source_image, + kp_driving, + kp_source, + bg_param=None, + dropout_flag=False, + dropout_p=0, + ): + if self.scale_factor != 1: + source_image = self.down(source_image) + + bs, _, h, w = source_image.shape + + out_dict = dict() + heatmap_representation = self.create_heatmap_representations( + source_image, kp_driving, kp_source + ) + transformations = self.create_transformations( + source_image, kp_driving, kp_source, bg_param + ) + deformed_source = self.create_deformed_source_image( + source_image, transformations + ) + out_dict["deformed_source"] = deformed_source + # out_dict['transformations'] = transformations + deformed_source = deformed_source.view(bs, -1, h, w) + input = torch.cat([heatmap_representation, deformed_source], dim=1) + input = input.view(bs, -1, h, w) + + prediction = self.hourglass(input, mode=1) + + contribution_maps = self.maps(prediction[-1]) + if dropout_flag: + contribution_maps = self.dropout_softmax(contribution_maps, dropout_p) + else: + contribution_maps = F.softmax(contribution_maps, dim=1) + out_dict["contribution_maps"] = contribution_maps + + # Combine the K+1 transformations + # Eq(6) in the paper + contribution_maps = contribution_maps.unsqueeze(2) + transformations = transformations.permute(0, 1, 4, 2, 3) + deformation = (transformations * contribution_maps).sum(dim=1) + deformation = deformation.permute(0, 2, 3, 1) + + out_dict["deformation"] = deformation # Optical Flow + + occlusion_map = [] + if self.multi_mask: + for i in range(self.occlusion_num - self.up_nums): + occlusion_map.append( + torch.sigmoid( + self.occlusion[i]( + prediction[self.up_nums - self.occlusion_num + i] + ) + ) + ) + prediction = prediction[-1] + for i in range(self.up_nums): + prediction = self.up[i](prediction) + occlusion_map.append( + torch.sigmoid( + self.occlusion[i + self.occlusion_num - self.up_nums]( + prediction + ) + ) + ) + else: + occlusion_map.append(torch.sigmoid(self.occlusion[0](prediction[-1]))) + + out_dict["occlusion_map"] = occlusion_map # Multi-resolution Occlusion Masks + return out_dict diff --git a/spline_module/inpainting_network.py b/spline_module/inpainting_network.py new file mode 100644 index 0000000..ac30f0a --- /dev/null +++ b/spline_module/inpainting_network.py @@ -0,0 +1,164 @@ +import torch +import torch.nn.functional as F +from torch import nn + +from .util import DownBlock2d, ResBlock2d, SameBlock2d, UpBlock2d + + +class InpaintingNetwork(nn.Module): + """ + Inpaint the missing regions and reconstruct the Driving image. + """ + + def __init__( + self, + num_channels, + block_expansion, + max_features, + num_down_blocks, + multi_mask=True, + **kwargs, + ): + super(InpaintingNetwork, self).__init__() + + self.num_down_blocks = num_down_blocks + self.multi_mask = multi_mask + self.first = SameBlock2d( + num_channels, block_expansion, kernel_size=(7, 7), padding=(3, 3) + ) + + down_blocks = [] + up_blocks = [] + resblock = [] + for i in range(num_down_blocks): + in_features = min(max_features, block_expansion * (2**i)) + out_features = min(max_features, block_expansion * (2 ** (i + 1))) + down_blocks.append( + DownBlock2d( + in_features, out_features, kernel_size=(3, 3), padding=(1, 1) + ) + ) + decoder_in_feature = out_features * 2 + if i == num_down_blocks - 1: + decoder_in_feature = out_features + up_blocks.append( + UpBlock2d( + decoder_in_feature, in_features, kernel_size=(3, 3), padding=(1, 1) + ) + ) + resblock.append( + ResBlock2d(decoder_in_feature, kernel_size=(3, 3), padding=(1, 1)) + ) + resblock.append( + ResBlock2d(decoder_in_feature, kernel_size=(3, 3), padding=(1, 1)) + ) + self.down_blocks = nn.ModuleList(down_blocks) + self.up_blocks = nn.ModuleList(up_blocks[::-1]) + self.resblock = nn.ModuleList(resblock[::-1]) + + self.final = nn.Conv2d( + block_expansion, num_channels, kernel_size=(7, 7), padding=(3, 3) + ) + self.num_channels = num_channels + + def deform_input(self, inp, deformation): + _, h_old, w_old, _ = deformation.shape + _, _, h, w = inp.shape + if h_old != h or w_old != w: + deformation = deformation.permute(0, 3, 1, 2) + deformation = F.interpolate( + deformation, size=(h, w), mode="bilinear", align_corners=True + ) + deformation = deformation.permute(0, 2, 3, 1) + return F.grid_sample(inp, deformation, align_corners=True) + + def occlude_input(self, inp, occlusion_map): + if not self.multi_mask: + if ( + inp.shape[2] != occlusion_map.shape[2] + or inp.shape[3] != occlusion_map.shape[3] + ): + occlusion_map = F.interpolate( + occlusion_map, + size=inp.shape[2:], + mode="bilinear", + align_corners=True, + ) + out = inp * occlusion_map + return out + + def forward(self, source_image, dense_motion): + out = self.first(source_image) + encoder_map = [out] + for i in range(len(self.down_blocks)): + out = self.down_blocks[i](out) + encoder_map.append(out) + + output_dict = {} + output_dict["contribution_maps"] = dense_motion["contribution_maps"] + output_dict["deformed_source"] = dense_motion["deformed_source"] + + occlusion_map = dense_motion["occlusion_map"] + output_dict["occlusion_map"] = occlusion_map + + deformation = dense_motion["deformation"] + out_ij = self.deform_input(out.detach(), deformation) + out = self.deform_input(out, deformation) + + out_ij = self.occlude_input(out_ij, occlusion_map[0].detach()) + out = self.occlude_input(out, occlusion_map[0]) + + warped_encoder_maps = [] + warped_encoder_maps.append(out_ij) + + for i in range(self.num_down_blocks): + out = self.resblock[2 * i](out) + out = self.resblock[2 * i + 1](out) + out = self.up_blocks[i](out) + + encode_i = encoder_map[-(i + 2)] + encode_ij = self.deform_input(encode_i.detach(), deformation) + encode_i = self.deform_input(encode_i, deformation) + + occlusion_ind = 0 + if self.multi_mask: + occlusion_ind = i + 1 + encode_ij = self.occlude_input( + encode_ij, occlusion_map[occlusion_ind].detach() + ) + encode_i = self.occlude_input(encode_i, occlusion_map[occlusion_ind]) + warped_encoder_maps.append(encode_ij) + + if i == self.num_down_blocks - 1: + break + + out = torch.cat([out, encode_i], 1) + + deformed_source = self.deform_input(source_image, deformation) + output_dict["deformed"] = deformed_source + output_dict["warped_encoder_maps"] = warped_encoder_maps + + occlusion_last = occlusion_map[-1] + if not self.multi_mask: + occlusion_last = F.interpolate( + occlusion_last, size=out.shape[2:], mode="bilinear", align_corners=True + ) + + out = out * (1 - occlusion_last) + encode_i + out = self.final(out) + out = torch.sigmoid(out) + out = out * (1 - occlusion_last) + deformed_source * occlusion_last + output_dict["prediction"] = out + + return output_dict + + def get_encode(self, driver_image, occlusion_map): + out = self.first(driver_image) + encoder_map = [] + encoder_map.append(self.occlude_input(out.detach(), occlusion_map[-1].detach())) + for i in range(len(self.down_blocks)): + out = self.down_blocks[i](out.detach()) + out_mask = self.occlude_input(out.detach(), occlusion_map[2 - i].detach()) + encoder_map.append(out_mask.detach()) + + return encoder_map diff --git a/spline_module/keypoint_detector.py b/spline_module/keypoint_detector.py new file mode 100644 index 0000000..2bf78f1 --- /dev/null +++ b/spline_module/keypoint_detector.py @@ -0,0 +1,29 @@ +import torch +from torch import nn +from torchvision import models + + +class KPDetector(nn.Module): + """ + Predict K*5 keypoints. + """ + + def __init__(self, num_tps, **kwargs): + super(KPDetector, self).__init__() + self.num_tps = num_tps + + self.fg_encoder = models.resnet18(pretrained=False) + num_features = self.fg_encoder.fc.in_features + self.fg_encoder.fc = nn.Linear(num_features, num_tps * 5 * 2) + + def forward(self, image): + fg_kp = self.fg_encoder(image) + ( + bs, + _, + ) = fg_kp.shape + fg_kp = torch.sigmoid(fg_kp) + fg_kp = fg_kp * 2 - 1 + out = {"fg_kp": fg_kp.view(bs, self.num_tps * 5, -1)} + + return out diff --git a/spline_module/model.py b/spline_module/model.py new file mode 100644 index 0000000..d06428f --- /dev/null +++ b/spline_module/model.py @@ -0,0 +1,222 @@ +import numpy as np +import torch +import torch.nn.functional as F +from torch import nn +from torchvision import models + +from .util import TPS, AntiAliasInterpolation2d + + +class Vgg19(torch.nn.Module): + """ + Vgg19 network for perceptual loss. See Sec 3.3. + """ + + def __init__(self, requires_grad=False): + super(Vgg19, self).__init__() + vgg_pretrained_features = models.vgg19(pretrained=True).features + self.slice1 = torch.nn.Sequential() + self.slice2 = torch.nn.Sequential() + self.slice3 = torch.nn.Sequential() + self.slice4 = torch.nn.Sequential() + self.slice5 = torch.nn.Sequential() + for x in range(2): + self.slice1.add_module(str(x), vgg_pretrained_features[x]) + for x in range(2, 7): + self.slice2.add_module(str(x), vgg_pretrained_features[x]) + for x in range(7, 12): + self.slice3.add_module(str(x), vgg_pretrained_features[x]) + for x in range(12, 21): + self.slice4.add_module(str(x), vgg_pretrained_features[x]) + for x in range(21, 30): + self.slice5.add_module(str(x), vgg_pretrained_features[x]) + + self.mean = torch.nn.Parameter( + data=torch.Tensor(np.array([0.485, 0.456, 0.406]).reshape((1, 3, 1, 1))), + requires_grad=False, + ) + self.std = torch.nn.Parameter( + data=torch.Tensor(np.array([0.229, 0.224, 0.225]).reshape((1, 3, 1, 1))), + requires_grad=False, + ) + + if not requires_grad: + for param in self.parameters(): + param.requires_grad = False + + def forward(self, X): + X = (X - self.mean) / self.std + h_relu1 = self.slice1(X) + h_relu2 = self.slice2(h_relu1) + h_relu3 = self.slice3(h_relu2) + h_relu4 = self.slice4(h_relu3) + h_relu5 = self.slice5(h_relu4) + out = [h_relu1, h_relu2, h_relu3, h_relu4, h_relu5] + return out + + +class ImagePyramide(torch.nn.Module): + """ + Create image pyramide for computing pyramide perceptual loss. See Sec 3.3 + """ + + def __init__(self, scales, num_channels): + super(ImagePyramide, self).__init__() + downs = {} + for scale in scales: + downs[str(scale).replace(".", "-")] = AntiAliasInterpolation2d( + num_channels, scale + ) + self.downs = nn.ModuleDict(downs) + + def forward(self, x): + out_dict = {} + for scale, down_module in self.downs.items(): + out_dict["prediction_" + str(scale).replace("-", ".")] = down_module(x) + return out_dict + + +def detach_kp(kp): + return {key: value.detach() for key, value in kp.items()} + + +class GeneratorFullModel(torch.nn.Module): + """ + Merge all generator related updates into single model for better multi-gpu usage + """ + + def __init__( + self, + kp_extractor, + bg_predictor, + dense_motion_network, + inpainting_network, + train_params, + *kwargs, + ): + super(GeneratorFullModel, self).__init__() + self.kp_extractor = kp_extractor + self.inpainting_network = inpainting_network + self.dense_motion_network = dense_motion_network + + self.bg_predictor = None + if bg_predictor: + self.bg_predictor = bg_predictor + self.bg_start = train_params["bg_start"] + + self.train_params = train_params + self.scales = train_params["scales"] + + self.pyramid = ImagePyramide(self.scales, inpainting_network.num_channels) + if torch.cuda.is_available(): + self.pyramid = self.pyramid.cuda() + + self.loss_weights = train_params["loss_weights"] + self.dropout_epoch = train_params["dropout_epoch"] + self.dropout_maxp = train_params["dropout_maxp"] + self.dropout_inc_epoch = train_params["dropout_inc_epoch"] + self.dropout_startp = train_params["dropout_startp"] + + if sum(self.loss_weights["perceptual"]) != 0: + self.vgg = Vgg19() + if torch.cuda.is_available(): + self.vgg = self.vgg.cuda() + + def forward(self, x, epoch): + kp_source = self.kp_extractor(x["source"]) + kp_driving = self.kp_extractor(x["driving"]) + bg_param = None + if self.bg_predictor: + if epoch >= self.bg_start: + bg_param = self.bg_predictor(x["source"], x["driving"]) + + if epoch >= self.dropout_epoch: + dropout_flag = False + dropout_p = 0 + else: + # dropout_p will linearly increase from dropout_startp to dropout_maxp + dropout_flag = True + dropout_p = min( + epoch / self.dropout_inc_epoch * self.dropout_maxp + + self.dropout_startp, + self.dropout_maxp, + ) + + dense_motion = self.dense_motion_network( + source_image=x["source"], + kp_driving=kp_driving, + kp_source=kp_source, + bg_param=bg_param, + dropout_flag=dropout_flag, + dropout_p=dropout_p, + ) + generated = self.inpainting_network(x["source"], dense_motion) + generated.update({"kp_source": kp_source, "kp_driving": kp_driving}) + + loss_values = {} + + pyramide_real = self.pyramid(x["driving"]) + pyramide_generated = self.pyramid(generated["prediction"]) + + # reconstruction loss + if sum(self.loss_weights["perceptual"]) != 0: + value_total = 0 + for scale in self.scales: + x_vgg = self.vgg(pyramide_generated["prediction_" + str(scale)]) + y_vgg = self.vgg(pyramide_real["prediction_" + str(scale)]) + + for i, weight in enumerate(self.loss_weights["perceptual"]): + value = torch.abs(x_vgg[i] - y_vgg[i].detach()).mean() + value_total += self.loss_weights["perceptual"][i] * value + loss_values["perceptual"] = value_total + + # equivariance loss + if self.loss_weights["equivariance_value"] != 0: + transform_random = TPS( + mode="random", + bs=x["driving"].shape[0], + **self.train_params["transform_params"], + ) + transform_grid = transform_random.transform_frame(x["driving"]) + transformed_frame = F.grid_sample( + x["driving"], + transform_grid, + padding_mode="reflection", + align_corners=True, + ) + transformed_kp = self.kp_extractor(transformed_frame) + + generated["transformed_frame"] = transformed_frame + generated["transformed_kp"] = transformed_kp + + warped = transform_random.warp_coordinates(transformed_kp["fg_kp"]) + kp_d = kp_driving["fg_kp"] + value = torch.abs(kp_d - warped).mean() + loss_values["equivariance_value"] = ( + self.loss_weights["equivariance_value"] * value + ) + + # warp loss + if self.loss_weights["warp_loss"] != 0: + occlusion_map = generated["occlusion_map"] + encode_map = self.inpainting_network.get_encode(x["driving"], occlusion_map) + decode_map = generated["warped_encoder_maps"] + value = 0 + for i in range(len(encode_map)): + value += torch.abs(encode_map[i] - decode_map[-i - 1]).mean() + + loss_values["warp_loss"] = self.loss_weights["warp_loss"] * value + + # bg loss + if ( + self.bg_predictor + and epoch >= self.bg_start + and self.loss_weights["bg"] != 0 + ): + bg_param_reverse = self.bg_predictor(x["driving"], x["source"]) + value = torch.matmul(bg_param, bg_param_reverse) + eye = torch.eye(3).view(1, 1, 3, 3).type(value.type()) + value = torch.abs(eye - value).mean() + loss_values["bg"] = self.loss_weights["bg"] * value + + return loss_values, generated diff --git a/spline_module/models/.gitkeep b/spline_module/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/spline_module/util.py b/spline_module/util.py new file mode 100644 index 0000000..e4339eb --- /dev/null +++ b/spline_module/util.py @@ -0,0 +1,412 @@ +import torch +import torch.nn.functional as F +from torch import nn + + +class TPS: + """ + TPS transformation, mode 'kp' for Eq(2) in the paper, mode 'random' for equivariance loss. + """ + + def __init__(self, mode, bs, **kwargs): + self.bs = bs + self.mode = mode + if mode == "random": + noise = torch.normal( + mean=0, std=kwargs["sigma_affine"] * torch.ones([bs, 2, 3]) + ) + self.theta = noise + torch.eye(2, 3).view(1, 2, 3) + self.control_points = make_coordinate_grid( + (kwargs["points_tps"], kwargs["points_tps"]), type=noise.type() + ) + self.control_points = self.control_points.unsqueeze(0) + self.control_params = torch.normal( + mean=0, + std=kwargs["sigma_tps"] + * torch.ones([bs, 1, kwargs["points_tps"] ** 2]), + ) + elif mode == "kp": + kp_1 = kwargs["kp_1"] + kp_2 = kwargs["kp_2"] + device = kp_1.device + kp_type = kp_1.type() + self.gs = kp_1.shape[1] + n = kp_1.shape[2] + K = torch.norm(kp_1[:, :, :, None] - kp_1[:, :, None, :], dim=4, p=2) + K = K**2 + K = K * torch.log(K + 1e-9) + + one1 = ( + torch.ones(self.bs, kp_1.shape[1], kp_1.shape[2], 1) + .to(device) + .type(kp_type) + ) + kp_1p = torch.cat([kp_1, one1], 3) + + zero = torch.zeros(self.bs, kp_1.shape[1], 3, 3).to(device).type(kp_type) + P = torch.cat([kp_1p, zero], 2) + L = torch.cat([K, kp_1p.permute(0, 1, 3, 2)], 2) + L = torch.cat([L, P], 3) + + zero = torch.zeros(self.bs, kp_1.shape[1], 3, 2).to(device).type(kp_type) + Y = torch.cat([kp_2, zero], 2) + one = torch.eye(L.shape[2]).expand(L.shape).to(device).type(kp_type) * 0.01 + L = L + one + + param = torch.matmul(torch.inverse(L), Y) + self.theta = param[:, :, n:, :].permute(0, 1, 3, 2) + + self.control_points = kp_1 + self.control_params = param[:, :, :n, :] + else: + raise Exception("Error TPS mode") + + def transform_frame(self, frame): + grid = ( + make_coordinate_grid(frame.shape[2:], type=frame.type()) + .unsqueeze(0) + .to(frame.device) + ) + grid = grid.view(1, frame.shape[2] * frame.shape[3], 2) + shape = [self.bs, frame.shape[2], frame.shape[3], 2] + if self.mode == "kp": + shape.insert(1, self.gs) + grid = self.warp_coordinates(grid).view(*shape) + return grid + + def warp_coordinates(self, coordinates): + theta = self.theta.type(coordinates.type()).to(coordinates.device) + control_points = self.control_points.type(coordinates.type()).to( + coordinates.device + ) + control_params = self.control_params.type(coordinates.type()).to( + coordinates.device + ) + + if self.mode == "kp": + transformed = ( + torch.matmul(theta[:, :, :, :2], coordinates.permute(0, 2, 1)) + + theta[:, :, :, 2:] + ) + + distances = coordinates.view( + coordinates.shape[0], 1, 1, -1, 2 + ) - control_points.view(self.bs, control_points.shape[1], -1, 1, 2) + + distances = distances**2 + result = distances.sum(-1) + result = result * torch.log(result + 1e-9) + result = torch.matmul(result.permute(0, 1, 3, 2), control_params) + transformed = transformed.permute(0, 1, 3, 2) + result + + elif self.mode == "random": + theta = theta.unsqueeze(1) + transformed = ( + torch.matmul(theta[:, :, :, :2], coordinates.unsqueeze(-1)) + + theta[:, :, :, 2:] + ) + transformed = transformed.squeeze(-1) + ances = coordinates.view( + coordinates.shape[0], -1, 1, 2 + ) - control_points.view(1, 1, -1, 2) + distances = ances**2 + + result = distances.sum(-1) + result = result * torch.log(result + 1e-9) + result = result * control_params + result = result.sum(dim=2).view(self.bs, coordinates.shape[1], 1) + transformed = transformed + result + else: + raise Exception("Error TPS mode") + + return transformed + + +def kp2gaussian(kp, spatial_size, kp_variance): + """ + Transform a keypoint into gaussian like representation + """ + + coordinate_grid = make_coordinate_grid(spatial_size, kp.type()).to(kp.device) + number_of_leading_dimensions = len(kp.shape) - 1 + shape = (1,) * number_of_leading_dimensions + coordinate_grid.shape + coordinate_grid = coordinate_grid.view(*shape) + repeats = kp.shape[:number_of_leading_dimensions] + (1, 1, 1) + coordinate_grid = coordinate_grid.repeat(*repeats) + + # Preprocess kp shape + shape = kp.shape[:number_of_leading_dimensions] + (1, 1, 2) + kp = kp.view(*shape) + + mean_sub = coordinate_grid - kp + + out = torch.exp(-0.5 * (mean_sub**2).sum(-1) / kp_variance) + + return out + + +def make_coordinate_grid(spatial_size, type): + """ + Create a meshgrid [-1,1] x [-1,1] of given spatial_size. + """ + h, w = spatial_size + x = torch.arange(w).type(type) + y = torch.arange(h).type(type) + + x = 2 * (x / (w - 1)) - 1 + y = 2 * (y / (h - 1)) - 1 + + yy = y.view(-1, 1).repeat(1, w) + xx = x.view(1, -1).repeat(h, 1) + + meshed = torch.cat([xx.unsqueeze_(2), yy.unsqueeze_(2)], 2) + + return meshed + + +class ResBlock2d(nn.Module): + """ + Res block, preserve spatial resolution. + """ + + def __init__(self, in_features, kernel_size, padding): + super(ResBlock2d, self).__init__() + self.conv1 = nn.Conv2d( + in_channels=in_features, + out_channels=in_features, + kernel_size=kernel_size, + padding=padding, + ) + self.conv2 = nn.Conv2d( + in_channels=in_features, + out_channels=in_features, + kernel_size=kernel_size, + padding=padding, + ) + self.norm1 = nn.InstanceNorm2d(in_features, affine=True) + self.norm2 = nn.InstanceNorm2d(in_features, affine=True) + + def forward(self, x): + out = self.norm1(x) + out = F.relu(out) + out = self.conv1(out) + out = self.norm2(out) + out = F.relu(out) + out = self.conv2(out) + out += x + return out + + +class UpBlock2d(nn.Module): + """ + Upsampling block for use in decoder. + """ + + def __init__(self, in_features, out_features, kernel_size=3, padding=1, groups=1): + super(UpBlock2d, self).__init__() + + self.conv = nn.Conv2d( + in_channels=in_features, + out_channels=out_features, + kernel_size=kernel_size, + padding=padding, + groups=groups, + ) + self.norm = nn.InstanceNorm2d(out_features, affine=True) + + def forward(self, x): + out = F.interpolate(x, scale_factor=2) + out = self.conv(out) + out = self.norm(out) + out = F.relu(out) + return out + + +class DownBlock2d(nn.Module): + """ + Downsampling block for use in encoder. + """ + + def __init__(self, in_features, out_features, kernel_size=3, padding=1, groups=1): + super(DownBlock2d, self).__init__() + self.conv = nn.Conv2d( + in_channels=in_features, + out_channels=out_features, + kernel_size=kernel_size, + padding=padding, + groups=groups, + ) + self.norm = nn.InstanceNorm2d(out_features, affine=True) + self.pool = nn.AvgPool2d(kernel_size=(2, 2)) + + def forward(self, x): + out = self.conv(x) + out = self.norm(out) + out = F.relu(out) + out = self.pool(out) + return out + + +class SameBlock2d(nn.Module): + """ + Simple block, preserve spatial resolution. + """ + + def __init__(self, in_features, out_features, groups=1, kernel_size=3, padding=1): + super(SameBlock2d, self).__init__() + self.conv = nn.Conv2d( + in_channels=in_features, + out_channels=out_features, + kernel_size=kernel_size, + padding=padding, + groups=groups, + ) + self.norm = nn.InstanceNorm2d(out_features, affine=True) + + def forward(self, x): + out = self.conv(x) + out = self.norm(out) + out = F.relu(out) + return out + + +class Encoder(nn.Module): + """ + Hourglass Encoder + """ + + def __init__(self, block_expansion, in_features, num_blocks=3, max_features=256): + super(Encoder, self).__init__() + + down_blocks = [] + for i in range(num_blocks): + down_blocks.append( + DownBlock2d( + in_features + if i == 0 + else min(max_features, block_expansion * (2**i)), + min(max_features, block_expansion * (2 ** (i + 1))), + kernel_size=3, + padding=1, + ) + ) + self.down_blocks = nn.ModuleList(down_blocks) + + def forward(self, x): + outs = [x] + # print('encoder:' ,outs[-1].shape) + for down_block in self.down_blocks: + outs.append(down_block(outs[-1])) + # print('encoder:' ,outs[-1].shape) + return outs + + +class Decoder(nn.Module): + """ + Hourglass Decoder + """ + + def __init__(self, block_expansion, in_features, num_blocks=3, max_features=256): + super(Decoder, self).__init__() + + up_blocks = [] + self.out_channels = [] + for i in range(num_blocks)[::-1]: + in_filters = (1 if i == num_blocks - 1 else 2) * min( + max_features, block_expansion * (2 ** (i + 1)) + ) + self.out_channels.append(in_filters) + out_filters = min(max_features, block_expansion * (2**i)) + up_blocks.append( + UpBlock2d(in_filters, out_filters, kernel_size=3, padding=1) + ) + + self.up_blocks = nn.ModuleList(up_blocks) + self.out_channels.append(block_expansion + in_features) + # self.out_filters = block_expansion + in_features + + def forward(self, x, mode=0): + out = x.pop() + outs = [] + for up_block in self.up_blocks: + out = up_block(out) + skip = x.pop() + out = torch.cat([out, skip], dim=1) + outs.append(out) + if mode == 0: + return out + else: + return outs + + +class Hourglass(nn.Module): + """ + Hourglass architecture. + """ + + def __init__(self, block_expansion, in_features, num_blocks=3, max_features=256): + super(Hourglass, self).__init__() + self.encoder = Encoder(block_expansion, in_features, num_blocks, max_features) + self.decoder = Decoder(block_expansion, in_features, num_blocks, max_features) + self.out_channels = self.decoder.out_channels + # self.out_filters = self.decoder.out_filters + + def forward(self, x, mode=0): + return self.decoder(self.encoder(x), mode) + + +class AntiAliasInterpolation2d(nn.Module): + """ + Band-limited downsampling, for better preservation of the input signal. + """ + + def __init__(self, channels, scale): + super(AntiAliasInterpolation2d, self).__init__() + sigma = (1 / scale - 1) / 2 + kernel_size = 2 * round(sigma * 4) + 1 + self.ka = kernel_size // 2 + self.kb = self.ka - 1 if kernel_size % 2 == 0 else self.ka + + kernel_size = [kernel_size, kernel_size] + sigma = [sigma, sigma] + # The gaussian kernel is the product of the + # gaussian function of each dimension. + kernel = 1 + meshgrids = torch.meshgrid( + [torch.arange(size, dtype=torch.float32) for size in kernel_size] + ) + for size, std, mgrid in zip(kernel_size, sigma, meshgrids): + mean = (size - 1) / 2 + kernel *= torch.exp(-((mgrid - mean) ** 2) / (2 * std**2)) + + # Make sure sum of values in gaussian kernel equals 1. + kernel = kernel / torch.sum(kernel) + # Reshape to depthwise convolutional weight + kernel = kernel.view(1, 1, *kernel.size()) + kernel = kernel.repeat(channels, *[1] * (kernel.dim() - 1)) + + self.register_buffer("weight", kernel) + self.groups = channels + self.scale = scale + + def forward(self, input): + if self.scale == 1.0: + return input + + out = F.pad(input, (self.ka, self.kb, self.ka, self.kb)) + out = F.conv2d(out, weight=self.weight, groups=self.groups) + out = F.interpolate(out, scale_factor=(self.scale, self.scale)) + + return out + + +def to_homogeneous(coordinates): + ones_shape = list(coordinates.shape) + ones_shape[-1] = 1 + ones = torch.ones(ones_shape).type(coordinates.type()) + + return torch.cat([coordinates, ones], dim=-1) + + +def from_homogeneous(coordinates): + return coordinates[..., :2] / coordinates[..., 2:3] diff --git a/workflows/SPLINE.json b/workflows/SPLINE.json new file mode 100644 index 0000000..7b3544d --- /dev/null +++ b/workflows/SPLINE.json @@ -0,0 +1,427 @@ +{ + "last_node_id": 6, + "last_link_id": 11, + "nodes": [ + { + "id": 6, + "type": "VHS_VideoCombine", + "pos": [ + 1236, + 163 + ], + "size": [ + 315, + 615 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 11 + }, + { + "name": "audio", + "type": "AUDIO", + "link": 10 + }, + { + "name": "meta_batch", + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "type": "VAE", + "link": null + }, + { + "name": "frame_rate", + "type": "FLOAT", + "link": 9, + "widget": { + "name": "frame_rate" + } + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "VHS_VideoCombine" + }, + "widgets_values": { + "frame_rate": 8, + "loop_count": 0, + "filename_prefix": "Spline", + "format": "video/h264-mp4", + "pix_fmt": "yuv420p", + "crf": 0, + "save_metadata": true, + "pingpong": false, + "save_output": true, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "Spline_00005-audio.mp4", + "subfolder": "", + "type": "output", + "format": "video/h264-mp4", + "frame_rate": 29.970029970029966 + } + } + } + }, + { + "id": 5, + "type": "VHS_VideoInfoLoaded", + "pos": [ + 783, + 373 + ], + "size": { + "0": 304.79998779296875, + "1": 106 + }, + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "video_info", + "type": "VHS_VIDEOINFO", + "link": 7 + } + ], + "outputs": [ + { + "name": "fps🟦", + "type": "FLOAT", + "links": [ + 8 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "frame_count🟦", + "type": "INT", + "links": null, + "shape": 3 + }, + { + "name": "duration🟦", + "type": "FLOAT", + "links": null, + "shape": 3 + }, + { + "name": "width🟦", + "type": "INT", + "links": null, + "shape": 3 + }, + { + "name": "height🟦", + "type": "INT", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "VHS_VideoInfoLoaded" + }, + "widgets_values": {} + }, + { + "id": 2, + "type": "LoadImage", + "pos": [ + 145, + 158 + ], + "size": [ + 315, + 314 + ], + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 4 + ], + "shape": 3 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "Rick1.png", + "image" + ] + }, + { + "id": 3, + "type": "VHS_LoadVideo", + "pos": [ + 485, + 232 + ], + "size": [ + 235.1999969482422, + 491.1999969482422 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "meta_batch", + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 5 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "frame_count", + "type": "INT", + "links": null, + "shape": 3 + }, + { + "name": "audio", + "type": "AUDIO", + "links": [ + 6 + ], + "shape": 3, + "slot_index": 2 + }, + { + "name": "video_info", + "type": "VHS_VIDEOINFO", + "links": [ + 7 + ], + "shape": 3, + "slot_index": 3 + } + ], + "properties": { + "Node name for S&R": "VHS_LoadVideo" + }, + "widgets_values": { + "video": "damedane.mp4", + "force_rate": 0, + "force_size": "Disabled", + "custom_width": 512, + "custom_height": 512, + "frame_load_cap": 0, + "skip_first_frames": 0, + "select_every_nth": 1, + "choose video to upload": "image", + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "frame_load_cap": 0, + "skip_first_frames": 0, + "force_rate": 0, + "filename": "damedane.mp4", + "type": "input", + "format": "video/mp4", + "select_every_nth": 1 + } + } + } + }, + { + "id": 4, + "type": "Spline_Runner", + "pos": [ + 777, + 161 + ], + "size": [ + 380.4000244140625, + 146 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "source_image", + "type": "IMAGE", + "link": 4 + }, + { + "name": "driving_video_input", + "type": "IMAGE", + "link": 5 + }, + { + "name": "audio", + "type": "AUDIO", + "link": 6 + }, + { + "name": "frame_rate", + "type": "FLOAT", + "link": 8, + "widget": { + "name": "frame_rate" + } + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [ + 11 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "audio", + "type": "AUDIO", + "links": [ + 10 + ], + "shape": 3, + "slot_index": 1 + }, + { + "name": "frame_rate", + "type": "FLOAT", + "links": [ + 9 + ], + "shape": 3, + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "Spline_Runner" + }, + "widgets_values": [ + 30, + "relative", + false + ] + } + ], + "links": [ + [ + 4, + 2, + 0, + 4, + 0, + "IMAGE" + ], + [ + 5, + 3, + 0, + 4, + 1, + "IMAGE" + ], + [ + 6, + 3, + 2, + 4, + 2, + "AUDIO" + ], + [ + 7, + 3, + 3, + 5, + 0, + "VHS_VIDEOINFO" + ], + [ + 8, + 5, + 0, + 4, + 3, + "FLOAT" + ], + [ + 9, + 4, + 2, + 6, + 4, + "FLOAT" + ], + [ + 10, + 4, + 1, + 6, + 1, + "AUDIO" + ], + [ + 11, + 4, + 0, + 6, + 0, + "IMAGE" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": [ + -23, + 68 + ] + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/workflows/workflow_spline.png b/workflows/workflow_spline.png new file mode 100644 index 0000000000000000000000000000000000000000..c01db71c51f893afbe49e43f17256ed7462d0c8c GIT binary patch literal 237199 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
0gBFF;s1fB^B+PPJB%5Xu+EA3s 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 YYQ$}P<2&&M;6KCthxcXfwYmEL0HeIFj{pDw literal 0 HcmV?d00001