Générateur d’images IA pour bot Discord : bots gratuits et comment en créer un

Vous voulez un bot Discord qui transforme vos prompts en images IA sans abonnement mensuel ? Cet article classe les options gratuites selon leur fonctionnement réel, montre ce que chacune vous coûte en file d’attente et en limites, et construit votre propre bot de commande slash, avec du code qui fonctionne.

Générateur d’images IA pour bot Discord : bots gratuits et comment en créer un
Cristian Da Conceicao
Fondateur de Picasso IA

Tapez /imagine a lighthouse at dawn dans un canal de discussion, patientez environ dix secondes, et une image terminée arrive dans le fil pour que tout le monde puisse réagir. C’est tout l’intérêt d’un générateur d’images IA pour bot Discord : pas d’onglet de navigateur, pas de formulaire d’inscription, pas d’application supplémentaire. Le hic, c’est que les bots les plus connus facturent un abonnement mensuel, et que les gratuits s’accompagnent de files d’attente, de quotas journaliers ou d’une fermeture soudaine. Cet article classe les options gratuites selon leur fonctionnement réel, montre ce que chacune vous coûte en temps d’attente, puis construit votre propre bot en moins de 100 lignes de JavaScript.

💡 Réponse rapide : La solution gratuite la plus simple est un bot communautaire qui emprunte des GPU de bénévoles. La plus fiable est un bot que vous hébergez vous-même, et le code ci-dessous est assez court pour être terminé en une seule séance.

Ce que font réellement les bots d’images Discord

Un bot d’images Discord est un petit programme qui remplit trois fonctions : écouter une commande, envoyer votre texte à un modèle d’images, puis publier le résultat dans le canal. Le bot ne fait presque aucun calcul lourd lui-même. Le travail réel se déroule sur un GPU ailleurs, ce qui explique qu’un bot puisse tourner sur un ordinateur portable, un mini PC de rechange ou le serveur cloud le moins cher.

Homme en sweat anthracite regardant une fenêtre de discussion où un bot vient de publier une photo de lever de soleil

Comment fonctionne une commande slash

Tous les bots modernes suivent la même boucle, et la voir une fois rend la suite de cet article plus facile à suivre :

  1. Un membre tape /imagine et renseigne un prompt.
  2. Discord envoie une interaction à votre bot et attend une réponse dans un délai de 3 secondes.
  3. Le bot répond avec un état « l’application réfléchit », appelé réponse différée, qui lui accorde jusqu’à 15 minutes.
  4. Le bot appelle un modèle d’images et attend la fin du traitement.
  5. Le bot modifie la réponse et joint l’image terminée.

L’étape 3 est celle où échouent la plupart des premiers essais. Les traitements d’images durent plus de trois secondes, donc un bot qui ne prévoit pas de réponse différée affiche « L’application n’a pas répondu » et l’image arrive sans destinataire.

Vue de dessus d’un schéma dans un carnet, d’une conversation sur téléphone et d’une tasse de café sur un bureau en chêne

Pourquoi Discord convient à l’art généré par IA

Le chat s’avère être un terrain étonnamment favorable à la génération d’images :

  • Fil partagé. Tout le monde voit chaque prompt, donc chacun reprend ce qui marche et l’améliore.
  • Retour instantané. Les réactions et les réponses montrent quels résultats ont plu.
  • Permissions intégrées. Les rôles décident qui peut générer, et les canaux gardent les expériences à l’écart des discussions sérieuses.
  • Mobile par défaut. Les membres créent des images depuis un téléphone sans rien installer de nouveau.

Vue en contre-plongée d’un bureau de chambre avec deux écrans affichant une conversation de photos générées et du code

💡 Astuce : Donnez au bot son propre canal. Le spam d’images dans un chat général est le moyen le plus rapide d’agacer une communauté.

Comparatif des bots d’images Discord gratuits

« Gratuit » ne veut pas dire la même chose selon qui paie le GPU. Le tableau regroupe les principaux types selon cette seule question.

