Add dungeon game code.

This commit is contained in:
Carlos Bazaga
2025-09-05 19:30:29 +02:00
parent 804ac62e78
commit c1fbb54a5a
16 changed files with 667 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
"""AI Mastered Dungeon Extraction Game scenes illustrator package."""
from .illustrator_dalle_2 import draw as draw_dalle_2
from .illustrator_dalle_3 import draw as draw_dalle_3
from .illustrator_gemini import draw as draw_gemini
from .illustrator_gpt import draw as draw_gpt
from .illustrator_grok import draw as draw_grok
from .illustrator_grok import draw_x as draw_grok_x
__all__ = ['draw_dalle_2', 'draw_dalle_3', 'draw_gemini',
'draw_gpt', 'draw_grok', 'draw_grok_x']

View File

@@ -0,0 +1,30 @@
"""AI Mastered Dungeon Extraction Game scenes illustrator using OpenAI's DALL·E 3."""
import base64
from io import BytesIO
from dotenv import load_dotenv
from openai import OpenAI
from PIL import Image
# Environment initialization.
load_dotenv(override=True)
# Define global defaults.
MODEL = 'dall-e-2'
# Client instantiation.
CLIENT = OpenAI()
# Function definition.
def draw(prompt, size=(1024, 1024), client=CLIENT, model=MODEL, quality=None):
"""Generate an image based on the prompt."""
# Generate image.
response = client.images.generate(
model=model, prompt=prompt, n=1,
size=f'{size[0]}x{size[1]}',
response_format='b64_json')
# Process response.
return Image.open(BytesIO(base64.b64decode(response.data[0].b64_json)))

View File

@@ -0,0 +1,32 @@
"""AI Mastered Dungeon Extraction Game scenes illustrator using OpenAI's DALL·E 3."""
import base64
from io import BytesIO
from dotenv import load_dotenv
from openai import OpenAI
from PIL import Image
# Environment initialization.
load_dotenv(override=True)
# Define global defaults.
MODEL = 'dall-e-3'
QUALITY = 'standard' # Set to 'hd' for more quality, but double the costs.
# Client instantiation.
CLIENT = OpenAI()
# Function definition.
def draw(prompt, size=(1024, 1024), client=CLIENT, model=MODEL, quality=QUALITY):
"""Generate an image based on the prompt."""
# Generate image.
response = client.images.generate(
model=model, prompt=prompt, n=1,
size=f'{size[0]}x{size[1]}',
quality=quality,
response_format='b64_json')
# Process response.
return Image.open(BytesIO(base64.b64decode(response.data[0].b64_json)))

View File

@@ -0,0 +1,36 @@
"""AI Mastered Dungeon Extraction Game scenes illustrator using Google's Gemini."""
from io import BytesIO
from dotenv import load_dotenv
from google import genai # New Google's SDK 'genai' to replace 'generativeai'.
from PIL import Image
# Environment initialization.
load_dotenv(override=True)
# Define globals.
MODEL = 'gemini-2.5-flash-image-preview'
# Client instantiation.
CLIENT = genai.Client()
# Function definition.
def draw(prompt, size=(1024, 1024), client=CLIENT, model=MODEL):
"""Generate an image based on the prompt."""
# Generate image.
response = client.models.generate_content(
model=model, contents=[prompt])
# Process response.
for part in response.candidates[0].content.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image_data = part.inline_data.data
# Open the generated image.
generated_image = Image.open(BytesIO(image_data))
# Resize the image to the specified dimensions.
resized_image = generated_image.resize(size)
return resized_image

View File

@@ -0,0 +1,32 @@
"""AI Mastered Dungeon Extraction Game scenes illustrator using OpenAI's GPT."""
import base64
from io import BytesIO
from dotenv import load_dotenv
from openai import OpenAI
from PIL import Image
# Environment initialization.
load_dotenv(override=True)
# Define global defaults.
MODEL = 'gpt-image-1'
QUALITY = 'low'
# Client instantiation.
CLIENT = OpenAI()
# Function definition.
def draw(prompt, size=(1024, 1024), client=CLIENT, model=MODEL, quality=QUALITY):
"""Generate an image based on the prompt."""
# Generate image.
response = client.images.generate(
model=model, prompt=prompt, n=1,
size=f'{size[0]}x{size[1]}',
output_format='png',
quality=quality)
# Process response.
return Image.open(BytesIO(base64.b64decode(response.data[0].b64_json)))

View File

@@ -0,0 +1,47 @@
"""AI Mastered Dungeon Extraction Game scenes illustrator using xAI's Grok."""
import base64
import os
from io import BytesIO
from dotenv import load_dotenv
from openai import OpenAI
from PIL import Image
from xai_sdk import Client
# Environment initialization.
load_dotenv(override=True)
# Define global defaults.
MODEL = 'grok-2-image'
QUALITY = None
# Client instantiation.
XAI_API_KEY = os.getenv('XAI_API_KEY')
CLIENT = OpenAI(api_key=XAI_API_KEY, base_url="https://api.x.ai/v1")
# Function definition.
def draw(prompt, size=(1024, 1024), client=CLIENT, model=MODEL, quality=QUALITY):
"""Generate an image based on the prompt."""
# Generate image.
response = client.images.generate(
model=model, prompt=prompt, n=1,
response_format='b64_json')
# Process response.
return Image.open(BytesIO(base64.b64decode(response.data[0].b64_json)))
# xAI SDK Version:
CLIENT_X = Client(api_key=XAI_API_KEY)
def draw_x(prompt, size=(1024, 1024), client=CLIENT_X, model=MODEL, quality=QUALITY):
"""Generate an image based on the prompt."""
# Generate image.
response = client.image.sample(
model=model, prompt=prompt,
image_format='base64')
# Process response.
return Image.open(BytesIO(response.image))