meeww's picture
Update app.py
79a6372 verified
raw
history blame
2.62 kB
import gradio as gr
from image_dataset import ImageDataset
from image_wgan import ImageWgan
import os
from os.path import exists
from PIL import Image, ImageEnhance
import numpy as np
import random
print(gr.__version__)
def init():
generated_samples_folder = "."
discriminator_saved_model = "discriminator64.model"
generator_saved_model = "generator64.model"
latent_space = 100
image_wgan = ImageWgan(
image_shape = (4,64,64),
latent_space_dimension=latent_space,
generator_saved_model=generator_saved_model if exists(generator_saved_model) else None,
discriminator_saved_model=discriminator_saved_model if exists(discriminator_saved_model) else None
)
image_wgan.generate(
sample_folder=generated_samples_folder
)
crop()
def crop():
import generator
res = 64
if res != 0:
results = "generated.png"
img = Image.open(results)
width,height = img.size
top = 2
bottom = 2
for i in range(4):
left = (res+2)*i +2
right = width-(res+2)*i
imgcrop = img.crop((left,top,left+res,res+2))
imgcrop.save(str(i)+".png")
init()
def gen(seed=None):
if seed is None or seed == "Surprise Me" or seed == "":
seed = random.randint(0, 1000000000)
else:
seed = int(seed)
np.random.seed(seed)
init() # Initialize and generate samples
crop() # Crop the generated images
imgArr = []
for i in range(4):
img = Image.open(f"{i}.png").convert('RGBA')
img = img.resize((64, 64), Image.NEAREST)
imgArr.append(img)
return imgArr, seed # Return both images and the seed used
# Function to handle the input from the interface
def handle_input(seed_text, surprise_me):
if surprise_me:
images, used_seed = gen("Surprise Me")
else:
images, used_seed = gen(seed_text)
return images, f"Seed Used: {used_seed}" # Provide feedback on the used seed
iface = gr.Interface(
fn=handle_input,
inputs=[
gr.Text(label="Seed", placeholder="Enter a seed"), # Text input for seed
gr.Checkbox(label="Surprise Me", value=False), # Checkbox for 'Surprise Me' functionality
],
outputs=[
gr.Gallery(label="Generated Skins"), # Display generated images
gr.Textbox(label="Used Seed") # Display the seed used to generate the images
],
title = "Minecraft Skin Generator <style>img{image-rendering: pixelated;}</style>", #<-- EWW GROSS IK IK IM SORRY, BUT THAT'S THE ONLY WAY I FOUND IT TO WORK
)
iface.launch()