Type de botQui paie le GPUAttente habituellePrincipal piège
Réseau de GPU communautaireDes bénévoles qui donnent leur capacité inutiliséeDe quelques secondes à plusieurs minutesPriorité de file, choix de modèles limité
Bots d’essai gratuitLe propriétaire du bot, jusqu’à épuisement des créditsRapideFin des crédits, puis mur de paiement
Open source auto-hébergéVousDépend de votre GPU ou de l’APIVous en assurez la maintenance
Bots phares payantsVotre abonnementRapideAbonnement mensuel

Les prix et les limites changent souvent : consultez la page de chaque bot avant de l’inviter sur votre serveur.

Quatre amis qui rient autour d’un seul écran dans un salon lumineux

Bots à GPU communautaire

Stable Horde, désormais aussi appelé AI Horde, en est l’exemple le plus connu. Des bénévoles partagent leurs cartes graphiques, et n’importe qui peut demander des images Stable Diffusion sans frais. La priorité se mesure avec des points appelés kudos, que l’on gagne en prêtant du temps de GPU : les demandes des utilisateurs ayant moins de points attendent donc plus longtemps. Les bots communautaires construits sur ce réseau sont ce qui se rapproche le plus d’un bot d’art IA réellement gratuit sur Discord, avec un compromis : la vitesse dépend du nombre de bénévoles connectés.

Bots à essai gratuit

Beaucoup de bots offrent quelques générations gratuites avant de demander un paiement. Ils conviennent bien pour tester un style, mais vérifiez trois signaux d’alerte avant d’en ajouter un à un serveur :

  • Aucune mise à jour depuis des mois.
  • Aucun propriétaire ou canal de support clairement identifié.
  • Une demande de permission dont le bot n’a aucune raison, comme Administrateur.

Un bot qui se contente de publier des images a besoin des permissions Envoyer des messages et Joindre des fichiers. Rien de plus.

Pourquoi Midjourney est payant

Midjourney a débuté comme bot Discord et a popularisé ce format. Chaque image consomme de vraies minutes de GPU, et un bot de chat n’a pas d’espace publicitaire pour les financer, donc le coût retombe sur l’utilisateur. C’est aussi pourquoi les bots gratuits qui durent sont en général petits, gérés par la communauté ou adossés à une autre entreprise.

Comment créer votre propre bot

Créer le vôtre supprime la file d’attente et le mur de paiement. Vous choisissez le modèle, les limites et les règles. Il vous faut Node.js 20.6 ou plus récent, un compte Discord capable d’ajouter des bots à un serveur, et un jeton API d’un fournisseur d’images. Le code ci-dessous utilise l’API PicassoIA parce que le fonctionnement est simple : créer une prédiction, interroger son statut, télécharger le fichier.

Gros plan des mains d’une femme tapant sur un ordinateur portable avec un éditeur de code dans un café

Créer l’application Discord

  1. Ouvrez le portail des développeurs Discord et cliquez sur Nouvelle application.
  2. Dans l’onglet Bot, réinitialisez le jeton et copiez-le une seule fois. Traitez-le comme un mot de passe.
  3. Dans OAuth2, cochez les scopes bot et applications.commands, puis cochez les permissions Envoyer des messages et Joindre des fichiers.
  4. Ouvrez l’URL générée et ajoutez le bot à un serveur de test.
  5. Activez le mode développeur dans les paramètres de Discord, puis copiez l’identifiant de votre serveur et l’identifiant de l’application.

Enregistrez les valeurs dans un fichier .env à côté de votre code :

DISCORD_TOKEN=your-bot-token
CLIENT_ID=your-application-id
GUILD_ID=your-test-server-id
PICASSOIA_TOKEN=your-picassoia-api-token

Exécutez ensuite npm init -y et npm install discord.js, puis ajoutez "type": "module" à package.json.

💡 Astuce : Les commandes slash n’exigent aucun intent privilégié, vous évitez donc l’approbation de l’intent Message Content que doivent demander les bots à commandes textuelles.

