Spaces:
Running
Running
File size: 2,504 Bytes
3db5da0 b206033 3db5da0 b206033 3db5da0 a700c23 3db5da0 a700c23 8f07a9b a700c23 8f07a9b a700c23 8f07a9b 3db5da0 b206033 3db5da0 b206033 3db5da0 b206033 3db5da0 b206033 3db5da0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import gradio as gr
import requests
from PIL import Image
from io import BytesIO
# Pollinations API URL (hier wird die URL dynamisch basierend auf der Eingabe erzeugt)
BASE_URL = "https://gen.pollinations.ai/image/"
# Funktion zum Abrufen von Game Assets von Pollinations
def generate_game_asset(description):
# Erstelle die URL mit der Beschreibung und den gewünschten Parametern
encoded_description = description.replace(" ", "%20") # Ersetze Leerzeichen durch %20
url = f"{BASE_URL}{encoded_description}?model=flux&height=1024&width=1024&seed=42&enhance=true&nologo=true&safe=true&private=true"
try:
# Sende eine Anfrage an die Pollinations API
response = requests.get(url)
response.raise_for_status() # Falls ein Fehlerstatus (z.B. 404, 500) zurückkommt, wird eine Ausnahme ausgelöst
# Falls erfolgreich, lade das Bild
img_data = response.content
img = Image.open(BytesIO(img_data))
return img
except requests.exceptions.RequestException as e:
# Fehler beim Abrufen des Bildes (z.B. Netzwerkfehler oder ungültige URL)
print(f"Fehler beim Abrufen des Bildes: {e}")
# Leeres Bild zurückgeben, wenn ein Fehler auftritt
return Image.new("RGB", (1024, 1024), color=(255, 0, 0)) # Beispiel für ein rotes Fehlerbild
except Exception as e:
# Allgemeiner Fehlerbehandlung
print(f"Allgemeiner Fehler: {e}")
# Leeres Bild zurückgeben, wenn ein unbekannter Fehler auftritt
return Image.new("RGB", (1024, 1024), color=(255, 0, 0)) # Beispiel für ein rotes Fehlerbild
# Gradio Interface
def create_gradio_interface():
with gr.Blocks() as demo:
gr.Markdown("# Game Asset Generator")
gr.Markdown("Generiere Game Assets durch Eingabe einer Beschreibung und drücke 'Generieren'.")
# Textfeld für die Beschreibung
description_input = gr.Textbox(label="Asset Beschreibung", placeholder="z.B. Ein magischer Wald")
# Button, um die Bildgenerierung zu starten
generate_button = gr.Button("Generieren")
# Ausgabe für das generierte Bild
output_image = gr.Image(type="pil", label="Generiertes Game Asset")
# Aktion beim Drücken des Buttons
generate_button.click(generate_game_asset, inputs=description_input, outputs=output_image)
return demo
# Starte das Gradio Interface
demo = create_gradio_interface()
demo.launch()
|