Aller au contenu
Blogue Krizaka
Tous les billets

16 octobre 2026 · 8 min de lecture

L'anatomie d'un prompt d'IA : ce que change vraiment chaque ligne ajoutée

Un prompt de six mots, puis trois couches de détail, sur mon Mac avec la même graine. Ce qui s'améliore, ce qui empire, ce qu'un prompt négatif peut faire, et ce que je n'ai pas prouvé.

Par Oussama AbidRead in English

J'avais l'histoire en tête avant de faire les images. On tape six mots, le modèle sort un joueur à trois jambes, et on comprend qu'il fallait mieux écrire son prompt. C'est l'histoire qu'on lit partout. Je voulais simplement l'illustrer.

Le modèle n'a pas joué le jeu. Ce qu'il m'a montré est moins spectaculaire, mais plus utile. Voici donc ce que j'ai vraiment obtenu, avec le prompt, la graine et la durée sous chaque image.

Un prompt, c'est une commande passée à un cuisinier

Avant les images, une image mentale. Quand vous commandez « un plat de pâtes », le cuisinier décide de tout le reste : la sauce, l'assiette, la quantité. Il remplit les blancs. Un modèle d'image fait pareil. Tout ce que vous ne dites pas, il le choisit à votre place.

La graine, c'est le point de départ du hasard. Avec la même graine et le même prompt, le modèle refait exactement la même image. C'est ce qui me permet de changer une seule chose à la fois et de voir son effet.

Niveau 0 : six mots

Le prompt : a basketball player dunking in snow. Le genre de phrase qu'on tape sans réfléchir.

Un joueur de basketball en maillot marine qui smashe dans un parc enneigé, une colline et des arbres derrière lui
Niveau 0, FLUX.2 [klein] 4B. Deux bras, deux jambes, un panier, un filet. Les lettres du maillot ne veulent rien dire.
Comment c'est fait
Modèle
FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
Moteur
stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Prompt
a basketball player dunking in snow
Graine (seed)
2026
Taille
1024×1024
Durée
77 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré
Note
Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.

Pas de monstre. FLUX.2 [klein] 4B, un modèle ouvert sous licence permissive, a produit un smash crédible dans la neige avec six mots. Ce que je n'avais pas précisé, il l'a décidé : un maillot marine, une colline, aucun cadrage particulier. Son seul raté visible est classique : les lettres du maillot ne forment aucun mot.

Niveaux 1 à 3 : dire ce qu'on veut vraiment

À chaque niveau, j'ai ajouté une famille de détails au précédent. Même modèle, même graine, même taille. Entre 77 et 82 secondes par image.

Un joueur de basketball en maillot rouge qui bondit vers un panier dans une salle intérieure
Niveau 1, le joueur et son geste : maillot rouge, deux jambes visibles, ballon au-dessus du panier.
Comment c'est fait
Modèle
FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
Moteur
stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net
Graine (seed)
2026
Taille
1024×1024
Durée
80 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré
Note
Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.
Un joueur en maillot rouge qui smashe sur un terrain d'asphalte extérieur saupoudré de neige
Niveau 2, le lieu : un terrain extérieur, de la neige fraîche, des flocons qui tombent.
Comment c'est fait
Modèle
FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
Moteur
stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold
Graine (seed)
2026
Taille
1024×1024
Durée
81 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré
Note
Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.
Un joueur en maillot rouge qui smashe sur un terrain enneigé, lumière couverte, l'arrière-plan flou
Niveau 3, la caméra et la lumière : plan moyen, 35 mm, f/2,2, ciel couvert.
Comment c'est fait
Modèle
FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
Moteur
stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold, cinematic medium shot, captured on a 35mm lens, f/2.2 shallow depth of field, natural soft overcast daylight, sharp focus
Graine (seed)
2026
Taille
1024×1024
Durée
82 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré
Note
Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.

Le niveau 1 m'a surpris. J'ai décrit le joueur en détail, et la neige a disparu. Le modèle l'a placé dans une salle intérieure bien éclairée. Je n'avais pas dit où, et en me concentrant sur le joueur, j'avais laissé le décor en blanc. Le cuisinier a rempli le blanc. C'est la vraie leçon de ce billet : ajouter du détail sur un point peut en faire bouger un autre.

Le niveau 2 a ramené la neige et mis le terrain dehors, parce que je l'ai écrit.

Le niveau 3 a changé le cadrage et adouci l'arrière-plan. Le contenu, lui, n'a pas bougé. Les lettres du maillot restent illisibles, et le panneau a gagné un étrange second panneau en dessous. Quant à la lumière, elle était déjà grise au niveau 2, puisque la scène était sous la neige. Je ne peux donc pas dire que mes mots sur la lumière ont changé quoi que ce soit.