Enregistrer la commande slash

Créez register.js. Il indique à Discord que /imagine existe, avec un prompt obligatoire et un format facultatif :

import { REST, Routes, SlashCommandBuilder } from "discord.js";

const imagine = new SlashCommandBuilder()
  .setName("imagine")
  .setDescription("Make an image from a text prompt")
  .addStringOption((o) =>
    o.setName("prompt").setDescription("What to picture").setRequired(true).setMaxLength(500)
  )
  .addStringOption((o) =>
    o.setName("ratio").setDescription("Image shape").addChoices(
      { name: "Square", value: "1:1" },
      { name: "Wide", value: "16:9" },
      { name: "Tall", value: "9:16" }
    )
  );

const rest = new REST().setToken(process.env.DISCORD_TOKEN);
await rest.put(
  Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID),
  { body: [imagine.toJSON()] }
);
console.log("Command registered");

Exécutez-le une fois avec node --env-file=.env register.js. Les commandes enregistrées pour un seul serveur apparaissent tout de suite, alors que les commandes globales peuvent mettre plus de temps à s’afficher : testez donc d’abord sur un seul serveur.

Écrire le gestionnaire d’images

Créez bot.js. Voici le bot complet :

import { Client, GatewayIntentBits, AttachmentBuilder } from "discord.js";

const API = "https://api.picassoia.com/v1";
const headers = {
  Authorization: `Bearer ${process.env.PICASSOIA_TOKEN}`,
  "Content-Type": "application/json",
};
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

async function generateImage(prompt, aspectRatio) {
  const create = await fetch(`${API}/models/picassoia/picassoia-image/predictions`, {
    method: "POST",
    headers,
    body: JSON.stringify({ input: { prompt, aspect_ratio: aspectRatio } }),
  });
  if (!create.ok) throw new Error(`Create failed with status ${create.status}`);

  let prediction = await create.json();
  while (["starting", "processing"].includes(prediction.status)) {
    await sleep(2000);
    const poll = await fetch(`${API}/predictions/${prediction.id}`, { headers });
    prediction = await poll.json();
  }
  if (prediction.status !== "succeeded") throw new Error(`Prediction ${prediction.status}`);
  return prediction.output[0];
}

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.on("interactionCreate", async (interaction) => {
  if (!interaction.isChatInputCommand() || interaction.commandName !== "imagine") return;

  const prompt = interaction.options.getString("prompt", true);
  const ratio = interaction.options.getString("ratio") ?? "1:1";
  await interaction.deferReply();

  try {
    const imageUrl = await generateImage(prompt, ratio);
    const file = Buffer.from(await (await fetch(imageUrl)).arrayBuffer());
    await interaction.editReply({
      content: `**${interaction.user.username}:** ${prompt.slice(0, 300)}`,
      files: [new AttachmentBuilder(file, { name: "image.jpg" })],
      allowedMentions: { parse: [] },
    });
  } catch (error) {
    console.error(error);
    await interaction.editReply("That one failed. Try again in a minute.");
  }
});

client.login(process.env.DISCORD_TOKEN);

Lancez-le avec node --env-file=.env bot.js, tapez /imagine dans votre serveur de test, et une image devrait apparaître en quelques secondes. Quatre points méritent qu’on s’y arrête :

  • deferReply() répond dans la fenêtre de 3 secondes, puis le traitement réel dispose de 15 minutes.
  • La boucle d’interrogation vérifie toutes les 2 secondes et s’arrête lorsque le statut quitte starting et processing.
  • allowedMentions: { parse: [] } empêche un prompt contenant @everyone de notifier tout le serveur.
  • Le renvoi du fichier garde l’image dans le canal, comme une pièce jointe Discord classique.

Utiliser Flux 2 Pro sur PicassoIA

Avant de figer quoi que ce soit dans le code, testez votre formulation sur une page de modèle. Flux 2 Pro est un bon endroit pour vérifier si un style de prompt donne des résultats nets et photographiques, et le même prompt peut ensuite passer directement dans votre bot.

Femme en chemise en jean comparant des photos imprimées sur une longue table

Choisir un modèle adapté à la tâche

ModèleBien adapté à une commande de bot
Flux 2 ProScènes photographiques et portraits
Seedream 4.5Illustrations épurées et retouches
GPT Image 2Prompts longs et textes lisibles dans les images
Nano Banana 2Brouillons rapides et retouches d’images
Imagen 4Scènes du quotidien nettes et réalistes
PicassoIA ImageLe modèle que le bot ci-dessus appelle via l’API

Tester un prompt étape par étape

  1. Ouvrez la page Flux 2 Pro sur PicassoIA.
  2. Tapez le prompt exact qu’un membre enverrait à /imagine.
  3. Choisissez le format que vous prévoyez de proposer : carré, large ou vertical.
  4. Générez, examinez le résultat et ne modifiez qu’un détail de la formulation à la fois.
  5. Recommencez jusqu’à obtenir trois essais de suite satisfaisants, puis enregistrez cette formulation comme exemple pour votre message /help.

Quelques conseils de paramètres pour le bot lui-même :

  • Ne proposez que les trois formats ci-dessus. Moins de choix donne moins de résultats déroutants.
  • Demandez une image par commande. Les réponses du chat restent rapides et le fichier reste léger, car Discord limite les pièces jointes à environ 10 Mo sur un serveur standard.
  • Utilisez une sortie JPG pour le chat. Elle s’envoie plus vite qu’un PNG.
  • Ajoutez un nombre seed facultatif pour que vos amis puissent reproduire les résultats des uns et des autres.

💡 Note sur le forfait : La page de l’API indique que les prédictions ne consomment pas de crédits pour le moment et demande le forfait Infinite. Consultez la page de l’API PicassoIA pour les conditions actuelles avant de construire dessus.

Une fois les images fonctionnelles, le même schéma alimente d’autres commandes. Une commande /edit peut appeler PicassoIA Image Editor Pro, et une commande /animate peut utiliser un modèle vidéo comme Seedance 2.0. La vidéo prend plus de temps, donc la réponse différée compte encore davantage ici.

Garder le bot rapide et sûr

Un bot qui fonctionne pour vous seul peut tout de même tomber en panne lorsque vingt membres l’utilisent en même temps.

Délais d’attente et limites de file

L’API PicassoIA autorise 5 prédictions en file ou en cours par compte, partagées entre tous vos jetons. Suivez ce nombre dans le bot et accordez à chaque utilisateur un court délai avant une nouvelle demande :

const COOLDOWN_MS = 20_000;
const MAX_IN_FLIGHT = 5;
const lastUse = new Map();
let inFlight = 0;

function checkLimits(userId) {
  const wait = (lastUse.get(userId) ?? 0) + COOLDOWN_MS - Date.now();
  if (wait > 0) return `Slow down, try again in ${Math.ceil(wait / 1000)}s.`;
  if (inFlight >= MAX_IN_FLIGHT) return "The queue is full. Try again in a minute.";
  return null;
}

Dans le gestionnaire, appelez checkLimits avant deferReply(). S’il renvoie un texte, envoyez-le en réponse privée (ajoutez MessageFlags à votre import de discord.js et utilisez flags: MessageFlags.Ephemeral). Sinon, définissez lastUse, ajoutez un à inFlight, et retirez-en un dans un bloc finally une fois le travail terminé.

Bureau avec une liste de contrôle manuscrite, une conversation sur téléphone et un cadenas en laiton posé sur un carnet

Règles de contenu pour votre serveur

