mirror of
https://github.com/facefusion/facefusion-labs.git
synced 2026-08-31 00:10:39 +02:00
Introduce feature flag for Unet
This commit is contained in:
@@ -3,7 +3,7 @@ import configparser
|
||||
from torch import Tensor, nn
|
||||
|
||||
from ..networks.attribute_modulator import AADGenerator
|
||||
from ..networks.unet import UNet
|
||||
from ..networks.unet import UNet, UNetPro
|
||||
from ..types import Attributes, Embedding
|
||||
|
||||
CONFIG = configparser.ConfigParser()
|
||||
@@ -13,21 +13,25 @@ CONFIG.read('config.ini')
|
||||
class Generator(nn.Module):
|
||||
def __init__(self) -> None:
|
||||
super(Generator, self).__init__()
|
||||
encoder_type = CONFIG.getint('training.model.generator', 'encoder_type')
|
||||
id_channels = CONFIG.getint('training.model.generator', 'id_channels')
|
||||
num_blocks = CONFIG.getint('training.model.generator', 'num_blocks')
|
||||
|
||||
self.unet = UNet()
|
||||
self.aad_generator = AADGenerator(id_channels, num_blocks)
|
||||
self.unet.apply(init_weight)
|
||||
self.aad_generator.apply(init_weight)
|
||||
if encoder_type == 'unet':
|
||||
self.encoder = UNet()
|
||||
if encoder_type == 'unet-pro':
|
||||
self.encoder = UNetPro()
|
||||
self.generator = AADGenerator(id_channels, num_blocks)
|
||||
self.encoder.apply(init_weight)
|
||||
self.generator.apply(init_weight)
|
||||
|
||||
def forward(self, source_embedding : Embedding, target_tensor : Tensor) -> Tensor:
|
||||
target_attributes = self.get_attributes(target_tensor)
|
||||
output_tensor = self.aad_generator(target_attributes, source_embedding)
|
||||
output_tensor = self.generator(target_attributes, source_embedding)
|
||||
return output_tensor
|
||||
|
||||
def get_attributes(self, input_tensor : Tensor) -> Attributes:
|
||||
return self.unet(input_tensor)
|
||||
return self.encoder(input_tensor)
|
||||
|
||||
|
||||
def init_weight(module : nn.Module) -> None:
|
||||
|
||||
Reference in New Issue
Block a user