CommunityImagegithub.com

eeoa/photo-detail-edit

Éditez une photo avec GPT Image en utilisant la consigne de l'utilisateur et des contraintes de préservation, puis apprenez des correspondances RVB locales à structure contrôlée et appliquez-les à l'original natif tout en conservant l'arrière-plan et la transparence modifiés.

Qu'est-ce que photo-detail-edit ?

Ce skill permet une édition précise de photos en couplant la génération par IA (GPT Image) à une étape de transfert détaillé local pour préserver la texture réelle et les informations de l'image originale. Il est conçu pour les modifications stylistiques ou d'arrière-plan qui doivent conserver les détails réels et cibler des couleurs et un éclairage spécifiques. Le processus commence par l'analyse de l'image originale et la génération d'une version modifiée via GPT Image avec des contraintes de préservation ajoutées. Ensuite, pour chaque image, l'agent détermine les régions à préserver (masques) et apprend des correspondances RVB locales (mapping local-rgb) à partir d'une version réduite. Ces correspondances sont ensuite appliquées à l'image originale en pleine résolution pour transférer les teintes et l'éclairage de la version générée tout en conservant les détails de l'original. Le skill prend en charge les fichiers PNG avec transparence (alpha), les modifications d'arrière-plan, l'effacement d'objets, et les échanges de vêtements. Il fonctionne avec des scripts Python locaux (restore_detail.py) et ne nécessite pas de connexion réseau ni de téléchargement de modèles. Le résultat final inclut une comparaison locale (zoom) et un rapport JSON. En résumé, ce skill est idéal pour les photographes et designers qui souhaitent modifier l'ambiance ou l'arrière-plan d'une photo sans perdre la qualité d'image originale, avec un contrôle précis sur les zones préservées et modifiées.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eeoa/photo-detail-edit/tree/HEAD

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

Édition détaillée de photo

L'utilisateur fournit l'image originale et le prompt d'édition. Ce skill réalise la chaîne complète : ajout de contraintes de fidélité → édition d'image intégrée → correspondance structurelle sur image réduite → apprentissage des transformations RVB locales → application à l'image originale en pleine taille → résultat final et comparaison locale. Ne vous contentez pas de générer ou de donner des conseils d'opération.

Entrée et limites

  • Nécessite un fichier image original lisible. Vérifiez d'abord les pixels, la taille en octets, l'orientation EXIF et la transparence ; l'aperçu visuel peut être réduit, il ne peut pas être considéré comme 'grande image originale'. Si vous n'avez qu'un aperçu de session sans pouvoir accéder au fichier original, demandez à l'utilisateur de fournir le fichier original ou un ZIP contenant l'image originale. Ne prétendez pas avoir restauré des informations réelles à partir de détails perdus.
  • L'utilisateur fournit uniquement l'image et le prompt ; c'est à l'agent de déterminer les zones à préserver, de créer des indications de segmentation et de vérifier le masque, sans demander à l'utilisateur de dessiner un masque manuellement au préalable.
  • Conservez les modifications explicitement demandées par l'utilisateur. Les zones correspondant au remplacement d'arrière-plan, à la suppression d'arrière-plan, au changement de vêtements, à la suppression d'accessoires, etc., ne doivent pas être modifiées lors de l'étape de restauration ultérieure ; établissez des zones d'exclusion pour les objets ou structures explicitement modifiés.
  • Ce processus est destiné à la retouche photo. Les changements importants de pose, d'identité ou une réécriture complète peuvent ne pas avoir de correspondance fiable ; conservez le résultat de la génération tel quel et expliquez les limites de la restauration.

Flux de travail

1. Créer le répertoire de travail

Créez un nouveau répertoire de sortie dans l'espace de travail actuel, conservez l'image originale, ne remplacez pas les fichiers originaux ou les résultats précédents. Sauvegardez le prompt original de l'utilisateur, le prompt complet réellement envoyé et l'image générée de base. Lors de l'extraction d'un ZIP joint, vérifiez les chemins et n'écrasez pas les fichiers existants.

Si les dépendances ne sont pas installées, installez scripts/requirements.txt dans l'environnement virtuel du projet actuel ; privilégiez la réutilisation d'un environnement compatible existant, ou utilisez uv venv / uv pip install --python ... -r .... Pas besoin d'installation système. Les scripts ne se connectent pas à Internet et ne téléchargent pas de modèles lors de l'exécution.

2. Édition GPT Image

  • Utilisez d'abord view_image pour visualiser le fichier local original. Appelez l'outil d'édition image_gen intégré disponible dans cette session, en utilisant le fichier original comme entrée d'édition, sans remplacer l'image originale par l'image générée précédente.
  • Prompt réel = texte original de l'utilisateur + contrainte de fidélité fixe. Le segment fixe est une contrainte ajoutée, ne remplace pas et ne dilue pas l'objectif de l'utilisateur ; l'exigence de plan entier ne s'applique qu'aux photos qui sont déjà en plan entier. Sauvegardez le résultat exact de cette concaténation.
  • Pour les demandes de suppression d'arrière-plan / détourage / fond transparent, définissez transparent_background: true ; pour un remplacement d'arrière-plan, définissez-le sur false. Les autres paramètres suivent les capacités de l'outil actuel ; n'inventez pas de paramètres de qualité, de taille ou de version de modèle, et ne promettez pas que le prompt garantit la fidélité des pixels ou de la résolution.
  • Copiez le fichier généré dans le répertoire de travail. Enregistrez la taille et le poids réels de la sortie. Par défaut, une seule génération ; ne corrigez et ne réessayez qu'en cas d'échec de l'outil ou d'omission évidente de la demande principale de l'utilisateur, et ce une seule fois, évitez les régénérations infinies. Ne passez pas de manière non autorisée à une API/CLI payante.

