Imagier2 / app.py
gaur3009's picture
Create app.py
91ebbc0 verified
raw
history blame
1.52 kB
import gradio as gr
import modin.pandas as pd
import torch
import numpy as np
from PIL import Image
from diffusers import DiffusionPipeline
from diffusers.utils import load_image
import math
device = "cuda" if torch.cuda.is_available() else "cpu"
pipe = DiffusionPipeline.from_pretrained("radames/stable-diffusion-v1-5-img2img", torch_dtype=torch.float16) if torch.cuda.is_available() else AutoPipelineForImage2Image.from_pretrained("stabilityai/sdxl-turbo")
pipe = pipe.to(device)
def resize(value,img):
img = Image.open(img)
img = img.resize((value,value))
return img
def infer(source_img, prompt, steps, seed, Strength):
generator = torch.Generator(device).manual_seed(seed)
if int(steps * Strength) < 1:
steps = math.ceil(1 / max(0.10, Strength))
source_image = resize(512, source_img)
source_image.save('source.png')
image = pipe(prompt, image=source_image, strength=Strength, guidance_scale=0.0, num_inference_steps=steps).images[0]
return image
gr.Interface(fn=infer, inputs=[
gr.Image(sources=["upload", "webcam", "clipboard"], type="filepath", label="Raw Image."),
gr.Textbox(label = 'Creative Touch(prompt)'),
gr.Slider(1, 5, value = 2, step = 1, label = 'Number of Iterations'),
gr.Slider(label = "Seed", minimum = 0, maximum = 987654321987654321, step = 1, randomize = True),
gr.Slider(label='Strength', minimum = 0.1, maximum = 1, step = .05, value = .5)],
outputs='image', title = "Creative Touch").queue(max_size=10).launch()