Spaces:
Paused
Paused
| from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler | |
| import torch | |
| class ImageGenerator: | |
| def __init__(self, model_id="stabilityai/stable-diffusion-2-1-base", device="cuda"): | |
| scheduler = EulerDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler") | |
| self.pipe = StableDiffusionPipeline.from_pretrained( | |
| model_id, | |
| scheduler=scheduler, | |
| torch_dtype=torch.float16 | |
| ) | |
| self.pipe = self.pipe.to(device) | |
| def generate(self, prompt, negative_prompt=None, output_path=None): | |
| image = self.pipe(prompt, negative_prompt=negative_prompt).images[0] | |
| if output_path: | |
| image.save(output_path) | |
| return image | |
| # Example usage | |
| if __name__ == "__main__": | |
| generator = ImageGenerator() | |
| import time | |
| start_time = time.time() | |
| image = generator.generate( | |
| prompt="magenta trapezoids layered on a transluscent silver sheet, simple, icon", | |
| negative_prompt="3d, blurry, complex geometry, realistic", | |
| output_path="sheet.png" | |
| ) | |
| end_time = time.time() | |
| print(f"Time taken: {end_time - start_time} seconds") | |