Un bot d’images publie tout ce que le modèle produit à partir de ce que les gens tapent, donc fixez les règles avant le lancement :

  • Limitez les lieux d’utilisation. Restreignez /imagine à un seul canal ou à un rôle dans les paramètres de commandes du serveur.
  • Respectez les canaux réservés aux adultes. Le contenu pour adultes n’a sa place que dans les canaux que Discord signale comme restreints aux personnes majeures, et les règles propres au fournisseur du modèle s’appliquent toujours.
  • Journalisez les prompts en privé. Publiez chaque prompt et l’identifiant de l’utilisateur dans un canal réservé aux modérateurs.
  • Filtrez les abus évidents. Rejetez les prompts qui correspondent à une courte liste de termes interdits avant qu’ils n’atteignent le modèle.
  • Bloquez les mentions de masse. Gardez allowedMentions désactivé pour le texte des utilisateurs.

Où héberger le bot

Comme le modèle tourne ailleurs, le bot lui-même a besoin de très peu de processeur et de mémoire. Un serveur de 1 Go suffit largement.

Petit mini PC noir posé sur une étagère en bois, branché à un câble Ethernet

Mini PC ou serveur cloud

OptionCoûtDisponibilitéPoints de vigilance
Ordinateur portable que vous possédez déjàGratuitSeulement tant qu’il est alluméLe bot passe hors ligne quand vous fermez le capot
Mini PC à domicileUne petite hausse de la facture d’électricitéAussi bonne que votre connexion internetRedémarrages du routeur domestique
Petit serveur cloudQuelques dollars par moisTrès élevéeVous gérez les mises à jour
Offres d’hébergement gratuitesGratuitSouvent en veille après une période d’inactivitéLe bot disparaît de la liste des membres

Quel que soit votre choix, faites tourner le bot sous un gestionnaire de processus comme pm2 ou systemd pour qu’il redémarre après un plantage, et gardez le fichier .env hors du contrôle de version.

Des prompts qui fonctionnent dans le chat

Les membres tapent des prompts courts et vagues. Votre rôle est de faire fonctionner les prompts courts et de montrer à chacun à quoi ressemble un meilleur prompt.

Rédiger des prompts comme un brief photo

Un schéma fiable consiste à décrire le sujet, le cadre, la lumière, l’objectif. Épinglez un exemple dans le canal :

Prompt faiblePrompt plus solide
un chienun golden retriever sur une plage mouillée au lever du soleil, contre-plongée, photo 35 mm, contre-jour doux
vieille villeune ville portuaire embrumée à l’aube, bateaux de pêche, pavés humides, photo 35 mm
caféune tasse de café en céramique sur une vieille table en chêne, lumière de fenêtre venant de la gauche, macro 85 mm

Laisser un modèle de langage enrichir les prompts

Pour les prompts courts, ajoutez une étape de réécriture : envoyez le texte du membre à un modèle de chat avec l’instruction « Réécris ceci sous forme de brief photo en une seule phrase, avec le sujet, le cadre, la lumière et l’objectif », puis transmettez le résultat au modèle d’images. Testez d’abord l’instruction à la main. Collez-la dans Gemini 3.5 Flash ou Claude Sonnet 5 sur PicassoIA et lisez la sortie avant de l’intégrer au bot. Affichez le prompt réécrit dans la réponse pour que les membres voient comment le résultat a été obtenu.

Créez votre première image dès aujourd’hui

Vous avez maintenant la carte complète : des bots communautaires gratuits pour le plaisir rapide, des bots d’essai pour tester, et un petit bot auto-hébergé quand vous voulez garder le contrôle. Le moyen le plus rapide de savoir quels prompts plairont à votre serveur est de les essayer avant même que le bot n’existe.

Homme souriant dans un café tenant un téléphone qui affiche une photo de montagne générée

Ouvrez Flux 2 Pro ou Seedream 4.5 sur PicassoIA, tapez trois prompts que votre communauté enverrait réellement, et enregistrez les meilleurs résultats comme exemples pour votre message /help. Reprenez ensuite le code ci-dessus, ajoutez la commande /imagine et invitez vos amis. Quand vous voudrez plus d’options, parcourez tous les modèles d’images, de vidéos et de langage sur picassoia.com/en/all-models et remplacez-les par celui qui convient le mieux à votre serveur.

Partager cet article

Choisissez votre langue