Marketing : visuels et bannières
Marketing : visuels et bannières
Les équipes marketing ont besoin de visuels en continu : bannières publicitaires, posts réseaux sociaux, illustrations d’articles, visuels emailing. GPT Image via l’API vous permet d’industrialiser cette production tout en maintenant une qualité professionnelle.
Bannières publicitaires
Les bannières web suivent des formats standardisés. Voici comment les générer aux bonnes dimensions :
from openai import OpenAI
import base64
client = OpenAI()
def banniere_pub(message: str, style: str, format_nom: str, output: str):
"""Génère une bannière publicitaire avec texte intégré."""
prompt = (
f"Bannière publicitaire professionnelle avec le texte \"{message}\" "
f"en grandes lettres lisibles, {style}, "
"design épuré et moderne, appel à l'action clair, "
"typographie sans-serif bold, contraste élevé texte/fond"
)
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size="1536x1024", # format paysage pour bannières
quality="high",
response_format="b64_json"
)
data = base64.b64decode(response.data[0].b64_json)
with open(output, "wb") as f:
f.write(data)
print(f"Bannière {format_nom} : {output}")
banniere_pub(
message="Essai gratuit 30 jours",
style="dégradé bleu-violet, particules lumineuses, ambiance tech",
format_nom="leaderboard",
output="banniere_essai.png"
)
Visuels pour réseaux sociaux
Chaque plateforme a ses propres codes visuels. Adaptez vos générations en conséquence :
from openai import OpenAI
import base64
client = OpenAI()
def visuel_social(plateforme: str, sujet: str, texte: str, output: str):
"""Génère un visuel adapté à une plateforme sociale."""
configs = {
"instagram_post": {
"size": "1024x1024",
"style": "esthétique soignée, couleurs vibrantes, composition centrée"
},
"instagram_story": {
"size": "1024x1536",
"style": "vertical, texte en haut, visuel impactant en bas"
},
"linkedin": {
"size": "1536x1024",
"style": "professionnel et sobre, tons bleus et gris, corporate"
},
"twitter": {
"size": "1536x1024",
"style": "accrocheur, contraste fort, lisible en petit format"
},
}
config = configs.get(plateforme, configs["instagram_post"])
prompt = (
f"Visuel pour {plateforme.replace('_', ' ')}, "
f"sujet : {sujet}, "
f"texte affiché : \"{texte}\", "
f"{config['style']}, "
"design professionnel, prêt à publier"
)
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size=config["size"],
quality="high",
response_format="b64_json"
)
data = base64.b64decode(response.data[0].b64_json)
with open(output, "wb") as f:
f.write(data)
print(f"Visuel {plateforme} : {output}")
visuel_social("instagram_post", "lancement produit IA", "Nouveau : CorsenBot 2.0", "ig_post.png")
visuel_social("linkedin", "recrutement développeurs", "On recrute !", "linkedin_post.png")
visuel_social("instagram_story", "promotion été", "-30% ce weekend", "ig_story.png")
Illustrations d’articles de blog
Les articles performants contiennent des illustrations de qualité. Générez-les automatiquement :
from openai import OpenAI
import base64
client = OpenAI()
def illustration_article(titre_article: str, style: str, output: str):
"""Génère une illustration de header pour un article de blog."""
prompt = (
f"Illustration conceptuelle pour un article intitulé \"{titre_article}\", "
f"{style}, "
"composition panoramique, pas de texte dans l'image, "
"couleurs harmonieuses, adapté comme image de couverture de blog"
)
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size="1536x1024",
quality="high",
response_format="b64_json"
)
data = base64.b64decode(response.data[0].b64_json)
with open(output, "wb") as f:
f.write(data)
print(f"Illustration : {output}")
articles = [
("Comment l'IA transforme le service client", "style isométrique 3D, tons bleus"),
("5 tendances marketing 2026", "collage moderne, couleurs vives"),
("Guide de la cybersécurité pour PME", "style tech sombre, néons verts"),
]
for i, (titre, style) in enumerate(articles):
illustration_article(titre, style, f"article_header_{i+1}.png")
Kit de campagne marketing
Générez tous les visuels d’une campagne en un seul script :
from openai import OpenAI
import base64
import json
client = OpenAI()
def kit_campagne(
nom_campagne: str,
message_principal: str,
palette: str,
output_dir: str = "."
):
"""Génère un kit complet de visuels pour une campagne marketing."""
assets = [
{
"nom": "hero_banner",
"size": "1536x1024",
"prompt_extra": "grande bannière hero, texte centré, impact maximal"
},
{
"nom": "social_square",
"size": "1024x1024",
"prompt_extra": "post réseaux sociaux carré, composition centrée"
},
{
"nom": "story_vertical",
"size": "1024x1536",
"prompt_extra": "format story vertical, texte en haut, visuel en bas"
},
{
"nom": "email_header",
"size": "1536x1024",
"prompt_extra": "header email marketing, sobre et professionnel"
},
]
resultats = []
for asset in assets:
prompt = (
f"Visuel marketing pour la campagne \"{nom_campagne}\", "
f"message : \"{message_principal}\", "
f"palette : {palette}, "
f"{asset['prompt_extra']}, "
"design premium, typographie moderne"
)
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size=asset["size"],
quality="high",
response_format="b64_json"
)
path = f"{output_dir}/{nom_campagne}_{asset['nom']}.png"
data = base64.b64decode(response.data[0].b64_json)
with open(path, "wb") as f:
f.write(data)
resultats.append({"asset": asset["nom"], "path": path})
print(f" {asset['nom']} → {path}")
# Sauvegarder le manifeste
manifeste_path = f"{output_dir}/{nom_campagne}_manifeste.json"
with open(manifeste_path, "w") as f:
json.dump(resultats, f, indent=2, ensure_ascii=False)
print(f"\nKit complet : {len(resultats)} visuels générés")
print(f"Manifeste : {manifeste_path}")
return resultats
kit_campagne(
nom_campagne="rentree-2026",
message_principal="Formez-vous à l'IA dès septembre",
palette="bleu profond, orange cuivré, blanc"
)
A/B testing de visuels
Générez des variantes pour tester quel visuel performe le mieux :
from openai import OpenAI
import base64
client = OpenAI()
def ab_test_visuels(concept: str, variantes: list[dict], output_prefix: str):
"""Génère des variantes A/B d'un même concept marketing."""
for i, variante in enumerate(variantes):
lettre = chr(65 + i) # A, B, C...
prompt = (
f"{concept}, "
f"style : {variante['style']}, "
f"couleur dominante : {variante['couleur']}, "
"design professionnel, prêt à publier"
)
response = client.images.generate(
model="gpt-image-1",
prompt=prompt,
size="1024x1024",
quality="high",
response_format="b64_json"
)
path = f"{output_prefix}_variante_{lettre}.png"
data = base64.b64decode(response.data[0].b64_json)
with open(path, "wb") as f:
f.write(data)
print(f"Variante {lettre} ({variante['style'][:30]}) → {path}")
ab_test_visuels(
concept="Publicité pour une application de méditation avec le texte 'Trouvez votre calme'",
variantes=[
{"style": "photographique, nature et lumière dorée", "couleur": "vert et doré"},
{"style": "illustration minimaliste, formes géométriques", "couleur": "bleu pastel"},
{"style": "gradient abstrait, particules flottantes", "couleur": "violet et rose"},
],
output_prefix="meditation_ad"
)
Bonnes pratiques marketing
- Cohérence de marque : intégrez systématiquement votre palette et votre style dans les prompts
- Texte lisible : GPT Image gère bien le texte, mais gardez les messages courts (5-7 mots max)
- Dimensions natives : générez directement au bon format plutôt que de recadrer après coup
- Archivez vos prompts : gardez une bibliothèque de prompts qui fonctionnent pour chaque type de visuel
- Validation juridique : vérifiez que les visuels générés ne ressemblent pas à des marques existantes
Exercice pratique
Créez un script qui génère un kit marketing complet pour le lancement d’un produit fictif : 1 bannière hero, 1 post Instagram, 1 story, 1 visuel LinkedIn, et 2 variantes A/B du post principal. Sauvegardez le tout avec un manifeste JSON listant tous les fichiers.