Spaces:
Build error
Build error
| import gradio as gr | |
| import requests | |
| import os | |
| import io | |
| from PIL import Image | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| #Générateur d'images | |
| FLUX1_APIKEY = os.getenv('FLUX1_APIKEY') | |
| #LLM | |
| GEMINI_APIKEY = os.getenv('GEMINI_APIKEY') | |
| # TODO : | |
| # - Prendre en entrée soit un texte, soit un fichier audio (empecher saisie de l'un si l'autre est rempli) | |
| # - Le LLM résume cette entrée en plusieurs axes avec des mots clés par axes | |
| # - Flux génère une diapo par axé généré par le LLM précédemment | |
| # - On se retrouve en sortie avec plusieurs diapo et des mots clés les accompagnants | |
| def Main(prompt, inputText): | |
| return GenerateImageFromText(prompt), GenerateTextLLM(inputText) | |
| def GenerateImageFromText(prompt): | |
| API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev" | |
| headers = {"Authorization": f"Bearer {FLUX1_APIKEY}"} | |
| def query(payload): | |
| response = requests.post(API_URL, headers=headers, json=payload) | |
| return response.content | |
| image_bytes = query({ | |
| "inputs": prompt, | |
| }) | |
| image = Image.open(io.BytesIO(image_bytes)) | |
| return image | |
| def GenerateTextLLM(inputText): | |
| url = f'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key={GEMINI_APIKEY}' | |
| headers = { | |
| 'Content-Type': 'application/json' | |
| } | |
| data = { | |
| "contents": [ | |
| { | |
| "parts": [ | |
| { | |
| "text": inputText | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| response = requests.post(url, headers=headers, json=data) | |
| try: | |
| return response.json()['candidates'][0]['content']['parts'][0]['text'] | |
| except: | |
| return 'Error' | |
| outputs_image = [ | |
| gr.components.Image(type="pil", label="Output Image"), | |
| "text" | |
| ] | |
| interface_image = gr.Interface( | |
| fn=Main, | |
| inputs=["text", "text"], | |
| outputs=outputs_image, | |
| title="Feur", | |
| ) | |
| interface_image.launch() | |