Unverified Commit af416a2d authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub
Browse files

Merge pull request #8064 from laksjdjf/master

Add cond and uncond hidden states to CFGDenoiserParams
parents 2b0ef2c4 534cf60a
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -29,7 +29,7 @@ class ImageSaveParams:




class CFGDenoiserParams:
class CFGDenoiserParams:
    def __init__(self, x, image_cond, sigma, sampling_step, total_sampling_steps):
    def __init__(self, x, image_cond, sigma, sampling_step, total_sampling_steps, tensor, uncond):
        self.x = x
        self.x = x
        """Latent image representation in the process of being denoised"""
        """Latent image representation in the process of being denoised"""
        
        
@@ -45,6 +45,12 @@ class CFGDenoiserParams:
        self.total_sampling_steps = total_sampling_steps
        self.total_sampling_steps = total_sampling_steps
        """Total number of sampling steps planned"""
        """Total number of sampling steps planned"""
        
        
        self.tensor = tensor
        """ Encoder hidden states of conditioning"""
        
        self.uncond = uncond
        """ Encoder hidden states of unconditioning"""



class CFGDenoisedParams:
class CFGDenoisedParams:
    def __init__(self, x, sampling_step, total_sampling_steps):
    def __init__(self, x, sampling_step, total_sampling_steps):
+3 −1
Original line number Original line Diff line number Diff line
@@ -101,11 +101,13 @@ class CFGDenoiser(torch.nn.Module):
            sigma_in = torch.cat([torch.stack([sigma[i] for _ in range(n)]) for i, n in enumerate(repeats)] + [sigma] + [sigma])
            sigma_in = torch.cat([torch.stack([sigma[i] for _ in range(n)]) for i, n in enumerate(repeats)] + [sigma] + [sigma])
            image_cond_in = torch.cat([torch.stack([image_cond[i] for _ in range(n)]) for i, n in enumerate(repeats)] + [image_cond] + [torch.zeros_like(self.init_latent)])
            image_cond_in = torch.cat([torch.stack([image_cond[i] for _ in range(n)]) for i, n in enumerate(repeats)] + [image_cond] + [torch.zeros_like(self.init_latent)])


        denoiser_params = CFGDenoiserParams(x_in, image_cond_in, sigma_in, state.sampling_step, state.sampling_steps)
        denoiser_params = CFGDenoiserParams(x_in, image_cond_in, sigma_in, state.sampling_step, state.sampling_steps, tensor, uncond)
        cfg_denoiser_callback(denoiser_params)
        cfg_denoiser_callback(denoiser_params)
        x_in = denoiser_params.x
        x_in = denoiser_params.x
        image_cond_in = denoiser_params.image_cond
        image_cond_in = denoiser_params.image_cond
        sigma_in = denoiser_params.sigma
        sigma_in = denoiser_params.sigma
        tensor = denoiser_params.tensor
        uncond = denoiser_params.uncond


        if tensor.shape[1] == uncond.shape[1]:
        if tensor.shape[1] == uncond.shape[1]:
            if not is_edit_model:
            if not is_edit_model: