CommunityImagegithub.com

zeighy/image-gen

Générer des images à partir d’un texte, ou modifier/combiner des images de référence via le relais OpenRouter auto-hébergé. À utiliser lorsque l’utilisateur demande de créer, dessiner, rendre, illustrer ou éditer une image.

Qu'est-ce que image-gen ?

Cette compétence permet à un agent IA (tel que Claude Code, Cursor, Codex) de générer, modifier ou combiner des images à partir de descriptions textuelles ou d'images de référence, en utilisant un serveur relais OpenRouter auto-hébergé. Elle est conçue pour être utilisée via un script shell (`relay.sh`) qui communique avec le relais, télécharge les fichiers image et les sauvegarde localement. L'utilisateur peut spécifier le format (aspect ratio), le nombre d'images, le modèle, et le répertoire de sortie. La compétence gère également les éditions d'images existantes (via `--image` ou `--ref`), les longs temps d'attente pour la génération, et fournit des messages d'erreur détaillés pour guider l'agent en cas de problème (limitation de débit, rejet de contenu, expiration de tâche, etc.). Elle est idéale pour les flux de travail créatifs où l'agent doit produire des visuels sans intervention humaine directe.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zeighy/orgir-relay/tree/HEAD/skill/image-gen

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Génération d'images via relais

Utilisez le script relay.sh dans le dossier de cette compétence (le même dossier que ce SKILL.md). Il lit l'URL et le jeton du relais depuis relay.env à côté (ou depuis IMAGE_RELAY_URL / IMAGE_RELAY_TOKEN s'ils sont définis), appelle le relais et sauvegarde les images sous forme de fichiers. Exécutez-le avec bash, en utilisant son chemin complet.

N'imprimez, n'echo, ni n'affichez jamais le jeton ou relay.env, et ne mettez jamais le jeton dans une ligne de commande.

Générer

bash /chemin/vers/image-gen/relay.sh generate "Un renard à l'aquarelle dans une forêt enneigée" --aspect 16:9

Options :

  • --aspect R : un parmi 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
  • --n N : nombre d'images (1-4)
  • --model M : seulement si l'utilisateur demande un modèle spécifique ; exécutez relay.sh models pour lister les modèles autorisés
  • --out DOSSIER : où sauvegarder (par défaut : /mnt/user-data/outputs s'il existe, sinon le répertoire courant)

Les lignes de sortie ressemblent à saved: /chemin/abc123.jpg (512345 octets, relay file: abc123.jpg). Affichez ou attachez les fichiers sauvegardés à l'utilisateur. Conservez les noms relay file pour les modifications ultérieures.

Attente des résultats

La génération peut prendre plusieurs minutes, donc le relais l'exécute en tâche de fond. relay.sh generate soumet la tâche et vérifie toutes les ~30 secondes (l'intervalle demandé par le relais) pendant jusqu'à 90 secondes. Si l'image est prête, vous obtenez les lignes saved: comme d'habitude.

S'il affiche pending: job <id> ..., la tâche est toujours en cours sur le relais et n'est pas perdue. Attendez le nombre de secondes indiqué (par exemple sleep 30), puis exécutez :

bash /chemin/vers/image-gen/relay.sh result <id>

Pendant l'attente, le script peut indiquer que la tâche est "en cours de vérification" (le relais examine encore la demande) ou "acceptée, en génération". Répétez jusqu'à ce que des lignes saved: ou une erreur apparaissent. Ne soumettez pas à nouveau le prompt pendant qu'une tâche est en attente : cela générerait (et facturerait) une deuxième image. --wait SECONDES modifie la durée d'attente d'un appel (par défaut 90).

Modifier ou utiliser des images de référence

Passez les fichiers image de l'utilisateur avec --image (répétable, jusqu'à 4 au total ; PNG, JPEG, WebP ou GIF, max 10 Mo chacun) :

bash /chemin/vers/image-gen/relay.sh generate "Rendre le ciel violet, garder tout le reste identique" --image /chemin/vers/photo.jpg

Pour affiner une image générée plus tôt dans la conversation, passez son nom de fichier relais avec --ref (plus rapide que de la télécharger à nouveau ; les fichiers relais expirent après 24 heures) :

bash /chemin/vers/image-gen/relay.sh generate "Ajouter une petite lune en haut à droite" --ref abc123.jpg

--ref accepte également une URL d'image https://.

Rédaction du prompt

Rédigez un prompt spécifique qui couvre le sujet, le style, la composition, l'éclairage et les couleurs. Pour les modifications, dites ce qu'il faut changer et ce qu'il faut conserver.

Erreurs

Le script affiche error: HTTP <code> <code_name>: <message> :

  • rate_limited : attendez le nombre de secondes indiqué, puis réessayez une fois.
  • model_not_allowed, invalid_aspect_ratio, invalid_n : corrigez l'option et réessayez.
  • invalid_input_images / 413 : l'image n'est pas d'un type pris en charge ou est trop volumineuse ; convertissez-la ou réduisez-la.
  • upstream_error (par exemple "n'a pas répondu à temps") : le relais a déjà réessayé de son côté. Informez l'utilisateur, puis soumettez à nouveau une fois ; si cela échoue encore, arrêtez et signalez-le.
  • request_rejected : le relais n'a pas accepté la demande (aucune raison donnée). Informez l'utilisateur qu'elle a été rejetée ; ne devinez pas la cause, ne réécrivez pas et ne déguisez pas le prompt ou les images pour contourner le blocage, et ne soumettez pas à nouveau.
  • prompt_rejected : la politique de contenu du relais a bloqué le prompt. Informez l'utilisateur ; ne reformulez pas le prompt pour contourner le filtre.
  • image_rejected : une image de référence a été bloquée par la politique de contenu. Informez l'utilisateur ; ne réessayez pas avec la même image et n'essayez pas de la déguiser.
  • no_image : aucune image n'a été produite ; reformulez le prompt.
  • job_not_found / job_lost : l'ID de la tâche a expiré ou le serveur l'a abandonnée ; soumettez à nouveau le prompt.
  • could not reach : l'accès réseau au domaine du relais est bloqué. Demandez à l'utilisateur d'autoriser le domaine dans Paramètres → Capacités (sortie réseau).
  • unauthorized : le jeton est manquant, incorrect ou expiré. Informez l'utilisateur ; n'essayez pas de trouver un autre jeton.

Skills associés