File size: 3,136 Bytes
c6c0d90
a170066
ec7fc1c
 
af4ca05
c6c0d90
a170066
af4ca05
 
c6c0d90
af4ca05
a170066
 
 
1d422fe
af4ca05
a170066
 
af4ca05
7dac684
c6c0d90
a170066
af4ca05
c6c0d90
af4ca05
ec7fc1c
af4ca05
98412a8
a170066
 
 
98e9086
a170066
 
 
af4ca05
a170066
af4ca05
 
 
a170066
 
af4ca05
a170066
af4ca05
 
 
04b8216
a170066
af4ca05
a170066
af4ca05
 
c6c0d90
 
a170066
 
 
 
 
 
 
 
 
 
af4ca05
7dac684
af4ca05
 
 
c6c0d90
af4ca05
 
 
 
98412a8
a170066
 
af4ca05
a170066
af4ca05
 
0bd8968
af4ca05
7dac684
a170066
 
7dac684
deffb42
a170066
af4ca05
a170066
 
af4ca05
a170066
 
 
04b8216
a170066
 
 
 
 
 
 
 
0d28f6f
f7a4cfb
7348be4
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import os
print("🚀 Starting AI Headshot Generator...")

import gradio as gr
import numpy as np

# Simple license system
ADMIN_KEYS = {"HEADSHOT-TEST123456", "HEADSHOT-OWNERACCESS"}
MAX_TRIALS = 3

def verify_license(key):
    if not key:
        return False
    return key.strip().upper() in ADMIN_KEYS

def generate_headshot(image, license_key):
    """Simple demo function"""
    # Check license
    if not verify_license(license_key):
        return np.zeros((512, 512, 3), dtype=np.uint8), "❌ Invalid license. Use: HEADSHOT-TEST123456"
    
    # Create placeholder image
    if image is not None:
        h, w = image.shape[:2]
        result = np.ones((h, w, 3), dtype=np.uint8) * 240
    else:
        result = np.ones((512, 512, 3), dtype=np.uint8) * 240
    
    # Add simple text (no PIL to avoid extra dependencies)
    # Just return the placeholder
    return result, "✅ Generated successfully! Test key worked."

# Build interface
with gr.Blocks(title="AI Headshot Generator") as demo:
    gr.Markdown("""
    # 🎯 AI Headshot Generator
    *Transform selfies into professional headshots*
    """)
    
    with gr.Row():
        with gr.Column():
            gr.Markdown("### 📸 Upload Your Photo")
            image_input = gr.Image(
                label="",
                type="numpy",
                height=250
            )
            
            gr.Markdown("### 🔑 License Key")
            license_input = gr.Textbox(
                label="",
                value="HEADSHOT-TEST123456",
                placeholder="Enter HEADSHOT-TEST123456"
            )
            
            gr.Markdown(f"""
            ### 🎯 How It Works
            1. Upload a photo
            2. Use test key: **HEADSHOT-TEST123456**
            3. Get {MAX_TRIALS} free generations
            4. Purchase license for HD downloads
            
            [🔗 Purchase License](https://canadianheadshotpro.carrd.co)
            """)
            
            generate_btn = gr.Button(
                "✨ Generate Headshot",
                variant="primary",
                size="lg"
            )
            
            status_output = gr.Textbox(
                label="Status",
                interactive=False
            )
        
        with gr.Column():
            gr.Markdown("### 🖼️ Your Headshot")
            result_image = gr.Image(
                label="",
                height=400
            )
            
            gr.Markdown("""
            ### 📥 Download Options
            - **Free Trial**: Basic preview
            - **Premium**: HD quality
            - **Professional**: Multiple styles
            
            ⏱️ *AI models loading in next update*
            """)
    
    # Connect button
    generate_btn.click(
        generate_headshot,
        [image_input, license_input],
        [result_image, status_output]
    )
    
    # Footer
    gr.Markdown("---")
    gr.Markdown("""
    <div style="text-align: center; color: #666;">
    <p>Powered by AI | © 2024 Headshot Generator</p>
    </div>
    """)

if __name__ == "__main__":
    demo.launch()