# Stable Diffusion 3.5

Stable Diffusion 3.5 de Stability AI est un Transformeur de Diffusion Multimodal (MMDiT) qui fixe une nouvelle norme pour la génération d'images à poids ouverts. Il est disponible en trois variantes : **Large** (8B paramètres), **Moyen** (2,5B paramètres), et **Large Turbo** (8B, distillé pour une inférence en 4 étapes). La caractéristique remarquable est son rendu précis du texte — SD 3.5 peut placer de manière fiable du texte lisible dans les images générées, une capacité avec laquelle la plupart des modèles antérieurs ont du mal.

Sur [Clore.ai](https://clore.ai/) vous pouvez louer la puissance GPU nécessaire à SD 3.5 pour aussi peu que 0,30 $/jour et générer des centaines d'images par heure.

## Principales caractéristiques

* **Trois variantes** — Large (8B, qualité la plus élevée), Medium (2,5B, rapide et léger), Large Turbo (8B, distillé en 4 étapes).
* **Rendu précis du texte** — génère du texte lisible, des panneaux, des étiquettes et de la typographie dans les images.
* **Architecture MMDiT** — attention conjointe image-texte pour une meilleure fidélité au prompt.
* **Résolution native 1024×1024** — sortie propre sans astuces d'upscaling.
* **Rapports d'aspect flexibles** — gère des sorties non carrées (768×1344, 1344×768, etc.) sans perte de qualité.
* **Support natif des diffusers** — `StableDiffusion3Pipeline` dans `diffusers >= 0.30`.
* **Poids ouverts** — Licence communautaire de Stability AI ; gratuite pour la plupart des usages commerciaux.

## Exigences

| Composant   | Minimum        | Recommandé            |
| ----------- | -------------- | --------------------- |
| VRAM GPU    | 12 GB (Medium) | 24 GB (Large / Turbo) |
| RAM système | 16 Go          | 32 Go                 |
| Disque      | 20 Go          | 40 Go                 |
| Python      | 3.10+          | 3.11                  |
| CUDA        | 12.1+          | 12.4                  |
| intégration | 0.30+          | dernière              |

**Recommandation GPU Clore.ai :** Un **RTX 4090** (24 GB, \~0,5–2 $/jour) exécute les trois variantes à pleine vitesse. Pour le modèle Medium, un **RTX 3090** (24 GB, \~0,3–1 $/jour) ou même une carte 16 GB est suffisant et moins cher.

## Démarrage rapide

```bash
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
pip install diffusers transformers accelerate sentencepiece protobuf

python -c "import torch; print(torch.cuda.get_device_name(0))"
```

## Exemples d'utilisation

### SD 3.5 Large — Qualité maximale

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-large",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")

image = pipe(
    prompt=(
        "Un panneau en bois patiné portant l'inscription 'OPEN 24 HOURS' suspendu à "
        "une chaîne rouillée devant un diner éclairé au néon, nuit pluvieuse, reflets "
        "sur l'asphalte mouillé, photographie cinématographique"
    ),
    negative_prompt="texte flou, texte déformé, basse qualité",
    guidance_scale=3.5,
    num_inference_steps=28,
    width=1024,
    height=1024,
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]

image.save("diner_sign.png")
print("Saved diner_sign.png")
```

### SD 3.5 Large Turbo — Génération rapide en 4 étapes

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-large-turbo",
    torch_dtype=torch.bfloat16,
).to("cuda")

# Variante Turbo : seulement 4 étapes nécessaires, guidance_scale=0 (distillé)
image = pipe(
    prompt="Photo macro d'un mouvement de montre mécanique, engrenages complexes, lumière dorée",
    guidance_scale=0.0,
    num_inference_steps=4,
    width=1024,
    height=1024,
).images[0]

image.save("watch_turbo.png")
```

### SD 3.5 Medium — Option légère

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-medium",
    torch_dtype=torch.float16,
).to("cuda")

