Démarrage rapide avec l'API Qwen Image 2512 : Générer des images en quelques minutes (2026)
Bonjour, je suis Dora. J’avais l’habitude de passer beaucoup de temps à créer des images pour des produits : trouver des ressources, les redimensionner, renommer les fichiers, organiser les dossiers… chaque étape se répétait sans fin. Rien n’était difficile, mais c’était fastidieux. Plus tard, j’ai essayé l’API Qwen Image 2512 et j’ai découvert que je pouvais automatiser tout cela avec quelques lignes de code.
Ce n’est pas une publicité. Je partage simplement ce qui s’est réellement passé quand j’ai essayé — ce qui s’est bien passé, où j’ai buté, et comment j’en ai fait quelque chose de fiable.
Raccourci WaveSpeed (Si vous voulez juste des résultats)
Si vous voulez générer des images rapidement, sans tout configurer vous-même :
- WaveSpeed fournit déjà une API REST Qwen Image 2512 prête à l’emploi (pas de démarrages à froid).
- Utilisez l’endpoint WaveSpeed + clé API → vous êtes prêt.
- Si vous voulez comprendre le flux officiel DashScope (et les pièges courants), continuez à lire.
Que peut vraiment faire cette API ?
Simplement dit : vous tapez une description en texte, et elle vous donne une image.
Par exemple, si vous écrivez :
« Un bureau bien rangé avec un cahier et une plante sous une lumière douce »
quelques secondes plus tard, vous obtenez une image qui correspond à votre description — et vous pouvez l’enregistrer automatiquement sur votre ordinateur.
Les choses pour lesquelles c’est bon :
- Créer des tableaux d’inspiration
- Générer rapidement des vignettes
- Ajouter des images temporaires à des documents
- Créer des visuels de prototype pour des produits
Ce que j’ai remarqué :
La première fois que je l’ai utilisé, cela ne semblait pas beaucoup plus rapide que de trouver manuellement des images. Mais après deux ou trois essais, j’ai réalisé que je n’avais plus à me demander « quelle taille devrait-ce être ? » ou « comment devrais-je nommer le fichier ? ». Ce qu’elle m’a économisé, ce n’était pas juste du temps, c’était de l’effort mental.
Format d’image et stockage
- Format : PNG, généré automatiquement par défaut
- Où l’image est stockée :
- L’API retourne un lien (URL) vers l’image
- Le lien pointe vers un serveur Alibaba Cloud
- Important : le lien n’est valable que pendant 24 heures ; après, il expire
- Vous devez donc le télécharger sur votre ordinateur rapidement
Note : L’API ne vous donne pas directement le fichier image. Si vous voulez l’enregistrer localement, vous devez ajouter une étape de téléchargement dans votre code (expliqué plus tard).
Avant de commencer : ce dont vous avez besoin
Étape 1 : Obtenir un compte et une clé API
- S’inscrire à un compte Alibaba Cloud

- Allez à la Console Model Studio
- Générez une clé API (comme une clé qui prouve que c’est vous)
- Enregistrez la clé en tant que variable d’environnement nommée
DASHSCOPE_API_KEY
Variable d’environnement :
Pensez-y comme un endroit spécial sur votre ordinateur où votre clé réside, afin que votre code puisse la trouver automatiquement sans la copier-coller à chaque fois.
Conseils :
- Pour les tests, vous pouvez la stocker dans un fichier
.env - Pour une utilisation réelle, un outil de gestion des clés sécurisé est plus sûr
- Les régions de Pékin et de Singapour ont des clés différentes — ne les mélangez pas
Étape 2 : Choisir un outil
Il y a trois façons principales, en commençant par la plus simple :

