Team Ai
Apppublic

superlazycoder/zeroGPU2

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py184 linesDownload Raw Back to root
1import gradio as gr2import numpy as np3import random4from diffusers import DiffusionPipeline5import torch6import spaces7 8device = "cuda"9 10MAX_SEED = np.iinfo(np.int32).max11MAX_IMAGE_SIZE = 102412 13@spaces.GPU14def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps):15 16    if randomize_seed:17        seed = random.randint(0, MAX_SEED)18        19    generator = torch.Generator().manual_seed(seed)20 21    pipe = DiffusionPipeline.from_pretrained("stabilityai/sdxl-turbo", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)22    pipe.enable_xformers_memory_efficient_attention()23    pipe = pipe.to(device)24    25    image = pipe(26        prompt = prompt, 27        negative_prompt = negative_prompt,28        guidance_scale = guidance_scale, 29        num_inference_steps = num_inference_steps, 30        width = width, 31        height = height,32        generator = generator33    ).images[0] 34    35    return image36 37 38 39@spaces.GPU40def reject(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps):41 42    if randomize_seed:43        seed = random.randint(0, MAX_SEED)44        45    generator = torch.Generator().manual_seed(seed)46 47    pipe = DiffusionPipeline.from_pretrained("stabilityai/sdxl-turbo", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)48    pipe.enable_xformers_memory_efficient_attention()49    pipe = pipe.to(device)50    51    image = pipe(52        prompt = prompt, 53        negative_prompt = negative_prompt,54        guidance_scale = guidance_scale, 55        num_inference_steps = num_inference_steps, 56        width = width, 57        height = height,58        generator = generator59    ).images[0] 60    61    return image62 63 64@spaces.GPU65def accept(textOutput):66    67    return gr.Button.update(visible=True)68 69 70examples = [71    "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k",72    "An astronaut riding a green horse",73    "A delicious ceviche cheesecake slice",74]75 76css="""77#col-container {78    margin: 0 auto;79    max-width: 520px;80}81"""82 83 84power_device = "GPU"85 86with gr.Blocks(css=css) as demo:87    88    with gr.Column(elem_id="col-container"):89        gr.Markdown(f"""90        # Text-to-Image Gradio Template91        Currently running on {power_device}.92        """)93        94        with gr.Row():95            96            prompt = gr.Text(97                label="Prompt",98                show_label=False,99                max_lines=1,100                placeholder="Enter your prompt",101                container=False,102            )103            104            run_button = gr.Button("Run", scale=0)105 106            left_button = gr.Button("Left", scale=0)107            right_button = gr.Button("Right", scale=0)108        109        result = gr.Image(label="Result", show_label=False)110        conv_id_element = gr.Text(value="Hello", visible=False)111 112        with gr.Accordion("Advanced Settings", open=False):113            114            negative_prompt = gr.Text(115                label="Negative prompt",116                max_lines=1,117                placeholder="Enter a negative prompt",118                visible=False,119            )120            121            seed = gr.Slider(122                label="Seed",123                minimum=0,124                maximum=MAX_SEED,125                step=1,126                value=0,127            )128            129            randomize_seed = gr.Checkbox(label="Randomize seed", value=True)130            131            with gr.Row():132                133                width = gr.Slider(134                    label="Width",135                    minimum=256,136                    maximum=MAX_IMAGE_SIZE,137                    step=32,138                    value=512,139                )140                141                height = gr.Slider(142                    label="Height",143                    minimum=256,144                    maximum=MAX_IMAGE_SIZE,145                    step=32,146                    value=512,147                )148            149            with gr.Row():150                151                guidance_scale = gr.Slider(152                    label="Guidance scale",153                    minimum=0.0,154                    maximum=10.0,155                    step=0.1,156                    value=0.0,157                )158                159                num_inference_steps = gr.Slider(160                    label="Number of inference steps",161                    minimum=1,162                    maximum=12,163                    step=1,164                    value=2,165                )166        167        gr.Examples(168            examples = examples,169            inputs = [prompt]170        )171 172    left_button.click(173        fn = reject,174        inputs = [prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps],175        outputs = [result]        176    )177 178    right_button.click(179        fn = accept,180        inputs = [right_button],181        outputs = [conv_id_element]        182    )183 184demo.queue().launch()