image = pipe(
    prompt="Vue isométrique de l'intérieur d'un café douillet, style pixel art, éclairage chaleureux",
    guidance_scale=4.0,
    num_inference_steps=28,
    width=1024,
    height=1024,
).images[0]

image.save("coffee_shop_medium.png")
```

### Génération par lot avec différents rapports d'aspect

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-large",
    torch_dtype=torch.bfloat16,
).to("cuda")

jobs = [
    {"prompt": "Portrait d'un astronaute dans un champ de tournesols", "w": 768, "h": 1344},
    {"prompt": "Paysage panoramique des hautes terres islandaises, ciels d'humeur sombre", "w": 1344, "h": 768},
    {"prompt": "Photo produit d'un flacon de parfum sur une surface en marbre", "w": 1024, "h": 1024},
]

for i, job in enumerate(jobs):
    img = pipe(
        prompt=job["prompt"],
        guidance_scale=3.5,
        num_inference_steps=28,
        width=job["w"],
        height=job["h"],
    ).images[0]
    img.save(f"batch_{i:03d}.png")
    print(f"[{i+1}/{len(jobs)}] {job['w']}x{job['h']} done")
```

## Conseils pour les utilisateurs de Clore.ai

1. **Turbo pour l'itération, Large pour les visuels finaux** — utilisez la variante Turbo en 4 étapes pour explorer rapidement des idées de prompt, puis passez au Large (28 étapes) pour le rendu final.
2. **guidance\_scale=3.5** — SD 3.5 Large fonctionne mieux avec un CFG plus bas que les anciens modèles Stable Diffusion. Monter au-dessus de 5.0 cause souvent une sursaturation.
3. **Turbo nécessite guidance\_scale=0** — le modèle distillé a déjà l'orientation intégrée ; en ajouter dégrade la sortie.
4. **Texte dans les images** — le rendu du texte par SD 3.5 est puissant mais pas parfait. Mettez des guillemets autour du texte exact que vous voulez : `'OPEN 24 HOURS'`. Gardez-le court (3–5 mots max).
5. **Mettre en cache les poids** — définissez `HF_HOME=/workspace/hf_cache` sur un stockage persistant. Large occupe \~16 GB sur le disque.
6. **bf16 pour Large, fp16 pour Medium** — les modèles 8B ont été entraînés en bf16 ; le Medium 2,5B fonctionne bien en fp16.
7. **Batcher efficacement** — SD 3.5 Large génère une image 1024×1024 en \~3 secondes sur une RTX 4090. Lancez des batches pendant la nuit pour une génération massive.
8. **Accepter la licence HF** — vous devez accepter la licence du modèle sur la page HuggingFace avant de télécharger. Connectez-vous avec `huggingface-cli login`.

## Dépannage

| Problème                                    | Corriger                                                                                                                        |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `OutOfMemoryError` avec Large               | Utilisez `pipe.enable_model_cpu_offload()`; ou passez à la variante Medium                                                      |
| Texte illisible dans l'image                | Gardez le texte court (3–5 mots) ; mettez-le entre guillemets dans le prompt ; augmentez `num_inference_steps` à 35             |
| Couleurs sursaturées                        | Plus bas `guidance_scale` — essayez 2,5–3,5 pour Large ; utilisez 0,0 pour Turbo                                                |
| Erreur 403 lors du téléchargement du modèle | Acceptez la licence sur `https://huggingface.co/stabilityai/stable-diffusion-3.5-large` et exécutez `huggingface-cli login`     |
| Première exécution lente                    | Le téléchargement initial est d'environ 16 GB pour Large ; les exécutions suivantes utilisent le cache                          |
| `KeyError: 'text_encoder_3'`                | Mettez à jour diffusers : `pip install -U diffusers transformers`                                                               |
| Sortie d'image noire                        | Assurez-vous que `torch_dtype=torch.bfloat16` pour Large/Turbo ; fp32 peut provoquer des échecs silencieux sur certaines cartes |
