Que fait cli-anything-gimp ?
Une interface en ligne de commande avec état pour l'édition d'images, basée sur Pillow. Conçue pour les agents IA et les utilisateurs avancés qui souhaitent créer et manipuler des images sans interface graphique.
Installation
Cette CLI est installée dans le cadre du paquet cli-anything-gimp :
pip install cli-anything-gimp
Prérequis :
- Python 3.10+
- gimp est recommandé pour le rendu natif par lots, mais les compositions en calques peuvent
toujours être rendues via le chemin Pillow intégré lorsque GIMP n'est pas disponible ou lorsque
des opérations
drawdifférées sont présentes.
Utilisation
Commandes de base
# Afficher l'aide
cli-anything-gimp --help
# Démarrer le mode REPL interactif
cli-anything-gimp
# Créer un nouveau projet
cli-anything-gimp project new -o project.json
# Exécuter avec une sortie JSON (pour consommation par agent)
cli-anything-gimp --json project info -p project.json
Mode REPL
Lorsqu'elle est invoquée sans sous-commande, la CLI entre dans une session REPL interactive :
cli-anything-gimp
# Saisissez les commandes de manière interactive avec complétion par tabulation et historique
Groupes de commandes
Projet
Commandes de gestion de projet.
| Commande | Description |
|---|---|
new | Créer un nouveau projet |
open | Ouvrir un projet existant |
save | Sauvegarder le projet actuel |
info | Afficher les informations du projet |
profiles | Lister les profils de canevas disponibles |
json | Afficher le JSON brut du projet |
Calque
Commandes de gestion des calques.
| Commande | Description |
|---|---|
new | Créer un nouveau calque vide |
add-from-file | Ajouter un calque à partir d'un fichier image |
list | Lister tous les calques |
remove | Supprimer un calque par index |
duplicate | Dupliquer un calque |
move | Déplacer un calque vers une nouvelle position |
set | Définir une propriété de calque (nom, opacité, visibilité, mode, offset_x, offset_y) ; les offsets négatifs sont acceptés naturellement |
flatten | Aplatir tous les calques visibles |
merge-down | Fusionner un calque avec celui du dessous |
Canevas
Opérations sur le canevas.
| Commande | Description |
|---|---|
info | Afficher les informations du canevas |
resize | Redimensionner le canevas (sans mise à l'échelle du contenu) |
scale | Mettre à l'échelle le canevas et tout son contenu proportionnellement |
crop | Rogner le canevas à un rectangle |
mode | Définir le mode de couleur du canevas |
dpi | Définir le DPI du canevas |
Groupe Filtre
Commandes de gestion des filtres.
| Commande | Description |
|---|---|
list-available | Lister tous les filtres disponibles |
info | Afficher les détails d'un filtre |
add | Ajouter un filtre à un calque |
remove | Supprimer un filtre par index |
set | Définir un paramètre de filtre |
list | Lister les filtres sur un calque |
Média
Opérations sur les fichiers média.
| Commande | Description |
|---|---|
probe | Analyser un fichier image |
list | Lister les fichiers média référencés dans le projet |
check | Vérifier que tous les fichiers média référencés existent |
histogram | Afficher l'analyse d'histogramme d'une image |
Groupe Export
Commandes d'export/rendu.
| Commande | Description |
|---|---|
presets | Lister les préréglages d'export |
preset-info | Afficher les détails du préréglage |
render | Rendre le projet dans un fichier image ; les opérations de dessin différées sont appliquées au moment du rendu |
Session
Commandes de gestion de session.
| Commande | Description |
|---|---|
status | Afficher le statut de la session |
undo | Annuler la dernière opération |
redo | Rétablir la dernière opération annulée |
history | Afficher l'historique des annulations |
Dessin
Opérations de dessin (appliquées au moment du rendu).
| Commande | Description |
|---|---|
text | Dessiner du texte sur un calque (en le convertissant en calque de texte) |
rect | Dessiner un rectangle (stocké comme opération de dessin) |
Exemples
Créer un nouveau projet
Créer un nouveau fichier de projet gimp.
cli-anything-gimp project new -o myproject.json
# Ou avec sortie JSON pour une utilisation programmatique
cli-anything-gimp --json project new -o myproject.json
Session REPL interactive
Démarrer une session interactive avec prise en charge de l'annulation/rétablissement.
cli-anything-gimp
# Saisissez les commandes de manière interactive
# Utilisez 'help' pour voir les commandes disponibles
# Utilisez 'undo' et 'redo' pour la navigation dans l'historique
Exporter un projet
Exporter le projet vers un format de sortie final.
cli-anything-gimp --project myproject.json export render output.png --overwrite
Flux de travail pour compositions avec calques
Pour les compositions lourdes en superposition :
cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_x -48
cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_y 24
cli-anything-gimp --project poster.gimp-cli.json draw text --layer 0 --text "Launch Night" --x 96 --y 120 --size 72 --color "#f6f1e8"
cli-anything-gimp --project poster.gimp-cli.json export render output.png --overwrite
Notes :
layer setaccepte désormais les valeurs négatives pouroffset_xetoffset_yaussi bien en mode commande qu'en mode REPL.draw textetdraw rectsont des opérations effectuées au moment du rendu. Considérez l'image exportée, et pas seulement le JSON du projet, comme la chose à examiner.- Pour les projets avec des opérations de dessin différées, attendez-vous à ce que le chemin de rendu Pillow soit la valeur par défaut stable, même si GIMP est installé.
Gestion d'état
La CLI maintient l'état de la session avec :
- Annulation/Rétablissement : Jusqu'à 50 niveaux d'historique
- Persistance du projet : Sauvegarde/chargement de l'état du projet au format JSON
- Suivi de session : Suivi des modifications et changements
Formats de sortie
Toutes les commandes prennent en charge deux modes de sortie :
- Lisible par l'humain (par défaut) : Tableaux, couleurs, texte formaté
- Lisible par machine (indicateur
--json) : JSON structuré pour consommation par agent
# Sortie humaine
cli-anything-gimp project info -p project.json
# Sortie JSON pour agents
cli-anything-gimp --json project info -p project.json
Pour les agents IA
Lorsque vous utilisez cette CLI de manière programmatique :
- Utilisez toujours l'indicateur
--jsonpour une sortie analysable - Vérifiez les codes de retour - 0 pour succès, non nul pour erreurs
- Analysez stderr pour les messages d'erreur en cas d'échec
- Utilisez des chemins absolus pour toutes les opérations sur fichiers
- Vérifiez que les sorties existent après les opérations d'export
- Examinez les sorties rendues après des modifications de décalage, dessin, mode de fusion ou filtre, au lieu de vous fier uniquement à l'état sauvegardé du projet
Plus d'informations
- Documentation complète : Voir README.md dans le paquet
- Couverture de test : Voir TEST.md dans le paquet
- Méthodologie : Voir HARNESS.md dans le paquet cli-anything-plugin
Version
1.0.0