Gosula/Stable_diffusion_model
0
1from base64 import b64encode2from utils import *3from device import torch_device,vae,text_encoder,unet,tokenizer,scheduler,token_emb_layer,pos_emb_layer,position_embeddings4import numpy5import torch6from diffusers import AutoencoderKL, LMSDiscreteScheduler, UNet2DConditionModel7from huggingface_hub import notebook_login8import gradio as gr9import random10import torch11import pathlib12import gradio as gr13import random14import torch15import pathlib16# For video display:17from IPython.display import HTML18from matplotlib import pyplot as plt19from pathlib import Path20from PIL import Image21from torch import autocast22from torchvision import transforms as tfms23from tqdm.auto import tqdm24from transformers import CLIPTextModel, CLIPTokenizer, logging25import os26import shutil27 28from stablediffusion import *29path="Project/concept_styles"30concept_styles={31 "cubex":"cubex.bin",32 "hours-style":"hours-style.bin",33 "orange-jacket":"orange-jacket.bin",34 "simple_styles(2)":"simple_styles(2).bin",35 "xyz":"xyz.bin"36 37}38 39 40def generate(prompt, styles,num_inference_steps, loss_scale,noised_image):41 lossless_images, lossy_images = [], []42 for style in styles:43 concept_lib_path = f"{path}/{concept_styles[style]}"44 concept_lib = pathlib.Path(concept_lib_path)45 concept_embed = torch.load(concept_lib)46 47 manual_seed = random.randint(0, 100)48 49 generated_image_lossless = generate_image(prompt,concept_embed,num_inference_steps=num_inference_steps,color_postprocessing=False,noised_image=noised_image,loss_scale=loss_scale,seed=manual_seed50 )51 generated_image_lossy = generate_image(prompt,concept_embed,num_inference_steps=num_inference_steps,color_postprocessing=True,noised_image=noised_image,loss_scale=loss_scale,seed=manual_seed52 )53 lossless_images.append((generated_image_lossless, style))54 lossy_images.append((generated_image_lossy, style))55 return {lossless_gallery: lossless_images,lossy_gallery: lossy_images}56 57with gr.Blocks() as app:58 gr.Markdown("## ERA V1 Session20 - Stable Diffusion Model: Generative Art with Guidance")59 with gr.Row():60 with gr.Column():61 prompt_box = gr.Textbox(label="Prompt", interactive=True)62 style_selector = gr.Dropdown(63 choices=list(concept_styles.keys()),64 value=list(concept_styles.keys())[0],65 multiselect=True,66 label="Select a Concept Style",67 interactive=True,68 )69 num_inference_steps = gr.Slider(70 minimum=10,71 maximum=50,72 value=30,73 step=10,74 label="Select Number of Steps",75 interactive=True,76 )77 78 loss_scale = gr.Slider(79 minimum=0,80 maximum=10,81 value=8,82 step=1,83 label="Select Guidance Scale",84 interactive=True,85 )86 noised_image = gr.Checkbox(87 label="Include Noised Image",88 default=False,89 interactive=True,90 )91 92 93 submit_btn = gr.Button(value="Generate")94 95 with gr.Column():96 lossless_gallery = gr.Gallery(97 label="Generated Images without Guidance", show_label=True98 )99 lossy_gallery = gr.Gallery(100 label="Generated Images with Guidance", show_label=True101 )102 103 submit_btn.click(104 generate,105 inputs=[prompt_box, style_selector, num_inference_steps, loss_scale,noised_image],106 outputs=[lossless_gallery,lossy_gallery],107 )108 109app.launch()110 111 