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)

AspectLokaalCloud (Hugging Face Spaces)
SnelheidRazendsnel met GPUAfhankelijk van plan/server
InstallatieVereist setup en driversGeen setup, direct gebruiksklaar
KostenGratis, maar GPU nodigGratis met limieten / betaald
ControleVolledige vrijheidMinder 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.