# Mille images pendant la nuit : automatiser la génération par lots

> Piloter ComfyUI par son API pour générer des centaines d'images : export du workflow, file d'attente, script Python, serverless et coût de mille images.


*Ou : comment transformer un atelier qu'on manipule à la souris en une usine qui tourne pendant que vous dormez.*

La réponse courte : pour générer des centaines d'images, on n'utilise plus l'interface de ComfyUI, mais son API. On exporte le workflow au format API, puis un script envoie autant de requêtes qu'il faut à la route `/prompt`, en faisant varier la graine ou le texte, et récupère les images au fil de l'eau. Sur une RTX 4090 louée 0,34 $ de l'heure, mille images SDXL demandent environ une heure vingt de calcul, moins de cinquante centimes. Pour un volume irrégulier, le même workflow tourne en serverless, facturé à la seconde. C'est la façon la plus économique de pratiquer [la génération d'images sur GPU](/guides/gpu-cloud-ia/generation-images-gpu-cloud/) en volume.

Tout commence par l'export. Dans ComfyUI, le menu d'export au format API produit un fichier JSON différent de la sauvegarde habituelle : chaque nœud y est identifié par un numéro, sans positions ni couleurs, avec ses entrées. C'est ce fichier que le script modifie et envoie. [La documentation des routes du serveur](https://docs.comfy.org/development/comfyui-server/comms_routes) décrit le reste : `POST /prompt` ajoute un travail à la file et renvoie son identifiant, `GET /history/{prompt_id}` indique ce qu'il a produit, `GET /view` renvoie l'image, et une liaison WebSocket signale la progression en temps réel.

Il n'existe pas de route pour envoyer un lot en une fois : chaque requête place un seul travail dans la file. Le lot se construit donc côté client, en bouclant. On peut aussi demander plusieurs images par travail, avec le paramètre de taille de lot du nœud qui crée l'image vide, mais au prix d'une mémoire graphique multipliée d'autant.

> **Pour qui** : un créateur ou un développeur qui doit produire des centaines d'images à partir d'un même workflow, sans rester devant l'écran.
>
> **À partir de** : 0,34 $ de l'heure pour une RTX 4090 en Community Cloud, 0,00031 $ la seconde pour la même carte en serverless, facturés à la seconde dans les deux cas.
>
> **Pour démarrer** : ouvrir un compte Runpod, lancer un pod ComfyUI pour mettre au point le workflow, puis l'exporter au format API et lancer le script.

## ComfyUI API : le script, la file et le coût de mille images

Voici la boucle minimale, sur le modèle des exemples officiels de ComfyUI, qui envoie mille variantes d'un même workflow :

```python
# Envoie mille variantes d'un workflow à ComfyUI en changeant la graine
import json
import urllib.request
import uuid

SERVEUR = "http://127.0.0.1:8188"
client_id = str(uuid.uuid4())

with open("workflow_api.json", encoding="utf-8") as f:
    workflow = json.load(f)  # exporté avec « Export Workflow (API) »

for graine in range(1000):
    workflow["3"]["inputs"]["seed"] = graine  # "3" : numéro du nœud d'échantillonnage dans cet export
    corps = json.dumps({"prompt": workflow, "client_id": client_id}).encode()
    requete = urllib.request.Request(f"{SERVEUR}/prompt", data=corps, headers={"Content-Type": "application/json"})
    with urllib.request.urlopen(requete) as reponse:
        print(graine, json.load(reponse)["prompt_id"])
```

Le serveur range les mille travaux dans sa file et les exécute l'un après l'autre. Le numéro du nœud, `"3"` ici, dépend de votre export : ouvrez le fichier pour trouver celui du nœud d'échantillonnage. Pour récupérer les images, [l'exemple officiel à WebSocket](https://github.com/Comfy-Org/ComfyUI/blob/master/script_examples/websockets_api_example.py) écoute la fin de chaque travail puis appelle l'historique ; plus simplement, les images s'accumulent dans le dossier de sortie du pod, à rapatrier en une fois. Sur un pod Runpod, le serveur tourne sur le port 8188 et le script peut s'exécuter dans le terminal du pod lui-même.

| Mille images | Temps de calcul | Coût sur RTX 4090 Community | Même volume par API |
|---|---|---|---|
| SDXL, 4,8 s par image | environ 1 h 20 | environ 0,45 $ | non relevé |
| FLUX.2 klein 9B, 3,8 s par image | environ 1 h 03 | environ 0,36 $ | 10 $ chez WaveSpeed |
| Flux dev en FP8, 20 étapes, une dizaine de secondes | environ 2 h 50 | environ 0,95 $ | 12 $ chez WaveSpeed, 25 $ chez fal.ai |

Temps SDXL et FLUX.2 klein mesurés par Runpod en septembre 2026, temps Flux dev tiré des mesures de la communauté ComfyUI. Ces coûts supposent une carte occupée sans interruption : la mise au point du workflow, le téléchargement des modèles et les pauses s'ajoutent à la facture.

Pour un volume irrégulier, le pod n'est pas la bonne formule, et [le worker ComfyUI de Runpod](https://github.com/runpod-workers/worker-comfyui) prend le relais en serverless. On lui envoie le même workflow au format API, éventuellement avec des images en base64, et il renvoie les images produites, en base64 ou déposées sur un stockage S3. C'est ce worker qui a produit les 84 images de la vidéo sur kDrive publiée avec ce site, pour 1,84 $ sur A40, soit 0,022 $ l'image, reprises et réveils compris. Le 27 septembre 2026, trois images générées par le même worker ont coûté 0,0325 $ au total, soit 0,011 $ l'image. Le serverless coûte plus cher par image qu'un pod à pleine charge, mais rien entre deux lots.

Deux pièges à connaître. L'historique du serveur est plafonné à 10 000 travaux : au-delà, les plus anciens disparaissent, ce qui compte pour un très gros lot qui s'appuie sur l'historique. Et un article de Runpod rappelle que ComfyUI traite une image à la fois : remplir la file ne rend pas les images moins chères, cela garantit seulement que la carte ne se repose jamais, ce qui est précisément ce qu'on paie.

![Illustration : longue chaîne de production nocturne dans une usine sombre, une machine de laiton déposant de petits cadres lumineux vierges sur un tapis roulant qui s'éloigne](/images/generation-images-par-lots-automatiser-usine.original.webp "La nuit, personne ne clique : la file se vide toute seule, et la carte ne s'arrête qu'au dernier cadre.")

### Si ComfyUI n'est pas encore installé

Le pod ComfyUI de Runpod se lance en quelques clics, à condition de régler la sécurité avant de partager quoi que ce soit. La marche à suivre est dans [déployer ComfyUI sur GPU cloud](/guides/gpu-cloud-ia/generation-images-gpu-cloud/comfyui-gpu-cloud-deploiement/).

### Si vos lots doivent être agrandis

Mille images générées en 1024 pixels passent souvent par un agrandissement avant publication. Les outils ouverts et leur coût par lot sont dans [l'upscaling sur GPU loué](/guides/gpu-cloud-ia/generation-images-gpu-cloud/upscaling-images-ia-gpu-cloud/).

### Si vous comparez avec une API à l'image

Mille images Flux dev coûtent moins d'un dollar sur une carte occupée, douze par API. Le seuil exact, pauses comprises, est calculé dans [le seuil de l'auto-hébergement](/guides/gpu-cloud-ia/generation-images-gpu-cloud/images-api-hebergee-vs-auto-hebergement/).


---

Cette page contient des liens d'affiliation. Si tu souscris via ces liens, je peux toucher une commission sans coût supplémentaire pour toi. Mon avis reste indépendant et basé sur mon usage réel des outils que je recommande.


---

**Tarifs :** prix relevés le 27 septembre 2026 sur les sites officiels des fournisseurs, dans la devise qu'ils affichent : dollars américains pour les plateformes américaines, euros hors taxes pour les européennes. Les tarifs du GPU bougent souvent, et sur une place de marché chaque hôte fixe son prix : les montants cités peuvent avoir changé depuis cette date.

