📖 Manuel
Prompt Translator
Workflow de traduction en 5 étapes
Étape 1 — Collecte des infos
Demander si absent :
- Modèle source (ex.
gpt-4o,claude-3-5-sonnet,midjourney v6,gemini-1.5-pro) - Modèle cible (ex.
claude-opus-4,dall-e-3,gpt-4.1) - Prompt original complet — system prompt + user message séparés si applicable
- Contexte d'usage (API directe, playground, intégration applicative)
Étape 2 — Diagnostic des différences critiques
Analyser selon la paire source→cible :
| Dimension | GPT-4x | Claude | Gemini | Midjourney/DALL-E |
|---|---|---|---|---|
| Structure préférée | Markdown, instructions linéaires | Balises XML <role>, <context>, <instructions> | Markdown, liste hiérarchique | Paramètres inline (--ar, style tokens) |
| System prompt | {"role":"system","content":"..."} | system= param séparé | system_instruction | N/A |
| Few-shot | Messages alternés user/assistant | <examples> XML ou messages alternés | Turns multimodaux | Tokens de style (ex. in the style of) |
| Longueur optimale | ~2 000 tokens suffit | Supporte 200k, profite des instructions longues | 1M tokens, verbose ok | 77 tokens max (CLIP) |
| Refus/guardrails | Safety layer strict, tournures à éviter | Nuancé, accepte ambiguïté si contexte clair | Modéré | Filtrage image automatique |
Étape 3 — Règles de traduction par cas
GPT → Claude
# Avant (GPT)
system: "You are a helpful assistant. Be concise."
user: "Summarize: {{text}}"
# Après (Claude)
<system>
Vous êtes un assistant expert en synthèse.
<constraints>Répondez en moins de 150 mots. Langue : français.</constraints>
</system>
<task>Résumez le texte suivant :\n<text>{{text}}</text></task>
- Remplacer les instructions implicites par des contraintes XML explicites
- Séparer
role,context,task,output_formaten balises distinctes - Supprimer les tournures "You must never…" → préférer "Faites X" (positif)
temperature=0GPT ≈temperature=0Claude (échelles identiques 0–1)
Claude → GPT
# Avant (Claude XML)
<instructions>Liste les 3 points clés. Format JSON.</instructions>
<text>{{text}}</text>
# Après (GPT)
system: "Tu es un assistant analytique. Réponds toujours en JSON valide."
user: "Liste les 3 points clés du texte suivant :\n\n{{text}}\n\nFormat attendu : {\"points\":[...]}"
- Aplatir les balises XML en texte structuré Markdown
- Déplacer le format de sortie dans le message user ou en fin de system
- Ajouter
response_format: {"type":"json_object"}si JSON requis (API)
Midjourney → DALL-E 3
# Avant (Midjourney)
/imagine a futuristic city at dusk, cyberpunk, neon lights, rainy streets --ar 16:9 --style raw --v 6.1
# Après (DALL-E 3)
"A wide-angle (16:9 crop) photorealistic render of a futuristic cyberpunk city at dusk.
Neon lights reflect on rain-slicked streets. No text, no watermark.
Style: cinematic, high contrast, volumetric fog."
- Traduire
--ar→ description de cadrage ("landscape", "portrait", "square") --style raw→ "photorealistic", "no artistic filter"--v 6→ sans équivalent, préciser "hyper-detailed, current AI render quality"--no X→ "Exclude: X" en fin de prompt DALL-E
Midjourney → Stable Diffusion / Flux
# Avant
/imagine portrait of a samurai, bokeh, 85mm lens --ar 2:3 --style raw
# Après (SD/Flux — positive + negative)
positive: "portrait of a samurai, bokeh background, 85mm lens, photorealistic, sharp focus, 2:3 ratio"
negative: "blurry, cartoon, anime, watermark, low quality, deformed hands"
- Toujours générer un prompt négatif explicite
- Ajouter des tokens de qualité :
masterpiece, best quality, 8k - Préciser le sampler si connu :
DPM++ 2M Karras,Euler a
Étape 4 — Livraison du prompt traduit
Fournir :
- Prompt final copier-coller (code block, sans explication mélangée)
- Paramètres API si applicable (temperature, max_tokens, response_format)
Exemple de bloc livrable :
# Claude API
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=1024,
system="<role>Expert en synthèse</role>",
messages=[{"role": "user", "content": "<task>Résumez : {{text}}</task>"}]
)
Étape 5 — Notes de migration
Signaler systématiquement :
- Fonctionnalités perdues (ex. vision GPT-4V → pas de vision en mode text-only Claude)
- Fonctionnalités gagnées (ex. contexte 200k Claude vs 128k GPT)
- Comportements différents : ton par défaut, verbosité, format JSON natif
- Paramètres à ajuster :
top_p,temperature, seeds image - Tests recommandés : 3 à 5 inputs représentatifs avant de valider la migration
Garde-fous & anti-patterns
| Anti-pattern | Problème | Correctif |
|---|---|---|
| Copier-coller le prompt sans adaptation | Format inadapté, résultats dégradés | Toujours appliquer les règles de structure cible |
Traduire --ar par rien | DALL-E ignore le ratio, image carrée | Ajouter le ratio en texte ("landscape 16:9") |
| Garder les balises XML pour GPT | GPT les lit comme texte littéral | Aplatir en Markdown |
| Omettre le prompt négatif pour SD/Flux | Artefacts visuels fréquents | Prompt négatif obligatoire |
| Ignorer les limites de tokens Midjourney | Prompt tronqué silencieusement à 77 tokens | Compresser le prompt, tester le token count |
system vide pour Claude | Comportement générique, pas de persona | Toujours renseigner system= |
| Temperature identique sans vérifier l'échelle | Gemini 0.0–2.0 ≠ Claude 0.0–1.0 | Normaliser selon l'échelle cible |
Paires de traduction courantes (2026)
| Source | Cible | Effort | Notes |
|---|---|---|---|
| GPT-4o | Claude Opus/Sonnet | Faible | Structurer en XML, gain sur longs contextes |
| Claude 3.x | GPT-4.1 | Faible | Aplatir XML → Markdown |
| Midjourney v6 | DALL-E 3 | Moyen | Perte des paramètres fins de style |
| Midjourney v6 | Flux / SD 3.5 | Moyen | Nécessite prompt négatif |
| GPT-4o | Gemini 1.5/2.0 | Faible | Adapter system → system_instruction |
| Gemini | Claude | Faible | Ajouter XML, séparer system/user |