Retour au Blog
Generative AI 25 février 2025 10 min de lecture

ControlNet + Stable Diffusion : génération d'images en production

Comment j'ai déployé Stable Diffusion avec ControlNet chez Ofoto — décisions d'architecture, API et prompt engineering.

Vue d'ensemble de l'architecture

Endpoint serverless Runpod + file Redis + routeur FastAPI

Pipeline ControlNet

from diffusers import StableDiffusionControlNetPipeline, ControlNetModel

controlnet = ControlNetModel.from_pretrained('lllyasviel/control_v11p_sd15_canny')
pipe = StableDiffusionControlNetPipeline.from_pretrained(
    'runwayml/stable-diffusion-v1-5',
    controlnet=controlnet,
    torch_dtype=torch.float16,
).to('cuda')

Optimisations de production

  1. torch.compile() — 35 % d'accélération sur A100
  2. xformers attention — 40 % de VRAM en moins
  3. Inférence par lots — traite 4 images simultanément
  4. Filtre NSFW — requis pour les API publiques

Prompt engineering pour la cohérence

Incluez toujours des tokens de qualité : masterpiece, best quality, 8k, detailed

Stable DiffusionControlNetDiffusersProductionFastAPI
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc