File size: 6,829 Bytes
f848d35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9943f34
f848d35
 
 
 
 
 
 
 
 
791a5a0
 
f848d35
9943f34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f848d35
 
 
 
9943f34
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class HairstyleRecommendation:
    def __init__(self):
        self.hairstyle_recommendations = {
            'male': {
                    'Oval': ['Pompadour', 'Quiff', 'Classic Tapered Cut'],
                    'Diamond': ['Side Swept Bangs', 'Messy Textured Top', 'Classic Tapered Cut'],
                    'Square': ['Side-Parted Undercut', 'Textured Crop', 'Medium-Length Waves'],
                    'Triangle': ['Textured Fringe', 'Classic Side Part', 'Medium-Length Textured'],
                    'Oblong': ['Classic Short Back', 'Long Comb Over', 'Messy Textured Fringe'],
                    'Round': ['Textured Quiff', 'Undercut with Textured Comb Over', 'Slicked Back']
                    },
            'female': {
                    'Oval': ['Long Layers with Side-Swept Bangs', 'Soft Waves', 'Bob Hair Cut'],
                    'Diamond': ['Layered Pixie Cut', 'Asymmetrical Long Hair', 'Layered Shag Cut'],
                    'Square': ['Shoulder-Length Bob', 'Textured Pixie Cut', 'Layered Shaggy Cut'],
                    'Triangle': ['Long Layers with Volume on Top', 'Medium-Length Waves', 'Pixie Cut with Soft Fringe'],
                    'Oblong': ['Layered Pixie Cut', 'Long Bob', 'Side-Swept Bangs'],
                    'Round': ['High Ponytail', 'Asymmetrical Bob', 'Curtain Bangs']
        }}
        self.hairstyle_images = {
            'male': {
                'Oval': ['pompadour.jpg', 'quiff.jpg', 'classic_tapered_cut.jpg'],
                'Diamond': ['side_swept_bangs.jpg', 'messy_textured_top.jpg', 'classic_tapered_cut.jpg'],
                'Square': ['side_part_undercut.jpg', 'textured_crop.jpg', 'medium_length_wave.jpg'],
                'Triangle': ['textured_fringe.jpg', 'classic_side_part.jpg', 'medium_length_textured.jpg'],
                'Oblong': ['classic_short_back.jpg', 'long_comb_over.jpg', 'messy_textured_fringe.jpg'],
                'Round': ['textured_quiff.jpg', 'undercut_with_textured_comb_over.jpg', 'slicked_back.jpg']
            },
            'female': {
                'Oval': ['long_layers_with_swept_bangs.jpg', 'soft_waves.jpg', 'bob_hair_cut.jpg'],
                'Diamond': ['layered_pixie_cut.jpg', 'asymmetrical_long_hair.jpg', 'layered_shag_cut.jpg'],
                'Square': ['should_length_bob.jpg', 'textured_pixie_cut.jpg', 'layered_shaggy_cut.jpg'],
                'Triangle': ['long_layers_with_volume_on_top.jpg', 'medium_length_wave.jpg', 'pixie_cut_with_soft_fringe.jpg'],
                'Oblong': ['bob_hair_cut.jpg', 'pixie_cut.jpg', 'long_hair_pony_tail.jpg'],
                'Round':  ['tucked_behind_ear.jpg', 'soft_waves.jpg', 'half_up_bun_cut.jpg']
            }}
        
        self.hairstyle_description = {
            'male' : {
                'Oval' : ['Rambut pompadour: klasik, elegan, retro, keanggunan yang abadi','Quiff: bergaya, mengangkat, sempurna untuk kepercayaan diri','Classic Tapered Cut: Rapi, maskulin, serbaguna, penampilan timeless'],
                'Diamond': ['Side Swept Bangs: Anggun, romantis, feminin, menyentuh hati dengan lembut', 'Messy Textured Top: Kreatif, bebas, stylish, tampilan kasual yang berkelas', 'Classic Tapered Cut: Rapi, maskulin, serbaguna, penampilan timeless'],
                'Square': ['Side Part Undercut: Modern, edgy, kontras, gaya yang berani dan tajam','Textured Crop: Trendi, dinamis, nyaman, gaya rambut yang berkelas', 'Medium Length Waves: Natural, versatile, effortless, chic beachy vibes'],
                'Triangle' : ['Textured Fringe: Poni ber tekstur, gaya modern dan ekspresif dengan sentuhan dinamis','Classic Side Part: Gaya klasik dengan sentuhan rapi dan elegan','Medium Length Textured: Panjang sedang, tampilan ber tekstur yang stylish dan modern'],
                'Oblong': ['Classic Short Back: Potongan belakang pendek yang timeless dan elegan', 'Long Comb Over: Gaya tata rambut panjang yang rapi dan berkelas', 'Messy Textured Fringe: Poni berantakan dengan tekstur, menciptakan tampilan yang kasual dan modis'],
                'Round': ['Textured Quiff: Gaya quiff dengan sentuhan tekstur, menciptakan tampilan yang berani dan modern', 'Undercut with Textured Comb Over: Gaya undercut dengan tata rambut comb over ber tekstur, menciptakan penampilan yang edgy dan stylish','Slicked Back: Tatanan rambut rapi, elegan, dan berkelas dengan kesan tersisir ke belakang']
            },
            'female' : {
                'Oval': ['Long Layers with Swept Bangs: Potongan panjang bertingkat dengan poni yang digelung ke samping, menciptakan tampilan yang anggun dan modern', 'Soft Waves: Gelombang lembut, menciptakan tampilan rambut yang feminin dan elegan', 'Bob Hair Cut: Potongan rambut bob, simpel, modern, dan serbaguna'],
                'Diamong': ['Layered Pixie Cut: Potongan pixie bertingkat, modis, dan memberikan dimensi pada tampilan rambut pendek','Asymmetrical Long Hair: Rambut panjang tidak simetris, menciptakan tampilan yang unik dan berani', 'Layered Shag Cut: Potongan rambut shag bertingkat, menciptakan tampilan yang berantakan namun tetap modis dan kasual'],
                'Square': ['Shoulder-Length Bob: Potongan bob sejajar bahu, gaya modern yang nyaman dan serbaguna', 'Textured Pixie Cut: Potongan pixie ber tekstur, menciptakan tampilan yang edgy dan modern dengan sentuhan dinamis', 'Layered Shag Cut: Potongan rambut shag bertingkat, menciptakan tampilan yang berantakan namun tetap modis dan kasual'],
                'Triangle': ['Long Layers with Volume on Top: Rambut panjang bertingkat dengan volume di bagian atas, menciptakan tampilan yang berdimensi dan bervolume', 'Medium Length Wave: Gelombang pada rambut sedang, menciptakan tampilan yang alami dan anggun', 'Pixie Cut with Soft Fringe: Potongan pixie dengan poni lembut, tampilan yang berani namun feminin'],
                'Oblong': ['Bob Hair Cut: Potongan rambut bob, tampilan yang simpel, elegan, dan selalu modis','Pixie Cut: Potongan pixie, tampilan yang singkat, dinamis, dan penuh gaya', 'Long Hair Ponytail: Rambut panjang yang diikat menjadi ekor kuda, tampilan sederhana namun tetap rapi dan nyaman'],
                'Round': ['Tucked Behind Ear: Gaya rambut dengan rambut diselipkan di belakang telinga, menciptakan tampilan yang bersih dan elegan', 'Soft Waves: Gelombang lembut, memberi kesan anggun dan romantis pada tatanan rambut', 'Half Up Bun Cut: Tatanan setengah ikat dengan bentuk bun, menciptakan penampilan yang santai namun modis']
            }
        }

    def get_recommendation(self, gender, face_shape):
        recommended_styles = self.hairstyle_recommendations[gender][face_shape]
        style_images = self.hairstyle_images[gender][face_shape]
        hairstyle_description = self.hairstyle_description[gender][face_shape]
        return recommended_styles, style_images, hairstyle_description