Equityone commited on
Commit
f29baad
·
verified ·
1 Parent(s): 16648cc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +101 -40
app.py CHANGED
@@ -1,61 +1,122 @@
1
  import gradio as gr
 
 
 
 
2
 
3
- def generate_recommendations(poster_type, style, message):
4
- """
5
- Génère des recommandations pour la création d'affiches
6
- """
7
- # Dictionnaire des layouts recommandés
8
- layouts = {
9
- "Événement": "Format vertical, titre en haut, date et lieu mis en évidence",
10
- "Présentation": "Structure claire, points clés hiérarchisés",
11
- "Infographie": "Organisation en sections, utilisation de graphiques",
12
- "Autre": "Layout flexible selon vos besoins"
13
- }
14
-
15
- # Récupérer le layout recommandé
16
- layout = layouts.get(poster_type, layouts["Autre"])
17
-
18
- # Construire la réponse
19
- response = f"""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  🎨 Recommandations pour votre affiche :
21
 
22
- 📌 Type : {poster_type}
23
- 🎯 Style demandé : {style}
24
- 💭 Message : {message}
 
 
 
 
 
 
 
 
 
25
 
26
- Mise en page suggérée :
27
- {layout}
 
 
 
28
 
29
- 💡 Conseils :
30
- Utilisez des contrastes adaptés
31
- Choisissez des polices lisibles
32
- Vérifiez l'accessibilité des couleurs
33
- Gardez une hiérarchie visuelle claire
34
- """
35
- return response
 
36
 
37
- # Création de l'interface
38
- iface = gr.Interface(
39
- fn=generate_recommendations,
40
  inputs=[
41
  gr.Dropdown(
42
- choices=["Événement", "Présentation", "Infographie", "Autre"],
43
  label="Type d'affiche"
44
  ),
45
  gr.Textbox(
46
  label="Style souhaité",
47
- placeholder="Ex: moderne, minimaliste, coloré..."
48
  ),
49
  gr.Textbox(
50
  label="Message principal",
51
- placeholder="Ex: Annonce d'événement, présentation..."
 
 
 
 
 
 
 
 
 
 
 
 
52
  )
53
  ],
54
- outputs=gr.Textbox(label="Recommandations"),
55
- title="🎨 Assistant Equity",
56
- description="Créez des affiches équitables et accessibles"
 
 
 
 
 
 
 
 
 
 
 
 
57
  )
58
 
59
- # Lancement de l'application
60
  if __name__ == "__main__":
61
- iface.launch()
 
1
  import gradio as gr
2
+ from diffusers import StableDiffusionPipeline
3
+ import torch
4
+ from PIL import Image
5
+ import os
6
 
7
+ class EquityImageGenerator:
8
+ def __init__(self):
9
+ # Initialisation du modèle Stable Diffusion
10
+ self.model_id = "stabilityai/stable-diffusion-2-1"
11
+ self.pipe = StableDiffusionPipeline.from_pretrained(
12
+ self.model_id,
13
+ torch_dtype=torch.float16
14
+ ).to("cuda" if torch.cuda.is_available() else "cpu")
15
+
16
+ def generate_image(self, poster_type, style, message, theme=""):
17
+ # Construire le prompt pour l'IA
18
+ base_prompt = f"high quality poster design for {message}, {style} style, {poster_type} layout"
19
+ artistic_prompt = f"{base_prompt}, professional graphic design, trending on artstation, {theme}"
20
+
21
+ # Générer l'image
22
+ image = self.pipe(
23
+ prompt=artistic_prompt,
24
+ negative_prompt="low quality, bad text, blurry, amateur",
25
+ num_inference_steps=50,
26
+ guidance_scale=7.5
27
+ ).images[0]
28
+
29
+ return image
30
+
31
+ def process_request(poster_type, style, message, audience, budget, theme):
32
+ # Initialiser le générateur
33
+ generator = EquityImageGenerator()
34
+
35
+ # Générer l'image
36
+ generated_image = generator.generate_image(
37
+ poster_type=poster_type,
38
+ style=style,
39
+ message=message,
40
+ theme=theme
41
+ )
42
+
43
+ # Générer les recommandations
44
+ recommendations = f"""
45
  🎨 Recommandations pour votre affiche :
46
 
47
+ 📌 Informations de base :
48
+ Type : {poster_type}
49
+ Style : {style}
50
+ • Message : {message}
51
+ • Public : {audience}
52
+ • Budget : {budget}
53
+ • Thème : {theme}
54
+
55
+ ✨ Style et design :
56
+ • Adaptation du style {style}
57
+ • Cohérence visuelle assurée
58
+ • Éléments graphiques optimisés
59
 
60
+ 💡 Points d'attention :
61
+ • Contraste et lisibilité
62
+ • Accessibilité des éléments
63
+ • Harmonie des couleurs
64
+ • Impact visuel maximal
65
 
66
+ Vérifications :
67
+ Test de lisibilité
68
+ Contraste suffisant
69
+ Taille des textes adaptée
70
+ Éléments bien espacés
71
+ """
72
+
73
+ return generated_image, recommendations
74
 
75
+ # Interface Gradio
76
+ demo = gr.Interface(
77
+ fn=process_request,
78
  inputs=[
79
  gr.Dropdown(
80
+ choices=["Événement", "Présentation", "Infographie", "Publicité"],
81
  label="Type d'affiche"
82
  ),
83
  gr.Textbox(
84
  label="Style souhaité",
85
+ placeholder="Ex: moderne, artistique, minimaliste..."
86
  ),
87
  gr.Textbox(
88
  label="Message principal",
89
+ placeholder="Le message clé de votre affiche"
90
+ ),
91
+ gr.Dropdown(
92
+ choices=["Grand public", "Professionnel", "Jeune public", "Seniors"],
93
+ label="Public cible"
94
+ ),
95
+ gr.Radio(
96
+ choices=["Limité", "Moyen", "Élevé"],
97
+ label="Budget"
98
+ ),
99
+ gr.Textbox(
100
+ label="Thème artistique (optionnel)",
101
+ placeholder="Ex: cyberpunk, nature, abstrait..."
102
  )
103
  ],
104
+ outputs=[
105
+ gr.Image(label="Affiche générée", type="pil"),
106
+ gr.Textbox(label="Recommandations")
107
+ ],
108
+ title="🎨 Assistant Equity - Générateur d'affiches IA",
109
+ description="""
110
+ Générez des affiches professionnelles avec l'aide de l'IA.
111
+ Spécifiez vos préférences et obtenez une affiche unique générée par intelligence artificielle.
112
+ """,
113
+ theme="soft",
114
+ examples=[
115
+ ["Événement", "moderne et artistique", "Festival de Jazz", "Grand public", "Moyen", "musical vibrant"],
116
+ ["Publicité", "minimaliste", "Éco-responsabilité", "Professionnel", "Élevé", "nature épurée"],
117
+ ["Infographie", "tech moderne", "Innovation digitale", "Jeune public", "Limité", "cyberpunk minimal"]
118
+ ]
119
  )
120
 
 
121
  if __name__ == "__main__":
122
+ demo.launch()