File size: 1,209 Bytes
92ec8d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys
sys.path.extend(['.', '..'])

from models.hyperstyle.utils.inference_utils import run_inversion
from models.hyperstyle.utils import restyle_inference_utils


def run_domain_adaptation(inputs, net, opts, fine_tuned_generator, restyle_e4e, restyle_opts):
    """ Combine restyle e4e's latent code with HyperStyle's predicted weight offsets. """
    y_hat, latents = restyle_inference_utils.run_on_batch(inputs, restyle_e4e, restyle_opts)
    y_hat2, _, weights_deltas, _ = run_inversion(inputs, net, opts)
    weights_deltas = filter_non_ffhq_layers_in_toonify_model(weights_deltas)
    return fine_tuned_generator([latents],
                                input_is_latent=True,
                                randomize_noise=True,
                                return_latents=True,
                                weights_deltas=weights_deltas)


def filter_non_ffhq_layers_in_toonify_model(weights_deltas):
    toonify_ffhq_layer_idx = [14, 15, 17, 18, 20, 21, 23, 24]  # convs 8-15 according to model_utils.py
    for i in range(len(weights_deltas)):
        if weights_deltas[i] is not None and i not in toonify_ffhq_layer_idx:
            weights_deltas[i] = None
    return weights_deltas