Image Generator
Générez des images à la une pour vos entrées avec l'IA, une par une ou en lot. OpenAI, OpenRouter et Cloudflare Workers AI.
Extension
Image Generator
Générez des images à la une pour vos entrées avec l'IA, une par une ou en lot. OpenAI, OpenRouter et Cloudflare Workers AI.
Description
Générez des images à la une pour vos entrées avec l’IA, depuis une page Image Generator de l’administration ou depuis l’éditeur d’entrée. Il fonctionne avec OpenAI, OpenRouter et Cloudflare Workers AI, et enregistre les images dans votre médiathèque EmDash.
Une entrée. Dans l’éditeur, ouvrez le panneau Image Generator et appuyez sur Generate, regardez le résultat, puis Attach (joignez-le) ou Regenerate (régénérez-le). Sur la page d’administration, vous pouvez aussi modifier d’abord le prompt et choisir un autre modèle.
Plusieurs entrées. Choisissez une collection, cochez les entrées qui ont besoin d’une image, vérifiez et confirmez. Les images sont créées une à une en arrière-plan, avec progression, Stop et Resume. L’exécution s’arrête d’elle-même si le fournisseur rejette la clé, si les crédits sont épuisés ou si la limite quotidienne est atteinte. Les entrées qui ont déjà une image ne sont jamais touchées.
Conçu pour rester sous contrôle
- Chaque image est une requête payante auprès de votre fournisseur. Une limite quotidienne stricte (20 par défaut) est appliquée avant chaque appel et restituée lorsqu’un appel échoue.
- Rien n’est généré sans un clic et une confirmation. La génération automatique à l’enregistrement existe, et elle est désactivée.
- Les exécutions en lot sont réservées aux éditeurs et aux administrateurs.
- Si une collection utilise des brouillons, l’image va dans le brouillon : publiez l’entrée pour qu’elle soit mise en ligne.
Vous payez directement votre fournisseur ou, si vous préférez, vous utilisez l’option Sneaps license : un abonnement avec un nombre mensuel d’images, activé avec une clé de licence dans l’onglet Licence du plugin, sans compte fournisseur à configurer. Conditions, remboursements et confidentialité.
Installation
- Installez le plugin et approuvez ses autorisations (indiquées sous Sécurité).
- Vérifiez que votre hébergeur dispose de la variable d’environnement
EMDASH_ENCRYPTION_KEY, afin que les clés d’API puissent être stockées chiffrées. - Ouvrez la page de réglages du plugin. Choisissez le fournisseur et saisissez sa API key. Pour Cloudflare Workers AI, utilisez un jeton disposant de l’autorisation Workers AI et renseignez aussi votre ID de compte. Laissez modèle vide pour utiliser celui par défaut.
- Ouvrez Image Generator dans le menu d’administration, puis l’onglet Collections, et choisissez le champ image de chaque collection que vous voulez utiliser.
- Facultatif : choisissez un préréglage de style, modifiez le modèle de prompt (
,,,) et définissez la limite quotidienne.
Commencez avec la qualité low : les prix diffèrent beaucoup selon les fournisseurs, les modèles et les niveaux de qualité.
Les modèles tiers de Cloudflare (par exemple xai/grok-imagine-image-2.0) sont facturés via Unified Billing. Ils nécessitent des crédits dans AI Gateway, Authenticated Gateway activé, et un jeton disposant de l’autorisation AI Gateway Run.
FAQ
Remplace-t-il une image que j’ai déjà ? Jamais dans une exécution en lot. Pour une entrée, la nouvelle image ne remplace l’ancienne que lorsque vous appuyez sur Attach.
Pourquoi indique-t-il que la requête a expiré ?
Les plugins disposent de 30 secondes par requête. La qualité high peut dépasser ce délai sur certains modèles : utilisez low ou medium.
« Rejected the API key » ? Il n’y a qu’un seul réglage de clé d’API pour le fournisseur sélectionné. Après avoir changé de fournisseur, saisissez la clé de celui-ci. Le message l’indique lorsque la clé enregistrée semble être celle d’un autre fournisseur.
« Daily limit reached » ? Le compteur est remis à zéro à 00:00 UTC. Augmentez Max generations per day dans les réglages si vous en voulez davantage.
Les modèles Cloudflare FLUX.2 ne fonctionnent pas.
Les modèles @cf/black-forest-labs/flux-2-* ne sont pas encore pris en charge. Utilisez @cf/black-forest-labs/flux-1-schnell, ou le modèle tiers black-forest-labs/flux-2-max.
« Needs credits or a payment method » ? Les modèles tiers de Cloudflare utilisent Unified Billing : chargez des crédits dans AI Gateway.
Rien ne bouge pendant que j’attends dans l’éditeur. La génération prend 10 à 15 secondes avec Sneaps license (10 à 30 avec les autres fournisseurs) et l’éditeur n’affiche aucun indicateur de chargement : son Block Kit n’a pas d’état de chargement. Un second clic sur la même entrée est refusé, vous ne serez donc jamais facturé deux fois par erreur.
Qu’est-ce que Sneaps license ? Un abonnement facultatif : un nombre mensuel d’images sans compte fournisseur. Activez votre clé de licence dans l’onglet Licence, puis choisissez-la comme fournisseur. Quand la licence prend fin, seul ce fournisseur s’arrête.
Où est l’image ? Dans le champ image de l’entrée, et dans la médiathèque. Si la collection utilise des brouillons, publiez l’entrée.
Sécurité
Autorisations, et pourquoi
- Lire et écrire le contenu : lire les titres et les extraits, renseigner le champ image.
- Lire et écrire les médias : enregistrer les images générées, et supprimer les aperçus que vous écartez.
- Lire le schéma : lister vos collections et leurs champs image.
- Réseau, limité à
api.openai.com,openrouter.ai,api.cloudflare.comet*.r2.cloudflarestorage.com: appeler les fournisseurs d’images. Le dernier hôte ne sert qu’à télécharger une image que les modèles tiers de Cloudflare renvoient sous forme de lien signé, et uniquement depuis le bucket de sorties d’AI Gateway. L’option Sneaps license ajouteproxy.sneaps.io(le service) etapi.polar.sh(le serveur de licences), et n’est contactée que si vous activez une licence ou la choisissez comme fournisseur.
Vos données
Les prompts (le titre de l’entrée, l’extrait et votre texte de style) sont envoyés au fournisseur que vous sélectionnez. Avec Sneaps license, ils vont à ce service avec votre clé de licence, et le serveur de licences reçoit la clé, le nom du produit et le nom d’hôte de votre site ; le service conserve des compteurs et des identifiants de requête, pas les prompts ni les images. Les clés d’API sont stockées chiffrées avec votre EMDASH_ENCRYPTION_KEY et ne sont jamais écrites dans les journaux ni dans l’historique de génération. L’historique conserve la collection, l’identifiant de l’entrée, le fournisseur, le modèle, l’état, une référence de média et, en cas d’échec, le message d’erreur : jamais les prompts, les images ni les clés.
Politique de confidentialité du service payant : https://www.sneaps.io/legal/privacy/
Signaler une vulnérabilité : écrivez à [email protected] (ou utilisez https://www.sneaps.io/contact).
Journal des modifications
0.2.0
- Sneaps license facultative (un abonnement avec un quota mensuel d’images, sans compte fournisseur) comme quatrième fournisseur, avec un onglet Licence affichant la licence et le quota restant.
- Fonctionne désormais dans le mode bac à sable d’EmDash sur Cloudflare : chaque page et chaque action respecte la limite de 10 appels à l’hôte du bac à sable. La version 0.1.0 ne pouvait pas générer dans ce mode.
- La génération en lot exécute jusqu’à quatre images à la fois, en arrière-plan, et propose Select all et Select none pour la liste des entrées.
- La génération automatique à l’enregistrement est une tâche unique en arrière-plan.
- Nécessite EmDash 1.1.0 ou ultérieur.
- Licence passée en propriétaire. La version 0.1.0 reste sous MIT.
Première version
- Une page d’administration Image Generator avec trois onglets : Generate, Collections et Settings.
- Génération d’images pour une entrée, avec un prompt modifiable et un aperçu, depuis le panneau de l’éditeur ou la page d’administration.
- Génération en lot pour plusieurs entrées : sélection, confirmation, exécution en arrière-plan avec progression, Stop et Resume.
- Fournisseurs : OpenAI, OpenRouter, Cloudflare Workers AI et modèles tiers de Cloudflare.
- Limite quotidienne stricte, verrou par entrée, génération automatique facultative à l’enregistrement.
- Clés d’API stockées chiffrées.