| | import gradio as gr |
| | import torch |
| | from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler |
| | import os |
| |
|
| | |
| | model_id = "Kernel/sd-nsfw" |
| |
|
| | |
| | |
| | |
| | print("Lade Modell...") |
| | pipe = StableDiffusionPipeline.from_pretrained( |
| | model_id, |
| | torch_dtype=torch.float32, |
| | safety_checker=None, |
| | requires_safety_checker=False |
| | ) |
| |
|
| | |
| | pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) |
| | pipe = pipe.to("cpu") |
| |
|
| | def generate_image(prompt, negative_prompt, steps, guidance_scale): |
| | print(f"Generiere Bild für: {prompt}") |
| | image = pipe( |
| | prompt=prompt, |
| | negative_prompt=negative_prompt, |
| | num_inference_steps=int(steps), |
| | guidance_scale=guidance_scale |
| | ).images[0] |
| | return image |
| |
|
| | |
| | with gr.Blocks() as demo: |
| | gr.Markdown("# 🎨 Unzensierter KI-Bildgenerator (CPU-optimiert)") |
| | gr.Markdown("Diese App nutzt das Modell `Kernel/sd-nsfw` auf Hugging Face Spaces (CPU).") |
| | |
| | with gr.Row(): |
| | with gr.Column(): |
| | prompt = gr.Textbox(label="Prompt", placeholder="Was möchtest du sehen?", lines=3) |
| | negative_prompt = gr.Textbox(label="Negativer Prompt", placeholder="Was soll nicht im Bild sein?", value="low quality, blurry, distorted") |
| | |
| | with gr.Row(): |
| | steps = gr.Slider(minimum=1, maximum=50, value=20, step=1, label="Inferenz-Schritte (CPU: 20 empfohlen)") |
| | guidance_scale = gr.Slider(minimum=1, maximum=20, value=7.5, step=0.5, label="Guidance Scale") |
| | |
| | generate_btn = gr.Button("Bild generieren", variant="primary") |
| | |
| | with gr.Column(): |
| | output_image = gr.Image(label="Generiertes Bild") |
| |
|
| | generate_btn.click( |
| | fn=generate_image, |
| | inputs=[prompt, negative_prompt, steps, guidance_scale], |
| | outputs=output_image |
| | ) |
| | |
| | gr.Markdown("---") |
| | gr.Markdown("⚠️ **Hinweis:** Da dies auf einer CPU läuft, kann die Generierung 1-2 Minuten dauern.") |
| |
|
| | if __name__ == "__main__": |
| | demo.launch() |
| |
|