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_format en balises distinctes
- Supprimer les tournures "You must never…" → préférer "Faites X" (positif)
temperature=0 GPT ≈ temperature=0 Claude (é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 |
1---2name: translator3description: Adapte un prompt d'un modèle/plateforme à un autre en préservant l'intention. À utiliser pour porter un prompt de ChatGPT vers Claude, de Midjourney vers DALL-E, ou entre modèles. Se déclenche aussi avec "adapter pour Claude", "convertir de GPT", "porter ce prompt", "prompt Midjourney", ou toute traduction de prompt entre modèles. Also triggers on "adapt a prompt to another model", "port a prompt", "same prompt for GPT and Claude".4---56# Prompt Translator78## Workflow de traduction en 5 étapes910### Étape 1 — Collecte des infos1112Demander si absent :13- **Modèle source** (ex. `gpt-4o`, `claude-3-5-sonnet`, `midjourney v6`, `gemini-1.5-pro`)14- **Modèle cible** (ex. `claude-opus-4`, `dall-e-3`, `gpt-4.1`)15- **Prompt original complet** — system prompt + user message séparés si applicable16- **Contexte d'usage** (API directe, playground, intégration applicative)1718---1920### Étape 2 — Diagnostic des différences critiques2122Analyser selon la paire source→cible :2324| Dimension | GPT-4x | Claude | Gemini | Midjourney/DALL-E |25|---|---|---|---|---|26| Structure préférée | Markdown, instructions linéaires | Balises XML `<role>`, `<context>`, `<instructions>` | Markdown, liste hiérarchique | Paramètres inline (`--ar`, style tokens) |27| System prompt | `{"role":"system","content":"..."}` | `system=` param séparé | `system_instruction` | N/A |28| Few-shot | Messages alternés user/assistant | `<examples>` XML ou messages alternés | Turns multimodaux | Tokens de style (ex. `in the style of`) |29| Longueur optimale | ~2 000 tokens suffit | Supporte 200k, profite des instructions longues | 1M tokens, verbose ok | 77 tokens max (CLIP) |30| Refus/guardrails | Safety layer strict, tournures à éviter | Nuancé, accepte ambiguïté si contexte clair | Modéré | Filtrage image automatique |3132---3334### Étape 3 — Règles de traduction par cas3536#### GPT → Claude37```38# Avant (GPT)39system: "You are a helpful assistant. Be concise."40user: "Summarize: {{text}}"4142# Après (Claude)43<system>44Vous êtes un assistant expert en synthèse.45<constraints>Répondez en moins de 150 mots. Langue : français.</constraints>46</system>47<task>Résumez le texte suivant :\n<text>{{text}}</text></task>48```49- Remplacer les instructions implicites par des contraintes XML explicites50- Séparer `role`, `context`, `task`, `output_format` en balises distinctes51- Supprimer les tournures "You must never…" → préférer "Faites X" (positif)52- `temperature=0` GPT ≈ `temperature=0` Claude (échelles identiques 0–1)5354#### Claude → GPT55```56# Avant (Claude XML)57<instructions>Liste les 3 points clés. Format JSON.</instructions>58<text>{{text}}</text>5960# Après (GPT)61system: "Tu es un assistant analytique. Réponds toujours en JSON valide."62user: "Liste les 3 points clés du texte suivant :\n\n{{text}}\n\nFormat attendu : {\"points\":[...]}"63```64- Aplatir les balises XML en texte structuré Markdown65- Déplacer le format de sortie dans le message user ou en fin de system66- Ajouter `response_format: {"type":"json_object"}` si JSON requis (API)6768#### Midjourney → DALL-E 369```70# Avant (Midjourney)71/imagine a futuristic city at dusk, cyberpunk, neon lights, rainy streets --ar 16:9 --style raw --v 6.17273# Après (DALL-E 3)74"A wide-angle (16:9 crop) photorealistic render of a futuristic cyberpunk city at dusk.75Neon lights reflect on rain-slicked streets. No text, no watermark.76Style: cinematic, high contrast, volumetric fog."77```78- Traduire `--ar` → description de cadrage ("landscape", "portrait", "square")79- `--style raw` → "photorealistic", "no artistic filter"80- `--v 6` → sans équivalent, préciser "hyper-detailed, current AI render quality"81- `--no X` → "Exclude: X" en fin de prompt DALL-E8283#### Midjourney → Stable Diffusion / Flux84```85# Avant86/imagine portrait of a samurai, bokeh, 85mm lens --ar 2:3 --style raw8788# Après (SD/Flux — positive + negative)89positive: "portrait of a samurai, bokeh background, 85mm lens, photorealistic, sharp focus, 2:3 ratio"90negative: "blurry, cartoon, anime, watermark, low quality, deformed hands"91```92- Toujours générer un prompt négatif explicite93- Ajouter des tokens de qualité : `masterpiece, best quality, 8k`94- Préciser le sampler si connu : `DPM++ 2M Karras`, `Euler a`9596---9798### Étape 4 — Livraison du prompt traduit99100Fournir :1011. **Prompt final copier-coller** (code block, sans explication mélangée)1022. **Paramètres API** si applicable (temperature, max_tokens, response_format)103104Exemple de bloc livrable :105```python106# Claude API107response = client.messages.create(108 model="claude-opus-4-5",109 max_tokens=1024,110 system="<role>Expert en synthèse</role>",111 messages=[{"role": "user", "content": "<task>Résumez : {{text}}</task>"}]112)113```114115---116117### Étape 5 — Notes de migration118119Signaler systématiquement :120- **Fonctionnalités perdues** (ex. vision GPT-4V → pas de vision en mode text-only Claude)121- **Fonctionnalités gagnées** (ex. contexte 200k Claude vs 128k GPT)122- **Comportements différents** : ton par défaut, verbosité, format JSON natif123- **Paramètres à ajuster** : `top_p`, `temperature`, seeds image124- **Tests recommandés** : 3 à 5 inputs représentatifs avant de valider la migration125126---127128## Garde-fous & anti-patterns129130| Anti-pattern | Problème | Correctif |131|---|---|---|132| Copier-coller le prompt sans adaptation | Format inadapté, résultats dégradés | Toujours appliquer les règles de structure cible |133| Traduire `--ar` par rien | DALL-E ignore le ratio, image carrée | Ajouter le ratio en texte ("landscape 16:9") |134| Garder les balises XML pour GPT | GPT les lit comme texte littéral | Aplatir en Markdown |135| Omettre le prompt négatif pour SD/Flux | Artefacts visuels fréquents | Prompt négatif obligatoire |136| Ignorer les limites de tokens Midjourney | Prompt tronqué silencieusement à 77 tokens | Compresser le prompt, tester le token count |137| `system` vide pour Claude | Comportement générique, pas de persona | Toujours renseigner `system=` |138| Temperature identique sans vérifier l'échelle | Gemini 0.0–2.0 ≠ Claude 0.0–1.0 | Normaliser selon l'échelle cible |139140---141142## Paires de traduction courantes (2026)143144| Source | Cible | Effort | Notes |145|---|---|---|---|146| GPT-4o | Claude Opus/Sonnet | Faible | Structurer en XML, gain sur longs contextes |147| Claude 3.x | GPT-4.1 | Faible | Aplatir XML → Markdown |148| Midjourney v6 | DALL-E 3 | Moyen | Perte des paramètres fins de style |149| Midjourney v6 | Flux / SD 3.5 | Moyen | Nécessite prompt négatif |150| GPT-4o | Gemini 1.5/2.0 | Faible | Adapter `system` → `system_instruction` |151| Gemini | Claude | Faible | Ajouter XML, séparer system/user |