Déploiement serveur pour test de génération multimédia (HuggingFace + Cloudflare)
Build and Push Docker Image / build-and-push (push) Successful in 35s

This commit is contained in:
xavier committed 2026-08-24 20:44:15 +02:00
1 parent 391d9acae1
commit 916af3e62b
2 files changed
+19 -12

No files matched your search

+5 -8
View File
@@ -2,7 +2,7 @@ import os
import requests
import time
import concurrent.futures
import base64 # <-- NOUVEL IMPORT POUR DECODER L'IMAGE
import base64
from modules.logger import log_event
def generer_image_cloudflare(prompt: str) -> bytes:
@@ -17,21 +17,16 @@ def generer_image_cloudflare(prompt: str) -> bytes:
try:
resp = requests.post(url, headers=headers, json={"prompt": prompt}, timeout=120)
if resp.status_code == 200:
# On vérifie si Cloudflare nous répond en texte (JSON)
if "application/json" in resp.headers.get("Content-Type", ""):
data = resp.json()
if data.get("success") and "result" in data:
# On transforme le texte Base64 en véritable fichier image binaire
return base64.b64decode(data["result"])
else:
# S'il répond nativement en binaire (parfois le cas selon la requête)
return resp.content
except Exception as e:
log_event("WARNING", "MEDIA", f"Échec Cloudflare : {e}")
return None
# ... (le reste du fichier reste identique)
def generer_image_huggingface(prompt: str) -> bytes:
"""Appel à l'API HuggingFace"""
api_key = os.getenv("HUGGINGFACE_API_KEY")
@@ -72,7 +67,8 @@ def generer_les_deux_images(prompt: str, fichiers: list) -> tuple:
if img_cf:
nom_cf = f"img_cf_{int(time.time())}.png"
with open(os.path.join(dossier_media, nom_cf), 'wb') as f: f.write(img_cf)
reponse_md += f"### ☁️ Cloudflare Workers AI (SDXL)\n![Cloudflare](/Media/{nom_cf})\n\n---\n\n"
reponse_md += f"### ☁️ Cloudflare Workers AI (SDXL)\n![Cloudflare](/Media/{nom_cf})\n\n"
reponse_md += f"**[📥 Cliquez ici pour télécharger l'image](/Media/{nom_cf})**\n\n---\n\n"
fournisseurs_actifs.append("Cloudflare")
trace.append("🟢 Cloudflare : Succès")
else:
@@ -83,6 +79,7 @@ def generer_les_deux_images(prompt: str, fichiers: list) -> tuple:
nom_hf = f"img_hf_{int(time.time())}.png"
with open(os.path.join(dossier_media, nom_hf), 'wb') as f: f.write(img_hf)
reponse_md += f"### 🤗 HuggingFace (SDXL)\n![HuggingFace](/Media/{nom_hf})\n\n"
reponse_md += f"**[📥 Cliquez ici pour télécharger l'image](/Media/{nom_hf})**\n\n"
fournisseurs_actifs.append("HuggingFace")
trace.append("🟢 HF : Succès")
else:
@@ -90,7 +87,7 @@ def generer_les_deux_images(prompt: str, fichiers: list) -> tuple:
# Si les deux ont échoué
if not img_hf and not img_cf:
return "*Échec critique : HuggingFace et Cloudflare ont échoué (ou clés manquantes).* \nVérifiez les logs du serveur.", "#ff4444", "Système", "Erreur", trace
return "*Échec critique : HuggingFace et Cloudflare ont échoué.*", "#ff4444", "Système", "Erreur", trace
return reponse_md, "#00e5ff", " + ".join(fournisseurs_actifs), "Stable Diffusion XL", trace