AMfeta99's picture
Update Methods.py
452ff2f verified
raw
history blame
2.11 kB
from PIL import Image
import torch
import numpy as np
import tempfile
import os
import uuid
# function to plot and save an AgentImage
def plot_and_save_agent_image(agent_image, save_path=None):
# Convert AgentImage to a raw PIL Image
pil_image = agent_image.to_raw()
# Plot the image using PIL's show method
pil_image.show()
# If save_path is provided, save the image
if save_path:
pil_image.save(save_path)
print(f"Image saved to {save_path}")
else:
print("No save path provided. Image not saved.")
def generate_prompts_for_object(object_name):
prompts = {
"past": f"Show an old version of a {object_name} from its early days.",
"present": f"Show a {object_name} with from present with current features/design/technology.",
"future": f"Show a futuristic version of a {object_name}, by predicting advanced features and futuristic design."
}
return prompts
# Function to generate the car industry history
def generate_object_history(object_name, agent):
images = []
# Get prompts for the object
prompts = generate_prompts_for_object(object_name)
# Generate sequential images and display them
for time_period, frame in prompts.items():
print(f"Generating {time_period} frame: {frame}")
result = agent.run(frame) # The tool generates the image
# Append the image to the list for GIF creation
images.append(result.to_raw()) # Ensure we're using raw image for GIF
# Save each image with the appropriate name (past, present, future)
image_filename = f"{object_name}_{time_period}.png"
plot_and_save_agent_image(result, save_path=image_filename)
# Create GIF from images
gif_path = f"{object_name}_evolution.gif"
images[0].save(
gif_path,
save_all=True,
append_images=images[1:],
duration=1000, # Duration in milliseconds for each frame
loop=0 # Infinite loop
)
# Return images and GIF path
return images, gif_path