Mano5108's picture
Rename app (1).py to app.py
295de14 verified
from transformers import pipeline
import requests
import gradio as gr
# Load emotion detection model
emotion_model = pipeline("text-classification", model="j-hartmann/emotion-english-distilroberta-base", top_k=1)
# Mappings
mood_mapping = {
'joy': 'happy',
'neutral': 'calm',
'sadness': 'calm',
'fear': 'professional',
'anger': 'energetic',
'surprise': 'energetic',
'disgust': 'professional'
}
ui_styles = {
'happy': {
'font': 'Comic Neue',
'tip': 'Use bright colors, rounded buttons, playful layout.'
},
'calm': {
'font': 'Lato',
'tip': 'Use cool tones, white space, soft shadows.'
},
'energetic': {
'font': 'Bebas Neue',
'tip': 'Use bold colors, sharp edges, vibrant CTAs.'
},
'professional': {
'font': 'Roboto',
'tip': 'Use clean layouts, neutral tones, consistent spacing.'
}
}
# Main Function
def mood_to_ui(text):
result = emotion_model(text)[0][0]
emotion = result['label'].lower()
mood = mood_mapping.get(emotion, 'calm')
style = ui_styles[mood]
# Colormind API
try:
color_data = {"model": "default"}
color_res = requests.post("http://colormind.io/api/", json=color_data)
colors = color_res.json()['result']
except:
colors = []
return {
"Emotion": emotion,
"Mood": mood,
"Font": style['font'],
"UI Tip": style['tip'],
"Color Palette": str(colors)
}
# Gradio UI
iface = gr.Interface(fn=mood_to_ui, inputs="text", outputs="json", title="Mood to UI Generator")
iface.launch()