-
cURL (le plus simple)
- Bon pour les tests rapides pour voir si l’API fonctionne
- Aucune programmation requise, il suffit de coller la commande
- Recommandé pour le premier essai
-
Python (le plus courant)
- Bon pour créer un petit outil à utiliser de façon répétée
- J’utilise le SDK DashScope officiel pour gérer automatiquement de nombreux détails
- Des connaissances Python de base aident
-
Node.js (convivial pour les développeurs frontend)
- Si vous êtes développeur frontend, cela fonctionne aussi
- Les principes sont les mêmes, bien que je ne le couvre pas ici
Essayez d’abord le Playground :
Si vous voulez juste tester les résultats rapidement, Wavespeed Playground vous permet de générer des images dans le navigateur. Parfait pour un usage occasionnel. Pour la génération par lots ou l’automatisation, continuez à lire pour apprendre à utiliser l’API.
Démarrage rapide : tester avec cURL
Ouvrez votre terminal (Mac) ou votre invite de commande (Windows) et collez ceci :
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"model": "qwen-image-max",
"input": {
"messages": [
{
"role": "user",
"content": [
{"text": "A tidy desk with a notebook and a plant under soft light"}
]
}
]
},
"parameters": {
"size": "1024*1024"
}
}'
Appuyez sur Entrée, attendez quelques secondes, et vous verrez une réponse JSON avec un lien vers votre image.
Les pièges dans lesquels je suis tombé
- Le nom du modèle doit être
qwen-image-max, pasqwen-image-2512ou autre. - Le format de taille utilise un astérisque
1024*1024, pas1024x1024. - Pour la région de Singapour, changez l’URL en :
https://dashscope-intl.aliyuncs.com/api/v1/...
Si vous construisez quelque chose en production, le flux DashScope officiel est tout à fait viable — mais il s’accompagne de détails opérationnels (régions, durées de vie des URL, tentatives). C’est exactement pourquoi j’aime utiliser WaveSpeed pour le travail quotidien : cela me donne Qwen Image 2512 derrière une API REST prête à l’emploi, afin que je puisse me concentrer sur les prompts et la gestion de la sortie au lieu de la plomberie.

