Modification openrouter image version payante
Build and Push Docker Image / build-and-push (push) Successful in 35s

This commit is contained in:
xavier committed 2026-08-27 19:32:08 +02:00
1 parent eab18d8324
commit 073c779109
1 file changed
+12 -10
+12 -10
View File
@@ -67,21 +67,21 @@ def generer_image_huggingface(prompt: str) -> tuple:
log_event("WARNING", "MEDIA", f"Échec HF : {e}") log_event("WARNING", "MEDIA", f"Échec HF : {e}")
return None, f"Exception système : {str(e)}" return None, f"Exception système : {str(e)}"
def generer_les_images(prompt: str, fichiers: list) -> tuple: def generer_les_images(prompt: str, fichiers: list, premium: bool) -> tuple:
trace = [] trace = []
if fichiers: if fichiers:
trace.append("🟢 Mode Image-to-Image") trace.append("🟢 Mode Image-to-Image")
return f"*(BETA)* Le mode Image-to-Image est désactivé temporairement. \n\nFichiers : {', '.join(fichiers)}", "#ff9800", "Système", "En dev", trace return f"*(BETA)* Le mode Image-to-Image est désactivé temporairement. \n\nFichiers : {', '.join(fichiers)}", "#ff9800", "Système", "En dev", trace
trace.append("🟢 Lancement Text-to-Image (OR + CF + HF)") trace.append(f"🟢 Lancement Text-to-Image (Premium: {premium})")
# Exécution des TROIS API en parallèle # Exécution en parallèle (OpenRouter n'est lancé QUE si premium est True)
with concurrent.futures.ThreadPoolExecutor() as executor: with concurrent.futures.ThreadPoolExecutor() as executor:
future_or = executor.submit(generer_image_openrouter, prompt) future_or = executor.submit(generer_image_openrouter, prompt) if premium else None
future_cf = executor.submit(generer_image_cloudflare, prompt) future_cf = executor.submit(generer_image_cloudflare, prompt)
future_hf = executor.submit(generer_image_huggingface, prompt) future_hf = executor.submit(generer_image_huggingface, prompt)
img_or, nom_modele_or = future_or.result() img_or, nom_modele_or = future_or.result() if future_or else (None, None)
img_cf = future_cf.result() img_cf = future_cf.result()
img_hf, msg_hf = future_hf.result() img_hf, msg_hf = future_hf.result()
@@ -92,7 +92,9 @@ def generer_les_images(prompt: str, fichiers: list) -> tuple:
fournisseurs_actifs = [] fournisseurs_actifs = []
# Traitement OpenRouter # Traitement OpenRouter
if img_or: if future_or is None:
trace.append("⚪ OR : Ignoré (Mode Gratuit)")
elif img_or:
nom_or = f"img_or_{int(time.time())}.png" nom_or = f"img_or_{int(time.time())}.png"
with open(os.path.join(dossier_media, nom_or), 'wb') as f: f.write(img_or) with open(os.path.join(dossier_media, nom_or), 'wb') as f: f.write(img_or)
reponse_md += f"### 🌐 OpenRouter ({nom_modele_or})\n![OpenRouter](/Media/{nom_or})\n" reponse_md += f"### 🌐 OpenRouter ({nom_modele_or})\n![OpenRouter](/Media/{nom_or})\n"
@@ -113,7 +115,7 @@ def generer_les_images(prompt: str, fichiers: list) -> tuple:
else: else:
trace.append("🔴 CF : Échec") trace.append("🔴 CF : Échec")
# Traitement HuggingFace (Avec diagnostic intégré) # Traitement HuggingFace
if img_hf: if img_hf:
nom_hf = f"img_hf_{int(time.time())}.png" 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) with open(os.path.join(dossier_media, nom_hf), 'wb') as f: f.write(img_hf)
@@ -127,14 +129,14 @@ def generer_les_images(prompt: str, fichiers: list) -> tuple:
reponse_md += f"### 🤗 HuggingFace (SDXL)\n*⚠️ Échec de la génération : {msg_hf}*\n\n" reponse_md += f"### 🤗 HuggingFace (SDXL)\n*⚠️ Échec de la génération : {msg_hf}*\n\n"
if not img_or and not img_cf and not img_hf: if not img_or and not img_cf and not img_hf:
return "*Échec critique : Aucune des 3 API n'a pu générer d'image.*", "#ff4444", "Système", "Erreur", trace return "*Échec critique : Aucune API n'a pu générer d'image.*", "#ff4444", "Système", "Erreur", trace
return reponse_md, "#00e5ff", " + ".join(fournisseurs_actifs), "Moteur Triple-IA", trace return reponse_md, "#00e5ff", " + ".join(fournisseurs_actifs) if fournisseurs_actifs else "Aucun", "Moteur Média", trace
def router_media(prompt: str, type_media: str, premium: bool, fichiers: list) -> tuple: def router_media(prompt: str, type_media: str, premium: bool, fichiers: list) -> tuple:
trace = [f"🟢 Routage Média : {type_media.upper()}"] trace = [f"🟢 Routage Média : {type_media.upper()}"]
if type_media == "image": if type_media == "image":
return generer_les_images(prompt, fichiers) return generer_les_images(prompt, fichiers, premium)
elif type_media == "video": elif type_media == "video":
return "*La génération vidéo nécessite une API payante.* \n\nPrompt : " + prompt, "#ff4444", "Système", "En attente API", trace return "*La génération vidéo nécessite une API payante.* \n\nPrompt : " + prompt, "#ff4444", "Système", "En attente API", trace
return "Type de média non reconnu.", "#333", "Erreur", "Aucun", trace return "Type de média non reconnu.", "#333", "Erreur", "Aucun", trace