|
from googletrans import Translator |
|
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler |
|
import torch |
|
import gradio as gr |
|
|
|
translator = Translator() |
|
|
|
model_id = "stabilityai/stable-diffusion-2-1" |
|
access_token="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" |
|
|
|
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16, use_auth_token=access_token |
|
) |
|
|
|
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) |
|
pipe = pipe.to("cuda") |
|
|
|
def generate(prompt, inference_steps, guidance_scale, neg_prompt): |
|
if not neg_prompt: |
|
neg_prompt = "" |
|
|
|
prompt_eng = translator.translate(prompt, dest='en').text |
|
image = pipe(prompt_eng, guidance_scale= int(guidance_scale), num_inference_steps = int(inference_steps), negative_prompt = neg_prompt).images[0] |
|
return image |
|
|
|
gr.Interface( |
|
generate, |
|
title = 'Image to Image using Diffusers', |
|
inputs=[ |
|
gr.Textbox(label="Prompt"), |
|
gr.Slider(50, 700, value=50, label ="Inference steps"), |
|
gr.Slider(1, 10, value=5, label ="Guidance scale"), |
|
gr.Textbox(label="Negative prompt (include things you DO NOT want in the image") |
|
], |
|
outputs = [ |
|
gr.Image(elem_id="output-image"), |
|
|
|
], css = "#output-image, #input-image, #image-preview {border-radius: 40px !important; background-color : gray !important;} " |
|
).launch() |
|
|