Spaces:
Running
on
Zero
Running
on
Zero
Update src/pipeline_pe_clone.py
Browse files- src/pipeline_pe_clone.py +16 -6
src/pipeline_pe_clone.py
CHANGED
@@ -48,14 +48,24 @@ def prepare_latent_image_ids_2(height, width, device, dtype):
|
|
48 |
latent_image_ids[..., 2] = latent_image_ids[..., 2] + torch.arange(width//2, device=device)[None, :] # x坐标
|
49 |
return latent_image_ids
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
def position_encoding_clone(batch_size, original_height, original_width, device, dtype):
|
52 |
latent_image_ids = prepare_latent_image_ids_2(original_height, original_width, device, dtype)
|
53 |
-
|
54 |
-
latent_image_ids = latent_image_ids.reshape(
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
latent_image_ids =
|
59 |
return latent_image_ids
|
60 |
|
61 |
# Copied from diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion_img2img.retrieve_latents
|
|
|
48 |
latent_image_ids[..., 2] = latent_image_ids[..., 2] + torch.arange(width//2, device=device)[None, :] # x坐标
|
49 |
return latent_image_ids
|
50 |
|
51 |
+
# def position_encoding_clone(batch_size, original_height, original_width, device, dtype):
|
52 |
+
# latent_image_ids = prepare_latent_image_ids_2(original_height, original_width, device, dtype)
|
53 |
+
# latent_image_id_height, latent_image_id_width, latent_image_id_channels = latent_image_ids.shape
|
54 |
+
# latent_image_ids = latent_image_ids.reshape(
|
55 |
+
# latent_image_id_height * latent_image_id_width, latent_image_id_channels
|
56 |
+
# )
|
57 |
+
# cond_latent_image_ids = latent_image_ids
|
58 |
+
# latent_image_ids = torch.concat([latent_image_ids, cond_latent_image_ids], dim=-2)
|
59 |
+
# return latent_image_ids
|
60 |
+
|
61 |
def position_encoding_clone(batch_size, original_height, original_width, device, dtype):
|
62 |
latent_image_ids = prepare_latent_image_ids_2(original_height, original_width, device, dtype)
|
63 |
+
# latent_image_ids shape: (H//2, W//2, 3)
|
64 |
+
latent_image_ids = latent_image_ids.reshape(-1, latent_image_ids.shape[-1]) # shape: (N, 3)
|
65 |
+
# Duplicate by concatenating along the token dimension (if that’s intended)
|
66 |
+
latent_image_ids = torch.cat([latent_image_ids, latent_image_ids], dim=0) # shape: (2*N, 3)
|
67 |
+
# Add a batch dimension and repeat it for each sample in the batch
|
68 |
+
latent_image_ids = latent_image_ids.unsqueeze(0).repeat(batch_size, 1, 1) # shape: (B, 2*N, 3)
|
69 |
return latent_image_ids
|
70 |
|
71 |
# Copied from diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion_img2img.retrieve_latents
|