Paramètres expliqués
Obligatoires
-
model
"qwen-image-max"est le nom officiel pour Qwen-Image-2512- Il y a aussi
"qwen-image-plus", similaire mais moins cher
-
input.messages
- Un tableau avec un élément
textest votre description- Maximum 800 caractères (environ 400 caractères chinois)
Optionnels (valeurs par défaut utilisées si omis)
-
parameters.size
1664*928(paysage 16:9)1472*1104(4:3)1328*1328(carré 1:1, par défaut)1104*1472(portrait 3:4)928*1664(portrait 9:16)
-
parameters.negative_prompt
- Les choses que vous ne voulez pas : par ex.,
"basse-résolution, flou, distordu, surexposé" - Jusqu’à 500 caractères
- Les choses que vous ne voulez pas : par ex.,
-
parameters.prompt_extend
- La valeur par défaut est
true - Enrichit automatiquement votre description
- Désactivez si vous voulez un contrôle strict
- La valeur par défaut est
-
parameters.watermark
- La valeur par défaut est
false - Ajoute un filigrane « Qwen-Image » si
true
- La valeur par défaut est
-
parameters.seed
- Plage
0–2147483647 - Même graine + même description = même image
- Utile pour tester et comparer les résultats
- Plage
Exemple de réponse API
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxxx"
}
]
}
}
]
},
"usage": {
"width": 1328,
"image_count": 1,
"height": 1328
},
"request_id": "xxx"
}
Points clés
- URL de l’image :
output.choices[0].message.content[0].image - Vérifiez que
finish_reasonest"stop"pour confirmer le succès - Les liens durent 24 heures — téléchargez rapidement
Automatisation avec Python
Si vous voulez une génération par lots ou un petit outil :
import os
import time
import requests
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
API_KEY = os.getenv("DASHSCOPE_API_KEY")
ENDPOINT = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}",
}
def generate_image(prompt: str, size="1328*1328"):
payload = {
"model": "qwen-image-max",
"input": {
"messages": [{"role": "user", "content": [{"text": prompt}]}]
},
"parameters": {"size": size, "prompt_extend": True, "watermark": False}
}
r = requests.post(ENDPOINT, headers=HEADERS, json=payload, timeout=120)
r.raise_for_status()
data = r.json()
choices = data.get("output", {}).get("choices", [])
if not choices:
raise ValueError(f"No image generated:\n{data}")
content = choices[0].get("message", {}).get("content", [])
if not content:
raise ValueError(f"Empty content:\n{data}")
image_url = content[0].get("image")
if not image_url:
raise ValueError(f"No image URL:\n{data}")
img_response = requests.get(image_url)
img_response.raise_for_status()
file_name = PurePosixPath(unquote(urlparse(image_url).path)).parts[-1]
ts = int(time.time())
path = f"qwen_image_{ts}_{file_name}"
with open(path, "wb") as f:
f.write(img_response.content)
return path
if __name__ == "__main__":
output_path = generate_image("A tidy desk with a notebook and a plant under soft light")
print("Image saved at:", output_path)
Ce que j’ai appris en testant
- Un nom de modèle incorrecte le casse (
qwen-image-plus→qwen-image-max) - Un format de taille incorrect (
1328x1328au lieu de1328*1328) - La structure de réponse diffère légèrement de la documentation ; vérifiez l’URL de l’image
- Oublier de télécharger l’image fait expirer le lien après 24 heures
Utilisation du SDK officiel
import os
import json
from dashscope import MultiModalConversation
api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{"role": "user", "content": [{"text": "A tidy desk with a notebook and a plant under soft light"}]}]
response = MultiModalConversation.call(
api_key=api_key,
model="qwen-image-max",
messages=messages,
result_format='message',
stream=False,
watermark=False,
prompt_extend=True,
size='1328*1328'
)
if response.status_code == 200:
print(json.dumps(response, ensure_ascii=False))
image_url = response.output.choices[0].message.content[0]['image']
print(f"Image URL: {image_url}")
else:
print(f"Error: {response.code} - {response.message}")
Référence rapide des paramètres
| Paramètre | Valeur suggérée | Notes |
|---|---|---|
| size | 1328*1328 | Carré, équilibre vitesse et qualité |
| prompt_extend | TRUE | Laisser l’IA enrichir votre description |
| seed | Nombre fixe | Utiliser pour tester et comparer les résultats |
| negative_prompt | Selon les besoins | par ex., « flou, basse qualité, distordu » |
Quand changer la graine
- Graine fixe → comparer les variations de prompt
- Graines différentes → générer plusieurs images distinctes
Erreurs courantes et correctifs
401 Unauthorized→ clé API incorrecte, région incorrecte, ou permission d’image manquante429 Rate limit→ trop de demandes ; ajoutez un délai ou augmentez le quota- Timeout / problèmes réseau → augmentez le timeout, téléchargez immédiatement
Petites améliorations que j’ai apportées
- Graine fixe pour tester les prompts → plus facile de comparer les résultats
- Nommage cohérent des fichiers :
{keyword}-{size}-{seed}.png - Gestion des fichiers de configuration : YAML pour éviter le codage en dur des paramètres
Pour qui cela fonctionne
Playground
- Génération d’images occasionnelle
- Test rapide de prompt
- Aucune automatisation requise
API
- Génération par lots
- Intégration d’outils ou de produits
- Utilisation programmée ou basée sur le système
Chemins finaux (choisissez ce qui vous convient)
Chemin A — Rapide et pratique
- Utilisez l’API Playground WaveSpeed pour Qwen Image 2512
- Configuration minimale, endpoint REST prêt à l’emploi
Chemin B — Contrôle total
- Utilisez DashScope directement si vous avez besoin d’une intégration approfondie d’Alibaba Cloud
J’aime les outils qui fonctionnent tranquillement en arrière-plan. Pour apprendre et comprendre, le flux officiel est excellent. Pour le travail quotidien et livrer plus vite, WaveSpeed m’épargne beaucoup de friction.





