Update pipeline_stable_diffusion_3_ipa.py
Browse files
pipeline_stable_diffusion_3_ipa.py
CHANGED
|
@@ -1170,8 +1170,20 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
| 1170 |
image_prompt_embeds_5 = self.encode_clip_image_emb(clip_image, device, dtype)
|
| 1171 |
image_prompt_embeds_5 = image_prompt_embeds_5 * scale_5
|
| 1172 |
image_prompt_embeds_list.append(image_prompt_embeds_5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1173 |
|
| 1174 |
-
|
|
|
|
|
|
|
| 1175 |
|
| 1176 |
# 4. Prepare timesteps
|
| 1177 |
timesteps, num_inference_steps = retrieve_timesteps(self.scheduler, num_inference_steps, device, timesteps)
|
|
|
|
| 1170 |
image_prompt_embeds_5 = self.encode_clip_image_emb(clip_image, device, dtype)
|
| 1171 |
image_prompt_embeds_5 = image_prompt_embeds_5 * scale_5
|
| 1172 |
image_prompt_embeds_list.append(image_prompt_embeds_5)
|
| 1173 |
+
|
| 1174 |
+
# Concatenate the image embeddings
|
| 1175 |
+
concatenated_embeds = torch.cat(image_prompt_embeds_list, dim=1) # Concatenate along dimension 1
|
| 1176 |
+
|
| 1177 |
+
# Create a linear layer
|
| 1178 |
+
embedding_dim = concatenated_embeds.shape[-1] # Get the embedding dimension
|
| 1179 |
+
linear_layer = nn.Linear(embedding_dim * len(image_prompt_embeds_list), embedding_dim)
|
| 1180 |
+
|
| 1181 |
+
# Pass the concatenated embeddings through the linear layer
|
| 1182 |
+
combined_embeds = linear_layer(concatenated_embeds)
|
| 1183 |
|
| 1184 |
+
# Add a ReLU activation for non-linearity (optional)
|
| 1185 |
+
combined_embeds = torch.relu(combined_embeds)
|
| 1186 |
+
clip_image_embeds = clip_image_embeds #torch.cat(image_prompt_embeds_list).mean(dim=0).unsqueeze(0)
|
| 1187 |
|
| 1188 |
# 4. Prepare timesteps
|
| 1189 |
timesteps, num_inference_steps = retrieve_timesteps(self.scheduler, num_inference_steps, device, timesteps)
|