CoolFace
Apppublic

schoperlaster/CreateaImage

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes
app.py155 linesDownload Raw Back to root
1import gradio as gr2import numpy as np3import random4 5# import spaces #[uncomment to use ZeroGPU]6from diffusers import DiffusionPipeline7import torch8 9device = "cuda" if torch.cuda.is_available() else "cpu"10model_repo_id = "stabilityai/sdxl-turbo"  # Replace to the model you would like to use11 12if torch.cuda.is_available():13    torch_dtype = torch.float1614else:15    torch_dtype = torch.float3216 17pipe = DiffusionPipeline.from_pretrained(model_repo_id, torch_dtype=torch_dtype)18pipe = pipe.to(device)19 20MAX_SEED = np.iinfo(np.int32).max21MAX_IMAGE_SIZE = 102422 23 24# @spaces.GPU #[uncomment to use ZeroGPU]25def infer(26    prompt,27    negative_prompt,28    seed,29    randomize_seed,30    width,31    height,32    guidance_scale,33    num_inference_steps,34    progress=gr.Progress(track_tqdm=True),35):36    if randomize_seed:37        seed = random.randint(0, MAX_SEED)38 39    generator = torch.Generator().manual_seed(seed)40 41    image = pipe(42        prompt=prompt,43        negative_prompt=negative_prompt,44        guidance_scale=guidance_scale,45        num_inference_steps=num_inference_steps,46        width=width,47        height=height,48        generator=generator,49    ).images[0]50 51    return image, seed52 53 54examples = [55    "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k",56    "An astronaut riding a green horse",57    "A delicious ceviche cheesecake slice",58]59 60css = """61#col-container {62    margin: 0 auto;63    max-width: 640px;64}65"""66 67with gr.Blocks(css=css) as demo:68    with gr.Column(elem_id="col-container"):69        gr.Markdown(" # Text-to-Image Gradio Template")70 71        with gr.Row():72            prompt = gr.Text(73                label="Prompt",74                show_label=False,75                max_lines=1,76                placeholder="Enter your prompt",77                container=False,78            )79 80            run_button = gr.Button("Run", scale=0, variant="primary")81 82        result = gr.Image(label="Result", show_label=False)83 84        with gr.Accordion("Advanced Settings", open=False):85            negative_prompt = gr.Text(86                label="Negative prompt",87                max_lines=1,88                placeholder="Enter a negative prompt",89                visible=False,90            )91 92            seed = gr.Slider(93                label="Seed",94                minimum=0,95                maximum=MAX_SEED,96                step=1,97                value=0,98            )99 100            randomize_seed = gr.Checkbox(label="Randomize seed", value=True)101 102            with gr.Row():103                width = gr.Slider(104                    label="Width",105                    minimum=256,106                    maximum=MAX_IMAGE_SIZE,107                    step=32,108                    value=1024,  # Replace with defaults that work for your model109                )110 111                height = gr.Slider(112                    label="Height",113                    minimum=256,114                    maximum=MAX_IMAGE_SIZE,115                    step=32,116                    value=1024,  # Replace with defaults that work for your model117                )118 119            with gr.Row():120                guidance_scale = gr.Slider(121                    label="Guidance scale",122                    minimum=0.0,123                    maximum=10.0,124                    step=0.1,125                    value=0.0,  # Replace with defaults that work for your model126                )127 128                num_inference_steps = gr.Slider(129                    label="Number of inference steps",130                    minimum=1,131                    maximum=50,132                    step=1,133                    value=2,  # Replace with defaults that work for your model134                )135 136        gr.Examples(examples=examples, inputs=[prompt])137    gr.on(138        triggers=[run_button.click, prompt.submit],139        fn=infer,140        inputs=[141            prompt,142            negative_prompt,143            seed,144            randomize_seed,145            width,146            height,147            guidance_scale,148            num_inference_steps,149        ],150        outputs=[result, seed],151    )152 153if __name__ == "__main__":154    demo.launch()155