diff --git a/DebugImages/Images/img4.jpg b/DebugImages/Images/img4.jpg new file mode 100644 index 0000000..98ab2c8 Binary files /dev/null and b/DebugImages/Images/img4.jpg differ diff --git a/DebugImages/Images/img4.png b/DebugImages/Images/img4.png new file mode 100644 index 0000000..5364d30 Binary files /dev/null and b/DebugImages/Images/img4.png differ diff --git a/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.45.58 PM.png b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.45.58 PM.png new file mode 100644 index 0000000..97e8339 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.45.58 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.14 PM.png b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.14 PM.png new file mode 100644 index 0000000..5c3dbe3 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.14 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.33 PM.png b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.33 PM.png new file mode 100644 index 0000000..59eaaf5 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.33 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.47 PM.png b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.47 PM.png new file mode 100644 index 0000000..ee42008 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.46.47 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.01 PM.png b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.01 PM.png new file mode 100644 index 0000000..5d4ae6c Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.01 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.14 PM.png b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.14 PM.png new file mode 100644 index 0000000..06e835c Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.14 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.22 PM.png b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.22 PM.png new file mode 100644 index 0000000..ce7ccf1 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test1/Screenshot 2023-04-28 at 4.47.22 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.15 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.15 PM.png new file mode 100644 index 0000000..be1b917 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.15 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.31 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.31 PM.png new file mode 100644 index 0000000..709eac4 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.31 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.38 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.38 PM.png new file mode 100644 index 0000000..c3597dc Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.05.38 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.01 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.01 PM.png new file mode 100644 index 0000000..6e9fe32 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.01 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.22 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.22 PM.png new file mode 100644 index 0000000..1bfd2c8 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.22 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.30 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.30 PM.png new file mode 100644 index 0000000..633ed9b Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.30 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.38 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.38 PM.png new file mode 100644 index 0000000..3677eaf Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.38 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.43 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.43 PM.png new file mode 100644 index 0000000..362ee04 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.43 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.53 PM.png b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.53 PM.png new file mode 100644 index 0000000..786c5d7 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test2/Screenshot 2023-04-29 at 4.06.53 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.15.35 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.15.35 PM.png new file mode 100644 index 0000000..6ed0a3e Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.15.35 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.15.57 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.15.57 PM.png new file mode 100644 index 0000000..54c0d97 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.15.57 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.14 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.14 PM.png new file mode 100644 index 0000000..abd6fcf Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.14 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.31 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.31 PM.png new file mode 100644 index 0000000..2d7ddf7 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.31 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.40 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.40 PM.png new file mode 100644 index 0000000..f556c6a Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.40 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.55 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.55 PM.png new file mode 100644 index 0000000..0064082 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.16.55 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.17.14 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.17.14 PM.png new file mode 100644 index 0000000..2ec5c86 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.17.14 PM.png differ diff --git a/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.17.59 PM.png b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.17.59 PM.png new file mode 100644 index 0000000..33f3325 Binary files /dev/null and b/DebugImages/TargetClothes/Jackets/test3/Screenshot 2023-04-28 at 2.17.59 PM.png differ diff --git a/DebugImages/TargetClothes/test1/1.jpeg b/DebugImages/TargetClothes/Shirts/test1/1.jpeg similarity index 100% rename from DebugImages/TargetClothes/test1/1.jpeg rename to DebugImages/TargetClothes/Shirts/test1/1.jpeg diff --git a/DebugImages/TargetClothes/test1/2.jpeg b/DebugImages/TargetClothes/Shirts/test1/2.jpeg similarity index 100% rename from DebugImages/TargetClothes/test1/2.jpeg rename to DebugImages/TargetClothes/Shirts/test1/2.jpeg diff --git a/DebugImages/TargetClothes/test1/3.jpeg b/DebugImages/TargetClothes/Shirts/test1/3.jpeg similarity index 100% rename from DebugImages/TargetClothes/test1/3.jpeg rename to DebugImages/TargetClothes/Shirts/test1/3.jpeg diff --git a/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.34.37 AM.png b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.34.37 AM.png new file mode 100644 index 0000000..43950ef Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.34.37 AM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.34.56 AM.png b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.34.56 AM.png new file mode 100644 index 0000000..3dc1503 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.34.56 AM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.35.08 AM.png b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.35.08 AM.png new file mode 100644 index 0000000..22b7811 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.35.08 AM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.35.15 AM.png b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.35.15 AM.png new file mode 100644 index 0000000..7b2a222 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test2/Screenshot 2023-04-29 at 10.35.15 AM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test2/a.png b/DebugImages/TargetClothes/Shirts/test2/a.png new file mode 100644 index 0000000..c20e5f1 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test2/a.png differ diff --git a/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.10.19 PM.png b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.10.19 PM.png new file mode 100644 index 0000000..de4b290 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.10.19 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.10.37 PM.png b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.10.37 PM.png new file mode 100644 index 0000000..a1ed7d0 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.10.37 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.00 PM.png b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.00 PM.png new file mode 100644 index 0000000..9b3045c Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.00 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.24 PM.png b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.24 PM.png new file mode 100644 index 0000000..7f7a1c5 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.24 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.39 PM.png b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.39 PM.png new file mode 100644 index 0000000..bed05d5 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.11.39 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.12.14 PM.png b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.12.14 PM.png new file mode 100644 index 0000000..695b4b8 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test3/Screenshot 2023-04-28 at 6.12.14 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.53.31 PM.png b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.53.31 PM.png new file mode 100644 index 0000000..f5b68e2 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.53.31 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.53.50 PM.png b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.53.50 PM.png new file mode 100644 index 0000000..0a828ee Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.53.50 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.09 PM.png b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.09 PM.png new file mode 100644 index 0000000..06ede9a Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.09 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.17 PM.png b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.17 PM.png new file mode 100644 index 0000000..7d5518f Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.17 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.34 PM.png b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.34 PM.png new file mode 100644 index 0000000..e232807 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.34 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.48 PM.png b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.48 PM.png new file mode 100644 index 0000000..649233b Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.54.48 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.55.00 PM.png b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.55.00 PM.png new file mode 100644 index 0000000..581467c Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test4/Screenshot 2023-04-28 at 11.55.00 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.25 PM.png b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.25 PM.png new file mode 100644 index 0000000..88da4e4 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.25 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.42 PM.png b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.42 PM.png new file mode 100644 index 0000000..15b1be1 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.42 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.53 PM.png b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.53 PM.png new file mode 100644 index 0000000..d3fa351 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.35.53 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.05 PM.png b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.05 PM.png new file mode 100644 index 0000000..f001a18 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.05 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.22 PM.png b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.22 PM.png new file mode 100644 index 0000000..4eb72a0 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.22 PM.png differ diff --git a/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.36 PM.png b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.36 PM.png new file mode 100644 index 0000000..8d6f431 Binary files /dev/null and b/DebugImages/TargetClothes/Shirts/test5/Screenshot 2023-04-28 at 11.36.36 PM.png differ diff --git a/ResultsPredictions/Jackets/test1/jacket_test1img1.jpg b/ResultsPredictions/Jackets/test1/jacket_test1img1.jpg new file mode 100644 index 0000000..12975f1 Binary files /dev/null and b/ResultsPredictions/Jackets/test1/jacket_test1img1.jpg differ diff --git a/ResultsPredictions/Jackets/test1/jacket_test1img2.jpg b/ResultsPredictions/Jackets/test1/jacket_test1img2.jpg new file mode 100644 index 0000000..a159a0c Binary files /dev/null and b/ResultsPredictions/Jackets/test1/jacket_test1img2.jpg differ diff --git a/ResultsPredictions/Jackets/test1/jacket_test1img3.jpg b/ResultsPredictions/Jackets/test1/jacket_test1img3.jpg new file mode 100644 index 0000000..49f8bba Binary files /dev/null and b/ResultsPredictions/Jackets/test1/jacket_test1img3.jpg differ diff --git a/ResultsPredictions/Jackets/test1/jacket_test1img4.jpg b/ResultsPredictions/Jackets/test1/jacket_test1img4.jpg new file mode 100644 index 0000000..f5342c6 Binary files /dev/null and b/ResultsPredictions/Jackets/test1/jacket_test1img4.jpg differ diff --git a/ResultsPredictions/Jackets/type2/jacket_test2img1.jpg b/ResultsPredictions/Jackets/type2/jacket_test2img1.jpg new file mode 100644 index 0000000..d8e490c Binary files /dev/null and b/ResultsPredictions/Jackets/type2/jacket_test2img1.jpg differ diff --git a/ResultsPredictions/Jackets/type2/jacket_test2img2.jpg b/ResultsPredictions/Jackets/type2/jacket_test2img2.jpg new file mode 100644 index 0000000..26dfa5e Binary files /dev/null and b/ResultsPredictions/Jackets/type2/jacket_test2img2.jpg differ diff --git a/ResultsPredictions/Jackets/type2/jacket_test2img3.jpg b/ResultsPredictions/Jackets/type2/jacket_test2img3.jpg new file mode 100644 index 0000000..a92c48f Binary files /dev/null and b/ResultsPredictions/Jackets/type2/jacket_test2img3.jpg differ diff --git a/ResultsPredictions/Jackets/type2/jacket_test2img4.jpg b/ResultsPredictions/Jackets/type2/jacket_test2img4.jpg new file mode 100644 index 0000000..019fb84 Binary files /dev/null and b/ResultsPredictions/Jackets/type2/jacket_test2img4.jpg differ diff --git a/ResultsPredictions/Shirt/test1/shirt_test1img1.jpg b/ResultsPredictions/Shirt/test1/shirt_test1img1.jpg new file mode 100644 index 0000000..e3837ab Binary files /dev/null and b/ResultsPredictions/Shirt/test1/shirt_test1img1.jpg differ diff --git a/ResultsPredictions/Shirt/test1/shirt_test1img2.jpg b/ResultsPredictions/Shirt/test1/shirt_test1img2.jpg new file mode 100644 index 0000000..36538ec Binary files /dev/null and b/ResultsPredictions/Shirt/test1/shirt_test1img2.jpg differ diff --git a/ResultsPredictions/Shirt/test1/shirt_test1img3.jpg b/ResultsPredictions/Shirt/test1/shirt_test1img3.jpg new file mode 100644 index 0000000..c92acf8 Binary files /dev/null and b/ResultsPredictions/Shirt/test1/shirt_test1img3.jpg differ diff --git a/ResultsPredictions/Shirt/test1/shirt_test1img4.jpg b/ResultsPredictions/Shirt/test1/shirt_test1img4.jpg new file mode 100644 index 0000000..0ef83ca Binary files /dev/null and b/ResultsPredictions/Shirt/test1/shirt_test1img4.jpg differ diff --git a/ResultsPredictions/Shirt/test2/shirt_test2img1.jpg b/ResultsPredictions/Shirt/test2/shirt_test2img1.jpg new file mode 100644 index 0000000..a5b301a Binary files /dev/null and b/ResultsPredictions/Shirt/test2/shirt_test2img1.jpg differ diff --git a/ResultsPredictions/Shirt/test2/shirt_test2img2.jpg b/ResultsPredictions/Shirt/test2/shirt_test2img2.jpg new file mode 100644 index 0000000..f0a5e9c Binary files /dev/null and b/ResultsPredictions/Shirt/test2/shirt_test2img2.jpg differ diff --git a/ResultsPredictions/Shirt/test2/shirt_test2img3.jpg b/ResultsPredictions/Shirt/test2/shirt_test2img3.jpg new file mode 100644 index 0000000..c62a56f Binary files /dev/null and b/ResultsPredictions/Shirt/test2/shirt_test2img3.jpg differ diff --git a/ResultsPredictions/Shirt/test2/shirt_test2img4.jpg b/ResultsPredictions/Shirt/test2/shirt_test2img4.jpg new file mode 100644 index 0000000..1026704 Binary files /dev/null and b/ResultsPredictions/Shirt/test2/shirt_test2img4.jpg differ diff --git a/ResultsPredictions/Shirt/test3/shirt_test3img1.jpg b/ResultsPredictions/Shirt/test3/shirt_test3img1.jpg new file mode 100644 index 0000000..463c97f Binary files /dev/null and b/ResultsPredictions/Shirt/test3/shirt_test3img1.jpg differ diff --git a/ResultsPredictions/Shirt/test3/shirt_test3img2.jpg b/ResultsPredictions/Shirt/test3/shirt_test3img2.jpg new file mode 100644 index 0000000..5d0523c Binary files /dev/null and b/ResultsPredictions/Shirt/test3/shirt_test3img2.jpg differ diff --git a/ResultsPredictions/Shirt/test3/shirt_test3img3.jpg b/ResultsPredictions/Shirt/test3/shirt_test3img3.jpg new file mode 100644 index 0000000..281e33f Binary files /dev/null and b/ResultsPredictions/Shirt/test3/shirt_test3img3.jpg differ diff --git a/ResultsPredictions/Shirt/test3/shirt_test3img4.jpg b/ResultsPredictions/Shirt/test3/shirt_test3img4.jpg new file mode 100644 index 0000000..365c456 Binary files /dev/null and b/ResultsPredictions/Shirt/test3/shirt_test3img4.jpg differ diff --git a/ResultsPredictions/Shirt/test4/shirt_test4img1.jpg b/ResultsPredictions/Shirt/test4/shirt_test4img1.jpg new file mode 100644 index 0000000..b8aac97 Binary files /dev/null and b/ResultsPredictions/Shirt/test4/shirt_test4img1.jpg differ diff --git a/ResultsPredictions/Shirt/test4/shirt_test4img2.jpg b/ResultsPredictions/Shirt/test4/shirt_test4img2.jpg new file mode 100644 index 0000000..4ee249b Binary files /dev/null and b/ResultsPredictions/Shirt/test4/shirt_test4img2.jpg differ diff --git a/ResultsPredictions/Shirt/test4/shirt_test4img3.jpg b/ResultsPredictions/Shirt/test4/shirt_test4img3.jpg new file mode 100644 index 0000000..cd81f41 Binary files /dev/null and b/ResultsPredictions/Shirt/test4/shirt_test4img3.jpg differ diff --git a/ResultsPredictions/Shirt/test4/shirt_test4img4.jpg b/ResultsPredictions/Shirt/test4/shirt_test4img4.jpg new file mode 100644 index 0000000..9f7ed99 Binary files /dev/null and b/ResultsPredictions/Shirt/test4/shirt_test4img4.jpg differ diff --git a/ResultsPredictions/Shirt/test5/shirt_test5img1.jpg b/ResultsPredictions/Shirt/test5/shirt_test5img1.jpg new file mode 100644 index 0000000..7d11d68 Binary files /dev/null and b/ResultsPredictions/Shirt/test5/shirt_test5img1.jpg differ diff --git a/ResultsPredictions/Shirt/test5/shirt_test5img2.jpg b/ResultsPredictions/Shirt/test5/shirt_test5img2.jpg new file mode 100644 index 0000000..139dd0d Binary files /dev/null and b/ResultsPredictions/Shirt/test5/shirt_test5img2.jpg differ diff --git a/ResultsPredictions/Shirt/test5/shirt_test5img3.jpg b/ResultsPredictions/Shirt/test5/shirt_test5img3.jpg new file mode 100644 index 0000000..aa87320 Binary files /dev/null and b/ResultsPredictions/Shirt/test5/shirt_test5img3.jpg differ diff --git a/ResultsPredictions/Shirt/test5/shirt_test5img4.jpg b/ResultsPredictions/Shirt/test5/shirt_test5img4.jpg new file mode 100644 index 0000000..5d9a42b Binary files /dev/null and b/ResultsPredictions/Shirt/test5/shirt_test5img4.jpg differ diff --git a/VirtualTryOn/data.py b/VirtualTryOn/data.py index 6eff88d..0cb1e40 100644 --- a/VirtualTryOn/data.py +++ b/VirtualTryOn/data.py @@ -120,6 +120,7 @@ def __getitem__(self, index): from HumanParser import HumanParser from .utils import * import albumentations as A +from transformers import CLIPSegProcessor, CLIPSegForImageSegmentation def MakeDir(path): if (not os.path.exists(path)): @@ -143,8 +144,12 @@ def __init__(self, instance_dir, save_dir, target_number = 20) -> None: print ("Number of Images to be generated : " + str(target_number)) self.transform = A.Compose([ A.HorizontalFlip(p=0.5), - A.Affine(scale=(0.2, 1.0), rotate = (-45, 45), translate_percent = 0.05, keep_ratio = True) - ]) + A.Affine(scale=(0.1, 0.5), translate_percent = 0.05, keep_ratio = True) + ]) + + self.processor = CLIPSegProcessor.from_pretrained("CIDAS/clipseg-rd64-refined") + self.model = CLIPSegForImageSegmentation.from_pretrained("CIDAS/clipseg-rd64-refined") + print ("-------------------------------------- \n") def reset(self): @@ -160,13 +165,28 @@ def create_augmentation(self, img, save_idx): self.c += 1 c += 1 + def clipseg_masks(self, img): + size = img.shape[:2] + prompts = ["clothes"] + inputs = self.processor(text=prompts, images=[img] * len(prompts), padding="max_length", return_tensors="pt") + # predict + with torch.no_grad(): + outputs = model(**inputs) + preds = torch.sigmoid(outputs.logits) > 0.5 + preds = preds.numpy().astype(np.uint8) * 255 + preds = cv2.resize(preds, size) + preds = cv2.cvtColor(preds, cv2.COLOR_GRAY2RGB) + # preds = Image.fromarray(preds) + return preds + def create(self): print ("Creating Dataset!!") self.reset() for idx, imf in enumerate(self.all_imf): img = read_img_rgb(imf, resize = (512, 512)) - masked_img, cloth_mask = self.human_parser.infer(img) + # masked_img, cloth_mask = self.human_parser.infer(img) + cloth_mask = self.clipseg_masks(img) cloth_img = img * (cloth_mask/255.0) # cloth_img = cloth_img + ([255,255,255] - cloth_mask) non_zero_points = np.argwhere(cloth_mask) diff --git a/VirtualTryOn/inference.py b/VirtualTryOn/inference.py index fd1e383..d5a415e 100644 --- a/VirtualTryOn/inference.py +++ b/VirtualTryOn/inference.py @@ -38,40 +38,102 @@ def __init__(self, model_path, self.guidance_scale = guidance_scale self.seed = seed print ("---------------------------------------") + + def reset(self): + self.oh = None + self.ow = None + self.rxmin = None + self.rymin = None + self.rh = None + self.rw = None + + def preprocess(self, img, masked_img, cloth_mask): + h,w = img.shape[:2] + offset = 10 + non_zero_points = np.argwhere(cloth_mask) + min_x = np.min(non_zero_points[:, 1]) - offset + max_x = np.max(non_zero_points[:, 1]) + offset + min_y = np.min(non_zero_points[:, 0]) - offset + max_y = np.max(non_zero_points[:, 0]) + offset + min_x = 0 if min_x < 0 else min_x + min_y = 0 if min_y < 0 else min_y + max_x = w-1 if max_x > w-1 else max_x + max_y = h-1 if max_y > h-1 else max_y + self.rxmin = min_x + self.rymin = min_y + img = img[min_y: max_y, min_x: max_x] + masked_img = masked_img[min_y: max_y, min_x: max_x] + cloth_mask = cloth_mask[min_y: max_y, min_x: max_x] + new_height = max_y - min_y + new_width = max_x - min_x + self.rh = new_height + self.rw = new_width + + masked_img[masked_img == 0] = 255.0 + masked_img = masked_img.astype(np.uint8) + + img = cv2.resize(img, (512, 512)) + masked_img = cv2.resize(masked_img, (512,512)) + cloth_mask = cv2.resize(cloth_mask, (512, 512)) + + return img, masked_img, cloth_mask + + def postprocess(self, pred_image, img, pimg, pcloth_mask): + print (pred_image.shape) + print (pimg.shape) + print (pcloth_mask.shape) + pimg[pcloth_mask[:,:,0]==255] = pred_image[pcloth_mask[:,:,0]==255] + pimg = cv2.resize(pimg, (self.rw, self.rh)) + img[self.rymin:self.rymin+self.rh , self.rxmin:self.rxmin+self.rw] = pimg + cv2.imwrite("./pimg.jpg", img) + img = cv2.resize(img, (self.ow, self.oh), interpolation = cv2.INTER_CUBIC) + return img + + def _inference(self, pimg, pmasked_img, pcloth_mask, meta_prompt): + pimg, pmasked_img, pcloth_mask = convert_numpy_to_PIL([pimg, pmasked_img, pcloth_mask]) + print ("Running the model!") + new_img = self.model( + prompt = meta_prompt, + image = pimg if self.run_on == "original" else pmasked_img, + mask_image = pcloth_mask, + num_inference_steps = self.num_inference_steps, + guidance_scale = self.guidance_scale, + generator=torch.Generator(device=self.device).manual_seed(self.seed) + ).images[0] + + + final_image = np.array(new_img) + return final_image def infer(self, person_img_path = None, meta_prompt = None): + print ("Doing Inference ::: ") + print ("Person Image Path : " + str(person_img_path)) + print ("Meta Prompt : " + str(meta_prompt)) + if (person_img_path is None or meta_prompt is None): print ("Please provide all inputs for generating Inference!") return None - img = read_img_rgb(person_img_path, resize = (512, 512)) + img = read_img_rgb(person_img_path) + self.oh, self.ow = img.shape[:2] + img = cv2.resize(img, (512, 512)) masked_img, cloth_mask = self.human_parser.infer(img) img = img.astype(np.uint8) masked_img = masked_img.astype(np.uint8) cloth_mask = cloth_mask.astype(np.uint8) - cv2.imwrite("./masked_img1.jpg", masked_img) - masked_img = img * (cloth_mask/255) - masked_img = (masked_img/255) + (1 - (cloth_mask/255)) - masked_img = masked_img * 255.0 - masked_img = masked_img.astype(np.uint8) - cv2.imwrite("./masked_img.jpg", masked_img) - # exit() + # cv2.imwrite("./Img.jpg", img) + # cv2.imwrite("./Img1.jpg", masked_img) + # cv2.imwrite("./Img2.jpg", cloth_mask) - - img, masked_img, cloth_mask = convert_numpy_to_PIL([img, masked_img, cloth_mask]) - print ("Running the model!") - new_img = self.model( - prompt = meta_prompt, - image = img if self.run_on == "original" else masked_img, - mask_image = cloth_mask, - num_inference_steps = self.num_inference_steps, - guidance_scale = self.guidance_scale, - generator=torch.Generator(device=self.device).manual_seed(self.seed) - ).images[0] + pimg, pmasked_img, pcloth_mask = self.preprocess(img, masked_img, cloth_mask) + cv2.imwrite("./AImg.jpg", pimg) + cv2.imwrite("./AImg1.jpg", pmasked_img) + cv2.imwrite("./AImg2.jpg", pcloth_mask) - - final_image = np.array(new_img) + + final_image = self._inference(pimg, pmasked_img, pcloth_mask, meta_prompt) + final_image = self.postprocess(final_image, img, pimg, pcloth_mask) # # Refinement Process # img, cloth_mask = convert_PIL_to_numpy([img, cloth_mask]) diff --git a/VirtualTryOn/train.py b/VirtualTryOn/train.py index 6eb73b6..4228fd1 100644 --- a/VirtualTryOn/train.py +++ b/VirtualTryOn/train.py @@ -196,8 +196,8 @@ def collate_fn(examples): pil_image = example["PIL_images"] pil_image.save("./check.jpg") - mask = clipseg_masks(pil_image) # generate a random mask - # mask = random_mask(pil_image.size, 1, False) # generate a random mask + # mask = clipseg_masks(pil_image) # generate a random mask + mask = random_mask(pil_image, pil_image.size, 1, False) # generate a random mask mask.save("./check1.jpg") mask, masked_image = prepare_mask_and_masked_image(pil_image, mask) # prepare mask and masked image diff --git a/VirtualTryOn/utils.py b/VirtualTryOn/utils.py index 141a2f9..45a02f8 100644 --- a/VirtualTryOn/utils.py +++ b/VirtualTryOn/utils.py @@ -8,6 +8,7 @@ processor = CLIPSegProcessor.from_pretrained("CIDAS/clipseg-rd64-refined") model = CLIPSegForImageSegmentation.from_pretrained("CIDAS/clipseg-rd64-refined") + def clipseg_masks(img): size = img.size prompts = ["clothes"] @@ -22,8 +23,18 @@ def clipseg_masks(img): return preds # generate random masks -def random_mask(im_shape, ratio=1, mask_full_image=False): - mask = Image.new("L", im_shape, 0) +def random_mask(img, im_shape, ratio=1, mask_full_image=False): + size = img.size + prompts = ["clothes"] + inputs = processor(text=prompts, images=[img] * len(prompts), padding="max_length", return_tensors="pt") + # predict + with torch.no_grad(): + outputs = model(**inputs) + preds = torch.sigmoid(outputs.logits) > 0.5 + preds = preds.numpy().astype(np.uint8) * 255 + preds = cv2.resize(preds, size) + mask = Image.fromarray(preds) + # mask = Image.new("L", im_shape, 0) draw = ImageDraw.Draw(mask) size = (random.randint(0, int(im_shape[0] * ratio)), random.randint(0, int(im_shape[1] * ratio))) # use this to always mask the whole image diff --git a/infer.sh b/infer.sh new file mode 100644 index 0000000..c21497e --- /dev/null +++ b/infer.sh @@ -0,0 +1,51 @@ +# Inference + +# python main.py \ +# --infer \ +# --img_path "./DebugImages/Images/img4.jpg"\ +# --model_dir "./Models/Shirts/test1/"\ +# --prompt "UBIAA shirt"\ +# --infer_output "./ResultsPredictions/" \ +# --infer_output_prefix "shirt_test1" + +# python main.py \ +# --infer \ +# --img_path "./DebugImages/Images/img4.jpg"\ +# --model_dir "./Models/Shirts/test2/"\ +# --prompt "UBIAA shirt"\ +# --infer_output "./ResultsPredictions/" \ +# --infer_output_prefix "shirt_test2" + +# python main.py \ +# --infer \ +# --img_path "./DebugImages/Images/img4.jpg"\ +# --model_dir "./Models/Shirts/test4/"\ +# --prompt "UBIAA shirt"\ +# --infer_output "./ResultsPredictions/" \ +# --infer_output_prefix "shirt_test4" + + +# python main.py \ +# --infer \ +# --img_path "./DebugImages/Images/img4.jpg"\ +# --model_dir "./Models/Shirts/test5/"\ +# --prompt "UBIAA shirt"\ +# --infer_output "./ResultsPredictions/" \ +# --infer_output_prefix "shirt_test5" + +# python main.py \ +# --infer \ +# --img_path "./DebugImages/Images/img1.jpg"\ +# --model_dir "./Models/Jackets/test1/"\ +# --prompt "JACKUUO jacket"\ +# --infer_output "./ResultsPredictions/" \ +# --infer_output_prefix "jacket_test1" + +python main.py \ + --infer \ + --img_path "./DebugImages/Images/img2.jpg"\ + --model_dir "./Models/Jackets/test3/"\ + --prompt "JACKUUO jacket"\ + --infer_output "./ResultsPredictions/" \ + --infer_output_prefix "jacket_test3" + diff --git a/main.py b/main.py index 713705d..cbd6e69 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,14 @@ import cv2 from VirtualTryOn import VirtualTryOnInference, VirtualTryOnTrain, get_config_default, DataCreation +import argparse +import os +def MakeDir(path): + if (not os.path.exists(path)): + os.mkdir(path) -def Train(model_name, output_dir, instance_dir, instance_prompt): +def Train(output_dir, instance_dir, instance_prompt): + model_name = "runwayml/stable-diffusion-inpainting" params = get_config_default() params.pretrained_model_name_or_path = model_name params.instance_data_dir = instance_dir @@ -15,52 +21,74 @@ def Train(model_name, output_dir, instance_dir, instance_prompt): params.lr_scheduler = "constant" params.lr_warmup_steps = 0 params.use_8bit_adam = True - params.max_train_steps = 300 + params.max_train_steps = 900 # params.train_text_encoder = True vt = VirtualTryOnTrain(params) vt.train() -def Inference(model_path, instance_prompt): - for idx in range(0, 10): - vt = VirtualTryOnInference( - model_path=model_path, - device = "cuda", - run_on="original", - num_inference_steps=50, - guidance_scale=10, - seed = idx - ) +def Inference(img_path, model_path, instance_prompt, output_path, prefix): + # for idx in range(0, 10): + idx = 0 + vt = VirtualTryOnInference( + model_path=model_path, + device = "cuda", + run_on="moriginal", + num_inference_steps=50, + guidance_scale=20, + seed = idx + ) + + MakeDir(output_path) + img_name = img_path.split("/")[-1].split(".")[-2] + prompt = instance_prompt + # img_path = "./DebugImages/Images/img2.jpg" + # # img_path = "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/Shirt3/a.png" + res_img = vt.infer(img_path, prompt) + cv2.imwrite(output_path + "/" + prefix + img_name + ".jpg", res_img) - prompt = instance_prompt - img_path = "./DebugImages/Images/img1.jpg" - # img_path = "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/Shirt3/a.png" - res_img = vt.infer(img_path, prompt) - cv2.imwrite("./res_" + str(idx) + ".jpg", res_img) -model_name = "runwayml/stable-diffusion-inpainting" -# instance_dir = "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/CheckShirt/" -# instance_dir = "./DataCreation/" -output_dir = "/data/Kaggle/StableDiff/Shirt_Outputs/" -instance_dir = "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/Shirt3/" -instance_prompt = "a photo of UBIAA shirt" +if (__name__ == "__main__"): + parser = argparse.ArgumentParser() + parser.add_argument("--train", help="do_training", action="store_true") + parser.add_argument("--infer", help="do_inference", action="store_true") + parser.add_argument("--instance_dir", help="instance dir", default=None) + parser.add_argument("--model_dir", help="model_dir", default=None) + parser.add_argument("--prompt", help="instance_prompt", default=None) + parser.add_argument("--img_path", help="image path", default=None) + parser.add_argument("--infer_output", help="infer output", default=None) + parser.add_argument("--infer_output_prefix", help="infer output", default="res") -# Train(model_name, output_dir, instance_dir, instance_prompt) -Inference( - model_path=output_dir, - instance_prompt=instance_prompt -) + args = parser.parse_args() + if args.train: + Train(output_dir = args.model_dir, + instance_dir = args.instance_dir, + instance_prompt = args.prompt + ) + if (args.infer): -# d = DataCreation( -# instance_dir= "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/Shirt3/", -# save_dir="./DataCreation/", -# target_number=100 -# ) + Inference( + img_path = args.img_path, + model_path=args.model_dir, + instance_prompt=args.prompt, + output_path=args.infer_output, + prefix = args.infer_output_prefix + ) -# d.create() + # # instance_dir = "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/Jackets/" + # instance_dir = "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/CheckShirt/" + # # instance_dir = "./DataCreation/" + # # instance_dir = "/home/user/anmol/StableDiff/d1/diffusers/examples/research_projects/dreambooth_inpaint/Shirt2/" -# exit() + # output_dir = "/data/Kaggle/StableDiff/Shirt_Outputs1/" + # instance_prompt = "UBIAA shirt" + # # instance_prompt = "UBIAA jacket, high resolution" + # # d = DataCreation( + # # instance_dir= instance_dir, + # # save_dir="./DataCreation/", + # # target_number=100 + # # ) -# instance_prompt = "UBIAA shirt" + # # d.create() diff --git a/train.sh b/train.sh new file mode 100644 index 0000000..ced9a2a --- /dev/null +++ b/train.sh @@ -0,0 +1,43 @@ +# python main.py \ +# --train \ +# --model_dir "./Models/Shirts/test1/"\ +# --prompt "UBIAA shirt"\ +# --instance_dir "./DebugImages/TargetClothes/Shirts/test1/" + + +# python main.py \ +# --train \ +# --model_dir "./Models/Shirts/test2/"\ +# --prompt "UBIAA shirt"\ +# --instance_dir "./DebugImages/TargetClothes/Shirts/test2/" + +# python main.py \ +# --train \ +# --model_dir "./Models/Shirts/test3/"\ +# --prompt "UBIAA shirt"\ +# --instance_dir "./DebugImages/TargetClothes/Shirts/test3/" + +# python main.py \ +# --train \ +# --model_dir "./Models/Shirts/test4/"\ +# --prompt "UBIAA shirt"\ +# --instance_dir "./DebugImages/TargetClothes/Shirts/test4/" + + +# python main.py \ +# --train \ +# --model_dir "./Models/Shirts/test5/"\ +# --prompt "UBIAA shirt"\ +# --instance_dir "./DebugImages/TargetClothes/Shirts/test5/" + +# python main.py \ +# --train \ +# --model_dir "./Models/Jackets/test2/"\ +# --prompt "JACKUUO jacket"\ +# --instance_dir "./DebugImages/TargetClothes/Jackets/test2/" + +python main.py \ + --train \ + --model_dir "./Models/Jackets/test3/"\ + --prompt "JACKUUO jacket"\ + --instance_dir "./DebugImages/TargetClothes/Jackets/test3/"