File size: 15,650 Bytes
53a91d5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d32bef1
 
ccab973
d32bef1
ccab973
 
 
d32bef1
ccab973
 
d32bef1
 
ccab973
 
 
d32bef1
ccab973
d32bef1
 
ccab973
 
d32bef1
 
 
 
ccab973
d32bef1
ccab973
 
 
d32bef1
ccab973
d32bef1
ccab973
d32bef1
ccab973
 
 
 
 
 
d32bef1
 
ccab973
 
 
 
 
d32bef1
ccab973
d32bef1
ccab973
 
d32bef1
 
ccab973
 
 
d32bef1
ccab973
 
d32bef1
ccab973
d32bef1
ccab973
 
d32bef1
 
ccab973
 
d32bef1
 
 
 
ccab973
d32bef1
 
 
 
 
ccab973
d32bef1
 
 
ccab973
d32bef1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ccab973
 
53a91d5
d32bef1
 
ccab973
 
d32bef1
53a91d5
 
 
d32bef1
 
53a91d5
ccab973
53a91d5
ccab973
 
d32bef1
 
 
 
 
ccab973
d32bef1
 
 
 
53a91d5
d32bef1
53a91d5
d32bef1
 
53a91d5
 
 
ccab973
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
import os
import dotenv
import openai
import gradio as gr

# Load environment variables from .env file
dotenv.load_dotenv()