Les prompts complets sont sous chaque image, dans « Comment c'est fait ». Lus dans l'ordre, ils suivent la recette habituelle : le sujet, puis le décor, puis la caméra.

Le prompt négatif, et le modèle qui l'ignore

La recette habituelle a une quatrième étape : le prompt négatif, la liste de ce qu'on ne veut pas (deformed, extra limbs, bad anatomy, low quality). Pour comprendre pourquoi ça ne marche pas partout, il faut parler du guidage.

Le guidage, c'est la force avec laquelle le modèle obéit au texte. Pour l'appliquer, beaucoup de modèles calculent deux versions à chaque étape, une qui suit le prompt et une qui suit le prompt négatif, puis s'éloignent de la seconde. FLUX.2 [klein] tourne avec un guidage de 1 : il ne fait pas ce deuxième calcul. Le prompt négatif n'est donc jamais lu. Je ne peux pas montrer cette étape sur ce modèle. C'est aussi pour ça qu'avec un modèle comme celui-ci, les exclusions comme « no text, no logos » doivent être écrites dans le prompt positif.

Stable Diffusion 1.5, plus ancien et plus petit, utilise un guidage de 7 et lit le prompt négatif. Et là, le prompt de six mots produit bien les défauts promis. De gauche à droite : niveau 0, niveau 3 sans négatif, niveau 3 avec. 512×512, graine 2026, 63 à 68 secondes chacune.

Un joueur de basketball en blanc qui smashe dans la neige, un soulier rouge et un soulier gris, un poteau isolé à côté de lui
SD 1.5, niveau 0 : deux souliers différents, un poteau qui ne tient rien.
Comment c'est fait
Modèle
Stable Diffusion 1.5 · CreativeML OpenRAIL-M
Moteur
stable-diffusion.cpp (sd-cli) on Metal, 20 steps, guidance 7, Euler a, 512×512
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Prompt
a basketball player dunking in snow
Graine (seed)
2026
Taille
512×512
Durée
65 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré
Note
Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.
Un joueur en maillot rouge sous un panier doublé, une dalle orange sous le panneau
SD 1.5, niveau 3 sans négatif : le panier est doublé et fond en une dalle orange.
Comment c'est fait
Modèle
Stable Diffusion 1.5 · CreativeML OpenRAIL-M
Moteur
stable-diffusion.cpp (sd-cli) on Metal, 20 steps, guidance 7, Euler a, 512×512
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold, cinematic medium shot, captured on a 35mm lens, f/2.2 shallow depth of field, natural soft overcast daylight, sharp focus
Graine (seed)
2026
Taille
512×512
Durée
63 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré
Note
Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.
Un joueur en maillot rouge qui tend le bras vers un seul panier monté sur un poteau courbé, les souliers dépareillés
SD 1.5, niveau 3 avec négatif : un seul panier, un poteau tordu, des souliers toujours dépareillés.
Comment c'est fait
Modèle
Stable Diffusion 1.5 · CreativeML OpenRAIL-M
Moteur
stable-diffusion.cpp (sd-cli) on Metal, 20 steps, guidance 7, Euler a, 512×512
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold, cinematic medium shot, captured on a 35mm lens, f/2.2 shallow depth of field, natural soft overcast daylight, sharp focus
Prompt négatif
deformed, extra limbs, bad anatomy, glitch, jitter, low quality
Graine (seed)
2026
Taille
512×512
Durée
68 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré
Note
Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.

Avec le prompt négatif, il n'y a plus qu'un panier. C'est tentant d'y voir la preuve que ça marche. Je ne peux pas l'affirmer. Avec une seule image par prompt, ce changement peut tout autant venir du hasard. Pour le prouver, il faudrait vingt graines et un décompte. Je ne l'ai pas fait.

Une liste à garder sous la main

J'utilise un aide-mémoire en cinq points pour écrire un prompt : le sujet, l'action, la caméra, la lumière, et ce qu'on exclut. C'est une habitude que j'ai, rien de plus. Voici ce que les images ci-dessus en disent vraiment :

À préciserExempleCe que montrent ces images
SujetQui, la tenue, la postureLe niveau 1 a corrigé le maillot et la pose, et laissé le modèle choisir le lieu.
ActionCe qui bouge, ce qui touche quoi« Dunking » suffisait dès le niveau 0. Une image fixe ne montre pas le mouvement.
CaméraFocale, ouverture, cadrageLe niveau 3 a changé le cadrage et flouté l'arrière-plan.
LumièreSource, matièresImpossible à isoler : la lumière était déjà grise au niveau 2.
ExclusionsCe qu'on ne veut pasIgnoré par FLUX.2 [klein]. Non concluant sur SD 1.5 avec une seule graine.

Ce qui arrive vraiment au modèle

