Démarrage Rapide
Commencez avec Qwen Image Edit en quelques minutes
Démarrage Rapide
Ce guide vous permettra de commencer avec Qwen Image Edit en moins de 5 minutes. Vous apprendrez à configurer votre environnement et à effectuer vos premières éditions d'images.
📋 Prérequis
Avant de commencer, assurez-vous d'avoir :
- Une clé API Qwen Image Edit (obtenez-la sur dashboard.qwen.com)
- Node.js 16+ ou Python 3.8+ installé
- Une image de test pour vos premiers essais
🔧 Installation
JavaScript/TypeScript
# Avec npm
npm install qwen-image-edit
# Avec yarn
yarn add qwen-image-edit
# Avec pnpm
pnpm add qwen-image-edit
Python
# Avec pip
pip install qwen-image-edit
# Avec poetry
poetry add qwen-image-edit
PHP
# Avec composer
composer require qwen/image-edit
Java
<!-- Maven -->
<dependency>
<groupId>com.qwen</groupId>
<artifactId>image-edit</artifactId>
<version>1.0.0</version>
</dependency>
Go
go get github.com/qwen/image-edit-go
Ruby
gem install qwen-image-edit
⚙️ Configuration de Base
Variables d'Environnement
Créez un fichier .env
dans votre projet :
QWEN_API_KEY=votre_cle_api_ici
QWEN_REGION=eu-west-1
Configuration du Client
import { QwenImageEdit } from 'qwen-image-edit';
const editor = new QwenImageEdit({
apiKey: process.env.QWEN_API_KEY,
region: process.env.QWEN_REGION || 'eu-west-1'
});
from qwen_image_edit import QwenImageEdit
import os
editor = QwenImageEdit(
api_key=os.getenv('QWEN_API_KEY'),
region=os.getenv('QWEN_REGION', 'eu-west-1')
)
🎯 Premières Éditions
1. Édition de Texte Simple
Commençons par modifier du texte dans une image :
// JavaScript/TypeScript
const resultat = await editor.editText({
image: './mon-image.jpg',
prompt: 'Changer le texte "Bonjour" en "Salut"'
});
console.log('Image éditée sauvegardée :', resultat.imageUrl);
console.log('Crédits utilisés :', resultat.credits);
# Python
resultat = editor.edit_text(
image='./mon-image.jpg',
prompt='Changer le texte "Bonjour" en "Salut"'
)
print(f'Image éditée sauvegardée : {resultat.image_url}')
print(f'Crédits utilisés : {resultat.credits}')
2. Édition d'Éléments
Ajoutons un élément à votre image :
const resultat = await editor.editElement({
image: './produit.jpg',
prompt: 'Ajouter un badge "NOUVEAU" rouge dans le coin supérieur gauche'
});
console.log('Élément ajouté avec succès !');
resultat = editor.edit_element(
image='./produit.jpg',
prompt='Ajouter un badge "NOUVEAU" rouge dans le coin supérieur gauche'
)
print('Élément ajouté avec succès !')
🔑 Fonctionnalités Clés
Édition de Texte
// Modifier du texte existant
const editTexte = await editor.editText({
image: './affiche.jpg',
prompt: 'Remplacer "Événement 2023" par "Événement 2024"',
options: {
preserveStyle: true, // Conserver le style original
language: 'fr' // Spécifier la langue
}
});
// Ajouter du nouveau texte
const ajoutTexte = await editor.editText({
image: './banniere.jpg',
prompt: 'Ajouter "Offre Limitée" en rouge en bas de l\'image',
options: {
fontSize: 'large',
fontWeight: 'bold'
}
});
Manipulation d'Éléments
// Ajouter des éléments
const ajoutElement = await editor.editElement({
image: './photo.jpg',
prompt: 'Ajouter un logo d\'entreprise transparent dans le coin',
options: {
opacity: 0.7,
position: 'bottom-right'
}
});
// Supprimer des éléments
const suppressionElement = await editor.editElement({
image: './image-avec-filigrane.jpg',
prompt: 'Supprimer le filigrane en bas à droite',
options: {
method: 'remove'
}
});
Transfert de Style
const transfertStyle = await editor.transferStyle({
image: './photo-originale.jpg',
stylePrompt: 'Style vintage avec des tons sépia et un effet vieilli',
options: {
intensity: 0.8, // Intensité du style (0-1)
preserveDetails: true
}
});
💡 Bonnes Pratiques
Prompts Efficaces
// ✅ Bon : Spécifique et clair
const bon = await editor.editText({
image: './menu.jpg',
prompt: 'Changer le prix "15€" en "12€" pour le plat "Salade César"'
});
// ❌ Éviter : Trop vague
const vague = await editor.editText({
image: './menu.jpg',
prompt: 'Changer les prix'
});
// ✅ Bon : Instructions précises
const precis = await editor.editElement({
image: './produit.jpg',
prompt: 'Ajouter un badge circulaire "PROMO -20%" rouge avec texte blanc dans le coin supérieur droit'
});
Optimisation des Performances
// Redimensionner les images grandes pour de meilleures performances
const optimise = await editor.editText({
image: './grande-image.jpg',
prompt: 'Modifier le titre principal',
options: {
maxWidth: 2048, // Limiter la largeur
quality: 'high', // Qualité de sortie
format: 'jpeg' // Format de sortie
}
});
// Traitement par lots pour plusieurs images
const images = ['./img1.jpg', './img2.jpg', './img3.jpg'];
const resultats = await Promise.all(
images.map(image =>
editor.editText({
image,
prompt: 'Ajouter logo d\'entreprise'
})
)
);
🚨 Gestion d'Erreurs
try {
const resultat = await editor.editText({
image: './mon-image.jpg',
prompt: 'Modifier le texte principal'
});
console.log('Succès :', resultat.imageUrl);
} catch (error) {
switch (error.code) {
case 'INVALID_API_KEY':
console.error('Clé API invalide. Vérifiez votre configuration.');
break;
case 'QUOTA_EXCEEDED':
console.error('Quota dépassé. Vérifiez votre plan.');
break;
case 'IMAGE_TOO_LARGE':
console.error('Image trop grande. Redimensionnez-la.');
break;
case 'CONTENT_NOT_DETECTED':
console.error('Contenu spécifié non trouvé dans l\'image.');
break;
default:
console.error('Erreur :', error.message);
}
}
📊 Exemples Pratiques
Localisation Marketing
// Adapter une publicité pour différents marchés
const localisations = [
{ langue: 'fr', texte: 'Offre Spéciale' },
{ langue: 'es', texte: 'Oferta Especial' },
{ langue: 'de', texte: 'Sonderangebot' }
];
for (const loc of localisations) {
const resultat = await editor.editText({
image: './pub-originale.jpg',
prompt: `Remplacer le texte anglais par "${loc.texte}" en conservant le style`,
options: {
language: loc.langue,
outputPath: `./pub-${loc.langue}.jpg`
}
});
console.log(`Version ${loc.langue} créée : ${resultat.imageUrl}`);
}
E-commerce
// Mettre à jour les prix sur les images produits
const produits = [
{ image: './produit1.jpg', ancienPrix: '99€', nouveauPrix: '79€' },
{ image: './produit2.jpg', ancienPrix: '149€', nouveauPrix: '119€' }
];
for (const produit of produits) {
const resultat = await editor.editText({
image: produit.image,
prompt: `Changer le prix "${produit.ancienPrix}" en "${produit.nouveauPrix}"`,
options: {
preserveStyle: true
}
});
console.log(`Prix mis à jour pour ${produit.image}`);
}
Création de Contenu
// Créer des variations pour les réseaux sociaux
const variations = [
'Ajouter "Nouveau !" en badge rouge',
'Ajouter "Édition Limitée" en or',
'Ajouter "Bestseller" en vert'
];
for (const [index, variation] of variations.entries()) {
const resultat = await editor.editElement({
image: './post-base.jpg',
prompt: variation,
options: {
outputPath: `./variation-${index + 1}.jpg`
}
});
console.log(`Variation ${index + 1} créée`);
}
🔍 Analyse d'Image
// Analyser le contenu avant édition
const analyse = await editor.analyzeImage({
image: './image-complexe.jpg',
detect: ['text', 'objects', 'colors']
});
console.log('Texte détecté :', analyse.text);
console.log('Objets trouvés :', analyse.objects);
console.log('Couleurs principales :', analyse.colors);
// Utiliser l'analyse pour des éditions ciblées
if (analyse.text.length > 0) {
const premierTexte = analyse.text[0].content;
const resultat = await editor.editText({
image: './image-complexe.jpg',
prompt: `Changer "${premierTexte}" en "Texte Modifié"`
});
}
📦 Traitement par Lots
import pLimit from 'p-limit';
// Limiter la concurrence pour éviter les limites de taux
const limit = pLimit(3); // Maximum 3 requêtes simultanées
const images = [
'./image1.jpg',
'./image2.jpg',
'./image3.jpg',
'./image4.jpg'
];
const resultats = await Promise.all(
images.map(image =>
limit(() =>
editor.editText({
image,
prompt: 'Ajouter logo d\'entreprise dans le coin'
})
)
)
);
console.log(`${resultats.length} images traitées avec succès`);
🎯 Prochaines Étapes
Maintenant que vous maîtrisez les bases, explorez ces ressources avancées :
💡 Exemples Avancés
Découvrez des cas d'usage complexes et des techniques d'optimisation.
Voir les Exemples →
💬 Support
Besoin d'aide ? Nous sommes là pour vous :
- Documentation : docs.qwen.com
- Support : support@qwen.com
- Communauté : discord.gg/qwen
- GitHub : github.com/qwen/image-edit
Félicitations ! 🎉 Vous êtes maintenant prêt à utiliser Qwen Image Edit. Commencez par expérimenter avec vos propres images et explorez les possibilités infinies de l'édition d'images alimentée par l'IA.