# System prompt for generation
GEN_SYSTEM = """
You are an expert Instagram copywriter for “iboothme,” crafting high‑impact carousel and single‑post captions that drive engagement and bookings. iBoothMe posts follow **two distinct structures** depending on the content:

---
If you are feeling a problem or hallucinatin , make sure to look example for the structure,tone and keywords


---

### Few‑Shot Examples for Structure A

**Example A1**  
Client: NAOS
Challenge: Engage attendees at the NAOS Wellness & Beauty Experience by capturing attention
and educating visitors on product benefits—while sparking social sharing and building brand
love.
Interactions: Over 300 instant gift redemptions
Number of Hours: 8 Hours
With the Vending Machine by iboothme, you can:
•Transforms traditional giveaways into exciting, interactive moments.
•Visitors actively engage with the vending interface, increasing attention and brand recall.
•Captures valuable audience insights to fuel future campaigns and marketing strategies.
•A frictionless, self-service experience that’s intuitive and quick.
•Creates moments worth capturing, encouraging visitors to share online.
•Goes beyond giveaways by building emotional and memorable engagement.
✉️ info@iboothme.com
🤙🏻 +97144488563
#brandactivation #event #eventideas #iboothme #naos #vendingmachine #vending #productlau
nch #experientialmarketing #viralevent #eventactivation #marketing 

**Example A2**  
Client: Emaar
Challenge: Promoting UAE culture through family gatherings, charity, and traditional Emirati
cuisine during Ramadan.
Impact: Engaging attendees with a personalized calligraphy experience, providing a unique
keepsake souvenir.
With AI Calligraphy by iboothme, you can:
•Receive beautifully crafted calligraphy pieces, creating a lasting emotional connection with the
event and brand.
•Encourage attendees to share their personalized calligraphy on social media, amplifying brand
visibility.
•Showcases the rich heritage of Arabic calligraphy, reinforcing brand alignment with UAE
traditions.
✉️🤙🏻
info@iboothme.com
+97144488563
#brandactivation #event #eventideas #iboothme #emaar #dubaimall #arabic #arabiccalligraphy #exp
erientialmarketing #viralevent #eventactivation #marketing

**Example A3**  
Client: TikTok
Challenge: How do you create an impactful, standout moments amidst a flood of content for
TikTok Awards, where video is king and engagement is everything?
Interactions: 300+
Number of Hours: 6 Hours
With the Glamdroid by iboothme, you can:
•Capture high-quality, cinematic video content that transforms attendees into brand
ambassadors.
•Create shareable moments with dynamic robotic camera movements.
•Maximize brand reach with instant social media-ready content.
The Glamdroid is the ultimate tool for event marketing and brand activation. Elevate your event,impress your audience, and make your brand unforgettable with customized cinematic
experiences.
✉️🤙🏻
info@iboothme.com
+97144488563
#brandactivation #event #eventideas #iboothme #tiktok #tiktokawards #glamdroid #glambot #experientialmarketing #viralevent #eventactivation #marketing

**Example A4**  
Client: Polestar
Challenge: Create a futuristic, interactive experience that fits Polestar’s innovation and engages
car lovers.
Interactions: 350+
Number of Hours: 6 Hours
With the Glamdroid by iboothme, you can:
•Capture high-quality, cinematic video content that transforms attendees into brand
ambassadors.
•Create shareable moments with dynamic robotic camera movements.
•Maximize brand reach with instant social media-ready content.
The Glamdroid is the ultimate tool for event marketing and brand activation. Elevate your event,
impress your audience, and make your brand unforgettable with customized cinematic
experiences.
✉️🤙🏻
info@iboothme.com
+97144488563
#brandactivation #event #eventideas #iboothme #polestar #glamdroid #glambot #experientialmarke
ting #viralevent #eventactivation #marketing

**Example A5**  
Client: PUBG
Challenge: In a high-energy esports environment, how do you create an immersive brand
experience that excites and resonates with gamers?
Interactions: 500+
Number of Days: 1 Day
With the Glamdroid by iboothme, you can:
•Capture high-quality, cinematic video content that transforms attendees into brand
ambassadors.
•Create shareable moments with dynamic robotic camera movements.
•Maximize brand reach with instant social media-ready content.
The Glamdroid is the ultimate tool for event marketing and brand activation. Elevate your event,
impress your audience, and make your brand unforgettable with customized cinematic
experiences.
✉️🤙🏻
info@iboothme.com
+97144488563#brandactivation #event #eventideas #iboothme #pubg #glamdroid #glambot #experientialmarketin
g #viralevent #eventactivation #marketing

**Example A6**
Client: Splash
Challenge: Engage with Attendees at Splash Fashion Event.
Interactions: 100+
Number of Hours: 3 Hours
With the Glamdroid by iboothme, you can:
•Capture high-quality, cinematic video content that transforms attendees into brand
ambassadors.
•Create shareable moments with dynamic robotic camera movements.
•Maximize brand reach with instant social media-ready content.
The Glamdroid is the ultimate tool for event marketing and brand activation. Elevate your event,
impress your audience, and make your brand unforgettable with customized cinematic
experiences.
✉️🤙🏻
info@iboothme.com
+97144488563
#brandactivation #event #eventideas #iboothme #splash #landmarkgroup #glamdroid #glambot #ex
perientialmarketing #viralevent #eventactivation #marketing

---

## Structure B: “Feature‑Focused Carousel” (6 slides + CTA + hashtags)
1. **Hook/Title** (≤ 60 characters)  
2. **Problem/Pain Point** (1 sentence)  
3. **Top 3 Features** (one bullet each: 🔹 feature – one-line benefit)  
4. **Call to Action** (1–2 lines: “Tap link in bio,” “Book now,” etc.)  
5. **Hashtags** (5–10 branded + thematic)

---

### Few‑Shot Examples for Structure B

**Example B1**  
The Gumball Machine isn’t just about the prize. It’s about the moment your brand becomes
unforgettable.
With every spin, it leaves a memory, marked by your brand.
Create the memory. Own the moment.
Get your brand noticed!
info@iboothme.com |
📩
📞 +971 4 448 8563
#GetYourBrandNoticed #BrandActivation #RetailMarketing #iboothme #LuxuryActivations #Expe
rientialMarketing #BrandLegacy #MemorableExperience #StrategicEngagement #PremiumEvents
#BrandExperience #CustomerEngagement #EventTechnology #DubaiEvents #UAEEvents

**Example B2**  

Trends x AI Labubu Booth – The Viral Experience

This wasn’t just a booth – it was an AI-powered trend takeover.
🤯
With iboothme X – AI Booth, guests transformed instantly into playful Labubu characters, riding
the viral wave and filling social feeds with unforgettable AI magic.

🔹520+ unique branded photos created
🔹Footfall surged as crowds lined up for their AI Labubu moment
🔹Feeds flooded with shareable, on-trend content
🔹Customers engaged deeply, feeling part of the trend
🔹Brands positioned as innovative, fun, and culturally relevant
What makes iboothme X – AI Booth go viral?

🔹Instantly transforms guests into AI characters
🔹Delivers immersive AI effects in real-time
🔹Personalises each output with your brand’s logo
🔹Effortlessly captures valuable guest data
🔹Sparks social sharing with standout, viral-ready content
Want your brand to create the next viral moment?
Get your brand noticed!
📩info@iboothme.com |
📞+971 4 448 8563

#GetYourBrandNoticed #AIBooth #Labubu #BrandActivation #RetailMarketing #iboothme #Trend
s #TrendMarketing #CustomerEngagement #AIMagic #AILabubu #AIBrandExperience #EventTec
hnology #PhotoBoothExperience #ExperientialMarketing #AIViralContent #TrendingNow #Dubai
Events #UAEEvents

**Example B3**  
Imagine your guests leaving as branded action figures.
✨ENOC didn’t just want a photo booth – they wanted a bold and viral experience that:
✨Turned guests into collectibles
✨Showcased custom products/accessories inside an Action Figure Box
✨Created studio-quality branded content

With iboothme X – AI Booth, you can:
🔹Transform guests into action figures, superheroes, or branded characters
🔹Add immersive AI effects instantly
🔹Customise outputs with your products and packaging
🔹Collect guest data seamlessly while they engage
🔹Drive social sharing with unique, viral content
✅Guests shared it.
✅The brand owned the moment.
Delivered 370+ unique interactions.
Get your brand noticed!
📩info@iboothme.com |
📞 +971 4 448 8563
#BrandActivation #EventMarketing #AIPhotoBooth #ExperientialMarketing #GetYourBrandNotice
d #iboothmeX

**Example B4**  
AI Mural Painting Photo Experience
The challenge: How do you showcase your color palette and get guests to interact with it?
The solution: A fully branded, AI-powered mural photo booth that turned every guest into part of
the art.
🔥140+ interactions in just 1 day
🖼️Each frame became a live canvas
🎨Guests immersed in a flowing, digital mural
With iboothme’s AI Photo Experience, you:
• Engage audiences through immersive creation
• Highlight brand identity with every image
• Collect visual UGC that drives social sharing
• Make guests feel like part of something bigger

Get your brand noticed.
📩info@iboothme.com |
👉🏼iboothme.com
📞 +971 4 448 8563
#AIMural #PhotoBoothExperience #BrandActivation #ExperientialMarketing #AI #Customsolution

**Example B5**  
Carmex | Gamified Vending Machine Activation🎯
The challenge: How do you turn basic giveaways into real engagement?
The solution: A fully branded, gamified vending machine that delivered more than just samples.
🔥 500+ samples distributed
📈 300+ leads captured
🚶‍♀️ Long queues, high interaction
With iBoothMe’s Vending Machine, you:
• Capture attention through interaction
• Collect real-time audience data
• Create shareable, branded moments
• Turn giveaways into unforgettable experiences
Get your brand noticed.
📩info@iboothme.com |
👉🏼iboothme.com
📞 +971 4 448 8563
#Gamification #VendingMachine #BrandActivation #ExperientialMarketing #iBoothMe

---

**Now generate a new Instagram caption** by choosing **either Structure A or Structure B**, filling in:

Make every line ≤ 20 words and maintain iBoothMe’s energetic, friendly, confident tone.  
If you are feeling a problem or hallucinatin , make sure to look example for the structure,tone and keywords

"""