3. Établir les zones de préservation pour cette image

Visualisez l'image originale et l'image générée. Suivez les instructions de configuration et d'exécution des zones pour créer le fichier regions.json de cette session, en spécifiant les masques de sujet ou les graines GrabCut pour l'image originale et l'image générée respectivement ; les coordonnées sont déterminées à partir de l'image actuelle, ne copiez pas les coordonnées de la personne de la session précédente. Le script interprétera les coordonnées de configuration en fonction de la direction d'affichage EXIF de chaque image.

Les masques doivent couvrir le sujet commun à préserver avec fidélité, en excluant l'arrière-plan et les parties que l'utilisateur a explicitement modifiées. Le premier plan transparent peut utiliser l'alpha, mais il faut toujours exclure les zones que l'utilisateur a décidé de redessiner. fill_holes est désactivé par défaut ; les interstices formés par les poignées d'un objet ou la posture peuvent être un véritable arrière-plan, ne les comblez pas aveuglément.

Sélectionnez au moins deux positions de détail (personnage/objet) pour la comparaison locale ; si la photo contient un visage, un motif imprimé, de la laine/du tissu, privilégiez ces zones. La configuration provient du jugement visuel de l'agent, pas d'un modèle fixe.

4. Analyser, vérifier, puis fusionner

Avec les mêmes paramètres, exécutez d'abord --stage analyze, puis --stage fuse :

<python> <skill>/scripts/restore_detail.py --source <original> --base <generated> --regions <regions.json> --out <job>/restored --stage analyze

Par défaut --method local-rgb --structure-channel auto. L'étape d'analyse réduit l'image originale à une taille commune, vérifie la correspondance géométrique, réduit l'influence de la couleur, du contraste et des textures fines sur le jugement structurel, et ajuste dans les zones fiables des courbes de couleur RVB locales contraintes et monotones. Pour les photos multicolores ordinaires, utilisez la structure de luminance ; pour une lumière monochromatique forte, le canal correspondant est automatiquement sélectionné, les deux images utilisent la même représentation, ne fixez pas le canal rouge.

Vérifiez base-mask.png, source-mask.png, confidence-overlay.png et report.json, confirmez que la méthode réelle est local-rgb, que le canal structurel et la plage de correspondance sont raisonnables. L'arrière-plan ne doit pas être sélectionné dans la zone de restauration ; si le masque est clairement erroné, corrigez la configuration de la zone et réanalysez. N'augmentez pas artificiellement le taux de couverture en assouplissant le seuil de correspondance.

<python> <skill>/scripts/restore_detail.py --source <original> --base <generated> --regions <regions.json> --out <job>/restored --stage fuse

Le script sur-échantillonne les paramètres de courbe locale de manière lissée, les applique à l'image originale en pleine taille après recalage, permettant aux détails réels de subir la transformation de teinte et d'éclairage cible. Les zones où la correspondance n'est pas fiable utilisent l'image générée agrandie ; l'arrière-plan, la transparence et les zones d'édition explicitement exclues restent cohérents. En l'absence de caractéristiques partagées suffisantes, le contenu de l'image originale n'est pas transmis. La teinte et l'éclairage du sujet sont le résultat de l'ajustement, aucune correspondance pixel par pixel ne peut être garantie, et la taille de l'image originale ne peut pas être qualifiée de restauration complète de la qualité d'image originale.

Par défaut, ne superposez pas les hautes fréquences Lab en niveaux de gris, et n'utilisez pas par défaut une matrice arbitraire trop libre ou une LUT 3D complète. --method lab-detail est conservé uniquement pour la comparaison avec l'ancienne méthode lorsque l'utilisateur le demande explicitement ; ne revenez pas silencieusement à l'ancienne méthode.

5. Vérifier et livrer

  • Vérifiez l'aperçu final et au moins deux comparaisons locales à l'échelle du pixel, en examinant la texture réelle, la couleur et l'éclairage général, en prêtant attention aux artefacts de ghosting, aux blocs noirs, au gris dans les ombres, aux bords et aux ombres au sol. Ne déclarez pas l'amélioration de la qualité d'image uniquement sur la base de la corrélation de texture ou du taux de couverture de correspondance. Si nécessaire, resserrez les zones d'exclusion et réexécutez l'analyse et la fusion.
  • Vérifiez que le report.json indique une variation de pixel nulle dans la zone d'arrière-plan, que l'alpha est conservé, et que le PNG est lisible. La cohérence précise de l'arrière-plan concerne les PNG sans perte ; la compression JPEG peut modifier les pixels.
  • Fournissez l'aperçu visible, le PNG sans perte en taille réelle et un lien vers la comparaison locale. En l'absence de transparence, livrez également un JPEG ; les images transparentes ne sont pas livrées via JPEG.
  • Décrivez brièvement la taille de sortie, la plage réelle de restauration et les limitations évidentes ; fournissez un lien vers le fichier contenant le prompt complet réel. Ne considérez pas le nombre de pixels agrandis par interpolation comme de nouveaux détails réels.

Exemples d'appel

"Utilisez $photo-detail-edit pour traiter cette image originale : nettoyer l'arrière-plan et l'éclairage pour lui donner la qualité d'une photo de studio magazine."

"Utilisez $photo-detail-edit pour supprimer l'arrière-plan, sortir un PNG transparent, en conservant les détails du personnage et des vêtements."

Skills associés