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.
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.
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 :
Un membre tape /imagine et renseigne un prompt.
Discord envoie une interaction à votre bot et attend une réponse dans un délai de 3 secondes.
Le bot répond avec un état « l’application réfléchit », appelé réponse différée, qui lui accorde jusqu’à 15 minutes.
Le bot appelle un modèle d’images et attend la fin du traitement.
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.
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.
💡 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 bot
Qui paie le GPU
Attente habituelle
Principal piège
Réseau de GPU communautaire
Des bénévoles qui donnent leur capacité inutilisée
De quelques secondes à plusieurs minutes
Priorité de file, choix de modèles limité
Bots d’essai gratuit
Le propriétaire du bot, jusqu’à épuisement des crédits
Rapide
Fin des crédits, puis mur de paiement
Open source auto-hébergé
Vous
Dépend de votre GPU ou de l’API
Vous en assurez la maintenance
Bots phares payants
Votre abonnement
Rapide
Abonnement mensuel
Les prix et les limites changent souvent : consultez la page de chaque bot avant de l’inviter sur votre serveur.
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.
Créer l’application Discord
Ouvrez le portail des développeurs Discord et cliquez sur Nouvelle application.
Dans l’onglet Bot, réinitialisez le jeton et copiez-le une seule fois. Traitez-le comme un mot de passe.
Dans OAuth2, cochez les scopes bot et applications.commands, puis cochez les permissions Envoyer des messages et Joindre des fichiers.
Ouvrez l’URL générée et ajoutez le bot à un serveur de test.
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 :
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.
Tapez le prompt exact qu’un membre enverrait à /imagine.
Choisissez le format que vous prévoyez de proposer : carré, large ou vertical.
Générez, examinez le résultat et ne modifiez qu’un détail de la formulation à la fois.
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é.
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.
Mini PC ou serveur cloud
Option
Coût
Disponibilité
Points de vigilance
Ordinateur portable que vous possédez déjà
Gratuit
Seulement tant qu’il est allumé
Le bot passe hors ligne quand vous fermez le capot
Mini PC à domicile
Une petite hausse de la facture d’électricité
Aussi bonne que votre connexion internet
Redémarrages du routeur domestique
Petit serveur cloud
Quelques dollars par mois
Très élevée
Vous gérez les mises à jour
Offres d’hébergement gratuites
Gratuit
Souvent 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 faible
Prompt plus solide
un chien
un golden retriever sur une plage mouillée au lever du soleil, contre-plongée, photo 35 mm, contre-jour doux
vieille ville
une 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.
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.