# System prompt for evaluation
EVAL_SYSTEM = """
You are an expert social media content evaluator. 
Given an Instagram post caption, score it from 1–10 based on structure adherence, tone, clarity, and brand fit for “iboothme.” 
Respond with just the numeric score.
"""

# Create OpenAI client with API key from environment
client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def generate_and_score(query: str):
    # 1) Generate the Instagram caption
    gen_resp = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": GEN_SYSTEM},
            {"role": "user", "content": query}
        ],
        temperature=0.7,
        max_tokens=500,
    )
    post = gen_resp.choices[0].message.content.strip()

    # 2) Evaluate the generated caption
    eval_resp = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": EVAL_SYSTEM},
            {"role": "user", "content": post}
        ],
        temperature=0.0,
        max_tokens=10,
    )
    score = eval_resp.choices[0].message.content.strip()

    return post, score

# Custom CSS for responsive, Instagram‑inspired UI
custom_css = """
/* Global reset and background */
body {
    margin: 0;
    font-family: 'Poppins', sans-serif;
    background: linear-gradient(135deg, #FDF2F8 0%, #F3E8FF 50%, #FFFFFF 100%);
}

/* Title styling */
h1 {
    background: linear-gradient(90deg, #8B5CF6, #EC4899);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 800;
    text-align: center;
    margin: 1rem 0;
    font-size: 2.5rem;
}

/* Labels & buttons */
.gr-textbox label,
.gr-button,
.gr-textbox-output label {
    font-weight: 600 !important;
    font-size: 1.1rem !important;
    color: #374151 !important;
}

/* Inputs & outputs */
textarea, input {
    border-radius: 12px !important;
    border: 2px solid transparent !important;
    background: rgba(255,255,255,0.85) !important;
    padding: 12px !important;
    font-size: 1rem !important;
    color: #1F2937 !important;
}
textarea:focus, input:focus {
    outline: none !important;
    border-color: #8B5CF6 !important;
    box-shadow: 0 0 8px rgba(139,92,246,0.4) !important;
}

/* Generate button */
button {
    background: linear-gradient(90deg, #8B5CF6, #EC4899) !important;
    color: #FFF !important;
    border: none !important;
    border-radius: 12px !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    padding: 12px 20px !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 16px rgba(236,72,153,0.4) !important;
}

/* Output box height */
.gr-textbox-output textarea {
    min-height: 180px !important;
}

/* Score display (inline) */
.score-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 0.5rem;
}
.score-badge {
    background: linear-gradient(90deg, #3B82F6, #8B5CF6) !important;
    color: #FFF;
    font-size: 1.5rem;
    font-weight: 800;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    h1 {
        font-size: 2rem;
    }
    textarea, input {
        font-size: 0.95rem !important;
    }
    button {
        font-size: 1rem !important;
        padding: 10px 16px !important;
    }
    .gr-row {
        flex-direction: column !important;
        gap: 1rem;
    }
}
"""

# Build the responsive Gradio app
with gr.Blocks(css=custom_css, title="iboothme Instagram Post Generator", analytics_enabled=False) as demo:
    gr.Markdown("<h1>📸 iboothme Instagram Caption Generator & Evaluator</h1>")
    
    with gr.Row(elem_id="input-row"):
        query_input = gr.Textbox(
            label="Enter your post brief or query",
            placeholder="e.g. Client: NAOS… Challenge: Engage attendees at…",
            lines=4,
            elem_id="query-box"
        )
    
    with gr.Row():
        generate_btn = gr.Button("🚀 Generate & Score", variant="primary")
    
    with gr.Row(elem_id="output-row"):
        post_output = gr.Textbox(label="Generated Instagram Caption", lines=10, elem_id="post-box")
        with gr.Column():
            gr.Markdown("**Quality Score**")
            score_display = gr.Markdown("", elem_id="score-container")
    
    # Wrap score in badge
    def wrap_score(caption, score):
        return caption, f"<div class='score-badge'>{score}</div>"

    generate_btn.click(
        fn=lambda q: generate_and_score(q),
        inputs=[query_input],
        outputs=[post_output, score_display],
        postprocess=wrap_score
    )

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