MCPcopy Create free account
hub / github.com/thygate/stable-diffusion-webui-depthmap-script / forward

Method forward

inpaint/networks.py:79–103  ·  view source on GitHub ↗
(self, input, mask)

Source from the content-addressed store, hash-verified

77 param.requires_grad = False
78
79 def forward(self, input, mask):
80 # http://masc.cs.gmu.edu/wiki/partialconv
81 # C(X) = W^T * X + b, C(0) = b, D(M) = 1 * M + 0 = sum(M)
82 # W^T* (M .* X) / sum(M) + b = [C(M .* X) – C(0)] / D(M) + C(0)
83 output = self.input_conv(input * mask)
84 if self.input_conv.bias is not None:
85 output_bias = self.input_conv.bias.view(1, -1, 1, 1).expand_as(
86 output)
87 else:
88 output_bias = torch.zeros_like(output)
89
90 with torch.no_grad():
91 output_mask = self.mask_conv(mask)
92
93 no_update_holes = output_mask == 0
94
95 mask_sum = output_mask.masked_fill_(no_update_holes, 1.0)
96
97 output_pre = ((output - output_bias) * self.slide_winsize) / mask_sum + output_bias
98 output = output_pre.masked_fill_(no_update_holes, 0.0)
99
100 new_mask = torch.ones_like(output)
101 new_mask = new_mask.masked_fill_(no_update_holes, 0.0)
102
103 return output, new_mask
104
105
106class PCBActiv(nn.Module):

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected