Generatieve AI met Python: Maak je eigen AI-beeldgenerator met Stable Diffusion
Stable Diffusion is een van de meest indrukwekkende voorbeelden van generatieve AI. Met slechts een korte tekstprompt kun je een volledig nieuwe afbeelding laten genereren – van fotorealistische landschappen tot futuristische kunstwerken. In dit artikel leer je hoe je met Python en de diffusers
-bibliotheek van Hugging Face je eigen beeldgenerator bouwt, inclusief een eenvoudige webinterface met Streamlit of Gradio.
Wat is Stable Diffusion?
Stable Diffusion is een text-to-image diffusion model. Het is getraind om willekeurige ruis geleidelijk om te zetten in een betekenisvolle afbeelding op basis van een ingevoerde tekstprompt.
Waarom zelf gebruiken?
Leerzaam: Begrijp generatieve modellen praktisch.
Creatieve vrijheid: Maak eigen visuals.
Lokaal draaien: Geen afhankelijkheid van externe diensten.
Deel 1 – Installatie en voorbereiding
Systeemvereisten
- Python 3.9+
- (Optioneel) GPU met 8GB+ VRAM (voor lokale generatie)
- Hugging Face account met een API token
Installatie
Maak een virtuele omgeving aan en installeer de benodigde pakketten:
python -m venv venv
source venv/bin/activate # op Windows: venv\Scripts\activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install diffusers transformers accelerate scipy safetensors
Hugging Face authenticatie
Gebruik je token om toegang te krijgen tot de modellen:
huggingface-cli login
Of in je Python-script:
from huggingface_hub import login
login(token="jouw_huggingface_token")
Deel 2 – Een afbeelding genereren met diffusers
We gebruiken hier het model runwayml/stable-diffusion-v1-5
.
from diffusers import StableDiffusionPipeline
import torch
# Laad het model
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16,
use_auth_token=True
).to("cuda")
# Genereer een afbeelding
prompt = "A futuristic cityscape at sunset, ultra detailed"
image = pipe(prompt).images[0]
# Bewaar het resultaat
image.save("stad_bij_zonsondergang.png")
Heeft de machine waar je dit op probeert te draaien geen GPU? Voeg .to("cpu")
toe, maar de generatie zal dan 5–10 minuten duren i.p.v. 10 seconden.
Deel 3 – Webinterface bouwen
Een GUI maakt het experimenteren leuker. We tonen twee opties.
Optie A: Streamlit
Installeer:
pip install streamlit
import streamlit as st
from diffusers import StableDiffusionPipeline
import torch
st.title("Stable Diffusion Beeldgenerator")
prompt = st.text_input("Voer een prompt in:")
generate = st.button("Genereer afbeelding")
if generate and prompt:
with st.spinner("Bezig met genereren..."):
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
).to("cuda")
image = pipe(prompt).images[0]
st.image(image)
Start met in de command interface met:
streamlit run app_streamlit.py
Optie B: Gradio
Installeer:
pip install gradio
import gradio as gr
from diffusers import StableDiffusionPipeline
import torch
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
).to("cuda")
def generate_image(prompt):
image = pipe(prompt).images[0]
return image
gr.Interface(
fn=generate_image,
inputs="text",
outputs="image",
title="Stable Diffusion Generator"
).launch()
Ook deze start je weer in de command interface met:
python app_gradio.py
Lokaal vs. Cloud (voor dit project)
Aspect | Lokaal | Cloud (Hugging Face Spaces) |
---|---|---|
Snelheid | Razendsnel met GPU | Afhankelijk van plan/server |
Installatie | Vereist setup en drivers | Geen setup, direct gebruiksklaar |
Kosten | Gratis, maar GPU nodig | Gratis met limieten / betaald |
Controle | Volledige vrijheid | Minder controle, maar makkelijk |
Heb je geen geschikte hardware? Je kunt dezelfde pipeline draaien via Hugging Face’s Spaces, of Colab.
Bonus: Tips voor betere resultaten
- Gebruik specifieke termen:
"a cinematic portrait of a tiger wearing a tuxedo"
- Voeg stijlen toe:
"in the style of Studio Ghibli"
- Combineer met negatieve prompts (in sommige versies):
"low quality, blurry"
Bronnen & Verder lezen
Tot slot
Generatieve AI is geen toekomstmuziek – je kunt er vandaag nog zelf mee aan de slag. Door het combineren van krachtige modellen en toegankelijke Python-tools is het mogelijk om in een paar regels code kunst te genereren, en zelfs je eigen app te bouwen.