Personne ne devrait avoir à retenir des focales pour obtenir une belle image. On peut prendre ce que la personne tape et l'envelopper dans une direction structurée avant que ça arrive au modèle. C'est ce qu'on fait dans Orazaka, le moteur open source que je construis. Le prompt sous l'image ci-dessous est exactement ce que le modèle a reçu, dans cet ordre : le sujet de la personne d'abord, puis la direction (lumière, objectif, matières, palette), puis les exclusions, écrites dans le prompt positif parce que ce modèle ne lit pas de prompt négatif.

Un homme en djellaba blanche qui verse du thé à la menthe d'une théière en argent dans une tente berbère à l'heure dorée
Un sujet court enveloppé dans une direction « heure dorée ». Le prompt complet, tel que le modèle l'a reçu, est sous l'image.
Comment c'est fait
Modèle
FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
Moteur
stable-diffusion.cpp on Metal, 4 steps, guidance 1.0
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Via
Orazaka Studio run on dev.orazaka.com
Studio
art-golden-hour
Prompt
A man in a crisp white djellaba pours mint tea from a silver teapot held high above a small engraved tea glass, a long thin amber stream in the air, inside a Berber tent in the Sahara, fresh mint and almonds on a weathered wooden table. Editorial lifestyle photograph at golden hour: warm low sunlight raking from the side, long soft shadows, dust motes glowing in the air. 85mm lens at f/2, shallow depth of field, natural skin and fabric texture, rich tactile materials — weathered wood, wool, brass, linen. Warm palette of amber, terracotta, saffron and sand, gentle film grain, refined composition with breathing space. No text, no lettering, no logos.
Graine (seed)
20261011
Taille
1024×1280
Durée
120 s, telles qu'enregistrées par le run
Coût
aucun coût en argent (matériel à nous ; électricité non mesurée)
Run Orazaka
non enregistré

Le même prompt a servi à un clip de cinq secondes, fait par un modèle vidéo hébergé :

Texte vers vidéo hébergé : 134 s, 0,60 $. · 0.4 Mo
Comment c'est fait
Modèle
Wan 2.2 T2V A14B · Apache-2.0
Moteur
hosted: DigitalOcean serverless inference (steps and guidance not exposed)
Machine
hébergé par le fournisseur (pas notre machine)
Via
orazaka video --model wan2-2-t2v-a14b, routed by Orazaka
Prompt
Extreme close-up, slow motion: a stream of amber mint tea pours from a silver teapot held high into a small engraved glass, steam curling through a shaft of golden-hour light inside a Berber tent, dust motes floating, shallow depth of field, anamorphic lens flare, 35mm film grain, cinematic color grade.
Graine (seed)
20261011
Taille
832×480 · 16 images/s, 5.06 s
Durée
134 s, telles qu'enregistrées par le run
Coût
0.60 US$ (le prix du fournisseur)
Run Orazaka
25948442-7c68-4e66-94d6-39cd8b96438d
Son
music bed made by Orazaka (Studio video-sound, ACE-Step 1.5, MIT), -14 LUFS, AAC

Ce que vous pouvez en retenir

Un prompt n'a pas besoin d'être long. Il doit dire ce qui compte pour vous, parce que tout le reste sera décidé par le modèle. Quand vous ajoutez un détail, regardez ce qui a bougé ailleurs. Et avant d'écrire un prompt négatif, vérifiez que votre modèle le lit.

Ce que je n'ai pas mesuré : la variance (une autre graine pourrait inverser chaque conclusion), la qualité notée par d'autres que moi, et la vidéo, faute d'une paire de clips naïf et détaillé. Un clip hébergé coûte 0,60 $ et je ne l'ai pas dépensé pour ça. Les durées et les prix de ces modèles sont dans le billet sur les coûts.

Abonnez-vous au fil pour suivre les nouveaux billets

Billets liés

16 octobre 2026 · 9 min de lecture

Ce que coûte vraiment la génération d'images et de vidéo : mes factures, mesurées

Un Mac, une API hébergée et un H100 loué, sur les mêmes images et les mêmes clips. Les secondes, les dollars, les erreurs qui ont coûté cher, et un petit calcul pour savoir quand louer un GPU.

  • Coûts
  • Mesures
  • Orazaka

16 octobre 2026 · 6 min de lecture

Une plateforme d'IA sur un seul Mac : ce qui casse, ce que Spring AI 2 a changé, et où le portable abandonne

Un Mac à bout de souffle, une ClassCastException qui coupe le chat, des modèles qui deviennent des lignes en base. Ce que j'ai appris en faisant tourner Orazaka sur un portable.

  • Orazaka
  • IA

16 octobre 2026 · 5 min de lecture

Pourquoi je construis une IA souveraine à Montréal

Un GPU loué à Montréal, une loi québécoise et trois questions simples à poser à tout logiciel d'IA. Ce que souverain veut dire chez Krizaka, ce que ça coûte, et ce qui n'est pas réglé.

  • Souveraineté
  • IA
  • Montréal