Skip to content

Commit 4190bdf

Browse files
authored
Add sections for Visual Anagrams and Hybrid Images
1 parent e929d64 commit 4190bdf

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed

project-5/index.html

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,163 @@ <h4>St. Basil's Cathedral with prompt <code>'an oil painting of a snowy mountain
828828
</figure>
829829
</div>
830830
</div>
831+
</section>
831832

833+
<!-- ========================================================= -->
834+
<!-- Part 1.8: Visual Anagrams -->
835+
<!-- ========================================================= -->
836+
<section id="part-1-8">
837+
<h2>Part 1.8 – Visual Anagrams</h2>
838+
839+
<div class="subsection">
840+
<h3>1.8.1 – Code: visual_anagrams</h3>
841+
<pre><code># TODO
842+
# def visual_anagrams(
843+
# prompt_embeds_p1,
844+
# prompt_embeds_p2,
845+
# uncond_prompt_embeds,
846+
# timesteps,
847+
# scale=7,
848+
# num_inference_steps=...,
849+
# ):
850+
# """
851+
# Returns:
852+
# image: torch.Tensor of shape (1, 3, 64, 64) in [-1, 1]
853+
# """
854+
# # TODO</code></pre>
855+
856+
<p class="note">
857+
Notes: include your flipping operation (e.g., torch.flip(..., dims=[2])) and how you combine
858+
noise / variance estimates (if applicable).
859+
</p>
860+
</div>
861+
862+
<div class="subsection">
863+
<h3>1.8.2 – Two Visual Anagram Illusions</h3>
864+
<p>
865+
Each illusion should look like one concept normally, and another concept when flipped upside down.
866+
Show both orientations.
867+
</p>
868+
869+
<h4>Illusion 1</h4>
870+
<p><strong>Prompt p1:</strong> <em><!-- TODO: prompt 1 --></em><br/>
871+
<strong>Prompt p2:</strong> <em><!-- TODO: prompt 2 --></em>
872+
</p>
873+
<div class="image-row">
874+
<figure>
875+
<img src="images/part1_8_illusion1_original.png" alt="Visual anagram illusion 1 (original)" />
876+
<figcaption>Illusion 1 – Original orientation</figcaption>
877+
</figure>
878+
<figure>
879+
<img src="images/part1_8_illusion1_flipped.png" alt="Visual anagram illusion 1 (flipped)" />
880+
<figcaption>Illusion 1 – Flipped upside down</figcaption>
881+
</figure>
882+
</div>
883+
884+
<h4>Illusion 2</h4>
885+
<p><strong>Prompt p1:</strong> <em><!-- TODO: prompt 1 --></em><br/>
886+
<strong>Prompt p2:</strong> <em><!-- TODO: prompt 2 --></em>
887+
</p>
888+
<div class="image-row">
889+
<figure>
890+
<img src="images/part1_8_illusion2_original.png" alt="Visual anagram illusion 2 (original)" />
891+
<figcaption>Illusion 2 – Original orientation</figcaption>
892+
</figure>
893+
<figure>
894+
<img src="images/part1_8_illusion2_flipped.png" alt="Visual anagram illusion 2 (flipped)" />
895+
<figcaption>Illusion 2 – Flipped upside down</figcaption>
896+
</figure>
897+
</div>
898+
899+
<p class="note">
900+
Brief discussion: what makes the illusion work? How sensitive is it to guidance scale / steps / noise schedule?
901+
<!-- TODO -->
902+
</p>
903+
</div>
904+
</section>
905+
906+
<!-- ========================================================= -->
907+
<!-- Part 1.9: Hybrid Images -->
908+
<!-- ========================================================= -->
909+
<section id="part-1-9">
910+
<h2>Part 1.9 – Hybrid Images</h2>
911+
912+
<div class="subsection">
913+
<h3>1.9.1 – Code: make_hybrids</h3>
914+
<pre><code># TODO
915+
# def make_hybrids(
916+
# image_a,
917+
# image_b,
918+
# lowpass_sigma=...,
919+
# highpass_sigma=...,
920+
# blend_weight=...,
921+
# ):
922+
# """
923+
# Returns:
924+
# hybrid: torch.Tensor or np.ndarray (document your format)
925+
# low_freq: low-frequency component (optional)
926+
# high_freq: high-frequency component (optional)
927+
# """
928+
# # TODO</code></pre>
929+
930+
<p class="note">
931+
Notes: describe your filter choice (Gaussian blur / FFT), the cutoff frequencies (sigmas),
932+
and how you combined low/high frequency components. <!-- TODO -->
933+
</p>
934+
</div>
935+
936+
<div class="subsection">
937+
<h3>1.9.2 – Two Hybrid Images</h3>
938+
<p>
939+
Each hybrid image should look like Image A up close (high frequencies) and Image B from far away
940+
(low frequencies), or vice versa. Include the two source images and the resulting hybrid.
941+
</p>
942+
943+
<h4>Hybrid 1</h4>
944+
<p>
945+
<strong>Image A (high freq / close):</strong> <em><!-- TODO: describe A --></em><br/>
946+
<strong>Image B (low freq / far):</strong> <em><!-- TODO: describe B --></em>
947+
</p>
948+
<div class="image-row">
949+
<figure>
950+
<img src="images/part1_9_hybrid1_sourceA.png" alt="Hybrid 1 source A" />
951+
<figcaption>Hybrid 1 – Source A</figcaption>
952+
</figure>
953+
<figure>
954+
<img src="images/part1_9_hybrid1_sourceB.png" alt="Hybrid 1 source B" />
955+
<figcaption>Hybrid 1 – Source B</figcaption>
956+
</figure>
957+
<figure>
958+
<img src="images/part1_9_hybrid1_result.png" alt="Hybrid 1 result" />
959+
<figcaption>Hybrid 1 – Result</figcaption>
960+
</figure>
961+
</div>
962+
963+
<h4>Hybrid 2</h4>
964+
<p>
965+
<strong>Image A (high freq / close):</strong> <em><!-- TODO: describe A --></em><br/>
966+
<strong>Image B (low freq / far):</strong> <em><!-- TODO: describe B --></em>
967+
</p>
968+
<div class="image-row">
969+
<figure>
970+
<img src="images/part1_9_hybrid2_sourceA.png" alt="Hybrid 2 source A" />
971+
<figcaption>Hybrid 2 – Source A</figcaption>
972+
</figure>
973+
<figure>
974+
<img src="images/part1_9_hybrid2_sourceB.png" alt="Hybrid 2 source B" />
975+
<figcaption>Hybrid 2 – Source B</figcaption>
976+
</figure>
977+
<figure>
978+
<img src="images/part1_9_hybrid2_result.png" alt="Hybrid 2 result" />
979+
<figcaption>Hybrid 2 – Result</figcaption>
980+
</figure>
981+
</div>
982+
983+
<p class="note">
984+
Optional: include frequency visualizations or intermediate components (low/high pass) if you computed them.
985+
<!-- TODO -->
986+
</p>
987+
</div>
832988
</section>
833989

834990
</body>

0 commit comments

Comments
 (0)