developermimicpc/test
0
1import gradio as gr2import numpy as np3import random4#import spaces #[uncomment to use ZeroGPU]5from diffusers import DiffusionPipeline6import torch7 8device = "cuda" if torch.cuda.is_available() else "cpu"9model_repo_id = "stabilityai/sdxl-turbo" #Replace to the model you would like to use10 11if torch.cuda.is_available():12 torch_dtype = torch.float1613else:14 torch_dtype = torch.float3215 16pipe = DiffusionPipeline.from_pretrained(model_repo_id, torch_dtype=torch_dtype)17pipe = pipe.to(device)18 19MAX_SEED = np.iinfo(np.int32).max20MAX_IMAGE_SIZE = 102421 22#@spaces.GPU #[uncomment to use ZeroGPU]23def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps, progress=gr.Progress(track_tqdm=True)):24 25 if randomize_seed:26 seed = random.randint(0, MAX_SEED)27 28 generator = torch.Generator().manual_seed(seed)29 30 image = pipe(31 prompt = prompt, 32 negative_prompt = negative_prompt,33 guidance_scale = guidance_scale, 34 num_inference_steps = num_inference_steps, 35 width = width, 36 height = height,37 generator = generator38 ).images[0] 39 40 return image, seed41 42examples = [43 "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k",44 "An astronaut riding a green horse",45 "A delicious ceviche cheesecake slice",46]47 48css="""49#col-container {50 margin: 0 auto;51 max-width: 640px;52}53"""54 55with gr.Blocks(css=css) as demo:56 57 with gr.Column(elem_id="col-container"):58 gr.Markdown(f"""59 # Text-to-Image Gradio Template60 """)61 62 with gr.Row():63 64 prompt = gr.Text(65 label="Prompt",66 show_label=False,67 max_lines=1,68 placeholder="Enter your prompt",69 container=False,70 )71 72 run_button = gr.Button("Run", scale=0)73 74 result = gr.Image(label="Result", show_label=False)75 76 with gr.Accordion("Advanced Settings", open=False):77 78 negative_prompt = gr.Text(79 label="Negative prompt",80 max_lines=1,81 placeholder="Enter a negative prompt",82 visible=False,83 )84 85 seed = gr.Slider(86 label="Seed",87 minimum=0,88 maximum=MAX_SEED,89 step=1,90 value=0,91 )92 93 randomize_seed = gr.Checkbox(label="Randomize seed", value=True)94 95 with gr.Row():96 97 width = gr.Slider(98 label="Width",99 minimum=256,100 maximum=MAX_IMAGE_SIZE,101 step=32,102 value=1024, #Replace with defaults that work for your model103 )104 105 height = gr.Slider(106 label="Height",107 minimum=256,108 maximum=MAX_IMAGE_SIZE,109 step=32,110 value=1024, #Replace with defaults that work for your model111 )112 113 with gr.Row():114 115 guidance_scale = gr.Slider(116 label="Guidance scale",117 minimum=0.0,118 maximum=10.0,119 step=0.1,120 value=0.0, #Replace with defaults that work for your model121 )122 123 num_inference_steps = gr.Slider(124 label="Number of inference steps",125 minimum=1,126 maximum=50,127 step=1,128 value=2, #Replace with defaults that work for your model129 )130 131 gr.Examples(132 examples = examples,133 inputs = [prompt]134 )135 gr.on(136 triggers=[run_button.click, prompt.submit],137 fn = infer,138 inputs = [prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps],139 outputs = [result, seed]140 )141 142demo.queue().launch()