lea97338 commited on
Commit
f29cd02
·
verified ·
1 Parent(s): 9c4e941

Create App.py

Browse files
Files changed (1) hide show
  1. App.py +65 -0
App.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ import subprocess
4
+
5
+ # --- Installation automatique des paquets manquants lors du démarrage du Space ---
6
+ try:
7
+ from mage_flow import MageFlowPipeline
8
+ except ImportError:
9
+ print("⏳ Installation du pipeline officiel de Microsoft depuis GitHub...")
10
+ # Installation des dépendances requises
11
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "diffusers==0.38.0", "transformers>=5.3", "einops", "pydantic", "loguru", "accelerate", "gradio"])
12
+ # Installation directe du sous-dossier mage_flow
13
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "git+https://github.com/microsoft/Mage.git#subdirectory=mage_flow", "--no-deps"])
14
+ from mage_flow import MageFlowPipeline
15
+
16
+ import torch
17
+ import gradio as gr
18
+ from PIL import Image
19
+
20
+ # --- Initialisation du modèle Microsoft Mage-Flow-Turbo ---
21
+ MODEL_ID = "microsoft/Mage-Flow-Turbo"
22
+ device = "cuda" if torch.cuda.is_available() else "cpu"
23
+
24
+ print(f"⏳ Chargement des poids de {MODEL_ID} sur {device.upper()}...")
25
+ pipe = MageFlowPipeline.from_pretrained(MODEL_ID, device=device)
26
+ print("✅ Pipeline prêt à l'emploi !")
27
+
28
+ # --- Fonction de génération liée à l'interface ---
29
+ def generate_image(prompt):
30
+ if not prompt.strip():
31
+ return None
32
+
33
+ with torch.inference_mode():
34
+ # Configuration optimisée officielle pour le mode Turbo (4 étapes, CFG 1.0)
35
+ images = pipe.generate(
36
+ [prompt],
37
+ heights=1024,
38
+ widths=1024,
39
+ steps=4,
40
+ cfg=1.0
41
+ )
42
+ return images[0]
43
+
44
+ # --- Interface Utilisateur Web (Gradio) ---
45
+ with gr.Blocks(theme=gr.themes.Soft()) as demo:
46
+ gr.Markdown("# 🚀 Microsoft Mage-Flow-Turbo Generator")
47
+ gr.Markdown("Générez des images en résolution native (1024x1024) en moins d'une seconde grâce à l'architecture MMDiT de Microsoft.")
48
+
49
+ with gr.Row():
50
+ with gr.Column():
51
+ prompt_input = gr.Textbox(
52
+ label="Votre Prompt",
53
+ placeholder="Ex: A beautiful cinematic shot of a neon cyberpunk fox...",
54
+ lines=3
55
+ )
56
+ submit_btn = gr.Button("Générer l'image 🎨", variant="primary")
57
+
58
+ with gr.Column():
59
+ image_output = gr.Image(label="Image Générée", type="pil")
60
+
61
+ submit_btn.click(fn=generate_image, inputs=prompt_input, outputs=image_output)
62
+
63
+ # Lancement de l'application sur le port requis par Hugging Face
64
+ if __name__ == "__main__":
65
+ demo.launch(server_name="0.0.0.0", server_port=7860)