Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierinformatique général
  • ✇LinuxFr.org : les dépêches
  • L'art non contextuel
    Traduit de l’allemand ; publié à l’origine sur gnulinux.ch. Cet article présente le logiciel Context Free art, qui permet de « programmer » des images à l’aide de quelques commandes simples. Le contenu du site Context Free Art est sous licence Creative Commons Attribution-Share Alike 2.5 et le logiciel sous GPLv2. lien nᵒ 1 : Page du projetlien nᵒ 2 : Article original en allemandlien nᵒ 3 : GitHub context-freeSommaire Installation et utilisation Syntaxe Structure d’un fichier Context Fre

L'art non contextuel

Traduit de l’allemand ; publié à l’origine sur gnulinux.ch.

Cet article présente le logiciel Context Free art, qui permet de « programmer » des images à l’aide de quelques commandes simples.

Le contenu du site Context Free Art est sous licence Creative Commons Attribution-Share Alike 2.5 et le logiciel sous GPLv2.

Image d’une fractale dessinée avec Context Free art

Sommaire

Installation et utilisation

Sous Ubuntu/Debian, on installe le programme avec sudo apt-get install contextfree. Pour les autres distributions, une notice d’installation est disponible sur le site du projet. On peut aussi utiliser Distrobox pour faire tourner Debian/Ubuntu dans un conteneur sous une autre distribution Linux.

Sous Windows, il existe une interface graphique. Sous Linux, en revanche, on exécute le programme dans le terminal avec cfdg fichier_entree.txt fichier_sortie.png.

Ma configuration sous Kubuntu ressemble à ceci :

  • En haut à gauche, un terminal dans lequel j’exécute cfdg fichier_entree.txt fichier_sortie.png pour générer l’image.
  • En bas à gauche, un éditeur avec le fichier texte à partir duquel l’image est générée.
  • À droite, j’ouvre l’image produite. J’utilise Okular pour cela, car il recharge automatiquement une image mise à jour.

Capture d’écran d’un bureau. En haut à gauche un terminal, en bas à gauche un éditeur de texte avec un fichier source Context Free ouvert, et à droite l’image de sortie correspondante : un cercle gris à droite d’un cercle noir

Avec un peu de « magie Linux », on peut sûrement faire en sorte que cfdg soit relancé automatiquement à chaque enregistrement du fichier, et ainsi se passer du terminal. Cela dit, la génération d’une image à partir du code peut être relativement longue ; il est donc parfois préférable de pouvoir initier et arrêter la génération manuellement.

Syntaxe

Une documentation détaillée du langage se trouve dans le wiki du projet. Nous avons déjà rencontré quelques éléments de syntaxe dans l’image ci-dessus :

startshape FORME // commence par la forme nommée « FORME »

shape FORME { // Quand tu dessines la forme FORME
CIRCLE []  // alors dessine un cercle
CIRCLE [x 1 brightness 0.5] // Dessine un cercle décalé horizontalement
                            // de 1 et de luminosité 0.5
}

Structure d’un fichier Context Free

  • Le fichier devrait toujours commencer par le choix d’une forme de départ : startshape NOM_FORME_DEPART. Cette forme doit ensuite être décrite.
  • La description d’une forme utilise la syntaxe shape NOM { … }, où les accolades contiennent une consigne de dessin.
  • Une consigne de dessin est une suite de formes (dans l’exemple ci-dessus, deux cercles CIRCLE), modifiées par les instructions placées entre crochets […].
  • Une modification se compose typiquement d’une commande (x ou brightness) suivie d’une ou de plusieurs valeurs numériques.

Formes de base et modifications

Les formes de base disponibles sont CIRCLE, SQUARE et TRIANGLE. Dans cet article, nous utiliserons quelques-unes des modifications suivantes (les points d’interrogation représentent des nombres à insérer) :

  • x ? pour un décalage horizontal vers la droite de ?. Une valeur négative décale vers la gauche. De façon analogue, y ? pour les décalages verticaux.
  • size ? pour mettre à l’échelle d’un facteur ?. Par exemple size 0.5 pour réduire de moitié la taille d’une forme.
  • rotate ? pour tourner une forme de ? degrés.
  • Pour les couleurs, le programme utilise l'espace colorimétrique TSV (teinte, saturation, valeur), aussi appelé HSB ou HSV en anglais. On contrôle ainsi la couleur avec hue ? (rotation à travers les couleurs du cercle chromatique), sat ? (saturation de la couleur) et brightness ? (luminosité).

Récursion

L’un des grands atouts de Context Free est qu’une forme peut dessiner une copie (éventuellement modifiée) d’elle-même. En informatique, ce procédé s’appelle la récursion. Voici un petit exemple :

startshape MAFORME

shape MAFORME {
SQUARE [brightness 1 sat 1] // Dessine un carré (pleinement saturé et lumineux)
MAFORME [x 1.1 rotate 20 size 0.99 hue 10] // Dessine une copie de toi-même (décalée,
                                            // tournée, réduite et de teinte modifiée)
}

Une spirale colorée composée de carrés de plus en plus petits

Lorsqu’on utilise la récursion, il faut faire un peu attention : en principe, le programme pourrait tourner indéfiniment et dessiner toujours plus de copies de la forme. Pour éviter cela, nous avons intégré ci-dessus une réduction de taille : lorsque les formes deviennent trop petites, Context Free interrompt le travail et cesse de les dessiner.

Hasard

Un autre atout de Context Free est qu’il permet d’effectuer des variations aléatoires sur les figures générées. Dans l’exemple suivant, le hasard est introduit de deux manières :

startshape FORET

shape FORET {
ARBRE []
ARBRE [x 50]
ARBRE [x 100]
}

shape ARBRE // À chaque dessin d’ARBRE, l’une des deux
            // règles (« rules ») est choisie au hasard (de façon pondérée).
rule 0.97 {
CIRCLE []
ARBRE [y 0.5 size 0.99 rotate (rand(-4,4))]
// Ici ARBRE est tourné d’une valeur aléatoire comprise entre -4 et 4
}

rule 0.03 {
ARBRE [rotate 20]
ARBRE [rotate -20]
}

Les nombres après rule sont des poids : dans 97 % des cas, l’arbre continue de pousser tout droit (première règle), et dans 3 % des cas seulement, il se divise en deux branches (seconde règle).

Trois silhouettes d’arbres différentes côte à côte

Et bien plus encore

Context Free possède de nombreuses autres fonctionnalités. Outre la documentation dans le wiki du projet, il existe aussi une galerie contenant de nombreuses images à la fois esthétiques et intrigantes.

Aspects mathématiques

Grammaires non contextuelles

Le programme s’appelle Context Free (« sans contexte ») parce que la syntaxe avec laquelle les images sont créées est une grammaire non contextuelle au sens des langages formels. Intuitivement, cela signifie que les consignes de dessin figurant dans le programme ne dépendent jamais de ce qui a déjà été dessiné autour. Par exemple, il n’y a aucun moyen de formuler quelque chose comme : « dessine un cercle s’il n’y a pas de cercle à proximité ».

Fractales

Grâce à la possibilité de faire de la récursion, Context Free est un excellent outil pour dessiner des fractales. Une fractale est une image dont les fragments ressemblent approximativement à l’image entière. En gros, si l’on n’observe qu’un petit morceau des arbres ci-dessus, il est difficile de savoir avec certitude si l’on se trouve sur le tronc de l’arbre, sur une branche ou sur une ramification. Dans la vie quotidienne, nous rencontrons régulièrement des fractales, par exemple au marché au rayon des légumes avec le chou romanesco. La galerie de Context Free contient de nombreuses fractales ; celle-ci m’a particulièrement plu (et elle a été créée avec le même code que la première image de cet article).

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • G’MIC 4.0 : La quadrature du pixel, plus facile que jamais !
    Dix-huit ans après ses débuts, G’MIC, cadriciel libre pour le traitement des images numériques, franchit une étape importante avec la sortie d'une nouvelle version majeure, numérotée 4.0, la version de la maturité ! L'occasion, comme chaque année, de faire le point sur les évolutions récentes de ce projet, depuis notre dernière dépêche publiée en août 2025. N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images conti

G’MIC 4.0 : La quadrature du pixel, plus facile que jamais !

Dix-huit ans après ses débuts, G’MIC, cadriciel libre pour le traitement des images numériques, franchit une étape importante avec la sortie d'une nouvelle version majeure, numérotée 4.0, la version de la maturité !

L'occasion, comme chaque année, de faire le point sur les évolutions récentes de ce projet, depuis notre dernière dépêche publiée en août 2025.

G´MIC 4.0 Teaser

N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images contiennent l’icône Icône 'Play Video'

Sommaire

1. G’MIC : Un cadriciel libre pour l'image numérique

Le projet G'MIC (GREYC's Magic for Image Computing) est né en juillet 2008, et a grandi au sein de l'équipe IMAGE du laboratoire GREYC de Caen (Unité Mixte de Recherche placée sous la triple tutelle du CNRS, de l'ENSICAEN et de l'Université de Caen).

Sa vocation : offrir un cadriciel libre, ouvert et extensible pour la manipulation, le traitement et la création d'images numériques. Pour ce faire, il s'appuie sur les fonctionnalités de la bibliothèque libre C++ de traitement d'images CImg, développée depuis 1999 d'abord au sein de l'INRIA, puis de l'équipe IMAGE du GREYC (également par votre serviteur).

Au cœur du projet se trouve un interpréteur de langage de script dédié, le « langage G'MIC », spécialement conçu pour prototyper rapidement de nouveaux algorithmes de traitement d'images, et les enchaîner au sein de pipelines (ou filtres) personnalisés. Autour de ce noyau viennent se greffer plusieurs interfaces, donnant à l'utilisateur accès à des centaines d'opérateurs de traitement d'images prédéfinis, comme par exemple l'outil en ligne de commande gmic ; le service Web G'MIC Online ; et le greffon G'MIC-Qt, qu'il est possible d'intégrer dans plusieurs logiciels de création et d'édition d'images, tels que GIMP, Krita, digiKam, Paint.net, Adobe Photoshop ou Affinity Photo. C'est aujourd'hui ce greffon qui est l'interface du projet la plus utilisée, avec plus de 1200 téléchargements quotidiens, en progression depuis un an. Il propose plus de 640 filtres variés pour triturer vos images et enrichir les possibilités des logiciels de retouche, et semble particulièrement apprécié des artistes numériques.

Cette version majeure 4.0 marque un tournant dans la vie du projet : la syntaxe du langage G'MIC, le code de l'interpréteur et des algorithmes de traitement d'images associés sont maintenant éprouvés. Nous souhaitons donc ralentir un peu le rythme des nouvelles releases et de l'ajout de nouvelles fonctionnalités, pour nous concentrer sur la stabilité, la robustesse, et les performances du cadriciel.

Aperçu du greffon G'MIC-Qt Fig. 1.1. Aperçu de quelques-unes des interfaces proposées par le projet G'MIC : Greffon G'MIC-Qt pour GIMP (en haut à gauche), Outil CLI gmic (en haut à droite), Service web G'MIC Online (en bas).

2. Nouveaux filtres du greffon G'MIC-Qt

Côté greffon G'MIC-Qt, l'essentiel des nouveautés se concentre sur l'apparition de nouveaux filtres de traitement d'images. La version 4.0 porte leur nombre à 644, tous accessibles directement depuis l'interface graphique. Je liste ci-dessous les derniers filtres ajoutés.

2.1. Filtre « Rendering / Pixel Stretch »

Le filtre « Rendering / Pixel Stretch » permet de sélectionner une « bande de pixels », et la duplique dans l'image en lui faisant suivre une trajectoire personnalisable, définie par deux courbes splines (une pour chaque bord de la bande).

Filtre 'Rendering/Pixel Stretch' (G'MIC-Qt) Fig. 2.1.1. Le filtre « Rendering / Pixel Stretch » tel qu'il apparait dans le greffon G'MIC-Qt.

Filtre 'Rendering/Pixel Stretch' (rendu 1) Fig. 2.1.2. Exemple de rendu du filtre « Rendering / Pixel Stretch », ici avec deux traînées de pixels ajoutées par le filtre.

Cet effet donne l'impression que l'image a été étirée localement, un peu comme une pâte élastique. Il peut servir à suggèrer ou styliser un mouvement dans une image, comme sur l'exemple ci-dessous (extrait de la vidéo tutorielle que Miguel Pineau a spécialement dédiée à ce filtre).
On peut également imaginer son utilisation pour du Glitch art ou de la création de textures abstraites.

Filtre 'Rendering/Pixel Stretch' (rendu 2) Fig. 2.1.3. Le filtre « Rendering / Pixel Stretch » appliqué pour styliser le mouvement d'une danseuse (Crédits : Miguel Pineau).

2.2. Filtre « Rendering / Gradients [Poles] »

Toujours dans cette section « Rendering », notons l'arrivée de « Rendering / Gradients [Poles] », un filtre générant des dégradés de couleurs en interpolant spatialement des points-clés colorés, dont les positions et les couleurs sont laissées au choix de l'utilisateur. Ici, l'interpolation fait usage des fonctions de base radiale qui produisent des dégradés de couleurs lisses et harmonieux. L'utilisateur a également le choix de l'espace de couleurs dans lequel l'interpolation s'effectue. L'animation ci-dessous illustre le fonctionnement de ce filtre au sein du greffon.

Filtre 'Rendering/Gradient (Poles)' (G'MIC-Qt) Fig. 2.2.1. Le filtre « Rendering / Gradient [Poles] » crée des gradients spatiaux de couleurs possiblement complexes, à partir de quelques points de contrôle.

2.3. Filtre « Artistic / Marker Drawing »

Passons maintenant au filtre « Artistic / Marker Drawing », qui comme son nom l'indique, essaye de redessiner une image d'entrée sous la forme de traits de stylos feutres colorés. L'algorithme sous-jacent trace effectivement des splines colorées aléatoires sur une feuille blanche, le long des contours des structures géométriques présentes dans l'image à reproduire.

Filtre 'Artistic/Marker Drawing' (G'MIC-Qt) Fig. 2.3.1. Le filtre « Artistic / Marker Drawing » redessine une image en simulant l'utilisation de stylos feutres colorés.

Les nombreux paramètres réglables de ce filtre permettent d'obtenir des rendus potentiellement variés, plus ou moins abstraits, comme l'illustre la figure comparative suivante :

Filtre 'Artistic/Marker Drawing' (rendus) Fig. 2.3.2. Trois types de rendus du filtre « Artistic / Marker Drawing », utilisant trois jeux de paramètres différents.

2.4. Filtre « Deformations / Heightfield Warp »

Changeons maintenant de thématique avec le filtre « Deformations / Heightfield Warp » qui crée un effet 3D, en déformant une image d'entrée comme si elle était plaquée sur une carte d'élévation (définie de manière paramétrique). Un effet d'éclairage additionnel, de type ombrage de Phong, peut être activé pour accentuer davantage l'effet de volume 3D produit par ce filtre.

Filtre 'Deformations/Heightfield Warp (G'MIC-Qt) Fig. 2.4.1. Le filtre « Deformations / Heightfield Warp », tel qu'il apparait dans le greffon G'MIC-Qt, ici avec une élévation correspondant à une demi-sphère bombée vers la caméra.

Ce filtre est particulièrement flexible : il laisse la possibilité à l'utilisateur de définir explicitement des formules mathématiques personnalisées pour les cartes d'élévations. Les mathématiciens en herbe peuvent ainsi laisser libre cours à leur imagination pour déformer leurs images !

Filtre 'Deformations/Heightfield Warp (rendus) Fig. 2.4.2. Application de trois formules personnalisés de cartes d'élévations 3D, avec le filtre « Deformations / Heightfield Warp ».

2.5. Filtre « Degradations / Offset Stripes »

Les amateurs de Glitch art pourront être séduits par le nouveau filtre « Degradations / Offset Stripes », qui crée un effet de décalage de bandes d'images, horizontales et/ou verticales, avec des amplitudes de décalage aléatoires.

Filtre 'Degradations/Offset Stripes (G'MIC-Qt) Fig. 2.5.1. Le filtre « Degradations / Offset Stripes » applique des décalages aléatoires sur des bandes d'images horizontales et/ou verticales.

Ce principe de base est tout simple, mais là encore, les nombreux paramètres du filtre donnent accès à des décalages décorrélés sur chaque canal, pour des espaces couleurs variés, en pouvant itérer ces décalages aléatoires, et autorisent ainsi une grande variété de dégradations d'images de type « Glitch », comme illustré sur la figure ci-dessous.

Filtre 'Degradations/Offset Stripes (rendus) Fig. 2.5.2. Résultats de différents jeux de paramètres du filtre « Degradations / Offset Stripes », appliqués sur une même image de portrait.

2.6. Filtre « Colors / Transfer Colors [Multi] »

Et pour terminer ce résumé des nouveaux filtres du greffon G'MIC-Qt, j'ai gardé le plus intéressant pour la fin : le filtre « Colors / Transfer Colors [Multi] » est un nouveau filtre de transfert de couleurs entre deux images.

Le transfert de couleur consiste à appliquer une transformation couleur à une image « Source », en prenant comme référence une deuxième image (image dite de « Style ») dont on veut reproduire le style ou l'ambiance colorimétrique, et ceci bien sûr en préservant autant que possible les structures importantes (contours, objets, contenu sémantique) présentes dans l'image « Source » d'origine.

Principe du transfert couleur entre images Fig. 2.6.1. Principe du transfert de couleur entre images: une image « _Source » (à gauche) est modifiée (à droite) de telle façon qu'elle « emprunte » les couleurs d'une image de « Style » (au centre)._

D'un point de vue algorithmique, il y a de nombreuses façons d'aborder ce type de transfert. Le filtre « Colors / Transfer Colors [Multi] », comme son nom le suggère, implémente trois méthodes différentes pour ce faire : une méthode ACP ; une méthode de transfert d'histogrammes ; et enfin une méthode variationnelle. Pour utiliser ce filtre dans le greffon G'MIC-Qt, il suffit de l'appeler sur une image contenant deux calques superposés : un calque contenant l'image « Source » à modifier, et un calque avec l'image « Style » contenant les couleurs de référence à transférer.

Filtre 'Colors/Transfer Colors (Multi) Fig. 2.6.2. Le filtre « Colors / Transfer Colors [Multi] » tel qu'il se présente dans le greffon G'MIC-Qt.

L'algorithme variationnel de transfert de couleur implémenté dans ce filtre est une production totalement originale : il est le fruit d'une collaboration de recherche entre deux membres de l'équipe IMAGE du laboratoire GREYC de Caen (D. Tschumperlé et J. Rabin), et d'une professeure du laboratoire de mathématiques LMI de l'INSA de Rouen (C. Le Guyader).

Bref, un algorithme 100 % normand, qui fonctionne forcément « vachement 🐄 bien » 😉, et que vous ne trouverez nulle part ailleurs !
On remercie chaleureusement la Fédération Normande de Recherche en Sciences et Technologies de l’Information et de la Communication (NormaSTIC) pour son aide financière qui a accéléré la mise en contact et le démarrage de cette collaboration fructueuse !

Notre méthode a plusieurs caractéristiques propres permettant de calculer des transferts de couleurs souvent pertinents, et de bonne qualité comparativement à ses concurrentes, et ce, de manière rapide et complètement automatique. La figure ci-dessous illustre des exemples de transferts de couleurs qu'il est possible d'obtenir pour une même image « Source », en choisissant des images de « Style » différentes (et en laissant les paramètres par défaut du filtre).

Filtre 'Colors/Transfer Colors (Multi) (rendus) Fig. 2.6.3. Exemples de transferts de couleurs réalisés par le filtre « Colors / Transfer Colors [Multi] » sur une même image « Source », avec plusieurs images « Style » différentes.

La technique que nous proposons autorise également un mode « semi-supervisé » qui permet à l'utilisateur de forcer certaines correspondances de couleurs, et donc de « guider » l'algorithme pour calculer une solution de transfert plus contrainte et personnalisée.
Les deux exemples ci-dessous illustrent ce mode de contrôle de manière assez parlante :

Filtre 'Colors/Transfer Colors (Multi) (rendu guidé 1) Fig. 2.6.4. Guidage de l'algorithme de transfert de couleurs par mise en correspondance forcée de couleurs (Perruche → Mésange).

Ici, les plumes vertes du corps de la perruche (a) sont perceptuellement plus proches de la couleur jaune du corps de la mésange (b), et c'est donc cette mise en correspondance qui est réalisée par défaut par l'algorithme de transfert (résultat (c)). En explicitant des correspondances de couleurs souhaitées (liens symbolisés entre les images (a) et (b)), on peut modifier ce comportement et contraindre le transfert à assigner la couleur bleue de la mésange aux plumes de la perruche (résultat (d)).

Filtre 'Colors/Transfer Colors (Multi) (rendu guidé 2) Fig. 2.6.5. Guidage de l'algorithme de transfert de couleurs par mise en correspondance forcée de couleurs (Coccinelle → Formule 1).

Dans ce deuxième exemple, on note que la couleur rouge de la Coccinelle (a) se retrouve ailleurs dans l'image « Style » de la Formule 1 (b) : au bord de la route, sur les coquelicots… L'algorithme décide donc naturellement de conserver cette couleur quasiment telle quelle lors du transfert automatique (résultat (c)). Forcer des correspondances de couleurs explicites permet de guider l'algorithme pour lui faire changer la couleur de la Coccinelle en vert (résultat (d)).

Vous l'aurez compris, ce filtre représente l'aboutissement d'un travail de recherche de longue haleine en algorithmique du traitement d'images. Pour des chercheurs comme nous, il est réjouissant d'être arrivé au bout du processus complet : élaborer un nouvel algorithme complexe sur un bout de papier, le développer, l'implémenter, le peaufiner, en obtenir des résultats encourageants, le peaufiner encore et encore, en écrire une description détaillée dans un article scientifique (en cours de finalisation), l'intégrer proprement et le rendre utilisable par tout un chacun dans un logiciel libre, en sachant qu'il pourra être testé et utilisé potentiellement des milliers de fois !

Notons que ce n'est pas la première fois qu'une méthode de traitement d'images développée au sein de notre laboratoire de recherche se retrouve valorisée dans G'MIC. Cette page recense plusieurs publications scientifiques décrivant des algorithmes élaborés au sein de l'équipe IMAGE du GREYC, et qui sont accessibles comme filtres du greffon G'MIC-Qt.

3. Nouveautés et améliorations du cœur du logiciel et de sa bibliothèque standard

Comme évoqué précédemment, le terme G'MIC peut faire référence au langage de script du même nom. Ce langage est doté de son propre interpréteur et de sa bibliothèque standard de fonctions. Il est utilisé pour implémenter tous les filtres et opérateurs de traitement d'images mis à disposition des utilisateurs des différentes interfaces du projet.

Durant l'année écoulée, un grand nombre de petites améliorations ont été implémentées conjointement sur ce langage et sa bibliothèque standard.
En réalité, l'ensemble de ces contributions représente même la majorité du travail de développement réalisé, et en même temps ce sont des choses qu'il est difficile de valoriser dans une dépêche grand public : elles concernent principalement des points très précis et techniques du projet, comme par exemple des optimisations du parsing ou des algorithmes, du nettoyage de code, de nouvelles fonctions ou options pour l'évaluateur d'expressions mathématiques, etc.
Ce sont bien sûr des ajouts utiles pour les développeurs de nouveaux filtres dans ce langage, mais il est difficile de les mettre en valeur de manière réellement plaisante.

J'ai donc pris le parti de lister ci-dessous uniquement les quelques nouveautés facilement « illustrables » :

  • La nouvelle commande random_patches réalise un rendu procédural d'images carrées contenant des formes géométriques et des textures synthétiques aléatoires. À quoi cela peut-il bien servir, me direz-vous ? Eh bien par exemple, à générer des ensembles d'images pour l'entrainement de réseaux de neurones convolutionnels, pour des tâches de débruitage et de super-résolution (ces réseaux sont ceux utilisés par les commandes denoise_cnn et scale2x_cnn).

Commande 'random_patches' (rendus) Fig. 3.1. La commande random_patches synthétise des images carrées contenant des formes géométriques et des textures aléatoires.

Ces images sont en réalité suffisamment complexes pour qu'un réseau de neurones puisse apprendre des filtres convolutionnels pertinents pour l'analyse semi-locale de la géométrie des structures présentes dans des images plus naturelles. Ces filtres appris peuvent ensuite être utilisés dans des tâches de débruitage ou de super-résolution, qui sont des problèmes très géométriques et qui ne nécessitent pas vraiment une analyse sémantique du contenu des images. Utiliser ces données synthétiques pour entrainer des réseaux simples est donc largement suffisant pour ce type d'applications. D'une part, cela évite de stocker de grandes bases d'images volumineuses lors de l'entrainement (les images synthétiques étant générées à la volée). Et d'autre part, on évite automatiquement d'enfreindre le copyright éventuel des images présentes dans les ensembles d'apprentissage prédéfinis (dont la provenance n'est pas toujours clairement citée, avouons-le).

Commande 'shape_hilbert (rendus) Fig. 3.2. La commande shape_hilbert trace une courbe de Hilbert dans une image, commande illustrée ici avec des niveaux croissants de récursions.

  • La nouvelle commande pca calcule une analyse en composantes principales (ACP) d'un ensemble de vecteurs. Ce type d'analyse permet à la fois de déterminer la dimensionnalité représentative de données vectorielles, ainsi que leurs orientations principales dans l'espace. L'ACP a de nombreuses applications en traitement d'images et plus généralement en analyse de données : débruitage, compression, reconnaissance de visages, analyse de textures, recalage géométrique, etc. L'exemple ci-dessous illustre son utilisation pour déterminer l'orientation des axes principaux (dessinés en pointillés) d'une silhouette de libellule.

Commande 'pca') Fig. 3.3. La commande pca est utilisée ici pour calculer les orientations des axes principaux d'une silhouette binaire 2D.

  • Les nouvelles commandes depthmap3d et normalmap3d viennent enrichir les possibilités de rendus d'objets 3D maillés de G'MIC, en synthésisant des rendus d'un objet respectivement sous la forme de cartes de profondeurs et de normales 3D.

Commandes 'depthmap3d' et 'normalmap3d') Fig. 3.4. Les commandes depthmap3d et normalmap3d appliquées sur un modèle 3D en rotation.

  • Mentionnons enfin le travail d'amélioration général ciblé sur les algorithmes d'opérations matricielles présents dans G'MIC : arrivée de la décomposition QR (avec pivot), amélioration de la précision de calcul pour l'inversion de matrices et la résolution de systèmes linéaires… Et même s'il est difficile de rendre ça visuel, je vous propose cette petite ligne de commande qui crée une matrice carrée 40×40 aléatoire, qui l'inverse et qui calcule le produit des deux pour vérifier que l'on retrouve bien la matrice identité.
$ gmic 40,40 rand -1,1 +invert +mmul name A,invA,'A*invA'

Commande 'invert') Fig. 3.5. Exemple de l'utilisation de gmic en ligne de commande pour l'inversion d'une matrice aléatoire.

Tout ceci n'est bien sûr qu'un aperçu succinct de ce qui a été réalisé sur le cœur de G'MIC cette année. Pour plus de détails techniques, la consultation des Changelog est recommandée.

4. Nouveau dépôt de codes sources: gmic-interactive-demos

En tant que membre d'un laboratoire public de recherche, j'ai l'occasion de participer ponctuellement à des évènements de vulgarisation scientifique (tels que la Fête de la science, le FÉNO, etc.), où l'on présente certaines de nos activités de recherche au grand public (en algorithmique du traitement d'images en ce qui me concerne). Pour rendre ces présentations plus attractives et ludiques, j'ai élaboré au fil des ans, différents programmes et bornes de démonstration interactifs, en me reposant sur les possibilités offertes par le langage G'MIC.

Ces applications libres (sous licence CeCILL) sont maintenant accessibles sur ce dépôt logiciel : github.com/GreycLab/gmic-interactive-demos

Elles pourront intéresser des enseignants et/ou chercheurs souhaitant illustrer différents concepts du traitement d'images à des publics de néophytes. Ces codes illustrent aussi les capacités du langage G'MIC pour la création de programmes interactifs, et ceci indépendamment du greffon G'MIC-Qt.

Pour le moment, trois démonstrateurs sont présents dans ce dépôt logiciel. Ils sont détaillés ci-dessous.

4.1. The SteamFace Machine

« The SteamFace Machine » est le démonstrateur le plus récent. Il montre le fonctionnement des réseaux de neurones convolutionnels pour la détection d'un visage dans une image, et l'analyse de caractéristiques propres à ce visage, le tout enrobé dans un style SteamPunk du plus bel effet !

The SteamFace Machine (intro) Fig. 4.1.1. Écran de lancement du démonstrateur « The SteamFace Machine ».

Le flux vidéo capturé par la webcam s'affiche à l'écran, et lorsqu'un visage est placé au centre de l'image, la jauge de détection faciale s'active. En bas à droite, on peut apercevoir la sortie de différentes couches intermédiaires du réseau de neurones réalisant la détection (classifieur binaire avec une architecture de type LeNet-5).

The SteamFace Machine (main) Fig. 4.1.2. Détection du visage par un réseau de neurones convolutionnel dans le démonstrateur « _The SteamFace Machine »._

Une fois la détection opérée, un deuxième réseau est inféré pour en extraire différentes caractéristiques faciales : genre, âge, type de cheveux, port de lunettes ou de chapeau, taille du nez…

The SteamFace Machine (caractéristiques) Fig. 4.1.3. Analyse de quelques caractéristiques liées au visage détecté.

C'est une manière visuellement amusante de présenter le fonctionnement de classifieurs neuronaux au grand public, leurs capacités mais aussi leurs limites et les biais inhérents aux bases d'apprentissage utilisées pour les entrainer (dans le cas de ce démonstrateur, la base CelebA, qui contient des images assez éloignées de celles que l'on acquiert via la webcam dans un environnement non-contrôlé tel qu'un parc des expositions).

Mentionnons également la belle contribution de notre cher collègue Philippe Bernard, du service Administration système et réseaux du GREYC, qui a réalisé une borne physique de démonstration intégrant « The SteamFace Machine », facilement transportable à des évènements de médiation scientifique !

The SteamFace Machine (borne) Fig. 4.1.4. Vidéo de démonstration de la borne « The SteamFace Machine » quand elle était en cours d'élaboration.

4.2. Virtual Artist

« Virtual Artist » est un deuxième démonstrateur interactif, qui cherche à illustrer le principe du « transfert de style » entre deux images.
Nous avons précédemment évoqué le transfert de couleurs (en section 2.6). Le transfert de style en est une extension naturelle : au lieu de transférer uniquement les couleurs, on cherche à transférer tout le style graphique d'une image « Style » vers l'image « Source ».
C'est bien sûr un problème autrement plus complexe, et les méthodes les plus performantes du domaine utilisent généralement de gros réseaux de neurones.

« Virtual Artist » n'a pas la prétention d'être à la pointe de l'état de l'art : c'est avant tout un démonstrateur pédagogique pour expliquer le principe général du transfert de style en traitement d'images. L'utilisateur peut jouer avec différentes images de « Source » et de « Style » prédéfinies. La figure ci-dessous illustre quelques-uns des écrans principaux de l'application.

Virtual Artist Fig. 4.2.1. L'application « Virtual Artist » illustre le principe du transfert de style entre deux images.

Ce démonstrateur a été utilisé de nombreuses fois sur une grande table tactile, dans des évènements grand public, et fait toujours son petit effet !

Virtual Artist (FÉNO) Fig. 4.2.2. L'application « Virtual Artist » utilisée comme démonstrateur, ici au Festival de l'Excellence Normande (FÉNO) en 2021.

4.3. GREYC Warp

« GREYC Warp », le dernier démonstrateur de ce nouveau dépôt logiciel, implémente un miroir déformant interactif. L'utilisateur voit en direct le flux de la webcam et peut créer, déplacer ou supprimer des points clés qui définissent une déformation appliquée en temps réel. Une dizaine de transformations pré-définies sont également proposées.

GREYC Warp Fig. 4.3.1. L'application « GREYC Warp » vous laisse déformer le flux vidéo de votre webcam, de manière interactive, et non sans humour !

Pour avoir testé ce démonstrateur en situation réelle lors d'expositions, ça fait beaucoup rire les enfants (mais pas les plus jeunes qui pensent que ça reflète vraiment l'apparence de leur tête et qui peuvent se mettre à pleurer). Une application toute simple mais néanmoins amusante !

5 G'MIC et le code créatif

Ces quelques démonstrateurs esquissent déjà l'image d'un langage G'MIC adapté au code créatif, qui consiste, selon Wikipedia, à « utiliser la programmation informatique comme un moyen d'expression artistique (visuel, musical, littéraire, interactif, performatif…) à part entière ».

5.1. Codes créatifs courts

En tant qu'ancien demomaker, le code créatif est forcément un domaine qui me tient à cœur, et j'écris et partage régulièrement des scripts courts sur le forum de G'MIC pour expérimenter de nouvelles idées d'effets graphiques, ou en reproduire certains sur lesquels je suis tombé et que je trouve captivants.
Quelques-uns de ces effets récents sont décrits ci-dessous, avec à chaque fois, un accès vers le code source correspondant (script .gmic).

  • Agrégation limitée par diffusion tournoyante : Cet effet est une variante de l'agrégation limitée par diffusion, implémentant un système de particules en mouvement qui sont stoppées dès lors qu'elles rencontrent une masse d'éléments plus anciens, déjà immobiles. On ajoute à tout ça une rotation, un zoom inverse, une palette de couleurs, et le tour est joué ! Le code source de cet effet atteint difficilement les 36 lignes, commentaires inclus !

Diffusion-Limited-Aggregation (animation) Fig. 5.1.1. L'effet animé « Agrégation limitée par diffusion tournoyante », rendu par G'MIC.

  • Courbe de Hilbert néon : Cette animation stylise le dessin d'une courbe de Hilbert par un tracé incrémental faisant songer à un néon. Ici, le code source est beaucoup plus conséquent (52 lignes 😉).

Hilbert-Curve (animation) Fig. 5.1.2. L'effet animé « Courbe de Hilbert néon », rendu par G'MIC.

  • Morphing de formes : Ici, deux silhouettes se transforment l'une vers l'autre via un morphing continu. On utilise des edgels pour l'extraction et la paramétrisation du contour des deux silhouettes à transformer. Le code source de cet effet revient à un nombre de lignes de code quand même plus raisonnable que précédemment (36 lignes).

Morph Shape (animation) Fig. 5.1.3. L'effet animé « Morphing de formes », rendu par G'MIC.

  • Tunnel 3D : Celui-ci est l'un de mes préférés. C'est certes un effet ultra-classique dans le monde de la scène démo, mais le rendu est sympa. Et avec ses 68 lignes, le code source pour générer cette animation de 256 frames (qui cyclent parfaitement) reste dans les limites du raisonnable !

Tunnel 3D (animation) Fig. 5.1.4. L'effet animé « Tunnel 3D », rendu par G'MIC.

  • One-liner géométrique : Le langage G'MIC, grâce à sa syntaxe délibérément concise, est un candidat idéal pour la création de one-liners. Une section entière de la documentation de référence est d'ailleurs dédiée à quelques one-liners amusants. Étant tombé par hasard sur cette belle image créée avec GeoGebra par Georg Wengler, j'ai souhaité la retranscrire en langage G'MIC sous la forme d'une unique ligne de commande affichant une animation, et voici le résultat (et heureusement qu'une ligne de code ne se limite pas à 80 caractères !)
$ gmic 12,12,256,2,"a = 1 + x; b = 1 + y; t = lerp(0,2*pi*b,z/d); cos(a/b*t)*cexp([0,t])" 12,12,1,2,"S = crop(#-1,x,y,0,c,1,1,d#0,1); S = round(45*(S - avg(S)) + 50); draw(#-1,S,x,y,0,c,1,1,d#0,1)" rm. 1200,1200,1,3,255 repeat 256 { 12,12,1,1,"repeat (16,l, X = 100*[x,y] + round(I(#0,x,y,$> + l/16,2,2)); ellipse(#-1,X,1,1,0,1,0))" rm. +rs. 600 w. rm. wait 20 } rm

cos(ab) (animation) Fig. 5.1.5. L'effet animé « cos(ab) », rendu par G'MIC.

L'ensemble de ces nouvelles animations se retrouve dans la section Gallery du site web de G'MIC.

5.2. Continuation de la série « G'MIC Adventures »

De temps en temps, j'essaie aussi de partager l'ensemble du processus permettant d'arriver (en partant de zéro) à un résultat de code créatif.
Et cela, rédigé sous la forme d'un petit article partagé sur le forum de G'MIC. Cette série d'articles est nommée « G'MIC Adventures ». Je l'avais évoquée dans notre dernière dépêche. Deux nouveaux épisodes de cette série sont parus depuis :

  • Apprentissage d'un perceptron multi-couches pour la reproduction d'une image couleur (G'MIC Adventure #5) :

Dans ce cinquième épisode, on cherche à entrainer un réseau de neurones simple (un perceptron multi-couches) capable d'apprendre une fonction image entière (x,y)\to(R,G,B), c'est-à-dire un réseau capable de prédire une couleur (R,G,B) correcte à partir d'un vecteur de coordonnées (x,y) donné en entrée. Il est particulièrement intéressant de visualiser l'image couleur que le réseau est capable de reproduire à chaque itération de son apprentissage (figure ci-dessous), et ce, jusqu'à convergence.

MLP (animation) Fig. 5.2.1. Reconstruction itérative d'une image couleur obtenue par l'apprentissage d'un perceptron multi-couches.

Dans ce sixième épisode, on s'intéresse à l'implémentation en G'MIC de l'équation d'ondes et ses possibilités pour appliquer des effets de déformations amusants sur des images, comme l'illustre la figure suivante qui correspond au résultat obtenu à la toute fin de l'article.

Wave equation (animation) Fig. 5.2.2. Application d'une équation d'ondes anisotrope pour la déformation d'une image le long de ses contours.

Les exemples présentés dans cette section montrent que G'MIC a du potentiel pour le code créatif, notamment pour l'expérimentation rapide de codes d'effets graphiques. Le fait qu'il soit utilisable en ligne de commande (via la commande gmic) en fait un allié précieux pour générer des animations ou pour modifier des lots d'images de manière automatisée.

6. Autres nouvelles liées au projet

Pour finir cette longue dépêche, voici en vrac quelques autres nouvelles notables liées au projet :

  • Diffusion de G'MIC : Avec le temps, la diffusion de G'MIC s'accélère et son installation se simplifie. Notons tout d'abord que G'MIC-Qt a été parmi les premiers greffons disponibles lors de la sortie de la version majeure 3.2 de GIMP. L'installation de ce greffon est maintenant aussi largement simplifiée pour les utilisateurs de macOS, grâce au travail remarquable des empaqueteurs de MacPorts, qui en proposent une version toujours très à jour.

Nous avons également appris que G'MIC suscite l'intérêt des projets suivants :

  1. Le projet G'MIC-GEGL a pour objectif d'exposer les différents filtres du greffon G'MIC-Qt directement sous forme de nœuds GEGL, qui est la bibliothèque de traitement utilisée en interne dans GIMP. Cela voudrait dire que les effets de G'MIC-Qt pourraient à terme être utilisés dans des calques d'effets non-destructifs de GIMP.
  2. Le projet PhotoFlare est un nouvel éditeur d'images numériques multi-plateformes, et son développeur a annoncé y avoir intégré le greffon G'MIC-Qt afin de profiter de ses centaines de filtres proposés.
  3. Le projet gmic-affinity se propose de développer un greffon en Rust pour Affinity Photo, pour exposer le greffon G'MIC-Qt aux utilisateurs. Ce dernier est normalement déjà fonctionnel pour ce logiciel, via l'API 8bf (comme le montre cette vidéo), mais malheureusement pas encore pour les utilisateurs de macOS.
  4. Enfin, notons l'arrivée de G'MIC-Qt sur le Snap Store, proposant ainsi une façon alternative d'installer notre greffon pour GIMP.
  • Exposé : Début mai 2026, j'ai eu l'occasion de faire un bref passage au laboratoire LRDE de l'EPITA, sympathiquement invité par Marc Espie (enseignant et l'un des développeurs du projet OpenBSD), où j'ai donné une présentation intitulée « 25 ans de développement libre pour le traitement des images numériques ». Une vidéo de cette présentation a été captée et mise sur YouTube.

7. Conclusion

Cette version 4.0 marque un jalon important pour G'MIC : dix-huit ans après la première ligne de code, le projet a montré qu'un logiciel open-source né au sein d'un laboratoire de recherche public, et aux ressources modestes, peut s'installer durablement dans le paysage du graphisme numérique libre, et continuer à innover grâce à son écosystème ouvert et extensible.

Cette dépêche a cherché a montrer la maturité et la polyvalence de G'MIC. C'est un cadriciel multi-usages dont les interfaces variées peuvent toucher des publics différents, de l'artiste numérique au bidouilleur de la ligne de commande, en passant par le chercheur en traitement d'images, à partir du moment où une image numérique entre en jeu !

C'est aussi l'occasion de rappeler que rien de tout cela n'aurait été possible sans l'écosystème bienveillant qui gravite autour du projet. Nous tenons à remercier chaleureusement nos partenaires académiques (le CNRS, l'ENSICAEN, l'Université de Caen, la direction du GREYC), ainsi que l'ensemble de la communauté (testeurs, empaqueteurs, vidéastes et utilisateurs du quotidien). Votre soutien est très apprécié.

Les idées fourmillent, l'envie de triturer des pixels est toujours aussi présente, et on espère donc pouvoir continuer à développer et valoriser ce cadriciel libre comme il se doit dans le futur.

Y aura-t-il une nouvelle dépêche l'année prochaine ? L'avenir nous le dira !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Korben
  • Mage-Flow - Le modèle de diffusion de Microsoft qui tourne sur Mac
    Microsoft vient de publier Mage-Flow, un modèle de génération d'images de 4 milliards de paramètres, et dont l'objectif est d'atteindre la qualité des gros modèles sans en avoir la taille. Là où FLUX.2 embarque 32 milliards de paramètres, Qwen-Image 20 et Z-Image 6, Mage-Flow joue dans la même cour mais seulement avec 4 milliards de paramètres. Le pari de Microsoft, c'est ce qu'on appelle le co-design. Au lieu d'empiler les paramètres, Mage-Flow mise sur deux briques taillées ense

Mage-Flow - Le modèle de diffusion de Microsoft qui tourne sur Mac

Par : Korben ✨
23 juillet 2026 à 11:44

Microsoft vient de publier Mage-Flow, un modèle de génération d'images de 4 milliards de paramètres, et dont l'objectif est d'atteindre la qualité des gros modèles sans en avoir la taille. Là où FLUX.2 embarque 32 milliards de paramètres, Qwen-Image 20 et Z-Image 6, Mage-Flow joue dans la même cour mais seulement avec 4 milliards de paramètres.

Le pari de Microsoft, c'est ce qu'on appelle le co-design. Au lieu d'empiler les paramètres, Mage-Flow mise sur deux briques taillées ensemble. D'abord Mage-VAE, un tokenizer latent qui encode et décode les images avec 12 à 22 fois moins de calcul par pixel que le VAE de FLUX.2, à qualité de reconstruction équivalente. C'est ce qui débloque la haute résolution, habituellement le point où ces modèles s'étranglent.

Et ensuite un transformer de diffusion multimodal baptisé NR-MMDiT, entraîné en rectified flow matching, avec Qwen3-VL comme encodeur de texte. Un seul checkpoint génère alors de 512 à 2048 pixels, dans n'importe quel ratio, jusqu'à des formats extrêmes en 4:1 sans buckets ni padding. Vous demandez du 512×2048 ou du 2048×512, il vous le sort.

Le modèle existe en trois saveurs. La Base qui tourne en 30 étapes de débruitage, la version RL-aligned à 20 étapes, et la Turbo distillée qui crache une image en 4 étapes seulement. Et il y a son jumeau, Mage-Flow-Edit, qui fait de l'édition d'image par instruction. Vous lui donnez une photo et une consigne en langage naturel, et lui la modifie. Le tout sous licence MIT, poids libres sur Hugging Face, usage commercial compris.

Côté chiffres officiels, tout vient d'un A100 donc c'est pas représentatif sur nos machins mais en gros, on est à 0,59 seconde par image en Turbo, avec un pic mémoire de 18 à 20 Go. Sauf que moi, je n'ai pas d'A100. J'ai un Mac Studio. Et le dépôt ne parle que de CUDA. La doc d'install vous fait compiler flash-attn, qui est une extension qui a besoin d'un toolkit NVIDIA. Zéro mention d'Apple Silicon, zéro mention de MPS, et les exemples sont tous en mode device="cuda" en dur. Bref, pour le moment, je ne suis pas invité à la fête.

Mais en fouillant le code, j'ai trouvé la porte de sortie. Un fichier planqué dans les modules expose un backend alternatif basé sur scaled_dot_product_attention, le mécanisme d'attention natif de PyTorch, prévu JUSTEMENT pour quand flash-attn n'est pas dispo.

Et ce backend-là, il tourne nickel sur Metal. Le piège, c'est que le modèle réclame lui aussi flash-attn par défaut à deux endroits : le transformer, mais aussi l'encodeur Qwen3-VL. Le transformer accepte qu'on bascule plus tard alors que l'encodeur non. Lui, il lit son réglage au moment où il se construit et plante si flash-attn manque. Il faut donc forcer le mode SDPA avant de charger le modèle.

Voici ce que j'ai fait tourner, pour de vrai. On monte un environnement Python, on installe tout sauf flash-attn :

python3 -m venv mageflow && source mageflow/bin/activate

pip install torch torchvision diffusers==0.38.0 "transformers>=5.3,<5.6" accelerate safetensors huggingface_hub einops pydantic pillow loguru

pip install "git+https://github.com/microsoft/Mage.git#subdirectory=mage_flow" --no-deps

Une fois que c'est fait, y'a plus qu'à vous créer un petit script mage.py par exemple qui basculera l'attention sur SDPA avant le chargement, pointera sur mps et génèrera votre image :

import os
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
from mage_flow.models.mage_flow import ModelConfig
ModelConfig.model_fields["attn_type"].default = "sdpa" # AVANT de charger, sinon Qwen3-VL exige flash-attn
ModelConfig.model_rebuild(force=True)

from mage_flow import MageFlowPipeline
pipe = MageFlowPipeline.from_pretrained("microsoft/Mage-Flow-Turbo", device="mps")
img = pipe.generate(["un barista avec un chapeau de cowboy qui réalise un latte art, lumière chaude"], heights=[1024], widths=[1024], steps=4, cfg=1.0)[0]
img.save("out.png")

Ensuite, lancez le script :

python3 mage.py

Le PYTORCH_ENABLE_MPS_FALLBACK sert de filet comme ça si une opération n'existe pas côté Metal, elle basculera sur le CPU au lieu de tout faire tomber. Premier lancement, le modèle se téléchargera, donc comptez une bonne dizaine de Go entre le transformer 4B, l'encodeur Qwen3-VL et le VAE.

Et ça marche !!! Sur mon M4 Max de 128 Go, le modèle charge en une vingtaine de secondes puis génère une image 1024×1024 en 10 secondes une fois chaud.

Mon barista à chapeau de cowboy est sorti impeccable.

Ma toute première génération Mage-Flow sur le Mac Studio : un barista, 1024x1024, 4 etapes en Turbo.

Cette image 1920x1080 a été générée en moins de 6 secondes,

Pour du batch industriel, une carte NVIDIA restera toujours mieux mais pour générer tranquillement chez soi des petites images sans envoyer ses prompts dans le cloud, c'est parfaitement utilisable, et ça rejoint la logique de l'IA qui tourne en local sur votre Mac que je creuse depuis un moment.

Deux détails à connaître avant de vous lancer. Chaque prompt passe par un filtre de contenu obligatoire côté encodeur, sans option pour le désactiver : les prompts jugés interdits reviennent en images de refus. Et chaque image générée porte un watermark Gaussian-Shading planqué dans le bruit initial, lui non plus désactivable. Hé oui, Microsoft trace ses sorties, donc autant le savoir.

Y'a des garde-fous ! J'ai donc très hâte que ce modèle se fasse "libérer".

Reste que c'est un très joli cadeau de la part de Microsoft ! Un modèle libre, compact, qui gère l'édition et n'importe quel ratio, et qui tient sur une machine Apple avec un petit réglage bien caché ^^...

ps: L'image d'illustration de cet article a été générée avec ce modèle.

  • ✇Korben
  • Moebius - Effacer un objet d'une photo depuis votre navigateur
    Simon Willison, le créateur de Datasette et co-créateur de Django, vient de porter un modèle d'inpainting d'image directement dans le navigateur. Sa démo vous permet de choisir une photo, de peindre sur la zone à faire disparaître et ensuite le modèle IA reconstitue ce qu'il manque. Et ce qui est merveilleux avec cette appli c'est que tout tourne sur votre carte graphique en local, comme ça vos données restent chez vous. Le modèle s'appelle M

Moebius - Effacer un objet d'une photo depuis votre navigateur

Par : Korben ✨
12 juillet 2026 à 05:55

Simon Willison, le créateur de Datasette et co-créateur de Django, vient de porter un modèle d'inpainting d'image directement dans le navigateur. Sa démo vous permet de choisir une photo, de peindre sur la zone à faire disparaître et ensuite le modèle IA reconstitue ce qu'il manque. Et ce qui est merveilleux avec cette appli c'est que tout tourne sur votre carte graphique en local, comme ça vos données restent chez vous.

Le modèle s'appelle Moebius, dispose de 0,22 milliard de paramètres, et a été développé par une équipe de l'université Huazhong en Chine. À l'origine c'est un modèle PyTorch, que Willison a converti au format ONNX pour le faire tourner via ONNX Runtime Web sur le backend WebGPU, une nouvelle API qui donne aux pages web un accès direct au GPU. Et ce qu'on obtient, c'est un modèle de diffusion qui s'exécute à 100% côté client dans Chrome ou Safari.

Lors de la première utilisation, l'outil télécharge 1,27 Go de poids depuis Hugging Face, ce qui est énorme pour une page web. Mais c'est un one-shot car ensuite, le navigateur range tout ça dans son Cache Storage, et les fois d'après il ne re-télécharge rien.

Je l'ai installé et testé et ça fonctionne vraiment très très bien. J'ai sélectionné quelques tuiles comme un bourrin et ça me les a enlevées très proprement en quelques dizaines de secondes (une fois le modèle initial téléchargé évidemment).

C'est du vrai inpainting génératif en tout cas et pas un truc qui recopie les pixels d'à côté.

Willison raconte dans le README que la conversion PyTorch vers ONNX et l'appli web complète ont été réalisées par Claude Code avec le modèle Claude Opus 4.8, et qu'il n'a "*pas regardé une seule ligne de code *". Il s'est juste contenté de tester dans le navigateur et de signaler ce qui clochait. Hé ouais c'est comme ça maintenant, les temps changent ;)

C'est open source sous licence Apache 2.0, la démo est en ligne, et le code est sur GitHub si vous voulez le lancer chez vous. Testez, et effacez ce gars avec son coup de soleil sur le crâne qui gâche votre plus belle photo de vacances, je ne vous juge pas ^^.

Source : Hackaday

  • ✇Korben
  • Apple a menacé de virer Grok de l'App Store à cause des deepfakes publiés sur X
    Une lettre d'Apple adressée à des sénateurs américains, obtenue par NBC News, révèle qu'Apple a menacé xAI en janvier de retirer Grok de l'App Store si l'entreprise ne bloquait pas sérieusement la génération de deepfakes sexualisés. La menace est restée relativement discrète à l'époque, mais le dossier remonte aujourd'hui dans le cadre d'une réponse écrite à des questions parlementaires. L'affaire a en fait démarré fin décembre 2025, quand Grok a commencé à être utilisé massivement sur X pour "d

Apple a menacé de virer Grok de l'App Store à cause des deepfakes publiés sur X

Par : Korben
15 avril 2026 à 09:38

Une lettre d'Apple adressée à des sénateurs américains, obtenue par NBC News, révèle qu'Apple a menacé xAI en janvier de retirer Grok de l'App Store si l'entreprise ne bloquait pas sérieusement la génération de deepfakes sexualisés.

La menace est restée relativement discrète à l'époque, mais le dossier remonte aujourd'hui dans le cadre d'une réponse écrite à des questions parlementaires.

L'affaire a en fait démarré fin décembre 2025, quand Grok a commencé à être utilisé massivement sur X pour "dénuder" numériquement des photos de femmes, sans leur consentement, avec des résultats por#ographiques.

Apple a bougé en interne. L'entreprise a contacté les équipes X et Grok, constaté les violations de ses guidelines, et exigé un plan d'amélioration de la modération. X a "substantiellement résolu" ses violations selon Apple. Grok, pas assez.

Apple a rejeté une soumission suivante de l'app, avec notification officielle que le statu quo menait au retrait. Après des changements additionnels de xAI, Apple a fini par approuver la dernière version soumise.

Ce qui est intéressant dans l'histoire, c'est la méthode. Pas de tweet de menace, pas de communiqué public. Apple utilise son levier le plus efficace, le rejet de soumission, qui bloque les mises à jour et empêche toute évolution du produit sur iOS.

Pour une app aussi active que Grok, c'est létal en quelques semaines. xAI a compris, a mis les correctifs, s'est remis en conformité.

La question de fond reste posée. Même après correction, un modèle génératif d'image peut être poussé à produire du contenu problématique via du prompt engineering, et c'est toujours contournante.

Apple ne vérifie pas le code de Grok, elle vérifie ce que les utilisateurs peuvent sortir dans des scénarios de test. Ça laisse une marge. Du coup, la conformité App Store est plutôt un baromètre qu'une garantie.

L'affaire rappelle aussi qu'Apple, quoi qu'on pense de son monopole sur iOS, reste un des rares acteurs capables de faire plier une boîte d'Elon Musk sans passer par un tribunal.

L'arbitrage, en passant par l'analyse suite à une soumission de l'app, est unilatéral, opaque, et parfois efficace. Les sénateurs qui avaient écrit à Apple et Google en janvier pour demander le retrait de Grok n'ont pas obtenu gain de cause, mais ils ont obtenu un rappel à l'ordre que xAI a dû suivre.

En tous cas, pour une fois, c'est un cas concret où le contrôle App Store a vraiment servi à quelque chose, et c'est surtout un rappel que la modération des modèles d'image en prod est toujours un vrai problème, et ce depuis qu'internet existe (vous vous souvenez de l'affaire Estelle Hallyday contre l'hébergeur Altern en 1999 ? Oui je suis aussi vieux que ça.

Source : Apple Insider

  • ✇Korben
  • Sora ferme - Comment sauvegarder vos vidéos IA avant la coupure
    Sora, c'est fini les amis ! Hé oui, cest chacals d'OpenAI ferment leur plateforme de vidéos IA, et franchement, ça me rend un peu triste. À vrai dire, même si c'était que de la vidéo générée à partir de prompts, moi je me marrais bien. C'était fun de regarder le produit de ses prompts mais aussi de regarder les conneries des autres. Les versions québécoises, aïe aïe aïe, c'était quelque chose quand même ! Mais bon, le plus urgent maintenant, c'est de sauvegarder vos vidéos avant que tout dispara

Sora ferme - Comment sauvegarder vos vidéos IA avant la coupure

Par : Korben
25 mars 2026 à 15:22

Sora, c'est fini les amis !

Hé oui, cest chacals d'OpenAI ferment leur plateforme de vidéos IA, et franchement, ça me rend un peu triste. À vrai dire, même si c'était que de la vidéo générée à partir de prompts, moi je me marrais bien. C'était fun de regarder le produit de ses prompts mais aussi de regarder les conneries des autres. Les versions québécoises, aïe aïe aïe, c'était quelque chose quand même !

Mais bon, le plus urgent maintenant, c'est de sauvegarder vos vidéos avant que tout disparaisse. OpenAI n'a pas encore communiqué de date précise pour la coupure, juste un vague « on vous dira bientôt ». Du coup, autant ne pas traîner, parce que quand ce genre de service cloud ferme, en général c'est pas 6 mois de préavis qu'on vous file...

Depuis la fuite du modèle jusqu'à aujourd'hui, Sora aura fait parler de lui. Côté raisons, c'est Fidji Simo (la patronne de la division Applications) qui a lâché le morceau : ils éparpillent leurs efforts sur trop d'apps, d'API et de stacks serveur différents, et ça les ralentit. En gros, entre préparer une entrée en bourse pour fin 2026 et cramer du GPU H100 sur des vidéos de chats en IA, le choix est vite fait. L'équipe de recherche Sora, elle, continuera à bosser sur la simulation de mondes 3D... mais pour la robotique. Et le fameux deal à 1 milliard de dollars avec Disney pour des films et séries ? Pouf, magie magie, c'est envolé !!

Faut dire que les chiffres n'étaient pas glorieux non plus. Après un lancement en fanfare fin 2024 (et une app iOS lancée à l'automne 2025 qui avait cartonné dans les charts), les téléchargements sur l'App Store avaient plongé de 32% entre novembre et décembre 2025. La hype, ça dure qu'un temps.

Mais maintenant les gens, on passe aux choses sérieuses !

Sora Backup - le script qui sauve vos vidéos

Je n'avais absolument pas de temps aujourd'hui, mais j'ai quand même taffé pour vous développer un petit script JavaScript qui récupère TOUTES vos vidéos Sora d'un coup, avec les prompts et les métadonnées, et qui vous génère un joli ZIP prêt à archiver. Pas besoin d'installer quoi que ce soit, pas d'extension louche. Vous avez juste besoin d'être connecté à votre profil Sora et d'un navigateur.

Comment ça marche

Allez sur sora.com , connectez-vous à votre compte, puis ouvrez la console JavaScript de votre navigateur (F12 sur Chrome ou Firefox, onglet Console). Ensuite, glissez-déplacez ou collez le script ci-dessous dedans et appuyez sur Entrée.

Le script va automatiquement récupérer votre token d'authentification (pas besoin de le chercher vous-même), puis il va paginer sur votre profil Sora pour récupérer tous vos posts publiés. Pour chaque post, il extrait les vidéos attachées (MP4), les télécharge, et empaquette le tout dans un fichier ZIP directement dans votre navigateur.

Y'a même un fichier manifest.json dans le ZIP qui contient tous vos prompts, les dimensions, les durées, les permalinks, les dates de création... bref, tout ce qu'il faut pour retrouver vos petits. Le ZIP est généré en format STORE (pas compressé, parce que compresser du MP4 ça sert à rien), avec un calcul CRC32 maison et sans aucune librairie externe.

Le script complet

Voici le code à coller dans la console :

// ==========================================================
// SORA BACKUP - Sauvegarde complète vidéos + images + prompts par Korben
// ==========================================================
// Usage : Ouvrir https://sora.com, F12 > Console, coller ce script
// Les fichiers sont téléchargés via le navigateur (dossier Downloads)
// Un fichier manifest.json récapitule tout (prompts, metadata, URLs)
// ==========================================================

(async () => {
 // --- Mini ZIP builder (STORE, pas de lib externe) ---
 const crc32table = new Uint32Array(256);
 for (let i = 0; i < 256; i++) {
 let c = i;
 for (let j = 0; j < 8; j++) c = (c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1);
 crc32table[i] = c;
 }
 function crc32(buf) {
 let c = 0xFFFFFFFF;
 for (let i = 0; i < buf.length; i++) c = crc32table[(c ^ buf[i]) & 0xFF] ^ (c >>> 8);
 return (c ^ 0xFFFFFFFF) >>> 0;
 }
 const zipFiles = []; // {name, data (Uint8Array), crc, size}

 const PAGE_SIZE = 50;
 const DELAY_MS = 1500;
 const manifest = [];
 let totalDownloaded = 0;
 let totalErrors = 0;

 // --- Auth : récupérer le Bearer token ---
 // OPTION 1 : Coller ton token ici (Network tab > Authorization header)
 // OPTION 2 : Laisser vide, le script tentera de le récupérer auto
 let AUTH_TOKEN = '';

 async function getAuthToken() {
 if (AUTH_TOKEN) return AUTH_TOKEN;

 // Auto-detect : endpoint session ChatGPT
 for (const path of ['/api/auth/session', '/backend-api/auth/session']) {
 try {
 const r = await fetch(path, { credentials: 'include' });
 if (r.ok) {
 const json = await r.json();
 if (json.accessToken) {
 AUTH_TOKEN = json.accessToken;
 console.log(' 🔑 Token récupéré automatiquement');
 return AUTH_TOKEN;
 }
 }
 } catch(e) {}
 }

 // Fallback : demander à l'utilisateur
 const input = prompt(
 'Token non trouvé automatiquement.\n\n' +
 'Pour le récupérer :\n' +
 '1. F12 > onglet Réseau\n' +
 '2. Rafraîchis la page\n' +
 '3. Clique sur une requête /backend/...\n' +
 '4. Copie le header Authorization\n\n' +
 'Colle le token ici (Bearer eyJ...):'
 );
 if (input) {
 AUTH_TOKEN = input.replace(/^Bearer\s+/i, '').trim();
 return AUTH_TOKEN;
 }

 console.error(' ❌ Pas de token. Annulation.');
 return null;
 }

 // --- Fetch API avec auth ---
 async function apiFetch(url) {
 const token = await getAuthToken();
 const headers = {};
 if (token) headers['Authorization'] = 'Bearer ' + token;

 // oai-device-id requis par certains endpoints
 const deviceId = localStorage.getItem('oai-did') || '';
 if (deviceId) headers['oai-device-id'] = deviceId;

 const resp = await fetch(url, {
 method: 'GET',
 credentials: 'include',
 headers
 });

 if (!resp.ok) throw new Error(`HTTP ${resp.status} for ${url}`);
 return resp.json();
 }

 // --- Pagination générique ---
 async function fetchAllPages(baseUrl, dataField = 'data', cursorParam = 'after', cursorField = 'last_id') {
 let allItems = [];
 let cursor = '';
 let page = 0;

 while (true) {
 let url = baseUrl;
 if (cursor) url += `&${cursorParam}=${cursor}`;

 console.log(` 📄 Page ${++page} (${allItems.length} items so far)...`);
 const json = await apiFetch(url);

 const items = json[dataField];
 if (!Array.isArray(items) || items.length === 0) break;

 allItems = allItems.concat(items);
 cursor = json[cursorField] || '';

 if (!json.has_more && !cursor) break;
 await sleep(DELAY_MS);
 }

 return allItems;
 }

 // Variante pour les endpoints project_y (cursor-based)
 async function fetchAllPagesCursor(baseUrl) {
 let allItems = [];
 let cursor = '';
 let page = 0;

 while (true) {
 let url = baseUrl;
 if (cursor) url += `&cursor=${cursor}`;

 console.log(` 📄 Page ${++page} (${allItems.length} items so far)...`);
 const json = await apiFetch(url);

 const items = json.items;
 if (!Array.isArray(items) || items.length === 0) break;

 allItems = allItems.concat(items);
 cursor = json.cursor || '';

 if (!cursor) break;
 await sleep(DELAY_MS);
 }

 return allItems;
 }

 function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }

 // --- Extraire URL du média depuis une generation ---
 function getMediaUrl(gen) {
 return gen?.encodings?.source?.path
 || gen?.downloadable_url
 || gen?.url
 || '';
 }

 // --- Extraire le prompt (peut être dans actions, prompt, ou input_text) ---
 function getPrompt(item, gen) {
 // Prompt direct
 if (gen?.prompt) return gen.prompt;
 if (item?.prompt) return item.prompt;
 if (item?.input_text) return item.input_text;
 // Storyboard : les actions sont les descriptions des scènes
 if (item?.actions && typeof item.actions === 'object') {
 return Object.entries(item.actions)
 .sort((a,b) => Number(a[0]) - Number(b[0]))
 .map(([frame, desc]) => `[frame ${frame}] ${desc}`)
 .join(' | ');
 }
 if (gen?.actions && typeof gen.actions === 'object') {
 return Object.entries(gen.actions)
 .sort((a,b) => Number(a[0]) - Number(b[0]))
 .map(([frame, desc]) => `[frame ${frame}] ${desc}`)
 .join(' | ');
 }
 return '';
 }

 // --- Dérouler les items du profil Sora en items plats ---
 function flattenProfileItems(items) {
 const flat = [];
 for (const item of items) {
 const post = item.post || item;
 const attachments = post.attachments || [];
 if (attachments.length === 0) continue;

 for (const att of attachments) {
 const url = att.encodings?.source?.path || att.downloadable_url || att.url || '';
 if (!url) continue;

 flat.push({
 id: post.id || att.generation_id || '',
 generation_id: att.generation_id || '',
 task_id: att.task_id || '',
 title: att.title || post.discovery_phrase || '',
 prompt: post.text || '',
 emoji: post.emoji || '',
 type: att.generation_type || att.kind || '',
 width: att.width || 0,
 height: att.height || 0,
 duration_s: att.duration_s || 0,
 is_public: !!post.posted_to_public,
 created_at: post.posted_at ? new Date(post.posted_at * 1000).toISOString() : '',
 url: url,
 permalink: post.permalink || '',
 username: item.profile?.username || '',
 });
 }
 }
 return flat;
 }

 // --- Sanitize filename ---
 function sanitize(name) {
 return name.replace(/[<>:"\/\\|?*\x00-\x1f]/g, '_').substring(0, 100);
 }

 // --- Ajouter un fichier au ZIP ---
 async function addToZip(url, filename) {
 try {
 const resp = await fetch(url);
 if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
 const buf = await resp.arrayBuffer();
 const data = new Uint8Array(buf);
 zipFiles.push({ name: filename, data, crc: crc32(data), size: data.length });
 totalDownloaded++;
 return true;
 } catch(e) {
 console.warn(` ⚠️ Erreur ${filename}:`, e.message);
 totalErrors++;
 return false;
 }
 }

 // --- Déduire l'extension ---
 function getExt(url, type) {
 if (!url) return type === 'video' ? '.mp4' : '.png';
 const m = url.match(/\.(mp4|webm|mov|png|jpg|jpeg|webp|gif)/i);
 return m ? '.' + m[1].toLowerCase() : (type === 'video' ? '.mp4' : '.png');
 }

 // ==========================================================
 // MAIN
 // ==========================================================
 const origin = window.location.origin;
 console.log('🎬 SORA BACKUP - Démarrage');
 console.log('='.repeat(50));

 // 1. Mes posts Sora (profil)
 console.log('\n📦 1/2 - Récupération de mes posts Sora...');
 let myPosts = [];
 try {
 myPosts = await fetchAllPagesCursor(
 `${origin}/backend/project_y/profile_feed/me?limit=${PAGE_SIZE}&cut=nf2`
 );
 console.log(`  ${myPosts.length} posts de profil`);
 // Debug premier item
 if (myPosts.length > 0) {
 const first = myPosts[0];
 console.log(' 🔍 Premier item - clés:', Object.keys(first).join(', '));
 console.log(' 🔍 URL:', first.url?.substring(0, 80) || 'none');
 console.log(' 🔍 DL:', first.downloadable_url?.substring(0, 80) || 'none');
 console.log(' 🔍 ENC:', first.encodings?.source?.path?.substring(0, 80) || 'none');
 console.log(' 🔍 GENS:', first.generations?.length || 'none');
 console.log(' 🔍 TITLE:', first.title || 'none');
 }
 } catch(e) {
 console.warn(' ⚠️ profil failed:', e.message);
 }

 // 2. Mes likes sur Sora
 console.log('\n📦 2/2 - Récupération de mes likes Sora...');
 let myLikes = [];
 try {
 myLikes = await fetchAllPagesCursor(
 `${origin}/backend/project_y/profile_feed/me?limit=${PAGE_SIZE}&cut=appearances`
 );
 if (myCameos.length) console.log(`  ${myCameos.length} cameos trouvés`);
 } catch(e) {}

 // --- Dérouler les generations et dédupliquer ---
 console.log('\n🔄 Extraction des vidéos...');
 const rawAll = [...myPosts, ...myLikes];
 const flatItems = flattenProfileItems(rawAll);

 const seen = new Set();
 const allItems = [];
 for (const item of flatItems) {
 if (item.id && seen.has(item.id)) continue;
 // Filtrer : vidéos uniquement
 const isVideo = item.type === 'video_gen' || item.url.includes('/videos/') || item.url.includes('.mp4');
 if (!isVideo) continue;
 if (item.id) seen.add(item.id);
 allItems.push(item);
 }

 console.log(`📊 Total unique: ${allItems.length} vidéos à télécharger`);
 console.log('='.repeat(50));

 // --- Construire le manifest et télécharger ---
 console.log('\n⬇️ Téléchargement en cours...');
 console.log('(Les fichiers arrivent dans ton dossier Downloads)');

 for (let i = 0; i < allItems.length; i++) {
 const meta = allItems[i];
 const url = meta.url;

 if (!url) {
 console.log(` ⏭️ [${i+1}/${allItems.length}] ${meta.id} - pas d'URL, skip`);
 meta.downloaded = false;
 manifest.push(meta);
 continue;
 }

 const type = (meta.task_type === 'image_gen' || url.match(/\.(png|jpg|jpeg|webp|gif)/i)) ? 'image' : 'video';
 const ext = getExt(url, type);
 const nameBase = meta.title
 ? sanitize(meta.title)
 : (meta.prompt ? sanitize(meta.prompt.substring(0, 60)) : meta.id);
 const filename = `sora_${String(i+1).padStart(4,'0')}_${nameBase}${ext}`;

 console.log(` ⬇️ [${i+1}/${allItems.length}] ${filename}`);
 meta.filename = filename;
 meta.downloaded = await addToZip(url, filename);
 manifest.push(meta);

 // Pause entre downloads pour pas surcharger
 if (i < allItems.length - 1) await sleep(800);
 }

 // --- Ajouter le manifest au ZIP ---
 console.log('\n📝 Ajout du manifest au ZIP...');
 const manifestData = new TextEncoder().encode(JSON.stringify(manifest, null, 2));
 zipFiles.push({ name: 'manifest.json', data: manifestData, crc: crc32(manifestData), size: manifestData.length });

 // --- Générer le ZIP (format STORE, pas de compression) ---
 console.log('\n📦 Génération du ZIP...');
 const enc = new TextEncoder();
 const blobParts = [];
 const centralParts = [];
 let offset = 0;

 for (const f of zipFiles) {
 const nameBytes = enc.encode(f.name);
 // Local file header (30 bytes + name)
 const lh = new ArrayBuffer(30);
 const lv = new DataView(lh);
 lv.setUint32(0, 0x04034b50, true);
 lv.setUint16(4, 20, true);
 lv.setUint16(8, 0, true); // STORE
 lv.setUint32(14, f.crc, true);
 lv.setUint32(18, f.size, true);
 lv.setUint32(22, f.size, true);
 lv.setUint16(26, nameBytes.length, true);
 blobParts.push(new Uint8Array(lh), nameBytes, f.data);

 // Central directory entry (46 bytes + name)
 const ch = new ArrayBuffer(46);
 const cv = new DataView(ch);
 cv.setUint32(0, 0x02014b50, true);
 cv.setUint16(4, 20, true);
 cv.setUint16(6, 20, true);
 cv.setUint16(10, 0, true); // STORE
 cv.setUint32(16, f.crc, true);
 cv.setUint32(20, f.size, true);
 cv.setUint32(24, f.size, true);
 cv.setUint16(28, nameBytes.length, true);
 cv.setUint32(42, offset, true);
 centralParts.push(new Uint8Array(ch), nameBytes);

 offset += 30 + nameBytes.length + f.size;
 }

 const centralSize = centralParts.reduce((s, p) => s + p.length, 0);
 const eocd = new ArrayBuffer(22);
 const ev = new DataView(eocd);
 ev.setUint32(0, 0x06054b50, true);
 ev.setUint16(8, zipFiles.length, true);
 ev.setUint16(10, zipFiles.length, true);
 ev.setUint32(12, centralSize, true);
 ev.setUint32(16, offset, true);

 const zipBlob = new Blob([...blobParts, ...centralParts, new Uint8Array(eocd)], { type: 'application/zip' });

 const zipName = `sora_backup_${new Date().toISOString().split('T')[0]}.zip`;
 const a = document.createElement('a');
 a.href = URL.createObjectURL(zipBlob);
 a.download = zipName;
 document.body.appendChild(a);
 a.click();
 document.body.removeChild(a);
 URL.revokeObjectURL(a.href);

 // --- Résumé ---
 const sizeMB = (zipBlob.size / 1024 / 1024).toFixed(1);
 console.log('\n' + '='.repeat(50));
 console.log('🎬 SORA BACKUP TERMINÉ');
 console.log(`  Vidéos dans le ZIP : ${totalDownloaded}`);
 console.log(`  Erreurs : ${totalErrors}`);
 console.log(` 📦 Fichier : ${zipName} (${sizeMB} MB)`);
 console.log(` 📝 manifest.json inclus dans le ZIP`);
 console.log('='.repeat(50));
})();

Quelques précisions

Si le token n'est pas récupéré automatiquement (ça peut arriver selon votre config), le script vous demandera de le coller manuellement. Pour le trouver, c'est simple : F12 > onglet Réseau > rafraîchissez la page > cliquez sur n'importe quelle requête vers /backend/... > copiez le header Authorization.

D'ailleurs, si la vidéo IA vous branche toujours, Higgsfield propose des séries entièrement générées par IA. C'est pas la même approche que Sora, mais c'est un signe que la vidéo IA ne meurt pas avec la fermeture d'un seul service.

Bon, bref, c'est la fin d'un truc sympa. Moi je préférais largement scroller sur Sora que d'aller sur TikTok ou Instagram parce qu'au moins c'était drôle !

Merci à mes Patreons qui me permettent de prendre le temps de développer ce genre de petits outils pour vous. Sans eux, j'aurais jamais pu me poser une après-midi pour coder ça.

Source

  • ✇Korben
  • MilimoVideo - Le studio de cinéma IA 100% local
    MilimoVideo, c'est un studio de production vidéo boosté à l'IA qui tourne entièrement en local sur votre ordi... pas de cloud, juste votre GPU qui mouline quoi... Et contrairement à ce que vous pensez (je suis dans vos têtes !! lol), ce n'est pas un énième générateur prompt-to-video à la Sora . Non, il s'agit d'un vrai NLE ... ou plutôt un éditeur non-linéaire pour ceux qui découvre, avec une timeline multi-pistes, du trim au frame près et tout le toutim, sauf que derrière, y'a 4 modèles d'IA qu

MilimoVideo - Le studio de cinéma IA 100% local

Par : Korben
4 mars 2026 à 09:38

MilimoVideo, c'est un studio de production vidéo boosté à l'IA qui tourne entièrement en local sur votre ordi... pas de cloud, juste votre GPU qui mouline quoi...

Et contrairement à ce que vous pensez (je suis dans vos têtes !! lol), ce n'est pas un énième générateur prompt-to-video à la Sora . Non, il s'agit d'un vrai NLE ... ou plutôt un éditeur non-linéaire pour ceux qui découvre, avec une timeline multi-pistes, du trim au frame près et tout le toutim, sauf que derrière, y'a 4 modèles d'IA qui bossent ensemble main dans la main.

Du côté moteur, on retrouve donc LTX-2, un transformer dual-stream de 19 milliards de paramètres pour la génération vidéo. Text-to-video, image-to-video, interpolation de keyframes... c'est le package complet. Ensuite, pour les images, c'est Flux 2 Klein avec l'IP-Adapter qui maintient la cohérence visuelle de vos personnages d'un plan à l'autre, comme ça, finis les visages de vos acteurs qui changent toutes les 3 secondes.

Et y'a aussi SAM 3 pour la segmentation. Vous cliquez sur un objet dans la vidéo, hop, il le détecte et le suit alors automatiquement d'un bout à l'autre du clip. Et pour finir, Gemma 3 se charge d'améliorer vos prompts pour que les résultats soient plus "cinématiques".

Le truc cool, c'est surtout le système de "Story Elements" je trouve car avec ça, vous pouvez créer des personnages, des lieux, des objets, et vous les invoquez ensuite dans vos prompts avec un @Personnage. Du coup, le studio injecte les bonnes références visuelles pour garder une cohérence sur tout votre projet. Faut voir ça un peu comme des variables de code, mais pour du cinéma.

Et si vos plans dépassent 121 frames, le "Quantum Alignment" découpe la génération en morceaux et raccorde ces segments sans couture visible. Voilà comment les transitions entre bouts générés sont gérées proprement sans que vous ayez à lever le petit doigt. Magique hein ?

Pour voir ce que ça donne en pratique, voilà une démo qui montre le workflow complet :

Côté retouche, y'a aussi de l'inpainting (vous peignez un masque sur la vidéo et Flux 2 remplace la zone) et du tracking d'objets bidirectionnel. C'est carrément pas mal pour un projet open source sous licence Apache 2.0, vous ne trouvez pas ?

Après côté config, faut quand même du matos. Avec une carte NVIDIA, comptez 16 Go de VRAM (recommandés) et sur Apple Silicon, c'est M1 Max ou mieux avec 32 Go de RAM. Oubliez votre PC à 500 balles, quoi car en dessous de ces specs ça ne marchera pas.

L'ensemble s'installe via un git clone classique, le backend tourne sur FastAPI avec SQLite, le frontend sur React 18... et le tout communique en temps réel via SSE. Après, si vous êtes plutôt à la recherche d'un éditeur vidéo classique dans le navigateur , c'est pas le même délire, car là avec MilimoVideo on est dans la génération pure.

Bref, si les workflows ComfyUI à rallonge vous filent des boutons, MilimoVideo mérite donc le coup d'oeil.

Merci à Lorenper pour le partage !

  • ✇Korben
  • Quand 2 frangins construisent une IA vidéo dans leur garage
    Un modèle text-to-video open source, gratuit et capable de tourner ailleurs que sur un supercalculateur de la NASA ? J'avoue, j'ai cru au fake en découvrant le truc, surtout quand on voit la puissance de feu qu'il faut chez OpenAI (Sora) ou Google (Veo) pour sortir le moindre clip de 3 secondes. Mais BON, parfois, il suffit de deux frères motivés pour bousculer un peu les géants de l'IA. Et c'est 2 frères, ce sont Sahil et Manu Chopra, qui depuis l'automne 2022 bosse avec acharnement sur leur mo

Quand 2 frangins construisent une IA vidéo dans leur garage

Par : Korben
23 janvier 2026 à 14:37

Un modèle text-to-video open source, gratuit et capable de tourner ailleurs que sur un supercalculateur de la NASA ?

J'avoue, j'ai cru au fake en découvrant le truc, surtout quand on voit la puissance de feu qu'il faut chez OpenAI (Sora) ou Google (Veo) pour sortir le moindre clip de 3 secondes. Mais BON, parfois, il suffit de deux frères motivés pour bousculer un peu les géants de l'IA.

Et c'est 2 frères, ce sont Sahil et Manu Chopra, qui depuis l'automne 2022 bosse avec acharnement sur leur modèle de génération de vidéos baptisé Linum .

Leur histoire est assez dingue et c'est pour ça que je vous la raconte aujourd'hui. En fait, au début, ils ont fait comme tout le monde. C'est à dire qu'ils ont essayé de bidouiller Stable Diffusion XL pour lui faire cracher de la vidéo. Ils ont fini par mettre au point une extension un peu "hacky" basé sur un modèle image, sauf que ça ne marchait pas très bien.

Enfin si, ça sortait des GIFs d'une seconde en 180p pour Discord mais pas vraiment de quoi faire trembler Hollywood et Matthew McConaughey (lol). Le problème, c'est que les VAE (les encodeurs d'images) ne comprennent rien au temps qui passe, alors ils traitent chaque frame indépendamment et ça donne cet effet de scintillement insupportable qu'on retrouve dans pas mal de générateurs vidéo libre ou open source.

Du coup, ils ont pris une décision radicale. Tout foutre à la poubelle et repartir de zéro !

Ils ont donc passé deux longues années à batir Linum v2 "from scratch". Cela veut dire qu'il ont du trouver les données, entraîner des modèles de vision pour filtrer le dataset, mettre manuellement des légendes sur des milliers de vidéos, gérer les clusters de GPU... et j'en passe !

Et à la clé de tout ce travail, ils ont fini par obtenir un modèle de 2 milliards de paramètres (ce qui est minuscule pour de la vidéo, je tiens à le dire) capable de générer des clips de 2 à 5 secondes en 720p !

Et le plus beau c'est que c'est sous licence Apache 2.0 donc en open source.

Pour réussir cette prouesse, ils n'ont pas eu d'autre choix que d'être malins.

Par exemple, ils ont choisi d'utiliser le VAE de Wan 2.1 (qui gère très bien la compression temporelle) pour ne pas réinventer la roue sur cette partie. Leur vision en fait, c'est de voir ces modèles comme des "moteurs de rendu inversés". Au lieu de placer des polygones et des lumières comme dans Blender, vous décrivez la scène et le modèle fait le reste.

Linum est un modèle encore jeune et la physique est parfois aux fraises puis ça manque de son mais pour une équipe de deux personnes face à des boîtes qui ont des milliards de budget, le résultat est plutôt pas mal. Faut saluer le taf !

Donc si vous avez une machine qui tient la route (ou un bon cloud) et quelques compétences techniques, sachez que les poids sont disponibles sur Hugging Face si ça vous chauffe .

Source

  • ✇Korben
  • La Maison Blanche utilise l'IA pour transformer une opposante en "femme hystérique"
    Vous pensiez avoir tout vu avec les manipulations d'images ? Les générateurs de mèmes, les filtres rigolos, tout ça... Bon, on rigole bien entre potes. Sauf que là, c'est la Maison Blanche qui s'y met et tristement c'est pas pour faire du "lol". Je vous explique le délire. Jeudi dernier, l'administration Trump a voulu crâner sur les réseaux sociaux. Ils ont annoncé l'arrestation de plusieurs manifestants qui avaient perturbé un office religieux dimanche dernier à Cities Church (St. Paul). Ils pr

La Maison Blanche utilise l'IA pour transformer une opposante en "femme hystérique"

Par : Korben
23 janvier 2026 à 11:35

Vous pensiez avoir tout vu avec les manipulations d'images ? Les générateurs de mèmes, les filtres rigolos, tout ça... Bon, on rigole bien entre potes. Sauf que là, c'est la Maison Blanche qui s'y met et tristement c'est pas pour faire du "lol".

Je vous explique le délire. Jeudi dernier, l'administration Trump a voulu crâner sur les réseaux sociaux. Ils ont annoncé l'arrestation de plusieurs manifestants qui avaient perturbé un office religieux dimanche dernier à Cities Church (St. Paul). Ils protestaient contre un pasteur, David Easterwood, qui serait également le directeur par intérim de l'antenne locale de l'agence fédérale U.S. Immigration and Customs Enforcement (ICE).

Jusque-là, de la politique classique. Mais là où ça dérape sévère, c'est quand ils ont balancé la photo de l'une des personnes arrêtées. La dame en question s'appelle Nekima Levy Armstrong et c'est pas n'importe qui. Avocate des droits civils, ancienne présidente du chapitre de Minneapolis de la NAACP. Elle est une figure très respectée. Sur la photo originale de son arrestation, elle a un visage neutre. Digne.

Sauf que la Maison Blanche a trouvé ça trop "calme" sans doute. Alors ils ont diffusé une version de la photo manipulée numériquement pour la transformer complètement.

Résultat, sur l'image postée par le compte officiel @WhiteHouse, on voit Nekima Levy Armstrong en train de sangloter à chaudes larmes. Genre gros bébé qui chiale. Et c'est là que le venin se diffuse car ce n'est pas juste une modification esthétique.

C'est carrément une manipulation symbolique dégueulasse !

A gauche la photo IA, à droitela VRAIE photo

En faisant ça, ils activent un vieux levier bien rance : le stéréotype de la "Sapphire" ou de la " Angry Black Woman ". C'est un genre d'hyperbole qui trouve ses racines dans les représentations caricaturales du XIXe siècle (les fameux minstrel shows ) avant d'être codifié au XXe siècle.

L'idée c'est de présenter les femmes noires comme des êtres intrinsèquement hystériques, incapables de se contrôler, qui hurlent et chouinent pour un rien. C'est une technique de déshumanisation pure et simple. La Maison Blanche a transformé une opposante politique digne en caricature pleurnicharde pour lui ôter toute crédibilité.

Et quand les journalistes ont demandé des comptes, le service de presse de la Maison Blanche a renvoyé vers un post sur X de Kaelan Dorr (directeur adjoint de la communication) dont la réponse est glaciale : "L'application de la loi continuera. Les mèmes continueront." Hop. Circulez, y'a rien à voir. C'est assumé. Ils manipulent l'information, déforment la réalité pour servir un discours politique, et ils appellent ça un "mème".

Putain, que ces gens sont à vomir.

Le fond de l'histoire maintenant, c'est que ces gens demandaient justice pour Renee Good, une mère de famille abattue par un agent de l'ICE le 7 janvier dernier. L'administration invoque la légitime défense, mais des vidéos et des analyses contestent fermement cette version. Ce sont des vies brisées, des tragédies réelles et en face, on a un gouvernement qui s'amuse avec des outils IA pour transformer la douleur et la dignité en "blague" raciste.

Y'a vraiment de quoi se taper la tête contre les murs. Ça me rappelle un peu les dérives qu'on voit avec les IA qui manipulent les émotions pour du business ou de la politique. Cette technologie devrait faire avancer la science et booster la productivité mais pour l'instant, dans les mains de certains, ça sert surtout à industrialiser la haine et à maquiller le mensonge. Comme le dit souvent Mikko Hyppönen, si c'est intelligent, c'est vulnérable et là c'est pas de l'IoT, mais notre perception de la réalité déjà bien fragilisée depuis quelques années, qui est visée.

Voilà... quand la technologie sert à fabriquer de la désinformation d'État, il est grand temps, je pense, de se réveiller. Donc restez aux aguets les amis, parce que les fascistes, eux la vérité, ils s'en tamponnent le coquillard.

Source

  • ✇Korben
  • Text Behind Image - L'effet design qui cartonne sur Insta, sans ouvrir Photoshop
    Vous voyez ces photos stylées sur Instagram où le texte semble passer derrière la personne, comme si le gros "FASHION" ou "WORKOUT" était vraiment dans la scène ? C'est l'effet "text behind image" et c'est clairement le truc graphique qui fait super pro en ce moment. Le problème c'est que pour obtenir ce rendu, faut normalement se taper Photoshop, maîtriser les calques, le détourage, les masques... Bref, perdre une demi-heure sur un truc qui devrait prendre 30 secondes. Et comme vous êtes des ge

Text Behind Image - L'effet design qui cartonne sur Insta, sans ouvrir Photoshop

Par : Korben
27 décembre 2025 à 17:54

Vous voyez ces photos stylées sur Instagram où le texte semble passer derrière la personne, comme si le gros "FASHION" ou "WORKOUT" était vraiment dans la scène ? C'est l'effet "text behind image" et c'est clairement le truc graphique qui fait super pro en ce moment.

Le problème c'est que pour obtenir ce rendu, faut normalement se taper Photoshop, maîtriser les calques, le détourage, les masques... Bref, perdre une demi-heure sur un truc qui devrait prendre 30 secondes. Et comme vous êtes des gens occupés (contrairement à moi qui passe ma vie à tester des outils), voici la solution.

C'est un site gratuit qui règle tout ça et qui s'appelle Text Behind Image . Vous uploadez votre photo (jusqu'à 10 Mo), l'IA détecte automatiquement le sujet (une personne, un objet, peu importe), vous tapez votre texte, et le site se débrouille pour le placer pile poil derrière. Ça prend quelques secondes de traitement, pas besoin de détourer quoi que ce soit vous-mêmes.

L'interface propose pas mal d'options de personnalisation... Vous pouvez choisir la police, jouer avec la taille, la couleur, l'opacité, la rotation, ajouter des contours... Et surtout, vous voyez le résultat en temps réel, donc vous pouvez repositionner le texte en glisser-déposer jusqu'à ce que ça rende nickel.

Et le top du top, c'est que c'est gratuit, sans limite, sans inscription, et vous téléchargez votre image en haute résolution sans filigrane. J'ai vérifié et y'a même pas de petit "Made with..." planqué dans un coin. C'est assez rare pour un outil en ligne de ce genre alors je tiens à vous le signaler !

Bon après si votre photo est ultra complexe avec 36 personnes et des éléments qui se chevauchent, l'IA va potentiellement galérer à détourer correctement, mais pour une photo classique avec un sujet bien visible sur un fond pas trop chargé, ça marche vraiment bien.

Bref, si vous faites du contenu pour les réseaux, des miniatures YouTube, ou même juste des visuels fun pour votre pote qui fait de la muscu, c'est le genre d'outil à bookmarker direct. En 30 secondes vous aurez un rendu qui vous aurait pris 20 minutes sur Photoshop.

  • ✇Korben
  • Clair Obscur perd son prix à cause de la vilaine méchante pas belle IA générative
    Clair Obscur: Expedition 33, c'est le jeu français qui a explosé tous les compteurs aux Game Awards 2025 avec 9 prix sur 12 nominations dont le très convoité Game of the Year. Un carton monstre pour Sandfall Interactive, le studio indé français. Toutefois un petit drama vient d'avoir lieu... Une autre cérémonie, les Indie Game Awards viennent de lui retirer ses deux prix (GOTY et Best Debut Game) parce que... roulement de tambours... le studio a utilisé de l'IA générative pendant le développemen

Clair Obscur perd son prix à cause de la vilaine méchante pas belle IA générative

Par : Korben
21 décembre 2025 à 22:46

Clair Obscur: Expedition 33, c'est le jeu français qui a explosé tous les compteurs aux Game Awards 2025 avec 9 prix sur 12 nominations dont le très convoité Game of the Year. Un carton monstre pour Sandfall Interactive, le studio indé français.

Toutefois un petit drama vient d'avoir lieu... Une autre cérémonie, les Indie Game Awards viennent de lui retirer ses deux prix (GOTY et Best Debut Game) parce que... roulement de tambours... le studio a utilisé de l'IA générative pendant le développement. Et histoire d'en rajouter une couche, lors de leur candidature aux IGA, ils auraient déclaré ne pas avoir utilisé de gen-AI.

Oups...

Pour être plus précis, des artistes du studio ont utilisé quelques images générées par IA en tant que placeholders visuels, le temps de créer les vraies textures à la main. C'est une pratique hyper courante dans le dev de jeux vidéo, mais le problème c'est que quelques posters avec des textures IA sont passés entre les mailles du filet et se sont retrouvés dans la version finale lors du lancement. Rien de dramatique, juste des affiches en arrière-plan dans la zone de départ du jeu que le studio a retirés dans un patch quelques jours après la sortie.

Mais voilà, les Indie Game Awards ont une politique anti-IA extrêmement stricte et leur règlement interdit l'utilisation de l'IA générative y compris dans le processus de développement. Du coup, même si les éléments IA ont été retirés rapidement, ça suffit à disqualifier le titre.

L'usage d'IA avait été mentionné par le producteur François Meurisse dans une interview à El País dès juin 2025, mais c'est seulement après la cérémonie du 18 décembre que les IGA ont réagi. Et 2 jours plus tard, ils annonçaient la rétractation des prix... C'est donc Blue Prince qui récupère le GOTY et Sorry We're Closed (gratuit pour 24h sur l'Epic Games Store) qui empoche le Best Debut Game.

Si vous êtes fan de Clair Obscur: Expedition 33, rassurez-vous, le jeu garde ses 9 prix aux Game Awards, dont le Game of the Year principal. Après si vous voulez mon avis, on nage quand même en plein délire car si on pousse cette logique, qu'est-ce qu'on fait des devs qui utilisent ChatGPT pour débugger du code ?

Pour moi, jeter Clair Obscur: Expedition 33 parce qu'ils ont utilisé un peu d'IA dans un cadre de développement uniquement, alors que ça n'a floué personne et que c'était purement technique pour faire un peu de remplissage en attendant les assets finaux, c'est comme disqualifier un film à Cannes parce que le scénariste a utilisé un correcteur orthographique ou refuser un Grammy Award parce qu'une chanson contient un sample...

Bref, IA ou pas, Clair Obscur reste un excellent jeu et j'ai hâte qu'on revienne au monde d'avant quand on jugeait les œuvres sur leurs qualités objectives.

Source

  • ✇Korben
  • Votre cerveau compresse les images 40 fois mieux qu'un algo
    Vous avez, j’imagine, probablement des dizaines de milliers de photos sur votre disque dur. Ça représente peut-être quelques centaines de Go, peut-être 1 To si vous êtes à l’aise en espace de stockage. C’est beaucoup ? Pas tant que ça si on pense un peu à votre cerveau. Lui, il stocke depuis toujours des décennies de souvenirs dans environ 1,5 kg de matière organique qui consomme moins qu’une ampoule LED. Comment est-ce qu’il fait ? Hé bien, une équipe du Weizmann Institute of Science vient peut

Votre cerveau compresse les images 40 fois mieux qu'un algo

Par : Korben
7 novembre 2025 à 09:50

Vous avez, j’imagine, probablement des dizaines de milliers de photos sur votre disque dur. Ça représente peut-être quelques centaines de Go, peut-être 1 To si vous êtes à l’aise en espace de stockage. C’est beaucoup ?

Pas tant que ça si on pense un peu à votre cerveau. Lui, il stocke depuis toujours des décennies de souvenirs dans environ 1,5 kg de matière organique qui consomme moins qu’une ampoule LED.

Comment est-ce qu’il fait ?

Hé bien, une équipe du Weizmann Institute of Science vient peut-être de le découvrir et au passage, changer la compression d’images telle qu’on la connaît.

Le projet s’appelle Brain-IT , et leur idée c’est de reconstruire des images à partir des signaux fMRI (imagerie par résonance magnétique fonctionnelle) de votre cerveau. En gros, ils scannent votre activité cérébrale pendant que vous regardez une image, et ils arrivent à reconstruire ce que vous avez vu. Le papier scientifique est dispo sur arXiv si vous parlez leur langue.

Évidemment, ce genre de recherche, c’est pas nouveau mais Brain-IT est plutôt un franc succès car le process permet d’obtenir les mêmes résultats que les méthodes précédentes avec seulement 1 heure de données fMRI, contre 40 heures pour les autres approches.

En gros, ça représente 97,5% de données en moins pour obtenir le même résultat. Trop fort non ?

En fait, si Brain-IT peut faire ça, c’est parce que les scientifiques ont découvert comment votre cerveau compresse les images de manière hyper efficace. Et d’ailleurs, ce truc pourrait bien inspirer de nouveaux algorithmes de compression pour nos ordis.

Brain-IT utilise en fait ce qu’ils appellent un “Brain Interaction Transformer” (BIT). C’est un système qui identifie des “clusters fonctionnels” de voxels cérébraux. Un voxel, c’est l’équivalent d’un pixel mais en 3D, et chaque voxel représente environ 1 million de cellules dans votre cerveau.

Le truc génial, c’est que ces clusters fonctionnels sont partagés entre différentes personnes, comme si nous avions tous la même bibliothèque de “primitives visuelles” câblée dans nos têtes. Ce sont des schémas de base que notre cerveau utilise pour reconstruire n’importe quelle image.

Brain-IT reconstruit donc les images en deux passes. D’abord les structures de bas niveau (les formes, les contours), puis les détails sémantiques de haut niveau (c’est un chat, c’est un arbre, c’est votre tante Huguette). C’est un peu comme le JPEG progressif que l’on voyait s’afficher lentement avec nos modem 56K, mais en infiniment plus smart.

Du coup, si on comprend comment le cerveau compresse les images, on pourrait créer de nouveaux formats vidéo ultra-légers. Imaginez un Netflix ou un Youtube qui streame en “brain-codec” à 1/40e de la bande passante actuelle. Ça changerait pas mal de choses… Et c’est pareil pour l’IA générative car actuellement, on entraîne des modèles avec des millions d’images durant des jours alors que notre cerveau, lui, apprend à reconnaître un visage en quelques expositions.

Et grâce à ses modèles de diffusion, Brain-IT est même capable de reconstruire visuellement ce que voit le cerveau ! Par contre, Brain-IT n’a pour le moment été testé que sur des images “vues” et pas des choses imaginées…

Mais les scientifiques n’écartent pas l’idée que ce soit possible donc ce n’est qu’une question de temps avant qu’on puisse capturer en image ses rêves par exemple.

Voilà, j’ai trouvé ça cool parce que ça montre que notre cerveau est probablement le meilleur système de compression d’images jamais créé et qu’on commence à peine à comprendre comment il fonctionne.

Merci Dame Nature !

Voilà, si vous voulez creuser, le code et les détails techniques sont sur la page du projet Brain-IT , et le paper complet est dispo sur arXiv .

Source

  • ✇Korben
  • À cause de l'IA, vous ne pourrez bientôt plus vous fier à vos souvenirs
    Cette année, avec Nano Banana, ChatGPT, Sora, Seedream et j’en passe, on est quand même passé de “Je cherche une image sur le net” à “Tiens, et si je demandais à Google (ou un autre) de créer l’image que je cherche…”. Comme ça, on ne perd plus de temps à en regarder plein pour trouver la meilleure, et surtout on ne se pose plus la question de est-ce que c’est une image sous copyright ? Ou une image mise en ligne sur un site Creative Commons dont la licence libre sera retirée dans quelques années

À cause de l'IA, vous ne pourrez bientôt plus vous fier à vos souvenirs

Par : Korben
14 octobre 2025 à 15:10

Cette année, avec Nano Banana, ChatGPT, Sora, Seedream et j’en passe, on est quand même passé de “Je cherche une image sur le net” à “Tiens, et si je demandais à Google (ou un autre) de créer l’image que je cherche…”. Comme ça, on ne perd plus de temps à en regarder plein pour trouver la meilleure, et surtout on ne se pose plus la question de est-ce que c’est une image sous copyright ? Ou une image mise en ligne sur un site Creative Commons dont la licence libre sera retirée dans quelques années par un cabinet d’avocat véreux spécialisé dans le copyright trolling… et qui viendra ensuite vous réclamer du pognon .

Et tout ce délire de génération d’images ne risque pas de s’arranger, notamment avec Nano Banana (c’est le petit nom de Gemini 2.5 Flash Image, le modèle de génération d’images de Google) que Google vient d’intégrer dans certains de ses services. En effet, très bientôt vous allez pouvoir modifier, remixer, transformer des images directement depuis la recherche Google (AI Mode), Lens, ou directement vos photos !

Vous prenez une photo avec Lens, ensuite, hop, vous ajoutez un petit prompt texte, et l’IA transformera l’image selon vos désirs. Vous pouvez aussi chercher un truc dans Google Search, puis modifier visuellement le résultat à la volée si ça vous amuse.

Vous allez par exemple chercher un canapé bleu marine sur Google Images, tomber sur la photo de vos rêves sauf que le canapé est rouge brique et hop, l’application le passera en bleu marine directement dans les résultats de recherche. Vous pouvez même mixer deux images pour créer quelque chose de nouveau…

C’est chouette techniquement mais philosophiquement, c’est un délire car la frontière entre le réel et le généré va devenir encore plus floue. On va très vite perdre la notion de ce qui existe vraiment car chaque image pourra être un remix à la demande et au final personne ne saura plus ce qui vient d’un vrai appareil photo ou d’un algo.

C’est une nouvelle réalité qui arrive, où le faux et le vrai se mélangent, faisant disparaitre nos repères.

Au niveau de Google Photos, c’est encore plus inquiétant car on va pouvoir fusionner des images perso, créer des collages, ajouter des éléments de certaines photos dans d’autres photos…etc. On va donc pouvoir se créer des souvenirs qui n’ont jamais existé. Votre gamin n’était pas là pour la photo de famille ? Hop, on le rajoute. Un coucher de soleil moyen-bof sur une photo de vacances ? Hop, on le rend épique.

Nos enfants vont donc grandir avec des albums photo mi-réels mi-générés par IA et au bout de quelques années, plus personne ne se souviendra de si c’était vrai ou pas.

Bref, comme je le disais, technologiquement, c’est impressionnant mais on se demande quand même où se trouve la limite entre retouche créative et falsification de notre mémoire ?

J’en sais quelque chose, la mémoire humaine est déjà très fragile. Elle se réécrit à chaque souvenir et même à chaque évocation d’un souvenir…. Alors si en plus on lui file des photos modifiées pour coller à une réalité qu’on fantasme, j’imagine qu’on va tous finir par croire à des événements qui n’ont jamais eu lieu, surtout si ce sont des modifications subtiles, crédibles.

Bref, ces nouveautés liées à Nano Banana sont déployées uniquement aux États-Unis et en Inde pour le moment, ce qui vous laisse un peu de temps pour réfléchir à tout ça et vous préparer à sauter ou pas dans ce délire de réécriture de vos propres souvenirs.

A vous de voir !

Source

  • ✇Korben
  • Caesium - Un outil multi-facettes pour compresser vos images
    Entre screenshots de bugs, memes de geeks et photos de vacances, on échange des tonnes d’images chaque jour, et à cause de nous, les data centers chauffent comme des radiateurs. Alors à chaque fois que vous compressez une image avant de l’envoyer, on peut se dire qu’on participe “un petit peu” à sauver la planète, non ? C’est pour ça qu’aujourd’hui, je vous présente Caesium, un petit logiciel open source développé par @Lymphatus qui transforme vos images obèses en versions ultra légères, sans qu

Caesium - Un outil multi-facettes pour compresser vos images

Par : Korben
29 septembre 2025 à 12:23

Entre screenshots de bugs, memes de geeks et photos de vacances, on échange des tonnes d’images chaque jour, et à cause de nous, les data centers chauffent comme des radiateurs. Alors à chaque fois que vous compressez une image avant de l’envoyer, on peut se dire qu’on participe “un petit peu” à sauver la planète, non ?

C’est pour ça qu’aujourd’hui, je vous présente Caesium, un petit logiciel open source développé par @Lymphatus qui transforme vos images obèses en versions ultra légères, sans que personne ne remarque la différence. L’outil nous promet dans certains cas, des compressions allant jusqu’à 90% avec une qualité visuelle quasiment identique. Et le plus beau dans tout ça, c’est qu’on n’a même pas besoin d’envoyer nos photos à un GAFAM qui fera le boulot.

Tout d’abord, le développeur Caesium est en train de réécrire toute la partie compression (libcaesium) en Rust au lieu du C++ traditionnel et c’est intéressant, parce que Rust fait partie du trio de tête avec C et C++ en termes de performance énergétique, tout en apportant une sécurité mémoire supérieure. Et quand on sait que Caesium traite potentiellement des millions d’images par jour, l’amélioration de la sécurité et de la maintenance est cruciale.

De plus, une image compressée à 90% ne réduit pas seulement sa taille de stockage. D’après les analyses de compression WebP , elle peut diviser jusqu’à 6 fois la consommation énergétique nécessaire à son transfert sur le réseau, avec une réduction moyenne par 2 ou 3 pour les compressions qui conservent le même niveau de qualité. Multipliez ça par les milliards d’images échangées chaque jour, et vous comprenez pourquoi chaque compression compte.

Le truc génial avec Caesium, c’est qu’il existe sous trois formes. La version desktop classique pour Windows/Mac/Linux qui vous permet de traiter vos images en masse, prévisualisation en temps réel comprise.

La version ligne de commande CaesiumCLT pour les barbus qui veulent automatiser leurs compressions dans leurs scripts.

Et la petite dernière, la version web caesium.app qui tourne directement dans votre navigateur. Attention quand même, cette dernière limite à 10 images avec une taille maximale par fichier de 20 MB, mais pour un usage ponctuel, c’est parfait.

En plus, comme je vous le disais, Caesium fait tout en local. Vos photos restent chez vous, y’a pas de compte à créer, pas de limite mensuelle, pas de tracking. C’est efficace et moins cher que gratuit ^^.

Pour l’installer, c’est simple comme bonjour. Sur Mac ou Linux, un petit brew install caesiumclt pour la version ligne de commande, ou téléchargez directement l’installeur sur le site officiel pour la version graphique toute moche. Windows a droit à une version portable, pratique pour l’avoir sur une clé USB. Et si vous voulez juste tester, direction caesium.app dans votre navigateur.

L’utilisation reste ultra intuitive. Vous glissez vos images, vous réglez la qualité (80% par défaut, largement suffisant pour 99% des cas), et hop, Caesium optimise !

Et pour l’outil en ligne de commande, vous pouvez faire de la compression sans perte comme ceci :

# Compresser avec préservation des métadonnées
caesiumclt --lossless -e --keep-dates -o output/ image.jpg

Avec perte comme ceci :

# Compresser plusieurs images avec une qualité spécifique
caesiumclt -q 75 -o output/ image1.jpg image2.png image3.webp

# Compresser avec un suffixe pour éviter d'écraser les originaux
caesiumclt -q 85 --suffix _compressed --same-folder-as-input image.jpg

# Compresser avec un réglage de qualité
caesiumclt -q 80 -o output/ image.jpg

En convertissant les formats comme ceci :

# Convertir les images au format WebP avec réglage de qualité
caesiumclt -q 85 --format webp -o output/ Pictures/*.jpg

Ou en redimensionnant les images :

# Redimensionner à une largeur spécifique (en conservant le ratio d'aspect)
caesiumclt --lossless --width 1920 -o output/ image.jpg

# Redimensionner à une hauteur spécifique (en conservant le ratio d'aspect)
caesiumclt -q 90 --height 1080 -o output/ image.jpg

Le logiciel supporte les formats JPG, PNG et WebP et d’ailleurs en passant, petit conseil… convertissez systématiquement vos PNG en WebP car le WebP offre 30 à 50% de compression supplémentaire par rapport au PNG tout en gardant la transparence. Et comme 95% des navigateurs le supportent maintenant, vous n’avez plus d’excuse !

Bref, Caesium c’est un super outil que vous devez absolument tester. Comme ça, la prochaine fois que vous voudrez envoyer une capture d’écran de 5 MB par mail, pensez à Caesium et votre connexion Internet vous remerciera, ainsi que la planète un petit peu.

Et merci à Ghost5477 qui m’a fait découvrir cette pépite !

  • ✇LinuxFr.org : les dépêches
  • G'MIC 3.6 : L’art de soigner ses images !
    G’MIC, cadriciel libre pour le traitement des images numériques, vient de proposer une mise à jour significative, avec la sortie de sa nouvelle version 3.6. Une bonne occasion pour nous de vous résumer les activités récentes autour de ce projet, et plus précisément, ce qu’il s’est passé depuis notre précédente dépêche, publiée il y a un peu plus d’un an (juin 2024). N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les ima

G'MIC 3.6 : L’art de soigner ses images !

G’MIC, cadriciel libre pour le traitement des images numériques, vient de proposer une mise à jour significative, avec la sortie de sa nouvelle version 3.6.

Une bonne occasion pour nous de vous résumer les activités récentes autour de ce projet, et plus précisément, ce qu’il s’est passé depuis notre précédente dépêche, publiée il y a un peu plus d’un an (juin 2024).

G´MIC 3.6.0 Teaser

N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images contiennent l’icône Icône 'Play Video'

Sommaire

1. G’MIC : Un cadriciel pour le traitement des images numériques

G’MIC (GREYC's Magic for Image Computing) est un projet libre dédié au traitement, la manipulation et la création d'images numériques. Il est développé principalement au sein de l’équipe IMAGE du laboratoire de recherche GREYC de Caen (laboratoire UMR, sous triple tutelle du CNRS, de l'ENSICAEN et de l'Université de Caen).

La base du projet repose sur un interpréteur de langage de script spécifique, le « langage G’MIC », pensé pour faciliter le prototypage rapide et l’implémentation d’algorithmes de traitement d’images. Autour de ce noyau viennent se greffer plusieurs interfaces utilisateur, qui donnent accès à des centaines d’opérateurs de traitement d’images, mais qui permettent également d’intégrer des pipelines de traitement personnalisés. G’MIC est donc conçu comme un cadriciel ouvert et extensible.

Parmi ses déclinaisons les plus utilisées, on retrouve : gmic, un outil en ligne de commande comparable et complémentaire à ImageMagick ou GraphicsMagick ; le service Web G’MIC Online ; et surtout le greffon G’MIC-Qt, intégrable dans de nombreux logiciels de création et d’édition d’images tels que GIMP, Krita, DigiKam, Paint.net, Adobe Photoshop ou Affinity Photo. Ce greffon est l’interface de G’MIC la plus populaire. Il donne aujourd’hui un accès rapide à plus de 640 filtres différents, élargissant considérablement les possibilités de filtres et d’effets offertes par ces logiciels de retouche d’images.

Aperçu du greffon G’MIC-Qt Fig. 1.1. Le greffon G’MIC-Qt en version 3.6, ici utilisé au sein de GIMP 2.10, avec le filtre « Paint With Brush » activé.

2. Les nouveautés du greffon G’MIC-Qt

2.1. Hommage à Sébastien Fourey, développeur de G’MIC-Qt

Avant de décrire la liste des nouveautés de cette version 3.6, nous souhaitons avant tout rendre hommage à notre collègue et ami, Sébastien Fourey, qui était maître de conférence à l’ENSICAEN et qui était le développeur principal du greffon G’MIC-Qt. Le 6 octobre 2024, Sébastien nous a quittés. Tous ceux qui le connaissaient vous le diront : Sébastien était avant tout une personne profondément humaine, généreuse et particulièrement attentive à tous ceux qui l’entouraient. Il était aussi discret et modeste qu’il était doué avec un clavier entre les mains (et c’était quelqu’un de très discret !).

Et même s’il n’a jamais voulu être mis au-devant de la scène, nous voulons ici faire une exception pour mettre en lumière son travail et le rôle majeur qu’il a eu dans le développement du projet G’MIC : c’est grâce à lui que G’MIC-Qt est aujourd’hui un greffon utilisé et apprécié par des milliers de personnes à travers le monde.

Il s’avère qu’il était un lecteur assidu de LinuxFr.org, et nous nous devions donc de lui rendre un hommage sur ce site. Sébastien nous manque profondément. Nous ferons notre possible pour que son œuvre perdure. Repose en paix, Sébastien ! Nous pensons à toi et à ta famille.

Hommage à Sébastien Fourey Fig. 2.1. Texte hommage à Sébastien Fourey, auteur de G’MIC-Qt, visible dans la section « About » du greffon.

2.2. Améliorations générales du greffon

Comme vous vous en doutez, le développement spécifique du greffon G’MIC-Qt a été à l’arrêt depuis octobre dernier. Néanmoins, les derniers ajouts de code réalisés sur le greffon ont rendu possible les choses suivantes :

  • Son code source est désormais compatible avec l’API de plug-in de la nouvelle version majeure de GIMP (la 3.0). Cela a permis d’offrir aux utilisateurs de GIMP un greffon G’MIC-Qt fonctionnel dès la sortie de GIMP 3. Notons qu’assez peu de greffons ont proposé une mise à jour à temps (Resynthesizer, greffon populaire, étant une autre exception). On remercie donc chaleureusement Nils Philippsen et Daniel Berrangé qui ont soumis les patchs activant cette compatibilité avec GIMP 3. Nous continuons en parallèle à maintenir notre greffon pour l’ancienne version (2.10) de GIMP, qui est encore beaucoup utilisée.

  • Le code de G’MIC-Qt devient également compatible avec l’API de la bibliothèque Qt6, la dernière version majeure en date de ce toolkit graphique.

  • L’interface du greffon propose maintenant un outil de prévisualisation des filtres avec séparateur intégré, de manière native. Cette fonctionnalité, accessible via le raccourci clavier CTRL + SHIFT + P, permet de comparer directement l’image avant et après l’application d’un filtre, en affichant les deux versions côte à côte dans la fenêtre de prévisualisation. Cette fonctionnalité existait déjà, mais elle est dorénavant utilisable de manière plus fluide, puisqu’auparavant elle était implémentée indépendamment par chaque filtre (le séparateur de prévisualisation était en fait vu comme un paramètre du filtre, ce qui impliquait un recalcul complet du résultat du filtre même lorsque l’on souhaitait seulement déplacer le séparateur).

Prévisualisation avec séparateur Fig. 2.2.1. Prévisualisation native de filtres avec séparateur intégré dans G’MIC-Qt.

La vidéo suivante montre comment cette fonctionnalité améliorée se présente dans le greffon :

Prévisualisation avec séparateur - vidéo Fig. 2.2.2. Prévisualisation native de filtres avec séparateur intégré dans G’MIC-Qt (vidéo).

2.3. Nouveaux filtres d’images

Les nouveautés principales du greffon G’MIC-Qt se matérialisent donc plutôt sous la forme de nouveaux filtres et effets accessibles pour les utilisateurs. À la sortie de cette version 3.6, c’est 640 filtres/effets différents qui sont proposés dans l’interface du greffon. En ce qui concerne le filtrage d’images, les dernières entrées ajoutées sont les suivantes :

  • Le filtre « Déformations / Warp [RBF] » propose de déformer localement une image en définissant dans un premier temps des points d’ancrage dans la fenêtre de prévisualisation. Puis, en repositionnant ces points de contrôle, on déforme l’image de manière intuitive et interactive, directement dans la fenêtre de prévisualisation. Idéal pour réaliser des retouches rapides ou créer des caricatures amusantes !

Filtre « Warp RBF » Fig. 2.3.1. Le filtre « Deformations / Warp [RBF] » en action dans G’MIC-Qt.

La vidéo suivante montre son utilisation en pratique au sein du greffon G’MIC-Qt pour la déformation d’un visage :

Filtre « Warp RBF » - vidéo Fig. 2.3.2. Le filtre « Deformations / Warp [RBF] » en action dans G’MIC-Qt (vidéo).

  • Le filtre « Repair / Upscale [CNN2x] » a pour but de doubler la résolution d’une image à l’aide d’un réseau de neurones convolutifs léger (CNN), qui a été entrainé pour préserver les détails et les textures des images lors de l’agrandissement. Ce module offre une alternative simple et relativement efficace aux méthodes d’agrandissement plus classiques (en particulier celles qui sont implémentées nativement dans GIMP).

Filtre « Upscale CNN2X » Fig. 2.3.3. Le filtre « Repair / Upscale [CNN2X] » en action dans G’MIC-Qt.

La figure suivante montre justement une comparaison des méthodes classiques d’agrandissement d’images, avec ce nouvel algorithme disponible dans G’MIC-Qt (résultat obtenu en bas à droite) :

Filtre « Upscale CNN2X » - Comparaisons Fig. 2.3.4. Comparaisons des méthodes d’agrandissement d’images avec notre nouvelle méthode « Upscale [CNN2X] ».

Notons que ce filtre illustre à lui seul quelques avancées récentes réalisées pour la nn_lib, qui est la petite bibliothèque interne d’apprentissage machine intégrée à G’MIC : Clipping des gradients, régularisation L2 des poids des réseaux, planificateur Cosine Annealing LR pour le taux d’apprentissage, module de Pixel Shuffling, sont quelques-unes des nouvelles fonctionnalités qui y ont été ajoutées. Cette bibliothèque de gestion de réseaux de neurones n’est pas très puissante (elle n’utilise que le calcul CPU, pas GPU), mais elle offre néanmoins la possibilité de créer des filtres intéressants basés sur des techniques d’apprentissage statistique.

  • Le filtre « Degradations / VHS Filter », est un filtre créé par Hazel Stagner. Comme son nom l’indique, il cherche à recréer l’esthétique caractéristique des vieilles cassettes vidéo VHS : légères distorsions, bruit coloré, lignes parasites et saturation altérée. Ce filtre est idéal pour donner aux images un aspect rétro, évoquant le rendu des vidéos analogiques des années 80–90.

Filtre « VHS Filter » Fig. 2.3.5. Le filtre « Degradations / VHS Filter » en action.

Ce filtre génère un bruit aléatoire, donc l’appliquer plusieurs fois sur une même image donne à chaque fois un rendu différent. On peut donc ainsi synthétiser de petites animations avec un look « analogique - années 90 » du plus bel effet. Les amateurs de Glitch Art apprécieront ! (voyez l’image originale à titre de comparaison).

Filtre « VHS Filter » - vidéo Fig. 2.3.6. Le filtre « Degradations / VHS Filter » appliqué plusieurs fois sur une même image, pour en faire une séquence vidéo de type VHS.

2.4. Nouveaux effets de rendu

De nouveaux effets font également leur apparition dans le greffon, non pas dans le but de modifier une image existante, mais pour créer une nouvelle image ou un motif à partir de zéro :

  • Le filtre « Patterns / Organic Fibers » synthétise des textures évoquant des entrelacements de fibres organiques, en s’appuyant sur l’algorithme de simulation du Physarum polycephalum proposé par Jeff Jones en 2010, et décrit de manière remarquable sur cette page d’Etienne Jacob (allez voir, ça vaut vraiment le détour !). Nous reparlerons de cet algorithme un peu plus loin dans la dépêche (en section 4.2).

Filtre « Organic Fibers » - 1
Filtre « Organic Fibers » - 2 Fig. 2.4.1. Le filtre « Patterns / Organic Fibers » en action, avec deux jeux de paramètres différents.

  • Le filtre « Rendering / Speech Bubble » insère une bulle de bande dessinée sur un calque d’image additionnel, avec une personnalisation possible de la forme de la bulle (rondeur, forme du pied de bulle, etc.), grâce à la présence de différents points de contrôle. Ce filtre offre un moyen rapide d’intégrer des éléments graphiques typiques de la BD dans une image quelconque, comme illustré ci-dessous avec, dans un premier temps, la vue du filtre tel qu’il se présente dans le greffon, suivi d’une vue du résultat dans GIMP où un texte a été inséré dans la dite bulle.

Filtre « Speech Bubble » - 1
Filtre « Speech Bubble » - 2 Fig. 2.4.2. Le filtre « Rendering / Speech Bubble » permet d’ajouter des bulles de dialogue dans vos images.

La vidéo ci-dessous présente ce filtre en action dans le greffon G’MIC-Qt sur une photographie :

Filtre « Speech Bubble » - vidéo Fig. 2.4.3. Le filtre « Rendering / Speech Bubble » en action dans le greffon (vidéo).

  • Le filtre « Rendering / 2.5D Extrusion » simule, à partir d’une forme binaire en entrée, un effet d’extrusion 3D. Il transforme donc rapidement des silhouettes ou des masques en objets visuellement plus consistants, avec un rendu qui évoque du relief, sans devoir passer par un véritable logiciel de modélisation 3D. Les figures suivantes illustrent son utilisation : On crée tout d’abord une forme opaque sur un fond transparent (ici un texte), puis on lui applique le filtre « Rendering / 2.5D Extrusion » de G’MIC-Qt pour créer un rendu façon 3D extrudée. L’angle de rotation, la profondeur de l’extrusion, l’amplitude de l’effet perspective, ainsi que les couleurs des différentes faces sont réglables dans ce filtre.

Filtre « 2.5D Extrusion » - 1
Filtre « 2.5D Extrusion » - 2 Fig. 2.4.4. Le filtre « Rendering / 2.5D Extrusion » en action.

  • Le filtre « Rendering / Fluffy Cloud » génére automatiquement de jolis nuages cotonneux dans vos images. Idéal pour créer des ciels synthétiques, du brouillard, des effets de vapeur éthérée, etc. Ce filtre a été créé par Prawnsushi, contributeur régulier de filtres G’MIC, dont certains filtres avaient été déjà présentés dans notre dépêche précédente. Voici comment ce nouveau filtre se présente lors son ouverture dans le greffon :

Filtre « Fluffly Cloud » - 1 Fig. 2.4.5. Le filtre « Rendering / Fluffy Cloud » dans le greffon _G’MIC-Qt._

En jouant avec les différents paramètres du filtre, on peut obtenir des rendus variés et intéressants :

Filtre « Fluffly Cloud » - 2
Filtre « Fluffly Cloud » - 3 Fig. 2.4.6. Différents rendus de « Rendering / Fluffy Cloud » en faisant varier les paramètres du filtre.

  • Le filtre « Patterns / Stripes » facilite la création de motifs à rayures simples ou complexes. Ce filtre offre de nombreux paramètres pour régler la géométrie des motifs synthétisés, en faisant varier le type de rayures (linéaires, radiales, concentriques), la taille, la couleur ainsi que l’opacité de chaque rayure indépendamment.

Filtre « Stripes » - 1
Filtre « Stripes » - 2
Filtre « Stripes » - 3 Fig. 2.4.7. Trois exemples de motifs à rayures générés par le filtre « Patterns / Stripes ».

  • Le filtre « Patterns / Gradient [from Curve] » n’est pas à proprement parler un nouveau filtre, mais une évolution d’un filtre précédent « Patterns / Gradient [from Line] ». Cette version étendue extrait un dégradé de couleur en parcourant les pixels de l’image, non plus seulement le long d’un segment, mais le long d’une courbe spline cubique par morceau, définie avec jusqu’à 6 points de contrôle, ce qui autorise le suivi de structures très incurvées dans les images, comme l’illustre la figure suivante :

Filtre « Gradient From Curve » Fig. 2.4.8. Le filtre « Patterns / Gradient [from Curve] » extrait les couleurs d’une image localisées le long d’une courbe spline.

  • Et pour en finir avec les nouveautés du greffon, mentionnons le filtre « Rendering / Neon Carpet », un filtre original réalisé par Claude (alias Cli345), contributeur régulier de G’MIC qui avait été interviewé en septembre dernier sur Linuxfr. Ce filtre un peu psychédélique synthétise des motifs lumineux et colorés faisant penser à des tapis fluorescents, comme illustré sur la figure ci-dessous :

Filtre « Neon Carpet » Fig. 2.4.9. Le filtre « Rendering / Neon Carpet », une contribution de Cli435.

Voilà pour ce qui concerne les nouveautés spécifiques au greffon G’MIC-Qt.

3. Améliorations du cœur du logiciel et de sa bibliothèque standard

Passons maintenant à la description du travail réalisé cette année pour l’amélioration du cœur du projet, à savoir l’interpréteur G’MIC et sa bibliothèque standard d’opérateurs. Ce sont forcément des améliorations un peu moins visibles pour l’utilisateur final, mais elles sont toutes aussi importantes, car elles consolident ou améliorent des fonctionnalités qui peuvent ouvrir plus tard la porte au développement de nouveaux filtres originaux.

3.1. Optimisation de l’interpréteur

Le moteur interne de G’MIC a bénéficié d’une série d’optimisations notables. Plusieurs améliorations internes, concernant l’analyse, la détection et la concaténation de chaînes de caractères ou encore la recherche de valeurs min/max dans de grandes images (désormais parallélisée avec OpenMP), ont permis d’augmenter légèrement les performances (gain moyen d’environ 2,5% sur le temps d’exécution de scripts G’MIC). Ce n’est pas un gain spectaculaire, mais ça se prend (et après 17 ans à écrire du code pour cet interpréteur, il aurait été presque inquiétant d’obtenir un gain beaucoup plus important ! 😊).

Sous Windows, la compilation de l’interpréteur utilise désormais Clang et sa libc associée, ce qui produit des exécutables légèrement plus optimisés.

3.2. Améliorations du moteur de rendu 3D

Le moteur de rendu 3D intégré de G’MIC a également été amélioré, avec l’ajout du z-clipping pour les primitives hors champ, un calcul d’éclairage affiné, la correction du rendu de normales 3D avec le mode d’éclairage Phong, et l’ajustement des paramètres de réflexion spéculaire.

Une nouvelle commande multithreaded3d (raccourcie en mt3d) permet désormais d’activer ou désactiver le rendu 3D multi-threadé (là encore par OpenMP). Cela permet d’accélérer considérablement l’affichage de gros maillages.

Mentionnons au passage l’apparition de la commande normals3d dans la bibliothèque standard, dont le rôle est d’estimer les vecteurs normaux unitaires d’un maillage 3D, que ce soit au niveau des sommets ou des primitives. La figure suivante illustre par exemple l’utilisation de cette commande pour la visualisation de vecteurs normaux à la surface d’un tore 3D :

Commande 'normals3d' Fig. 3.2.1. La commande normals3d permet d’estimer les vecteurs normaux 3D aux sommets ou aux faces d’un maillage 3D.

3.3. Améliorations de l’évaluateur d’expressions mathématiques

L’évaluateur d’expressions mathématiques intégré à G’MIC est l’une des pièces maîtresses du projet (en traitement d’images, on doit souvent réaliser beaucoup de calculs…). Il continue lui aussi de s’enrichir et de gagner en efficacité.

Sans rentrer dans trop de détails techniques, notons que l’analyse syntaxique des expressions a été optimisée grâce à une première passe dédiée à la détection de certains opérateurs, afin d’accélérer leur traitement ultérieur. De nombreuses fonctions font leur apparition, parmi elles, epoch() pour convertir une date en temps Unix, frac() pour extraire la partie fractionnaire d’un nombre, ou encore wave() qui permet de générer différentes fonctions ou images périodiques (sinusoïdales, triangulaires, etc.), comme illustré sur la figure ci-dessous :

Fonction 'waves()' - 1
Fonction 'waves()' - 2 Fig. 3.3.1. La nouvelle fonction waves() permet de générer facilement des fonctions d’ondes, fonctions dont la fréquence d’apparition (hoho ! calembour de traiteur de signal !) est assez élevée dans les opérateurs de traitement d’images.

3.4. Amélioration des entrées-sorties

Quelques améliorations sont également à signaler au niveau de la gestion des entrées-sorties :

  • Le format TIFF bénéficie désormais d’une sauvegarde plus rapide pour les grosses images (par exemple, les images médicales volumiques). Un choix élargi de modes de compression de sortie est également disponible pour ce format d’images.
  • G’MIC prend désormais en charge de manière native la lecture et l’écriture des fichiers au format WebP (cette fonctionnalité étant activée par défaut sur les paquets binaires que l’on propose pour Linux).
  • Notons enfin qu’un travail de portage du code pour l’affichage des fenêtres de G’MIC, vers la bibliothèque SDL3, a été amorcé. Cela devrait permettre à terme une meilleure compatibilité de G’MIC avec le système d’affichage natif de chaque distribution Linux (en particulier celles tournant sous Wayland).

3.5. Sprite Packing

En ce qui concerne l’évolution de la bibliothèque standard de G'MIC, la nouveauté la plus significative concerne la réécriture de la commande pack_sprites, qui implémente un algorithme d’«empaquetage» d’objets. Pour rappel, ce type d’algorithmes permet de générer des visuels composés d’ensemble d’imagettes disjointes placées de telle façon à reproduire une forme binaire (un masque) de géométrie quelconque.

Cette ré-implémentation est à la fois plus rapide et plus efficace (utilisant de meilleures heuristiques de placement), et permet d’optimiser l’agencement des imagettes à différentes échelles et orientations tout en réduisant le temps de génération. Une illustration valant mieux qu’un long discours, voici le genre d’images amusantes que cet algorithme est capable de produire facilement :

Commande 'pack_sprites' - 1
Commande 'pack_sprites' - 2 Fig. 3.5.1. Deux exemples de génération possibles utilisant la commande « pack_sprites ».

Les sprites à empaqueter peuvent être de formes quelconques, comme des lettres (image du haut de la figure précédente), des mots entiers (image du bas), etc.

Et quoi de mieux qu’un exemple concret pour montrer la facilité déconcertante 😉 d’utilisation de cette commande pack_sprites ? Le but ici est d’écrire le texte « ♥LinuxFR♥ » de telle sorte que chaque lettre soit générée comme un empaquetage d’elle-même ! (idée suffisamment saugrenue pour qu’un filtre « clé en main » réalisant ceci n’existe pas déjà !).
Le script G’MIC suivant (fichier test_pack_sprites.gmic), une fois rendu exécutable, réalise cette tâche :

#!/usr/bin/env gmic

str="\20LinuxFR\20"
repeat size(['$str']) {
  l:=['$str'][$>]
  0 text. {`$l`},0,0,${"font titanone,480"},1,1 ==. 0 channels. -3,0
  0 text. {`$l`},0,0,${"font titanone,64"},1,${"-RGB"},255
  pack_sprites.. .,5,25,3,1 remove.
}
append x to_rgb
output out.png
display

La génération prend quelques secondes, et aboutit à une image de ce type :

Commande 'pack_sprites' - 3 Fig. 3.5.2. Résultat du lancement du script test_pack_sprites.gmic.

Amusant, n’est-ce pas ? Comment feriez-vous pour réaliser la même chose dans un autre langage (et combien de lignes de code cela prendrait-il ? 😉).

4. Utilisation de G’MIC pour le « Creative Coding »

L’exemple précédent est réellement représentatif des possibilités d’écriture de scripts personnalisés permis par G'MIC. Saviez-vous, par exemple, que l’ensemble des 640 filtres disponibles dans le greffon G’MIC-Qt sont justement écrits dans ce langage ?

G’MIC peut ainsi être considéré comme une boite à outils étoffée pour les personnes souhaitant se frotter au code créatif et à l'art génératif. Nous vous proposons ci-dessous quelques autres exemples simples de génération d’images par scripts G’MIC, afin de donner un aperçu rapide des possibilités et de la concision de ce langage.

4.1. Exemples de génération d’images

  • Inversion d’un damier coloré : On s’inspire ici de cette excellente vidéo récente, réalisée par le vulgarisateur mathématicien Mickaël Launay (Micmaths). En G’MIC, la fonction suivante permet de synthétiser une image équivalente à celle montrée dans la vidéo (mais en quatre couleurs au lieu de deux).
invert_checkerboard :
  4096,4096,1,1,"
    L = clog(20*([x,y]/w - 0.5));
    P = cexp([log(40/exp(L[0])),L[1]]);
    85*xor(P[0]%4,P[1]%4)"
  map 6 rescale2d 50%

Inversion d’un damier coloré Fig. 4.1.1. Génération d’un damier inversé, avec la commande personnalisée invert_checkerboard.

  • Cercles d’Apollonius : Dans cet exemple, il s’agit d’empaqueter des cercles de plus en plus petits dans un cercle de base, pour générer des images fractales. La fonction G’MIC réalisant cette tâche est la suivante :
apollonian_gasket :

  # Init.
  siz=1280 rad:=$siz/2.2
  $siz,$siz,1,2
  circle {[$siz,$siz]/2},$rad,1,1
  repeat 5 { circle {[$siz,$siz]/2+0.537*$rad*cexp([0,90°+$>*72°])},{0.316*$rad},1,0,{2+$>} }

  # Iterate.
  ind=4 e "  > Computing"
  do {
    sh 0 +distance. 0 x,y,r:="x = xM; y = yM; [ x,y,i(x,y) - 1 ]" rm[-2,-1]
    circle $x,$y,$r,1,0,$ind ind+=1
    e "\r  > Computing "{`c=arg0(int($>/10)%4,124,47,45,92);[c,c==92?92:0]`}
  } while $r>3

  # Decorate.
  k. channels 100%
  +n. 0,255 map. hot
  l[0] { g xy,1 a c norm != 0 * 255 to_rgb }

  max rs 80%

Et voici le résultat :

Cercles d’Apollonius Fig. 4.1.2. Génération de cercles d’Apollonius, avec la commande personnalisée apollonian_gasket.

  • Gaussiennes 3D : On cherche ici à dessiner de petites fonctions gaussiennes anisotropes 3D de différentes tailles, orientations et couleurs dans un volume 3D discret, en s’arrangeant pour garantir une périodicité de l’image suivant l’axe z (l’axe de la profondeur). Puis, on transforme les coupes de ce volume en frames d’une vidéo, pour obtenir l’animation qui suit.
gaussians3d :
  180,180,160,3
  2000,1,1,1,":
    draw_gauss3d(ind,xc,yc,zc,u,v,w,siz,anisotropy,R,G,B,A) = (
      unref(dg3d_mask,dg3d_one,dg3d_rgb,dg3d_isiz2);
      dg3d_vU = unitnorm([ u,v,w ]);
      dg3d_vUvUt = mul(dg3d_vU,dg3d_vU,3);
      dg3d_T = invert(dg3d_vUvUt + max(0.025,1 - sqrt(anisotropy))*(eye(3) - dg3d_vUvUt));
      dg3d_expr = string('T = [',v2s(dg3d_T),']; X = ([ x,y,z ] - siz/2)/siz; exp(-12*dot(X,T*X))');
      dg3d_mask = expr(dg3d_expr,siz,siz,siz);
      dg3d_rgb = [ vector(##siz^3,R),vector(##siz^3,G),vector(##siz^3,B) ];
      const dg3d_isiz2 = int(siz/2);
      draw(#ind,dg3d_rgb,xc - dg3d_isiz2,yc - dg3d_isiz2,zc - dg3d_isiz2,0,siz,siz,siz,3,A/255,dg3d_mask);

      # Trick: These two lines allow to generate a perfectly looping animation.
      draw(#ind,dg3d_rgb,xc - dg3d_isiz2,yc - dg3d_isiz2,zc - dg3d_isiz2 + d#0/2,0,siz,siz,siz,3,A/255,dg3d_mask);
      draw(#ind,dg3d_rgb,xc - dg3d_isiz2,yc - dg3d_isiz2,zc - dg3d_isiz2 - d#0/2,0,siz,siz,siz,3,A/255,dg3d_mask);
    );

    X = [ u([w#0,h#0] - 1),u(d#0/4,3*d#0/4) ];
    U = unitnorm([g,g,g]);
    siz = v(5);
    anisotropy = u(0.6,1);
    R = u(20,255);
    G = u(20,255);
    B = u(20,255);
    A = u(20,255)/(1 + siz)^0.75;

    siz==0?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],11,anisotropy,R,G,B,A):
    siz==1?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],21,anisotropy,R,G,B,A):
    siz==2?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],31,anisotropy,R,G,B,A):
    siz==3?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],41,anisotropy,R,G,B,A):
    siz==4?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],51,anisotropy,R,G,B,A):
           draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],61,anisotropy,R,G,B,A)"
  rm.
  rs 250%,250%,6 c 0,255 normalize_local , n 0,255
  slices {[d/4,3*d/4-1]}

Gaussiennes 3D - vidéo Fig. 4.1.3. Volume de gaussiennes 3D anisotropes, vues comme une séquence vidéo.

Regardez ça en plein écran pendant 20 minutes avant d’aller vous coucher, en écoutant du Pink Floyd, et je vous garantis une bonne nuit de sommeil !

  • Cube roulant : Comme mentionné en section 3.2, G’MIC possède son propre moteur de rendu 3D, que nous utilisons donc ici pour générer cette animation simple et qui boucle parfaitement :

Cube roulant - vidéo Fig. 4.1.3. Animation d’un cube 3D roulant.

Le code source de cet effet est un peu plus long que pour les exemples précédents, et nous ne l’intégrons donc pas directement dans cette dépêche. Mais en 47 lignes seulement, cela reste tout à fait raisonnable 😊 !

Et si comme moi, vous prenez plaisir à regarder ou réaliser des images ou animations amusantes/étranges qui sont générées en quelques lignes de code seulement, alors n’hésitez pas à aller jeter un œil au fil de discussion dédié, sur le forum officiel de G’MIC : Creative Coding with G’MIC.

4.2. La série « G’MIC Adventures ».

Les possibilités offertes par G’MIC pour le code créatif nous ont récemment décidé à initier une petite série de dépêches, intitulées « G’MIC Adventures ». L’idée de cette série est d’expliquer et d’illustrer les différentes étapes qui vont du concept à l’implémentation d’un effet de code créatif sous forme d’un script G’MIC. Aujourd’hui, cette série comporte seulement 4 épisodes, mais nous espérons l’enrichir dans le futur. Ces épisodes sont les suivants :

Arbre fractal 3D Fig. 4.2.1. Génération d’un arbre fractal 3D par G’MIC, réimporté ensuite sous Blender.

Arbre fractal 3D - vidéo Fig. 4.2.2. Exemple d’arbre fractal 3D généré par G’MIC (vidéo).

Mousse de forêt Fig. 4.2.3. Espèce de mousse de forêt synthétique, générée par agrégation de particules en 3D. L’inhalation volontaire de vapeurs provenant de cette mousse est fortement déconseillée !

  • G’MIC Adventures #4: Physarum Transport Networks : Cet épisode explore la réalisation d’un autre système particulaire, l’algorithme Physarum imaginé dans ce papier de Jeff Jones, en 2010. Ici, on lance des millions de particules qui s’auto-organisent pour suivre un chemin qui devient commun à toutes les particules au bout d’un certain nombre d’itérations, ce qui permet de générer des animations 2D tout à fait étonnantes, comme celles-ci par exemple :

Danse du feu - 1
Danse du feu - 2 Fig. 4.2.4. Danses de filaments enflammés, générées par l’algorithme Physarum en 2D.

Dans cet épisode, nous proposons également une extension 3D de cet algorithme, ce qui permet de générer ce type d’animation :

Physarum 3D
Fig. 4.2.4. Évolution de l’algorithme Physarum étendu en 3D.

Tous ces épisodes cherchent à montrer que G’MIC est une boite à outils générique, plutôt sympa à utiliser, pour le prototypage créatif destiné à la génération d’images et d’animations !

5. Ressources additionnelles

Nous voilà déjà arrivés à la cinquième section de cette dépêche, signe qu’il est probablement temps de la terminer au plus vite 😉. Pour finir, voici donc quelques informations et liens supplémentaires pour approfondir la découverte du projet G’MIC :

  • Mentionnons tout d’abord la parution de la publication « G’MIC: An Open-Source Self-Extending Framework », de D. Tschumperlé, S. Fourey et G. Osgood, en janvier 2025 dans le journal JOSS (The Journal of Open Source Software). Dans cet article sont décrites les motivations générales du projet et une vue d’ensemble de son architecture globale et de quelques-unes de ses possibilités. Cela permet aussi au projet G'MIC d’avoir son article « de référence » dans une revue scientifique (donc pouvoir être cité plus facilement).

Article JOSS

6. Conclusions et perspectives

La sortie de cette version 3.6 (et plus généralement l’année 2025) représente une étape importante dans la vie du projet G'MIC.

Tout d’abord parce qu’on se rend bien compte qu’après 17 ans de développement, G’MIC est maintenant stable, et qu’il est peut-être plus temps d’en valoriser les facettes existantes, plutôt que de chercher à implémenter à tout prix de nouvelles fonctionnalités. D’autre part, car la disparition de l’ami Sébastien, en plus d’avoir été un choc émotionnel majeur, risque de rendre difficile la maintenance et l’évolution future du greffon G’MIC-Qt. Et enfin, car avec la démocratisation de l’IA générative, les domaines de l’analyse, du traitement et de la génération d’images (notamment à des fins créatives) sont en profonde mutation, et que les fonctionnalités de G’MIC pourraient très bien être considérées comme obsolètes d’ici quelques années (ou pas 😊).

Au final, que d’incertitudes et de questionnements ! Cela rend floues les directions à prendre pour l’évolution de G’MIC, d’autant que s’occuper d’un tel projet requiert beaucoup d’investissements en temps, et qu’en même temps, sa valorisation financière est aujourd’hui inexistante.

Actuellement, G’MIC est téléchargé un peu plus de 1000 fois par jour depuis la page web principale du projet (donc sans compter les installations tierces : via l’installation de Krita, via les paquets officiels des distributions, etc.). C’est un chiffre très honorable pour un logiciel libre de ce type, développé au sein d’un laboratoire public de recherche tel que le GREYC, et qui plus est, qui n’est plus maintenu que par une seule personne.

À court terme, on se focalisera probablement sur la promotion et la visibilité du cadriciel, la maintenance du code et l’animation de la communauté, par exemple en écrivant quelques tutoriels illustrant ses nombreuses applications potentielles dans les domaines variés liés à l’imagerie numérique : retouche photographique, illustration, peinture numérique, imagerie scientifique (médical, astronomie, biologie, matériaux), création graphique, art génératif, etc.

À long terme, peut-on raisonnablement espérer faire plus de G’MIC avec ce peu de ressources ?
L’avenir nous le dira !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • GIMP 3.0 RC3 est sorti
    Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC3 du 10 février 2025 (en anglais). Nous sommes ravis de partager la troisième version candidate de GIMP 3.0 pour ce qui (nous l'espérons) sera la dernière série de tests communautaires avant la version stable ! Cette version fait suite à la récente conférence GIMP 3 and Beyond de Jehan au FOSDEM 2025. Sommaire Corrections de bogues et changements importants Nouvelle version de GTK3 Améliorations du grap

GIMP 3.0 RC3 est sorti

Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC3 du 10 février 2025 (en anglais).

Nous sommes ravis de partager la troisième version candidate de GIMP 3.0 pour ce qui (nous l'espérons) sera la dernière série de tests communautaires avant la version stable ! Cette version fait suite à la récente conférence GIMP 3 and Beyond de Jehan au FOSDEM 2025.

    Sommaire

    Corrections de bogues et changements importants

    Alors que nous réduisions les quelques derniers bogues majeurs à néant, nous avons effectué un certain nombre de modifications qui selon nous nécessitent un sérieux coup d’œil de la communauté.
    Jetez-en donc un, d’œil, sur les points suivants lorsque vous essayerez la Release Candidate:

    Nouvelle version de GTK3

    Juste à temps pour GIMP 3.0, une nouvelle version de GTK3 est sortie !
    Entre autres changements, GTK 3.24.48 inclut des correctifs pour plusieurs bugs affectant GIMP avec des patchs initialement fournis par Jehan, comme un crash dans Wayland lors du déplacement de calques et des problèmes de texte dans certains widgets avec des langues de droite à gauche. Nous tenons à remercier Carlos Garnacho et Matthias Clasen pour leur aide sur ces patchs respectifs.

    GTK 3.24.48 ajoute également la prise en charge de la version 2 de xdg_foreign pour Wayland (la v1 reste prise en charge en tant que solution de secours). Plus précisément, l'absence de cette prise en charge provoquait le blocage de GIMP avec certaines actions sur KDE/Wayland, ce qui est désormais corrigé.

    En raison de ces problèmes (certains d'entre eux rendant GIMP vraiment instable sur Wayland), nous recommandons aux empaqueteurs de mettre à jour vers la dernière version de GTK3 lors de l'empaquetage de notre RC3. Cependant, veuillez nous informer si vous remarquez des régressions ou d'autres problèmes résultant de la nouvelle version de GTK3.

    Améliorations du graphe d'images

    Grâce à l'édition non destructive dans GIMP, les utilisateurs peuvent désormais empiler plusieurs filtres les uns sur les autres. Ces filtres fonctionnent généralement dans un format à haute résolution de bits, de sorte que les informations de l'image ne sont pas perdues. Cependant, la sortie de chaque filtre était convertie vers et depuis la résolution de l'image d'origine lors de l'empilement. Ainsi, si l'image n'était que de 8 bits, une grande quantité d'informations était perdue dans ces conversions constantes. Jehan a résolu ce problème en convertissant uniquement au format de l'image lorsque le filtre est censé être fusionné, plutôt que dans des piles non destructives. Comme il s'agit d'un changement important dans le fonctionnement des filtres, nous souhaitons que davantage d'utilisateurs testent ce changement pour détecter d'éventuelles régressions.

    Changements dans Projection Thread-safe

    Lorsque des modifications sont apportées à une image (comme une peinture), la projection de l'image doit être « vidée » pour afficher les nouvelles modifications à l'écran. Certains aspects de ce processus n'étaient pas « thread-safe », ce qui signifie que lorsque votre ordinateur utilisait plusieurs threads pour accélérer le travail, ils pouvaient entrer en conflit les uns avec les autres et provoquer un plantage. Cela a été observé dans notre fonctionnalité d'expansion automatique de calques. Jehan a corrigé la fonction pour qu'elle soit entièrement thread-safe. Cependant, les modifications apportées au multithreading peuvent laisser des bugs bien cachés, donc des tests communautaires supplémentaires seraient utiles.

    Procédures privées

    Le navigateur de base de données procédurale de GIMP montre aux développeurs de greffons et de scripts toutes les fonctions auxquelles ils peuvent accéder. Jusqu'à présent, il affichait également les fonctions « privées » qui ne sont utilisées qu'en interne. Jehan a ajouté un indicateur pour masquer ces fonctions. Dans un premier temps, nous avons ratissé trop large et caché certaines fonctions publiques importantes. Bien que nous ayons corrigé ces cas, nous aimerions que la communauté nous donne plus de détails pour nous assurer que nous n'avons oublié aucune fonction publique mal étiquetée.

    Améliorations

    Bien que nous soyons toujours en phase de gel des fonctionnalités majeures jusqu'à la version stable de GIMP 3.0, quelques améliorations mineures et autonomes ont été apportées aux greffons.

    Script-fu

    API Filtre

    Le nouvel appel PDB (gimp-drawable-merge-filter) permet aux auteurs de Script-fu d'utiliser des étiquettes pour spécifier les propriétés des filtres. Cela donnera aux utilisateurs de Script-fu la même flexibilité pour appeler et mettre à jour les filtres que les développeurs de greffons C et Python ont dans l'API GIMP 3.0. À titre d'exemple, voici un appel au filtre Emboss :

    (gimp-drawable-merge-new-filter mask-emboss "gegl:emboss" 0 LAYER-MODE-REPLACE 1.0 "azimuth" 315.0 "elevation" 45.0 "depth" 7 "type" "emboss")
    

    Vous pouvez voir plus d'exemples dans notre dépôt de scripts.

    Nouvelle syntaxe de passage des arguments par noms

    Dans Script-Fu, toutes les fonctions générées à partir de la procédure PDB des greffons doivent désormais être appelées avec une toute nouvelle syntaxe d'argument nommé, inspirée de la variante Racket de Scheme.

    Par exemple, disons que votre greffon souhaite appeler le greffon Foggify, au lieu d'appeler :

    (python-fu-foggify RUN-NONINTERACTIVE 1 (car (gimp-image-get-layers 1)) "Clouds" '(50 4 4) 1.0 50.0)

    Vous devez maintenant appeler :

    (python-fu-foggify #:image 1 #:drawables (car (gimp-image-get-layers 1)) #:opacity 50.0 #:color '(50 4 4))

    Cela présente quelques avantages :

    • des appels beaucoup plus auto-documentés, d'autant plus que certains greffons ont beaucoup d'arguments (on pouvait donc se retrouver avec des fonctions avec une douzaine d'entiers ou de flottants et c'était très déroutant) ;
    • l'ordre des arguments n'a plus d'importance ;
    • vous pouvez ignorer les arguments lorsque vous les appelez avec des valeurs par défaut ;
    • cela permet d'améliorer les procédures des greffons dans le futur en ajoutant de nouveaux arguments sans casser les scripts existants.

    Ce dernier point en particulier est important, et l'ordre des arguments n'avait plus d'importance lors de l'appel de procédures PDB depuis l'API C, ainsi que toutes les liaisons introspectées. Script-Fu était la seule interface restante dont nous disposions qui se souciait encore de l'ordre et du nombre d'arguments. Ce n'est plus le cas et c'est donc un grand pas vers une API beaucoup plus robuste pour GIMP 3 !

    Formats de fichiers

    Toutes les modifications apportées aux greffons de chargement d'images sont vérifiées avec le cadriciel de tests automatisés créé par Jacob Boerema pour éviter les régressions.

    PSD

    En plus des corrections de bogues telles que l'enregistrement correct des images fusionnées CMJN, Jacob Boerema a ajouté la prise en charge du chargement des fichiers PSD LAB 16 bits par canal. Il a également mis à jour la boîte de dialogue d'exportation PSD pour utiliser les fonctions d'exportation de métadonnées intégrées de GIMP.

    DDS

    CMYK Student a implémenté la prise en charge très demandée du chargement d'images DDS avec prise en charge BC7. Jacob Boerema a travaillé pour corriger la compatibilité avec les fichiers DDS exportés à partir d'anciennes versions de GIMP.

    AppImage: c'est officiel !

    Après neuf mois d'incubation (le nombre est une simple coïncidence 🙂), nous présentons un « nouveau » format de distribution pour les utilisateurs Linux : .AppImage. Au départ, nous l'utilisions comme format interne pour les tests, comme déjà évoqué dans des articles précédents. Les efforts de Bruno Lopes nous ont permis d'améliorer le processus de construction. Nous sommes maintenant confiants avec l'AppImage générée et nous avons donc pour objectif de la rendre officielle.

    En tant que package officiel en amont, aucun greffon tiers sophistiqué ou autre binaire arbitraire qui ne soit pas une dépendance de GIMP n'est ajouté pour ne pas le « surcharger ». C'est ce que certains appellent GIMP « vanilla », un GIMP propre mais complet pour la production (c'est-à-dire pour une utilisation générale).

    Comme tout format d'empaquetage, il a ses propres caractéristiques et limites. Dans le cas de l'AppImage de GIMP, les outils inclus tels que gimp-console* et gimp-debug-tool* nécessitent une extraction préalable du fichier .AppImage avec la commande --appimage-extract. De plus, en partie à cause de la conception d'AppImage, les commandes qui pointent vers $PWD ne fonctionneront pas. Ces deux limitations de fonctionnalités sont les seules connues à ce jour. Donc, si vous en trouvez d'autres ou même des bogues, veuillez les signaler sur notre outil de suivi.

    Divers

    • Il est maintenant plus facile de charger des images depuis Google Drive ainsi que d'autres plateformes distantes ou dans le cloud, sans avoir a sélectionner un format de fichier pour essayer de l'ouvrir.

    • Notre processus de création génère désormais des icônes supplémentaires avec l'extension -rtl, qui sont automatiquement utilisées avec les langues s'écrivant de droite à gauche. Les icônes de flèches gauche et droite en sont un exemple : elles sont désormais orientées dans la bonne direction dans les deux types de langues.

    • Les développeurs de greffons n'ont plus besoin de créer des boutons de sélection de fichiers personnalisés - GimpProcedureDialog les crée désormais automatiquement lorsqu'un paramètre de type de fichier est utilisé. Vous pouvez également spécifier si le bouton sert à ouvrir ou à enregistrer des fichiers et des dossiers.

    • Rupert Weber a continué ses efforts pour nettoyer notre greffon BMP. De plus, il travaille actuellement à ajouter la prise en charge de l'importation de profils de couleurs dans les BMP, qui, espérons-le, sera prête dans une future version.

    • CMYK Student a mis à jour le greffon ICNS avec une nouvelle prise en charge des types d'icônes « ic05 » et des formats d'icônes ARGB. Ils ont également corrigé un bogue lors du chargement d'anciens formats ICNS sans masque de transparence. Lukas Oberhuber a aidé à diagnostiquer et à résoudre un bogue connu dans le format ICNS qui faisait que notre icône macOS affichait des pixels brouillés dans les petites tailles.

    GEGL

    La version 0.4.54 de GEGL contient également quelques améliorations et corrections de bogues. Thomas Manni a mis à jour le filtre Noise Spread pour éviter les bogues lorsqu'il est appliqué à des groupes de calques vides. Jonny Robbie a ajouté de nouvelles options et de nouveaux types de papier au filtre Negative Darkroom, et a optimisé certaines opérations en virgule flottante dans GEGL dans son ensemble.

    Statistiques

    Depuis GIMP 3.0 RC2, dans le dépôt principal de GIMP :

    • 85 rapports ont été fermés comme RÉPARÉS ;
    • 56 demandes de fusion ont été acceptées ;
    • 335 commits ont été poussés ;
    • 19 traductions ont été mises à jour : basque, bulgare, catalan, chinois (Chine), danois, néerlandais, finnois, géorgien, italien, norvégien nynorsk, persan, portugais, slovaque, slovène, espagnol, suédois, turc, ukrainien, vietnamien.

    33 personnes ont contribué à des modifications ou des correctifs à la base de code de GIMP 3.0.0 RC3 (l'ordre est déterminé par le nombre de commits ; certaines personnes sont dans plusieurs groupes) :

    • 13 développeurs pour le code principal : Jehan, Alx Sa, Jacob Boerema, Lloyd Konneker, Anders Jonsson, Thomas Manni, Bruno, Daniele Forsi, Lloyd Konneker, Lukas Oberhuber, Rupert, cheesequake, Øyvind Kolås ;
    • 10 développeurs de greffons ou modules : Alx Sa, Jacob Boerema, Jehan, Rupert, Lloyd Konneker, Anders Jonsson, Bruno, Daniel Novomeský, Daniele Forsi, lillolollo ;
    • 19 traducteurs : Alan Mortensen, Alexander Shopov, Nathan Follens, Kolbjørn Stuestøl, Hugo Carvalho, Asier Sarasua Garmendia, Ngọc Quân Trần, Jordi Mas, Marco Ciampa, Sabri Ünal, Anders Jonsson, Danial Behzadi, Ekaterine Papava, Jiri Grönroos, Jose Riha, Luming Zh, Martin, Rodrigo Lledó, Yuri Chornoivan ;
    • 1 Concepteur de thème : Alx Sa ;
    • 6 contributeurs pour la compilation, l’empaquetage ou l’intégration continue : Bruno, Jehan, Lloyd Konneker, Alx Sa, Rupert, Jacob Boerema.

    Contributions sur d'autres dépôts dans GIMPverse (l'ordre est déterminé par le nombre de commits) :

    • GEGL 0.4.54 est composé de 11 commits de 16 contributeurs : Øyvind Kolås, Alexander Shopov, Hugo Carvalho, JonnyRobbie, Alan Mortensen, Anders Jonsson, Asier Sarasua Garmendia, Bartłomiej Piotrowski, Jehan, Martin, Nathan Follens, Nils Philippsen, Rodrigo Lledó, Sam L, Thomas Manni, Yuri Chornoivan ;
    • ctx a enregistré 233 commits depuis la sortie de RC2 par 1 contributeur : Øyvind Kolås ;
    • gimp-data a enregistré 6 commits de 4 contributeurs : Bruno, Jehan, Alx Sa, Andre Klapper ;
    • gimp-test-images (nouveau référentiel pour les tests de prise en charge des images) a enregistré 5 commits de 2 contributeurs : Jacob Boerema, Alx Sa ;
    • la version gimp-macos-build (scripts de packaging macOS) a eu 6 commits par 2 contributeurs : Lukas Oberhuber, Bruno ;
    • la version flatpak a eu 12 commits par 3 contributeurs après la version RC2 : Bruno Lopes, Jehan, Hubert Figuière ;
    • notre site web principal a eu 42 commits par 6 contributeurs : Jehan, Alx Sa, Bruno, Jacob Boerema, Andre Klapper, Petr Vorel ;
    • notre site web de développement a eu 18 commits par 5 contributeurs : Jehan, Bruno, Lukas Oberhuber, Alx Sa, Anders Jonsson ;
    • notre documentation 3.0 comptait 373 commits de 13 contributeurs : Andre Klapper, Kolbjørn Stuestøl, Nathan Follens, Jacob Boerema, Alan Mortensen, Yuri Chornoivan, Dick Groskamp, ​​Jordi Mas, Alevtina Karashokova, Alx Sa, Anders Jonsson, Daniele Forsi, Hugo Carvalho.

    N'oublions pas de remercier toutes les personnes qui nous aident à trier dans Gitlab, à signaler les bugs et à discuter des améliorations possibles avec nous.
    Notre communauté est également profondément reconnaissante envers les guerriers d'Internet qui gèrent nos divers canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

    Remarque : compte tenu du nombre de parties dans GIMP et de la façon dont nous obtenons des statistiques via les scripts « git », des erreurs peuvent se glisser dans ces statistiques. N'hésitez pas à nous dire si nous avons oublié ou mal classé certains contributeurs ou contributions.

    Autour de GIMP

    Miroirs de téléchargement

    Depuis la publication de la nouvelle version 3.0RC2, deux nouveaux miroirs ont été ajoutés :

    • Saswata Sarkar, Gurugram, Inde ;
    • Hoobly Classifieds, États-Unis.

    Les miroirs sont importants car ils aident le projet en répartissant la charge pour des dizaines de milliers de téléchargements quotidiens. De plus, en ayant des miroirs répartis dans le monde entier, nous garantissons que tout le monde peut avoir un accès rapide au téléchargement de GIMP.

    Comment citer GIMP dans la recherche

    GIMP est souvent utilisé dans la recherche et est donc cité dans diverses publications scientifiques. Un chercheur utilisant GIMP pour le traitement d'images astronomiques nous a contactés pour savoir comment citer GIMP correctement, d'autant plus qu'il est utilisé pour effectuer une étape importante de son algorithme.

    Comme cela semble être une question intéressante, nous avons mis à jour notre page « Citing GIMP and Linking to Us » avec une nouvelle sous-section « Citing GIMP in research » contenant la conclusion de cette discussion.

    En particulier, une entrée BibTex, destinée aux chercheurs utilisant LaTeX pour gérer leur bibliographie, est disponible sur ce lien pour simplifier votre travail. Par exemple, disons que vous utilisez ce RC3 pour vos recherches, vous pouvez citer GIMP avec cette entrée :

    @software{GIMP,
        author = {{The GIMP Development Team}},
        title = {GNU Image Manipulation Program (GIMP), Version 3.0.0-RC3. Community, Free Software (license GPLv3)},
        year = {2025},
        url = {https://gimp.org/},
        note = {Version 3.0.0-RC3, Free Software}
    }

    Merci à Cameron Leahy pour ce morceau de code BibTex !

    Télécharger GIMP 3.0 RC3

    Vous trouverez toutes nos versions officielles sur le site officiel de GIMP (gimp.org) :

    • Linux AppImages pour x86 et ARM (64 bits) ;
    • Linux Flatpaks pour x86 et ARM (64 bits) ;
    • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits) ;
    • Paquet MSIX (GIMP Preview) pour x86 et ARM (64 bits) ;
    • Paquets macOS DMG pour le matériel Intel ;
    • Paquets macOS DMG pour le matériel Apple Silicon.

    D'autres paquets réalisés par des tiers devraient évidemment suivre (paquets de distributions Linux ou *BSD, etc.).

    Et ensuite ?

    Nous apprécions vraiment tous les tests et commentaires de la communauté que nous avons reçus au cours des deux dernières versions candidates !
    Nous espérons que ce sera la dernière version candidate avant la version stable 3.0. Notre objectif est maintenant de terminer la résolution des quelques bugs restants dans notre liste de jalons 3.0, tout en gardant un œil sur les nouveaux rapports résultant des changements dans RC3.

    N’oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, afin de contribuer et d’accélérer le développement de GIMP. L’engagement de la communauté aide le projet à se renforcer !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • GIMP 3.0 RC2 est sorti
      Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC2 du 27 décembre 2024 (en anglais). Après la première série de retours de la communauté, nous sommes heureux de partager la deuxième version candidate de GIMP 3.0 ! Les gens nous ont donné des commentaires très utiles sur la première version candidate et nous avons pu corriger de nombreux bugs. C’est notre petit cadeau sous le sapin 🎄 pour vous tous ! (NdM: disons fourré dans la galette/le gâteau des roi

    GIMP 3.0 RC2 est sorti

    Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC2 du 27 décembre 2024 (en anglais).

    Après la première série de retours de la communauté, nous sommes heureux de partager la deuxième version candidate de GIMP 3.0 ! Les gens nous ont donné des commentaires très utiles sur la première version candidate et nous avons pu corriger de nombreux bugs.

    C’est notre petit cadeau sous le sapin 🎄 pour vous tous ! (NdM: disons fourré dans la galette/le gâteau des rois désormais ?)

    GIMP 3.0 RC2: écran de démarrage

    Écran de démarrage de la nouvelle version candidate, par Sevenix (CC by-sa 4.0) - GIMP 3.0 RC2

    Sommaire

    Corrections de bugs importantes

    Plusieurs correctifs ont été apportés depuis la version RC1. Nous souhaitons mettre en évidence les bugs les plus importants afin que les utilisateurs en soient informés et puissent effectuer des tests supplémentaires. Pour plus de détails sur les autres correctifs de bugs, veuillez consulter notre page NEWS sur GitLab.

    Migration des paramètres de la 2.10

    Lors des tests communautaires, nous avons découvert que les paramètres des utilisateurs de la 2.10 n’étaient pas migrés vers GIMP 3.0 en raison de certaines hypothèses incorrectes dans le code d’importation. Étant donné que la plupart des développeurs utilisent exclusivement GIMP 3.0 depuis un certain temps, nous n’avions pas remarqué ce problème. Le bug devrait maintenant être corrigé, nous demandons donc des rapports de bugs si des préférences 2.10 ne sont pas importées correctement dans RC2. Notez que si vous avez déjà utilisé 3.0 RC1, vous devrez d’abord supprimer ces configurations, sinon RC2 n’essaiera pas d’importer les préférences 2.10 (assurez-vous de sauvegarder vos paramètres bien sûr !).

    Console Windows

    Dans les versions de développement 2.99, les versions Windows lançaient automatiquement un affichage de console en plus de GIMP lui-même. C’est très utile pour les développeurs Windows pour voir les messages de débogage, mais la console n’était pas destinée à être affichée pendant les versions stables. Comme nous avons modifié notre processus de construction pour utiliser Meson au lieu d’Autotools, nous avons appris que nous devions apporter des modifications supplémentaires pour empêcher l’affichage de la console. Cela devrait être corrigé maintenant grâce à Jehan - si vous voyez toujours la console sous Windows, veuillez remplir un nouveau rapport de bogue !

    Problèmes de polices d’interface utilisateur manquantes sur macOS

    Il y a un problème de longue date où certains utilisateurs de macOS ne voyaient que des symboles « Unicode manquants » au lieu des textes d’interface dans GIMP (à la fois dans la version 2.10 et dans la version 3.0). Cela était dû à un bug dans Pango, la bibliothèque que nous utilisons pour les mises en page de texte. Ce problème a été résolu avec la récente version Pango 1.55.0, nous encourageons donc tous les empaqueteurs macOS tiers à mettre à jour vers cette version lorsqu’ils construisent GIMP pour le distribuer.

    GIMP 3.0.0 RC2 : le package officiel de macOS contient désormais Pango sans polices cassées

    Si vous aviez ce problème de polices cassées sur macOS (à gauche), il est désormais résolu (à droite) - captures d’écran de rapporteurs de bug - GIMP 3.0.0 RC2

    Intégration de darktable

    Après la sortie de la version 3.0 RC1, nous avons reçu des rapports de certains utilisateurs indiquant qu’ils ne pouvaient toujours pas importer et exporter d’images entre GIMP et darktable. Nous avons travaillé avec les développeurs de darktable pour éliminer les bugs restants, de sorte que l’intégration entre darktable 5.0.0 et GIMP 3.0 RC2 devrait désormais fonctionner pour tout le monde. Cependant, veuillez déposer un nouveau rapport de bogue si vous continuez à rencontrer des problèmes pour connecter les deux !

    Améliorations

    Bien que l’objectif principal du développement de la version 3.0 RC2 ait été la correction de bugs et le peaufinage, certaines nouvelles fonctionnalités ont également été implémentées.

    API de filtre GEGL

    De nombreux anciens wrappers d’API pour les opérations GEGL ont été supprimés dans la version RC1. Bien que cela ait réduit la dette technique, cela a également causé des problèmes à de nombreux développeurs de greffons et de scripts tiers qui souhaitaient porter leurs greffons vers la version 3.0. Alors que notre plan initial était d’implémenter la nouvelle API publique de filtre après la sortie de la version 3.0, les commentaires de la communauté nous ont convaincu de l’ajouter pour la version 3.0 RC2.

    Applying filters through libgimp 3.0.0 API (Script-fu et al.) - GIMP 3.0.0 RC2

    Application de filtres via l’API libgimp 3.0.0 (Script-fu et al.) - GIMP 3.0.0 RC2

    Le travail de Jehan permet aux développeurs d’appliquer des effets de filtre soit immédiatement, soit de manière non destructrice. Vous pouvez voir des exemples de la manière de procéder en C, Python et Script-Fu dans la requête de fusion, ou en recherchant gimp-drawable-filter dans le navigateur de procédures de GIMP. Nous avons également commencé à utiliser l’API de filtre dans nos scripts Python pour créer automatiquement des effets d’arrière-plan flou pour le programme d’installation Windows, et avec cette même API en C, Alx Sa a ajouté la prise en charge de l’importation de l’ancien style de calque Color Overlay de Photoshop.

    Nous sommes preneurs des retours et des rapports de bugs d’auteurs de greffons et de scripts qui utilisent la nouvelle API de filtrage dans leur travail ! Nous avons également prévu d’autres mises à jour pour GIMP 3.0.

    Espaces de fusion de calques et composition dans les fichiers XCF

    Les discussions entre les experts en science des couleurs Elle Stone et Øyvind Kolås ont révélé un autre domaine nécessitant des améliorations dans le cadre de notre projet Color Space Invasion. Plus précisément, les images avec des profils de couleurs qui ont des courbes de reproduction des tons non perceptives peuvent ne pas être rendues correctement lorsqu’elles sont définies sur certains modes de calque.

    Øyvind a implémenté une correction pour ce problème en ajoutant un espace perceptuel approprié par défaut à des modes de calque spécifiques. Bien que nous pensions que cette amélioration ne devrait pas avoir d’impact sur les fichiers XCF plus anciens, n’hésitez pas à rapporter tous problèmes de compatibilité avec la version 3.0 RC2 !

    Paquets

    AppImage

    Grâce aux efforts continus de Bruno Lopes et avec l’aide de Samueru et de la communauté AppImage, notre AppImage expérimentale fonctionne désormais sur la plupart des distributions Linux. Nous souhaitons encourager davantage de tests, dans l’espoir de pouvoir la proposer comme une autre version Linux en plus de notre Flatpak. Vous pouvez consulter les instructions pour installer les paquets expérimentaux AppImage sur notre page de téléchargement des versions de développement.

    Flatpak

    Notre flatpak journalier a maintenant un App-ID dédié org.gimp.GIMP.Nightly. Cela signifie principalement qu’il peut être installé côte à côte avec le flatpak stable tandis que les deux sont visibles dans vos menus (plus besoin de sélectionner quelle version doit être affichée avec flatpak make-current).

    Mais cela signifie également que tous ceux qui avaient le flatpak journalier jusqu’à présent ne verront pas de mise à jour arriver de sitôt. Afin de continuer à utiliser le flatpak journalier, désinstallez celui existant et installez le nouveau avec ces commandes :

    flatpak uninstall org.gimp.GIMP//master
    flatpak install https://nightly.gnome.org/repo/appstream/org.gimp.GIMP.Nightly.flatpakref

    ⚠️ Rappel : le flatpak journalier contient le code de développement actuel tel qu’il se présente dans le dépôt source. Parfois, il peut même être très cassé ou rendre vos fichiers de projet invalides. Nous ne le recommandons pas pour la production ! Utilisez cette version pour nous aider à déboguer en signalant les problèmes ou si vous aimez vraiment les risques pour tester les dernières fonctionnalités.

    Améliorations du greffon BMP

    Le nouveau contributeur Rupert Weber a été très occupé depuis la dernière mise à jour avec de nouvelles mises à jour de notre greffon BMP. Quelques points de son travail à mettre en avant :

    • Les fichiers BMP sont désormais importés sans perte dans leur précision d’origine, plutôt que d’être convertis en précision entière de 8 bits.
    • Le greffon prend désormais en charge le chargement de fichiers BMP avec compression RLE24 et Huffman.
    • Nous chargeons désormais les fichiers BMP par morceaux plutôt que d’essayer de charger l’image entière en une seule fois. Des travaux connexes nous permettent également de charger des fichiers BMP beaucoup plus volumineux.
    • Rupert a également effectué beaucoup de nettoyage et de maintenance du code, afin de rendre le greffon plus facile à maintenir à l’avenir.

    Mises à jour diverses

    • Jehan a apporté quelques améliorations d’usage de la console Python. Vous pouvez désormais utiliser les raccourcis Ctrl+R et Ctrl+S pour parcourir votre historique de commandes, et Page précédente et Page suivante vous permettent désormais de faire défiler l’historique en plus des touches fléchées Haut et Bas.

    History search in Python Console - GIMP 3.0.0 RC2
    Recherche dans l’historique de commande (console Python) - GIMP 3.0.0 RC2

    • Alx Sa a implémenté le chargement des fichiers CMJN PAM dans le greffon PNM.

    • Sous Windows, nous avons également ajouté la possibilité d’ouvrir des images via des raccourcis Windows (fichiers .lnk) directement depuis la boîte de dialogue de sélection de fichiers. Ce travail est également réalisé par Alx Sa.

    • D’autres modifications et améliorations ont été apportées au thème. En particulier, le style du « curseur compact » a été considérablement amélioré après les commentaires et le travail de Denis Rangelov. Denis a également créé de nouvelles icônes pour la boîte de dialogue de navigation ancrable, remplaçant les doublons par des symboles distincts. Anders Jonsson a également révisé le thème et supprimé certaines solutions de contournement qui étaient nécessaires dans GIMP 2.10, mais qui ne sont plus nécessaires avec nos nouveaux thèmes 3.0.

    • Idriss Fekir a apporté des améliorations à notre code de chargement de polices XCF, pour améliorer la compatibilité lors de l’importation d’anciens fichiers XCF.

    Aperçu des changements depuis la version 2.10

    Pour ceux qui n’ont pas suivi de près le développement de GIMP, cet article ne couvre que les changements progressifs depuis la dernière version. Ils ne répertorient pas tous les changements ou améliorations apportés à GIMP 3.0 - ce serait un article très long !

    Bien que nous aurons des notes de version complètes pour la version finale 3.0, nous avons pensé qu’il serait utile de résumer quelques-uns des changements majeurs apportés au cours du processus de développement de la version 2.99 :

    • Le travail initial de portage de GIMP vers GTK3 a eu lieu dans 2.99.2. Cette version a également introduit la sélection multi-calque, ainsi que des modifications initiales de l’API et des améliorations de la gestion de l’espace colorimétrique.
    • D’autres mises à jour de l’API ont été effectuées dans 2.99.4, notamment la possibilité de générer automatiquement des interfaces utilisateur de greffon en fonction des entrées de l’utilisateur. Diverses améliorations de convivialité ont également été apportées, ainsi que l’introduction de l’outil expérimental Paint Select.
    • 2.99.6 a apporté davantage de mises à jour de l’API et de travaux internes. D’autres fonctionnalités destinées à l’utilisateur incluent la possibilité de placer des guides en dehors du canevas, une meilleure prise en charge du pavé tactile et une meilleure prise en charge des différentes métadonnées de couleur PNG.
    • Le pipeline de développement a été considérablement amélioré dans 2.99.8, permettant des temps de construction et une automatisation plus rapides. La prise en charge de nouveaux formats de fichiers tels que PSB et JPEGXL a été ajoutée dans cette version, ainsi que la prise en charge des pilotes Windows Ink de tablette graphique.
    • 2.99.10 a introduit des « ensembles de calques », remplaçant l’ancien concept de calques liés. La dynamique de peinture a été rationalisée dans cette version, ainsi que la première version de la boîte de dialogue de bienvenue.
    • La prise en charge de la liaison anticipée CMJN a été implémentée dans 2.99.12. Les thèmes de l’interface graphique CSS ont également fait l’objet d’une refonte majeure dans cette version, ainsi que davantage de prise en charge de formats de fichiers et d’améliorations majeures de Script-Fu.
    • 2.99.14 a vu l’introduction de contours non destructifs pour l’outil de texte. L’outil d’alignement a également été révisé, la mise à l’échelle des thèmes et des icônes a été améliorée et les sélections flottantes ont été largement remplacées dans le flux de travail.
    • Le portage GTK3 a finalement été achevé dans 2.99.16. La fenêtre contextuelle de recherche / a été mise à jour pour afficher le chemin du menu pour toutes les entrées, ainsi que pour permettre de chercher parmi les filtres.
    • Les filtres non destructifs ont été introduits pour la première fois dans 2.99.18. Des améliorations majeures de la gestion des couleurs ont également été apportées, et de nouvelles options d’extension automatique des limites de calque et d’accrochage ont également été implémentées.

    GEGL

    Tout comme pour GIMP, la version 0.4.52 de GEGL a été corrigée. Øyvind Kolås a corrigé certaines étiquettes génériques « Entrée auxiliaire » pour qu’elles soient plus significatives. Elles seront également visibles dans les filtres de GIMP. Il a également amélioré la précision du traitement des couleurs de certains filtres. Thomas Manni, contributeur de longue date, a également corrigé les plantages lorsque certains filtres étaient exécutés sur de très petits calques.

    Statistiques de sortie

    Depuis GIMP 3.0 RC1, dans le dépôt principal de GIMP :

    • 73 rapports ont été fermés comme CORRIGÉS.
    • 71 demandes de fusion ont été acceptées.
    • 277 commits ont été poussés.
    • 18 traductions ont été mises à jour : bulgare, catalan, chinois (Chine), chinois (Taïwan), danois, finnois, géorgien, islandais, italien, letton, lituanien, norvégien nynorsk, persan, portugais, russe, slovène, suédois, ukrainien.

    35 personnes ont contribué à des modifications ou des correctifs à la base de code de GIMP 3.0.0 RC2 (l’ordre est déterminé par le nombre de commits ; certaines personnes sont dans plusieurs groupes) :

    • 12 développeurs pour le code principal : Jehan, Alx Sa, Michael Schumacher, Anders Jonsson, Lloyd Konneker, Øyvind Kolås, Idriss Fekir, Andre Klapper, Jacob Boerema, Michael Natterer, Rupert Weber, Thomas Manni.
    • 11 développeurs de plug-ins ou modules : Jehan, Lloyd Konneker, Alx Sa, Rupert Weber, Daniel Novomeský, Jacob Boerema, Aki, Bruno, Ryan Sims, Simon Munton.
    • 19 traducteurs : Alan Mortensen, Cheng-Chia Tseng, Kolbjørn Stuestøl, Rūdolfs Mazurs, Jiri Grönroos, Sveinn í Felli, Alexander Shopov, Aurimas Černius, Marco Ciampa, Danial Behzadi, Hugo Carvalho, Jordi Mas, Anders Jonsson, Ekaterine Papava, Julia Dronova, Luming Zh, Martin, Michael Schumacher, Youri Chornoivan.
    • 2 concepteurs de thèmes : Alx Sa, Anders Jonnson.
    • 2 contributeurs à la documentation : Jehan, Bruno.
    • 5 contributeurs pour la compilation, l’empaquetage ou l’intégration continue : Bruno, Jehan, Lloyd Konneker, Alx Sa, Jacob Boerema, Rupert Weber.

    Contributions sur d’autres dépôts du GIMPverse (l’ordre est déterminé par le nombre de commits) :

    • GEGL 0.4.52 est composé de 31 commits de 16 contributeurs : Øyvind Kolås, Sam L, Thomas Manni, lillolollo, Alan Mortensen, Anders Jonsson, Ekaterine Papava, Hugo Carvalho, Jordi Mas, Juliano de Souza Camargo, Kolbjørn Stuestøl, Lukas Oberhuber, Luming Zh, Marco Ciampa, Martin, Yuri Chornoivan.
    • ctx a enregistré 48 commits depuis la sortie de la RC1 par 1 contributeur : Øyvind Kolås.
    • gimp-data a enregistré 6 commits de 5 contributeurs : Anders Jonsson, Jehan, Sevenix, Alx Sa et Denis Rangelov.
    • gimp-test-images (nouveau référentiel pour les tests de prise en charge des images) a enregistré 2 commits de 1 contributeur : Rupert.
    • La version gimp-macos-build (scripts d’empaquetage pour macOS) a reçu 5 commits de 1 contributeur : Lukas Oberhuber.
    • La version flatpak a reçu 4 commits de 2 contributeurs : Bruno Lopes, Jehan.
    • Notre site Web principal a reçu 29 commits de 3 contributeurs : Jehan, Alx Sa, Andrea Veri.
    • Notre site Web de développement a reçu 16 commits de 2 contributeurs : Jehan, Bruno Lopes.
    • Notre documentation pour GIMP 3.0 a reçu 157 commits de 10 contributeurs : Andre Klapper, Kolbjørn Stuestøl, Jacob Boerema, Alan Mortensen, Anders Jonsson, Marco Ciampa, Jordi Mas, Yuri Chornoivan, Alx Sa, Jiri Grönroos.

    N’oublions pas de remercier toutes les personnes qui nous aident à trier dans Gitlab, à signaler les bugs et à discuter des améliorations possibles avec nous. Notre communauté est également profondément reconnaissante envers les guerriers d’Internet qui gèrent nos différents canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

    Remarque : compte tenu du nombre de parties dans GIMP et de la façon dont nous obtenons des statistiques via les scripts git, des erreurs peuvent se glisser dans ces statistiques. N’hésitez pas à nous dire si nous avons oublié ou mal classé certains contributeurs ou contributions.

    Autour de GIMP

    Miroirs de téléchargement

    GNOME a abandonné l’utilisation de miroirs lors de sa dernière mise à jour d’infrastructure. Comme nos miroirs de téléchargement sont hébergés par eux, on nous a demandé si nous voulions également faire la même chose. En tant que projet communautaire, nous apprécions tous ceux qui contribuent un miroir pour rendre GIMP plus accessible dans leur région. Par conséquent, nous avons décidé de continuer à utiliser des miroirs pour distribuer GIMP.

    Si vous souhaiter contribuer à un miroir pour votre région, voici la nouvelle procédure :

    Comment devenir un miroir officiel (mise à jour de la procédure)

    1. Créez une demande de miroir sur le tracker gimp-web
    2. Dites-nous pourquoi vous souhaitez créer un miroir de GIMP, pour quels autres logiciels libres vous en contribuez déjà un, quelle est votre configuration, l’emplacement du serveur…
    3. Parlez-nous de vous : êtes-vous une organisation ou un particulier ? Donnez-nous le nom et l’URL spécifiques à afficher dans la liste des sponsors de miroir.
    4. Une fois que nous aurons terminé de vérifier votre organisation, les identifiants rsync seront échangés de manière sécurisée, vous permettant de synchroniser votre miroir avec le serveur source
    5. Il n’y a rien de particulier à faire pour apparaître sur la page des sponsors qui sera mise à jour régulièrement via des scripts. Pourtant, cela peut prendre quelques jours, voire quelques semaines parfois. Ne vous inquiétez donc pas si le nom de votre organisation n’apparaît pas immédiatement !

    🛈 Nous vérifions automatiquement à intervalles aléatoires que les miroirs sont mis à jour suffisamment rapidement et que les données correspondent pour des raisons de sécurité évidentes.

    Changements dans les miroirs

    De plus, depuis la publication de la nouvelle 3.0RC1, un nouveau miroir a été ajouté :

    • Sahil Dhiman, Mumbai, Inde

    Les miroirs sont importants, car ils aident le projet en répartissant la charge des dizaines de milliers de téléchargements quotidiens. De plus, en ayant des miroirs répartis dans le monde entier, nous garantissons que tout le monde peut avoir un accès rapide au téléchargement de GIMP.

    Financer des exécuteurs ("runner") GitLab

    Le dépôt de code de GIMP est également hébergé sur la plateforme GitLab de GNOME. Andrea Veri a demandé si nous pouvions financer un exécuteur [NDA: un "runner" est une sorte de serveur dédié à la compilation ou à l’intégration continue de manière générale] sur la plateforme, ce qui permet à tout projet sur la plateforme de tester la construction de son logiciel avant, pendant et après les modifications de code. Après un vote du comité de GIMP, nous avons accepté et sommes désormais les sponsors d’un exécuteur CI/CD x86 !

    Télécharger GIMP 3.0 RC2

    Vous trouverez toutes nos versions officielles sur le site officiel de GIMP (gimp.org) :

    • Paquets Linux flatpaks pour x86 et ARM (64 bits)
    • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits)
    • Paquet MSIX (aperçu GIMP) pour x86 et ARM (64 bits)
    • Paquets macOS DMG pour le matériel Intel
    • Paquets macOS DMG pour le matériel Apple Silicon

    D’autres paquets réalisés par des tiers devraient évidemment suivre (paquets de distributions Linux ou *BSD, etc.).

    🛈 Notes:

    • Les 2 paquets DMG macOS seront probablement en retard, car nous attendons la validation de la mise à jour Apple par la Fondation GNOME avant de pouvoir signer nos paquets.
    • Le paquet MSIX prend généralement quelques jours ouvrables de validation par Microsoft. (le paquet MSIX est disponible)

    Et ensuite ?

    Grâce au grand nombre de retours que nous avons reçus pour notre premier candidat à la version finale, nous sommes en mesure de vous présenter cette deuxième version qui en est d’autant plus robuste. Comme vous l’avez vu, quelques surprises supplémentaires 🎁 sont arrivées avec les corrections de bugs, notamment la nouvelle API de filtre, qui a déclenché la prise en charge de l’importation de l’ancien effet Color Overlay de PSD, des modes de fusion et de composition améliorés, et plus encore. Nous avons pensé que cela valait la peine de rompre le gel des fonctionnalités pour ces changements et que cela fera toute la différence !

    Avec cette deuxième version candidate, nous sommes plus proches que jamais de la version 3.0.0 de GIMP. Comme d’habitude, nous attendons avec impatience les nouveaux rapports de problèmes de la communauté qui nous permettront de finaliser la version 3.0.0 ! 🤗

    N’oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, afin de donner en retour et d’accélérer le développement de GIMP. L’engagement de la communauté aide le projet à se renforcer ! 💪🥳

    🎅🎄🎉 Et bien sûr, toute l’équipe vous souhaite de joyeuses fêtes de fin d’année (MAJ de Jehan) nos meilleurs vœux pour la nouvelle année ! 🥳🥂🎆

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • GIMP 3.0 RC1 est sorti
      Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC1 du 6 novembre 2024 (en anglais). Nous sommes très heureux de partager la première version candidate de la très attendue GIMP 3.0 ! Nous avons travaillé dur depuis notre dernière mise à jour de développement pour la préparer, et nous avons hâte que tout le monde puisse enfin voir le résultat. Nouvel écran de démarrage de la version candidate, par Sevenix (CC by-sa 4.0) - GIMP 3.0 RC1 Alors, qu’est-ce

    GIMP 3.0 RC1 est sorti

    Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC1 du 6 novembre 2024 (en anglais).

    Nous sommes très heureux de partager la première version candidate de la très attendue GIMP 3.0 ! Nous avons travaillé dur depuis notre dernière mise à jour de développement pour la préparer, et nous avons hâte que tout le monde puisse enfin voir le résultat.

    GIMP 3.0 RC1: écran de démarrage

    Nouvel écran de démarrage de la version candidate, par Sevenix (CC by-sa 4.0) - GIMP 3.0 RC1

    Alors, qu’est-ce qu’une « version candidate » (release candidate, RC, en anglais) exactement ? Une version candidate est quelque chose qui pourrait être prêt à être GIMP 3.0, mais nous voulons que la communauté la plus large la teste en premier et rapporte les problèmes qu’elle trouve. Si les retours des utilisateurs ne révèlent que des bugs mineurs et faciles à corriger, nous résoudrons ces problèmes et publierons le résultat sous la forme de GIMP 3.0. Cependant, nous espérons et nous nous attendons à ce qu’un public beaucoup plus large essaie la 3.0 RC1 — y compris de nombreuses personnes qui n’ont utilisé que la 2.10 jusqu’à présent. Si des bugs et des régressions importants sont découverts et nécessitent des modifications de code substantielles, nous devrons peut-être publier une deuxième version candidate pour des tests plus approfondis.

    Sommaire

    Nouveaux graphismes

    Icônes de Wilber

    Le logo actuel de Wilber a été créé par Jakub Steiner pour GIMP 2.6 en 2008 ! Bien qu’il s’agisse toujours d’un logo fantastique, les tendances en matière de design ont quelque peu changé au cours des seize dernières années et l’apparence plus détaillée de Wilber détonne sur les ordinateurs de bureau modernes.

    C’est pourquoi, en collaboration avec d’autres contributeurs, Aryeom a développé notre nouveau logo pour GIMP 3.0 !

    New Wilber Icon

    Nouvelle icône de Wilber, par Aryeom (CC by-sa 4.0)

    Si vous souhaitez en savoir plus sur les choix de conception, d’utilisation et les variantes de conception, veuillez consulter notre guide du logo. Nous avons également documenté l’histoire du logo Wilber.

    Écran de démarrage (Splash Screen)

    Notre magnifique nouvel écran d’accueil (présenté en haut de cet article) a été créé par le contributeur et artiste de longue date Sevenix ! Vous pouvez voir plus de ses réalisations sur sa page d’art personnelle.

    À l’avenir, nous prévoyons de changer plus souvent l’image de démarrage pour mettre en valeur toutes sortes d’œuvres créées avec GIMP (photographie, illustration, design…).
    À ce sujet, nous avons aussi créé une page d’archive des écrans de démarrage pour garder en mémoire les œuvres présentes et passées contribuées par des artistes au projet.

    Améliorations du thème d’icônes Legacy

    L’une des principales améliorations apportées par le portage GTK3 est que les icônes vectorielles de l’interface utilisateur s’adaptent désormais plus proprement à vos préférences. Cependant, notre thème d’icônes Legacy était principalement constitué d’images raster (PNG), il ne pouvait donc pas tirer parti du système de mise à l’échelle de GTK3. Le contributeur Denis Rangelov a relevé le défi de taille de recréer les icônes d’outils Legacy en SVG. Désormais, les deux thèmes d’icônes de GIMP sont superbes sur les écrans HiDPI !

    Vectorized Legacy Icon theme

    Icônes d’outils du thème Legacy Icon à l’échelle par Denis Rangelov (CC by-sa 4.0)

    Le travail n’est pas terminé, car de nombreuses icônes ne sont toujours pas adaptatives et certaines icônes sont toujours manquantes. Denis a exprimé son intérêt à continuer d’améliorer le thème d’icônes Legacy, nous espérons donc le renommer Classic lorsque ce projet sera terminé, pour montrer qu’il est désormais bien maintenu.

    Invasion de l’espace colorimétrique

    L’un des changements clés de la version 2.99.18 a été l’amélioration massive de la gestion des couleurs dans GIMP. Comme ce travail n’était pas entièrement terminé dans la version 2.99.18, il a constitué un obstacle majeur à la sortie de la version 3.0 RC1.

    Depuis cette version, nous avons trouvé et corrigé un certain nombre de bugs et de zones manquantes qui devaient être compatibles avec l’espace colorimétrique. Nous avons également examiné les rapports de l’experte en couleurs Elle Stone pour nous assurer que les valeurs de couleur affichées par GIMP sont aussi précises que possible. En même temps, il est très important de garantir que les fichiers de projet XCF créés dans GIMP 2.10 et avant s’afficheront de la même manière lorsqu’ils sont ouverts dans 3.0. Par exemple, l’un des premiers logos Google a été créé dans GIMP — et si vous ouvrez le fichier de projet XCF d’origine dans GIMP 3.0 RC1, il apparaît toujours de la même manière qu’à sa création en 1998 !
    Par conséquent, nous avons examiné en profondeur les différents modes de calque pour garantir que l’engagement en matière de compatibilité soit conservé pour cette version.

    L’invasion de l’espace colorimétrique est un projet de longue haleine, qui se poursuivra après la sortie de GIMP 3.0.

    Finalisation de l’API publique

    Une autre tâche qui devait être terminée avant la sortie de la version 3.0 est de finaliser l’API publique. Depuis notre dernier article, nous avons terminé les changements majeurs restants — le remplacement de toutes les instances de nos structures de couleurs personnalisées GimpRGB par la GeglColor mieux gérée en termes de couleurs et l’amélioration de nos formats de tableau afin que le nombre d’éléments n’ait pas à être spécifié séparément. Ce travail a été un long processus de la part de Jehan et Lloyd Konneker, avec beaucoup de tests de bon fonctionnement et de retours de la part d'Anders Jonsson.

    En outre, un certain nombre de fonctions ont été ajoutées, renommées ou supprimées de l’API publique par rapport à la version 2.10. Par exemple, un ancien patch de Massimo Valentini ajoute gimp-context-get-emulate-brush-dynamics et gimp-context-set-emulate-brush-dynamics, qui permettent aux développeurs de scripts et de greffons d’utiliser le paramètre Émuler la dynamique du pinceau lors de la peinture. D’autre part, les différentes fonctions gauss ont toutes été regroupées en une seule fonction, plug-in-gauss. Bien que ce changement nécessite quelques mises à jour dans les scripts existants, les développeurs ont désormais un contrôle plus direct sur l’effet de flou gaussien plutôt que de s’appuyer sur des valeurs prédéfinies cachées.

    L’API étant désormais stable, les développeurs de greffons et de scripts peuvent commencer à porter leurs scripts 2.10 basés sur cette version. Vous pouvez trouver la documentation initiale de l’API sur notre site de développement. Nous avons l’intention d’ajouter davantage de tutoriels et de guides de portage sur le site pendant la phase de publication. Nous vous encourageons également à consulter les greffons Script-fu et Python dans notre référentiel pour voir des exemples fonctionnels de la nouvelle API.

    Mises à jour de l’édition non destructive

    Depuis notre dernière mise à jour, nous avons continué à apporter des améliorations et des corrections de bugs à notre code de filtre non destructif. Bon nombre de ces problèmes ont été signalés par Sam Lester lors du développement et des tests de ses filtres GEGL tiers.

    Bien que les filtres non destructifs aient été un ajout très populaire à GIMP 3.0, certains des premiers utilisateurs ont demandé que nous fournissions un moyen de revenir au flux de travail destructif d’origine. Par conséquent, nous avons ajouté une case à cocher facultative « Fusionner les filtres » au bas des filtres NDE. Si cette case est cochée, le filtre sera immédiatement fusionné après sa validation. Notez que les filtres ne peuvent pas être appliqués de manière destructive sur des groupes de calques — dans ces cas, l’option de fusion des filtres n’est pas disponible.

    Example of Merge Filter checkbox

    Exemple de filtre avec la case à cocher « Merge Filter » (Fusionner les filtres) - GIMP 3.0 RC1

    Dans le même ordre d’idées, Jehan a également implémenté le stockage de la version des filtres dans les fichiers de projet XCF de GIMP. Cela nous permettra de mettre à jour les filtres à l’avenir sans affecter l’apparence des anciens fichiers de projet lorsqu’ils sont ouverts. Des travaux supplémentaires seront nécessaires dans GEGL pour implémenter complètement cette fonctionnalité, mais cela peut être fait après la version 3.0 sans affecter les fichiers de projets existants.

    Interface utilisateur

    GIMP 3.0 RC1 contient plusieurs mises à jour de l’interface utilisateur. Par exemple, davantage d’aspects du GUI peuvent désormais tirer parti des fonctionnalités de sélection multiple implémentées par Jehan dans les versions antérieures de 2.99.

    Nous avons également restauré la possibilité d’utiliser la molette de défilement de la souris pour parcourir les différents onglets de dialogue ancrables. Cette fonctionnalité existait dans GTK2 mais supprimée dans GTK3. À la demande d’un utilisateur, nous avons réimplémenté cette fonctionnalité dans GIMP lui-même sur la base d’une implémentation similaire dans geany.

    Au cours du développement, nous avons reçu un rapport indiquant que le défilement des crédits dans notre boîte de dialogue À Propos pouvait provoquer une gêne en raison de son mouvement. Par conséquent, nous avons ajouté un code pour vérifier le paramètre « Animation réduite » de votre système d’exploitation et désactiver ces animations dans GIMP selon vos paramètres de préférence.

    Greffons

    Comme nous sommes en période de gel des fonctionnalités depuis la dernière version 2.99, la plupart des modifications apportées aux greffons ont été des mises à jour d’API et des corrections de bugs (certaines d’entre elles pour des problèmes qui étaient assez anciens). Cependant, quelques améliorations plus petites ont été implémentées.

    BMP

    Le format BMP prend désormais en charge les images 64 bits par pixel. Le nouveau contributeur Rupert Weber nous a aidé à ajouter la prise en charge de l’importation correcte de ce format BMP. Il a également soumis des correctifs avec plus de corrections pour notre greffon BMP et notre pipeline de test.

    TIFF

    Depuis GIMP 2.99.16, nous pouvons importer des fichiers TIFF avec des calques au format Photoshop. Cependant, le programme Alias/Autodesk Sketchbook a créé sa propre norme pour enregistrer les calques, ce qui n’était pas compatible. Comme cela a été signalé comme un bug dans notre outil de suivi des problèmes, nous avons également ajouté la prise en charge du chargement de calques à partir de fichiers TIFF enregistrés au format Sketchbook.

    GEGL et babl

    GEGL et babl ont tous deux connu un certain nombre de mises à jour depuis leurs dernières versions en février.

    GEGL 0.4.50 introduit plusieurs nouveaux filtres créés par Sam Lester.

    • Lueur intérieure (Inner Glow)

    • Biseau (Bevel)

    • Styles GEGL (GEGL Styles)

    "GEGL Styles" effect in GIMP 3.0 RC1

    Vous pouvez y accéder via l’outil Opérations GEGL ou en les recherchant avec le raccourci d’action de recherche /.

    Øyvind Kolås a apporté un certain nombre de corrections de bugs et d’améliorations à la stabilité de GEGL. Plusieurs modifications ont également été apportées en rapport avec l’invasion de l’espace colorimétrique dans GIMP, comme l’ajout de méthodes pratiques pour obtenir et définir les GeglColor dans les modèles de couleurs HSV(A) et HSL(A), implémentées par Alx Sa. Jacob Boerema et son étudiant du Google Summer of Code (GSoC) Varun Samaga B L ont fusionné un certain nombre d’améliorations à la version OpenCL des filtres. Bien que GIMP n’active toujours pas OpenCL par défaut, leur travail nous rapproche beaucoup de la possibilité de le faire. Nous discuterons de ces améliorations dans un prochain article.

    babl 0.1.110 a également reçu quelques contributions au cours de ce cycle. Jehan a implémenté de nouveaux processus de conversion entre les modèles de couleurs RVB et HSL, ce qui améliore les performances d’un certain nombre de filtres par rapport à GIMP 2.99.18. Il a également corrigé certaines parties du code qui se comportaient différemment selon que votre processeur prenait en charge SSE2 ou non. Øyvind Kolås a amélioré la précision de plusieurs sections de code lors de la conversion de valeurs à virgule flottante en valeurs entières. De plus, Lukas Oberhuber a trouvé et corrigé une fuite de mémoire et Jacob Boerema a corrigé un problème où les images avec Not a Number/NaN pouvaient provoquer un plantage.

    Statistiques de sortie

    Depuis GIMP 2.99.18, dans le dépôt principal de GIMP :

    • 384 rapports ont été fermés comme CORRIGÉS.
    • 442 demandes de fusion ont été acceptées.
    • 1892 commits ont été poussés.
    • 31 traductions ont été mises à jour : basque, biélorusse, brésilien portugais, anglais britannique, bulgare, catalan, chinois (Chine), chinois (Taïwan), danois, néerlandais, galicien, géorgien, allemand, grec, hongrois, islandais, italien, coréen, letton, norvégien nynorsk, polonais, portugais, russe, serbe, serbe (latin), slovène, espagnol, suédois, turc, ukrainien, vietnamien.

    72 personnes ont contribué à des modifications ou des correctifs au code de base de GIMP 3.0.0 RC1 (l’ordre
    est déterminé par le nombre de commits ; certaines personnes sont dans plusieurs groupes) :

    • 27 développeurs pour coder le code principal : Jehan, Alx Sa, Jacob Boerema, bootchk, Anders Jonsson, Øyvind Kolås, Cheesequake, cheesequake, Niels De Graef, Idriss Fekir, Simon Budig, lillolollo, lloyd konneker, Andre Klapper, Andrzej Hunt, Bruno, Joachim Priesner, Nils Philippsen, Alfred Wingate, Bruno Lopes, Elle Stone, Kamil Burda, Luca Bacci, Mark Sweeney, Massimo Valentini, Oleg Kapitonov, Stanislav Grinkov, megakite.
    • 15 développeurs de greffons ou modules : Alx Sa, Jehan, Lloyd Konneker, bootchk, Jacob Boerema, Anders Jonsson, Nils Philippsen, Andrzej Hunt, Andre Klapper, Rupert, Bruno Lopes, Daniel Novomeský, Mark Sweeney, Stanislav Grinkov, lillolollo .
    • 42 traducteurs : Martin, Yuri Chornoivan, Luming Zh, Rodrigo Lledó, Kolbjørn Stuestøl, Ekaterine Papava, Cheng-Chia Tseng, Sabri Ünal, Marco Ciampa, Tim Sabsch, Jordi Mas, Alexander Shopov, Anders Jonsson, Alan Mortensen, Asier Sarasua Garmendia, Sveinn í Felli, Andi Chandler, Balázs Úr, dimspingos, Juliano de Souza Camargo, Ngọc Quân Trần, Vasil Pupkin, Alexandre Prokoudine, Bruce Cowan, Jürgen Benvenuti, Nathan Follens, Милош Поповић, Balázs Meskó, Christian Kirbach, Daniel, Emin Tufan Cetin, Fran Dieguez, Guntupalli Karunakar, Hugo Carvalho, Jehan, Philipp Kiemle, Piotr Drąg, Robin Mehdee, Rūdolfs Mazurs, Seong-ho Cho, Víttor Paulo Vieira da Costa, Ayesha Akhtar.
    • 7 créateurs de ressources (icônes, thèmes, curseurs, écran de démarrage, métadonnées… même si une bonne partie d’entre eux ont été déplacés vers le référentiel gimp-data) : Alx Sa, Jehan, Bruno Lopes, Anders Jonsson, Jacob Boerema, bootchk, nb1 .
    • 10 contributeurs à la documentation : Jehan, Bruno, Lloyd Konneker, Alx Sa, Bruno Lopes, Anders Jonsson, bootchk, Lukas Oberhuber, Andre Klapper, Jacob Boerema.
    • 11 contributeurs pour la compilation, l’empaquetage ou l’intégration continue : Bruno Lopes, Jehan, bootchk, Alx Sa, Lloyd Konneker, Jacob Boerema, Niels De Graef, Alfred Wingate, Lukas Oberhuber, Michael Schumacher, Anders Jonsson.

    Contributions sur d’autres dépôts dans GIMPverse  :

    • babl 0.1.110 est composé de 22 commits par 7 contributeurs : Øyvind Kolås, Jehan, Bruno Lopes, Anders Jonsson, Biswapriyo Nath, Jacob Boerema, Lukas Oberhuber.
    • GEGL 0.4.50 est composé de 204 commits par 33 contributeurs : Øyvind Kolås, Sam Lester, Martin, Varun Samaga B L, Yuri Chornoivan, Luming Zh, Rodrigo Lledó, Jehan, Jordi Mas, Anders Jonsson, Kolbjørn Stuestøl, Marco Ciampa, Sabri Ünal, Bruno Lopes, Alan Mortensen, Asier Sarasua Garmendia, Ekaterine Papava, Bruce Cowan, Lukas Oberhuber, Tim Sabsch, psykose, Alexandre Prokoudine, Alx Sa, Andi Chandler, Andre Klapper, ArtSin, Daniel Șerbănescu, Jacob Boerema, Joe Locash, Morgane Glidic, Niels De Graef, dimspingos, lillolollo.
    • ctx a enregistré 616 commits depuis la sortie de la version 2.99.18 par 2 contributeurs : Øyvind Kolås, Ian Geiser.
    • gimp-data (nouveau référentiel contenant des images, des splashes, des icônes et d’autres données binaires pour le logiciel) ont eu 76 commits par 7 contributeurs : Jehan, Aryeom, Bruno, Alx Sa, Denis Rangelov, Anders Jonsson, Bruno Lopes.
    • La version gimp-macos-build (scripts d’empaquetage pour macOS) a eu 41 commits par 3 contributeurs : Lukas Oberhuber, Bruno Lopes, Jehan.
    • La version flatpak a compté 38 commits de 4 contributeurs : Bruno Lopes, Jehan, Hubert Figuière, Will Thompson.
    • Notre site Web principal a enregistré 60 commits depuis la sortie de la version 2.10.38 par 5 contributeurs : Jehan, Alx Sa, Andre Klapper, Bruno Lopes et Denis Rangelov.
    • Notre site Web de développeur a enregistré 33 commits depuis la sortie de la version 2.10.38 par 5 contributeurs : Bruno Lopes, Jehan, Lloyd Konneker, Alx Sa, Lukas Oberhuber.
    • Notre documentation 3.0 a enregistré 928 commits depuis la version 2.99.18 par 14 contributeurs : Andre Klapper, Kolbjørn Stuestøl, Jacob Boerema, Alan Mortensen, Yuri Chornoivan, Jordi Mas, Marco Ciampa, Anders Jonsson, Sabri Ünal, dimspingos, Alx Sa, Andi Chandler, Daniel, Nathan Follens.

    N’oublions pas de remercier toutes les personnes qui nous aident à trier dans Gitlab, à signaler les bugs et à discuter des améliorations possibles avec nous.
    Notre communauté est également profondément reconnaissante envers les guerriers d’Internet qui gèrent nos divers canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

    Note : compte tenu du nombre de parties dans GIMP et de la façon dont nous obtenons des statistiques via le script git, des erreurs peuvent se glisser dans ces statistiques. N’hésitez pas à nous dire si nous avons oublié ou mal classé des contributeurs ou des contributions.

    Modifications futures du processus de publication

    Nous sommes bien conscients que le chemin vers GIMP 3.0 a été long et que les utilisateurs de GIMP 2.10 n’ont pas eu accès à toutes les nouvelles fonctionnalités sur lesquelles nous avons travaillé au fil des ans. À l’avenir, nous restructurerons notre processus de développement pour réduire le temps entre les versions. Comme mentionné brièvement dans notre feuille de route 3.0, nous voulons nous concentrer sur des versions plus petites et axées sur les fonctionnalités. Cela signifie que nous visons la sortie de GIMP 3.2 dans l’année qui suit la sortie finale de 3.0, plutôt qu’en 2050 comme on le dit souvent en plaisantant ! Des micro-versions avec des corrections de bugs peuvent survenir entre-temps.

    Des versions plus petites avec quelques « grosses » fonctionnalités nous permettront également de tester plus en profondeur chaque changement, améliorant encore la stabilité de chaque version. Au cours du processus de développement de la version 3.0, des développeurs comme Jacob Boerema, Lloyd Konneker, Bruno Lopes et Jehan ont créé et amélioré nos processus de tests automatisés pour détecter et identifier les bugs plus tôt. Nous parlerons plus en détail de ces améliorations dans de futurs articles.

    Autour de GIMP

    Miroirs de téléchargement

    Depuis notre dernière actualité, 8 nouveaux miroirs ont été proposés à GIMP par :

    • Sahil Dhiman, Inde
    • FCIX, en République Dominicaine, en Australie et 2 aux USA.
    • Taiwan Digital Streaming Co., Taïwan
    • OSSPlanet, Taïwan
    • Shrirang Kahale, Inde

    Cela nous amène à un total de 56 miroirs du monde entier !

    World Map of GIMP Mirror locations

    Carte des miroirs GIMP dans le monde, générée à partir de MirrorBits

    Les miroirs sont importants, car ils aident le projet en répartissant la charge des dizaines de milliers de téléchargements quotidiens. De plus, en ayant des miroirs répartis dans le monde entier, nous faisons en sorte que tout le monde puisse avoir un accès rapide au téléchargement de GIMP.

    Modifications de l’infrastructure

    Bruno Lopes a véritablement pris des initiatives pour améliorer notre processus de construction et d’empaquetage sur plusieurs plateformes.

    Au cours de l’été, il a créé une version expérimentale d’AppImage (comme détaillé dans un article d’actualité précédent). Si vous souhaitez l’améliorer davantage et, espérons-le, le rendre disponible en téléchargement standard, veuillez nous contacter ! Bruno a également créé des scripts de construction flatpak pour rendre le processus de création de votre propre flatpak GIMP beaucoup plus facile.

    Beaucoup de travail a été fait pour améliorer notre présence sur le Microsoft Store pour la version 3.0. Notre application GIMP 2.10 n’était pas entièrement intégrée à la plateforme du store en raison de certaines limitations — il s’agit en réalité simplement d’un wrapper pour notre installateur GIMP existant. Par conséquent, elle ne se mettait pas automatiquement à jour pour les utilisateurs et il n’était pas possible d’automatiser les installations avec des outils comme Microsoft Intune. Grâce aux nombreux efforts de Bruno, nous aurons une nouvelle application GIMP dans le Microsoft Store qui résout ces problèmes (et bien d’autres) pour la version finale de GIMP 3.0. À partir de maintenant, nous disposons également d’une version séparée de GIMP (Preview) qui vous permet d’installer des versions de développement de manière similaire au flatpak Bêta sur Linux. Vous pouvez l’essayer sur ce lien vers le Microsoft Store pour GIMP (Preview).

    (Pour des raisons techniques et de maintenance décrites ici, les binaires 32 bits ne seront pas disponibles dans les nouveaux paquets MSIX de GIMP, ce qui supprime malheureusement la prise en charge du greffon TWAIN hérité dans les paquets x64 et arm64 utilisés pour la numérisation rapide. Si vous dépendez de ceux-ci, le programme d’installation .exe prend toujours en charge les processeurs 32 bits. Cependant, la prise en charge de cette architecture devrait être abandonnée à l’avenir)

    En outre, l’installateur Windows standard a été mis à jour pour une conception plus moderne. Il vous permet également d’installer des paquets de langue individuels et de démarrer GIMP immédiatement après la fin de l’installation. Pour les plus férus de technologie, les scripts de build Windows ont également été portés pour utiliser PowerShell, et les scripts de build croisés peuvent désormais s’exécuter localement.

    En raison des changements et des mises à jour de notre infrastructure de création de logiciels, nous avons dû augmenter la configuration minimale requise pour le système d’exploitation MacOS à Big Sur (MacOS 11).

    Accord d’hébergement fiscal de la Fondation GNOME

    Plus tôt cette année, la Fondation GNOME a annoncé un accord de parrainage fiscal avec GIMP. Tout cela est dû au travail acharné de Jehan pendant de nombreux mois. Nos objectifs avec cet accord sont de pouvoir proposer un financement stable pour les développeurs intéressés par un travail à long terme sur GIMP par le biais de bourses, et de fournir des moyens plus faciles pour les gens de contribuer au développement de GIMP. Ce travail est toujours en cours, nous ferons donc une annonce plus détaillée une fois que tout sera stabilisé.

    Traductions

    Grâce à des traducteurs bénévoles, nous disposons désormais d’une traduction de GIMP en bengali ! Si vous souhaitez traduire GIMP dans votre propre langue ou participer à une traduction existante, vous pouvez découvrir comment ici.

    Télécharger GIMP 3.0 RC1

    Vous trouverez toutes nos versions officielles sur le site officiel de GIMP (gimp.org) :

    • Paquets Linux flatpaks pour x86 et ARM (64 bits) avec des nightly-builds permettant de suivre l’avancement des développements
    • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits)
    • Paquet MSIX (aperçu GIMP) pour x86 (64 bits uniquement) et ARM (64 bits)
    • Paquets macOS DMG pour le matériel Intel
    • Paquets macOS DMG pour le matériel Apple Silicon

    D’autres paquets réalisés par des tiers sont évidemment attendus (paquets de distributions Linux ou *BSD, etc.).

    Et ensuite ?

    Nous entrons maintenant dans la dernière étape de cette version majeure : les candidats à la version finale ! Bien qu’il soit toujours possible d’espérer obtenir une Release Candidate correcte du premier coup, l’expérience nous dit que cette RC1 — qui est le résultat de plus de 6 ans de travail — comportera possiblement des problèmes, des bugs, probablement des plantages désagréables. C’est là que nous avons besoin de vous tous ! Nous comptons sur tout le monde pour trouver et signaler les problèmes afin que la version 3.0.0 puisse vraiment être considérée comme stable. 🤗

    Certains petits bugs peuvent être considérés comme secondaires (bien que nous acceptions toujours les rapports pour tous les bugs, même les plus petits !), car la perfection n’existe pas vraiment dans les logiciels. Il y a d’autres choses en particulier que nous voulons vraiment détecter, comme :

    • toute incohérence ou problème dans l’API (elle restera stable pour toute la série v3, donc s’il y a des problèmes à trouver, c’est maintenant ; nous voulons un framework de greffon robuste) ;
    • bugs lors de la lecture ou du rendu de fichiers XCF existants créés par d’anciennes versions stables de GIMP ;
    • plantages ;
    • régressions ;
    • migration correcte de la configuration à partir des versions stables précédentes.

    Nous ne donnons pas d’estimation de date pour la sortie de la version 3.0.0, tout d’abord parce que nous ne pouvons pas le savoir avec certitude, ensuite parce qu’à chaque fois que nous le faisons, les médias semblent simplement survoler chaque avertissement de notre texte et transformer nos mots en promesses indéfectibles. Sachez simplement que nous voulons également que cela se produise le plus tôt possible, c’est-à-dire lorsque nous pourrons considérer que notre logiciel est suffisamment stable.

    N’oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, afin de donner en retour et d’accélérer le développement de GIMP. L’engagement de la communauté aide le projet à se renforcer ! 💪🥳

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • G´MIC 3.4.0 : Le traitement d’images à la fleur de l’âge
      Une nouvelle version 3.4.0 de G’MIC (GREYC’s Magic for Image Computing) vient de sortir ! À cette occasion, nous vous proposons une description des fonctionnalités récentes ajoutées à ce cadriciel libre pour le traitement des images numériques, faisant suite à notre précédente dépêche sur ce sujet (publiée en mai 2023). N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images contiennent l’icône  lien nᵒ 1 : Le projet

    G´MIC 3.4.0 : Le traitement d’images à la fleur de l’âge

    Une nouvelle version 3.4.0 de G’MIC (GREYC’s Magic for Image Computing) vient de sortir !

    À cette occasion, nous vous proposons une description des fonctionnalités récentes ajoutées à ce cadriciel libre pour le traitement des images numériques, faisant suite à notre précédente dépêche sur ce sujet (publiée en mai 2023).

    G´MIC 3.4.0 Teaser

    N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images contiennent l’icône Icône 'Play Video'

    Sommaire

    1. G’MIC en quelques mots

    G’MIC est un cadriciel (framework) libre pour la manipulation et le traitement des images numériques, développé au sein de l’équipe IMAGE du laboratoire de recherche GREYC de Caen (UMR CNRS 6072).

    Il définit différentes interfaces utilisateur permettant l’application d’algorithmes variés sur des images et des signaux, variés eux aussi. L’élément moteur du projet est un interpréteur d’un langage de script, le «  langage G’MIC  », élaboré spécifiquement pour faciliter le prototypage et l’implémentation de nouveaux algorithmes et opérateurs de traitement d’images. Les utilisateurs peuvent ainsi appliquer des opérateurs parmi plusieurs centaines déjà implémentés, ou écrire leurs propres pipelines de traitement et les rendre accessibles dans les différentes interfaces utilisateur du projet. C’est donc, par essence, un cadriciel ouvert, extensible et en évolution constante.

    Les interfaces de G’MIC les plus populaires sont : gmic, outil en ligne de commande (complément indispensable à ImageMagick ou GraphicsMagick pour traiter/générer/analyser des images à partir du shell), le service Web G’MIC Online, et surtout, le greffon G’MIC-Qt, utilisable dans de nombreux logiciels d’édition d’images numériques tels que GIMP, Krita, DigiKam, Paint.net, Adobe Photoshop, Affinity Photo… Ce greffon propose aujourd’hui plus de 620 filtres divers, pour élargir les possibilités de ces logiciels de manipulation d’images.

    Aperçu du greffon G’MIC-QtFig. 1.1. Aperçu du greffon G’MIC-Qt en version 3.4.0, ici lancé depuis GIMP 2.10, avec le filtre « Comicbook » sélectionné.

    2. Quoi de neuf dans cette version 3.4.0 ?

    La version 3.4.0 de G’MIC_ se focalise sur la stabilité et le support long-terme : Après plus de 15 ans de développement continu du projet, les concepts et codes qui constituent G’MIC ont eu le temps d’être éprouvés, et nous voulons maintenant assurer la stabilisation des API des différents composants du projet : l’API de la libgmic (pour intégrer les fonctionnalités de G’MIC dans un code C ou C++), celle du greffon G’MIC-Qt (pour implémenter une version du greffon au sein d’un nouveau logiciel hôte), celle des fonctions de base définissant la bibliothèque standard de G’MIC (stdlib), ainsi que la syntaxe du langage G’MIC lui-même.

    Ainsi, toutes les versions de cette branche 3.4.x seront consacrées à la correction de bugs et le développement de fonctionnalités ne nécessitant pas de modification de ces fondations du projet (par exemple, le développement de nouveaux filtres ou d’opérateurs de traitement d’images), avec le souhait d’assurer au maximum une rétro-compatibilité entre ces versions. En ce sens, on considère que la version 3.4.0 représente un jalon dans l’histoire du projet.

    En ce qui concerne les améliorations générales apportées aux différentes interfaces utilisateurs, on peut citer principalement :

    G’MIC Online (G’MICol)

    Ce service, qui permet d’appliquer les filtres de G’MIC sur des images, directement à partir d’un navigateur web, existe depuis plusieurs années. En 2024, les membres du service DDA (Développement et Déploiement d’Applications) du laboratoire GREYC ont initié une refonte totale de ce service, avec à la clé un nouveau look, une amélioration nette de l’interface utilisateur (widgets plus intuitifs, amélioration de la fenêtre de prévisualisation, apparition de thèmes clair/sombre, gestion des filtres favoris…) et une automatisation des mises à jour de G’MIC et des filtres associés. La liste des améliorations réalisées serait trop longue à énumérer, et une figure valant mille mots, voici à quoi ressemble aujourd’hui la nouvelle version de ce service web :

    Aperçu du service _G’MIC Online_
    Fig.2.1. Aperçu du service web G´MIC Online, remis au goût du jour à l’occasion de la sortie de la version 3.4.0 de G’MIC (ici, avec le thème clair).

    Si vous souhaitez l’essayer, foncez voir G’MIC Online, ça sera pour nous l’occasion d’avoir un test grandeur nature 😱 ! Et n’hésitez pas à nous faire remonter des soucis éventuels. Dans tous les cas, un grand bravo à nos collègues de l’équipe DDA pour ce travail important de refonte !

    Greffon G’MIC-Qt

    En l’espace d’une année, ce sont plus de 40 nouveaux filtres de traitement d’images qui ont fait leur apparition dans le greffon. La plupart seront détaillés dans la suite de cette dépêche. Mentionnons également l’apparition dans l’interface, d’un nouveau bouton « Paramètres aléatoires », qui assigne des valeurs aléatoires aux paramètres d’un filtre sélectionné, ce qui permet d’obtenir un aperçu rapide de la variété de rendus possibles pour un filtre donné.

    Bouton « Paramètres Aléatoires » dans le greffon G´MIC-Qt
    Fig.2.2. Greffon G´MIC-Qt : Le nouveau bouton « Paramètres aléatoires » assigne des valeurs aléatoires aux paramètres du filtre sélectionné.

    Outil CLI gmic

    L’ensemble des filtres réalisés par la communauté des développeurs est maintenant inclus dans l’exécutable dédié à la ligne de commande, ce qui fait qu’il n’y a plus de différences concernant le nombre de filtres disponibles par défaut entre le greffon G’MIC-Qt et l’outil CLI gmic (il fallait auparavant forcer la mise à jour des filtres avec $ gmic update). Aujourd´hui, gmic dispose d’un arsenal de plus de 4000 fonctions pour traiter vos images en ligne de commande. Notons que des efforts particuliers ont été faits pour améliorer le visualiseur intégré d’images (commande display). On peut dorénavant visualiser plus aisément des collections d’images 2D, des images volumiques 3D ou même des maillages 3D, dans une unique interface, comme illustré sur la figure ci-dessous :

    Commande 'display'
    Fig.2.3. Outil CLI gmic : Le visualiseur d’images de G’MIC a été entièrement ré-implémenté et permet de visualiser des types d’images différents au sein d’une même interface.

    C’est également le cas pour le visualiseur de fonctions mathématiques ou de signaux 1D (commande plot), qui a été refait à neuf :

    Commande 'plot'
    Fig.2.4. Commande plot: Le visualiseur de fonctions/signaux 1D a été entièrement repensé.

    Tout ceci fait de gmic un outil bien pratique, même si on ne se limite qu’à la visualisation d’images en ligne de commande.

    Autres améliorations

    • L’évaluateur intégré d’expressions mathématiques a encore bien évolué : c’est l’une des briques essentielle du langage G’MIC, puisqu’il est en charge d’évaluer le résultat des opérations mathématiques dont on a besoin dans les scripts (autant dire qu’en traitement d’images, on fait tout le temps des calculs). Cet évaluateur s’est enrichi de nombreuses fonctions, en particulier pour le calcul et le traitement de vecteurs, de matrices, et la manipulation native de tas.
    • De nombreuses fonctions natives (C++) de la bibliothèque ont pu être ré-écrites intégralement en langage G’MIC. Ceci va faciliter l’évolution et la maintenance de ces fonctionnalités, puisque leur modification/amélioration future ne nécessitera plus de mise à jour obligatoire des binaires du projet.
    • Les commandes de chargement/sauvegarde de maillages 3D en format .obj (Wavefront) ont été améliorées, et de nouvelles commandes de traitement/création de maillages 3D ont vu le jour (par exemple pour visualiser les vecteurs normaux aux sommets d’un maillage, comme illustré sur la vidéo ci-dessous). Et, non, ceci n’est pas une pomme pourrie :

    Exemple de rendu 3D
    Fig.2.5. La gestion des maillages 3D au sein de G´MIC a été enrichie de nouvelles commandes.

    Voilà pour ce qui concerne les améliorations générales des différentes interfaces proposées par le cadriciel.
    Passons maintenant au détail des nouveaux filtres et traitements d’images apparus dans G’MIC ces douze derniers mois.

    3. Détails des nouveaux filtres

    Dans cette (longue) section, nous catégorisons et décrivons les filtres récents, par type d’utilisation : Retouche photographique, Filtres de déformations, Filtres de dégradations, Filtres de rendu et de textures, et enfin Effets artistiques.

    3.1. Retouche photographique

    Trois filtres intéressants ont fait leur apparition dans le greffon G’MIC-Qt pour aider les photographes à retoucher leurs clichés numériques.

    Tout d’abord, le filtre Colors / Mixer [Generic], un filtre de mixage de canaux couleur qui offre la possibilité de choisir parmi pas moins de 16 espaces/représentations de couleurs différents pour le mixage (CMY, CMYK, HCY, HSI, HSL, HSV, Jzazbz, Lab, Lch, OKlab, RGB, RYB, XYZ, YCbCr, YIQ et YUV_). Cela constitue une bonne alternative aux outils traditionnels de rehaussement de contrastes ou de couleurs, pour retoucher les photographies qui pourraient être un peu palôtes.

    Filtre 'Colors / Mixer (Generic)'
    Fig.3.1.1. Le filtre Colors / Mixer [Generic] vient enrichir l’arsenal de filtres déjà disponibles pour la retouche des contrastes et des couleurs.

    Parlons également du filtre Details / Sharpen [Alpha], qui comme son nom l’indique, permet de rehausser les détails fins dans des photographies. Il est basé sur une technique originale de décomposition pyramidale de l’image relativement à un opérateur d´Alpha blending. Cette technique cherche en particulier à minimiser l’apparition de « halos » près des contours, qui est un artefact classique rencontré avec les filtres usuels de rehaussement de détails.

    Filtre 'Details / Sharpen (Alpha)'
    Fig.3.1.2. Le filtre Details / Sharpen [Alpha] permet de rehausser assez finement les détails dans les photographies, en minimisant l’apparition de « halos ».

    Filtre 'Details / Sharpen (Alpha)'
    Fig.3.1.3. Détails « Avant/Après » illustrant l’intérêt du filtre Details / Sharpen [Alpha].

    Enfin, le filtre Layers / Spatial Blend Multi-Layers permet de fusionner plusieurs prises d’un même point de vue en une seule image, avec la possibilité de générer un gradient linéaire spatial entre ces différentes vues. On peut par exemple photographier une même scène à plusieurs moments de la journée (et de la nuit), et utiliser ce filtre de fusion spatiale pour créer une image telle que celle illustrée ci-dessous, en un ou deux clics de souris :

    Filtre 'Layers / Spatial Blend Multi-Layers'
    Fig.3.1.4. Le filtre Layers / Spatial Blend Multi-Layers permet de fusionner plusieurs photographies avec un gradient spatial linéaire, réglable par l’utilisateur.

    (Crédits : les images utilisées dans la figure ci-dessus proviennent de la vidéo « Stunning New York City skyline timelapse: Day to night » de la chaîne Youtube « Rumble Viral »).

    La vidéo suivante illustre le processus complet, en utilisant le greffon G´MIC-Qt sous GIMP 2.10 :

    Filtre 'Layers / Spatial Blend Multi-Layers'

    3.2. Filtres de déformations

    Passons maintenant à un ensemble de nouveaux effets disponibles pour déformer vos images un peu dans tous les sens.

    Avec tout d’abord un premier filtre Deformations / Distort [RBF], qui déforme une image à partir de points clés définis par l’utilisateur et d’une fonction d’interpolation de type RBF (Fonction de base radiale) dont la formule mathématique est spécifiable par l’utilisateur.

    Filtre 'Deformations / Distort (RBF)'
    Fig.3.2.1. Le filtre Deformations / Distort [RBF] permet d’appliquer des déformations variées, basées sur des RBFs. Ici, en spécifiant la fonction de base radiale phi(r) = log(0.1+r).

    Mentionnons ensuite l’apparition d’une nouvelle catégorie Map Projection, qui contient 14 filtres différents dédiés à la transformation de cartes initialement sous la forme de projection cylindrique équidistante (cartes équirectangulaires), pour les convertir sous la forme d’autres types de projections. Cette série de filtre est une contribution de Kristian Järventaus, un membre du Cartographers Guild forum, forum spécialisé dans la cartographie.

    Filtres de la catégorie 'Map Projection'
    Filtres de la catégorie 'Map Projection'
    Fig.3.2.2. La nouvelle catégorie de filtres Map Projection propose plusieurs algorithmes de projection de cartes géographiques.

    Notons également l’arrivée du filtre Deformations / Square to Circle [alt], dont le but est de transformer tout rectangle (ou carré) centré dans une image, en une ellipse (ou un cercle), et vice-versa. Un filtre certes très spécialisé, avec évidemment peu d’applications évidentes au premier abord, mais le jour où on en a besoin, on est bien content de l’avoir sous la main ! Nous l’avons par exemple utilisé ci-dessous pour transformer un cadre de peinture initialement rond, en un cadre carré :

    Filtre 'Deformations / Square to Circle (alt)'
    Filtre 'Deformations / Square to Circle (alt)'
    Fig.3.2.3. Le filtre Deformations / Square to Circle [alt] permet de convertir des objets carrés ou rectangulaires en objets ronds ou elliptiques, et inversement.

    Enfin, terminons cette revue des nouveaux filtres de déformations d’images, avec le filtre Deformations / Poincarré Disk. Celui-ci permet d’une part de générer des disques de Poincaré, une famille de figures géométriques basées sur des géométries hyperboliques, comme illustrée sur la figure suivante :

    Filtre 'Deformations / Poincaré Disk'
    Fig.3.2.4. Quelques exemples de disques de Poincaré, générés par le filtre Deformations / Poincaré Disk.

    Mais là où ça devient intéressant, c’est que ce filtre permet aussi de déformer des images en les projetant sur ces géométries si particulières :

    Filtre 'Deformations / Poincaré Disk'
    Fig.3.2.5. Projection d’une image sur un disque de Poincaré.

    Par exemple, nous avons utilisé ce filtre (avec quelques modifications maison) pour générer la courte animation suivante, « Survol de la planète Poincaré », qui illustre les étonnantes propriétés fractales de ces bizarreries géométriques :

    Filtre 'Deformations / Poincaré Disk'

    3.3. Filtres de dégradations

    Il arrive que l’on cherche volontairement à dégrader des images, soit pour simuler une altération réelle (par exemple un flou de bougé, du bruit de capteurs…), soit dans la recherche d’un effet purement esthétique (Glitch Art). Dans ces buts, les nouveaux effets suivants ont été ajoutés à G’MIC :

    • Les filtres Rendering / CRT Scanlines et Degradations / CRT Phosphors cherchent à imiter la restitution d’images sur des écrans à tube cathodique (CRT), en simulant deux effets caratéristiques de ces types d’afficheurs, à savoir l’effet Scanline et l’affichage par phosphores. Ces deux filtres ont été réalisés en collaboration avec Romain Hérault, nouveau contributeur (qui a rejoint le GREYC récemment).

    Filtre 'Rendering / CRT Scanlines'
    Fig.3.3.1. Le filtre Rendering / CRT Scanlines imite l’effet « Scanline » typique des afficheurs CRT.

    Filtre 'Degradations / CRT Phosphors'
    Fig.3.3.2. Le filtre Degradations / CRT Phosphors quant à lui simule la technique d’affichage par phosphore lumineux des afficheurs CRT.

    • Le filtre Degradations / Blur [Motion] permet, lui, de synthétiser un flou de bougé, avec des trajectoires de type splines possiblement complexes, réglables par l’utilisateur directement en modifiant des points clés dans la fenêtre de prévisualisation de G’MIC-Qt, comme illustré sur la figure ci-dessous :

    Filtre 'Degradations / Blur (Motion)'
    Fig.3.3.3. Le filtre Degradations / Blur [Motion] simule un flou de bougé.

    • Le filtre Degradations / Sloppy Mess est quant à lui plutôt destiné aux amateurs de Glitch Art. C’est l’un des premiers filtres d’un nouveau contributeur, Prawnsushi, qui s’est récemment intéressé au langage G’MIC pour la création de filtres. C’est un effet un peu long à calculer, mais qui possède de nombreux paramètres et une grande palette de rendus différents.

    Filtre 'Degradations / Sloppy Mess'
    Fig.3.3.4. Le filtre Degradations / Sloppy Mess crée volontairement des artefacts numériques artistiques sur vos images.

    3.4. Filtres de rendu et de textures

    Les filtres de rendu ont cette particularité de ne pas nécessiter d’images d’entrée pour fonctionner, puisqu’ils créent de nouvelles images (ou de nouveaux calques) en partant de zéro, par génération procédurale.

    • Le filtre Rendering / Underwoods, un deuxième filtre réalisé par Prawnsushi, n’est rien de moins qu’un générateur de sous-bois ! On pourra nous dire que ça ne sert pas forcément à grand-chose, et évidemment ce n’est pas un filtre qui va être indispensable aux traiteurs d’images, photographes ou illustrateurs pour leur travail de tous les jours.

    Mais en quelque sorte, ce filtre illustre pourtant toute la philosophie du projet G’MIC : Produire un logiciel qui favorise la créativité algorithmique, facilite l’implémentation de toutes sortes de filtres (utiles ou moins utiles), et permet le libre partage avec des utilisateurs. En pratique, ce filtre a le mérite d’exister, chacun peut l’essayer, et il n’utilise que peu de ressources mémoire (quelques dizaines d’octets, grâce à la compacité du langage G’MIC par construction). Et en plus, les résultats sont plutôt cool ! Et soyez assurés qu’il servira immanquablement, un jour ou l’autre, à un artiste voulant synthétiser une image de sous-bois en deux clics de souris !

    Filtre 'Rendering / Underwoods'
    Filtre 'Rendering / Underwoods'
    Fig.3.4.2. Exemples de rendus d’images de sous-bois par le filtre Rendering / Underwoods.

    • Le filtre Patterns / Reaction-Diffusion synthétise des textures du type de celles qu’on rencontre dans la modélisation des systèmes de Réaction-Diffusion.

    Filtre 'Patterns / Reaction-Diffusion'
    Fig.3.4.3. Le filtre Patterns / Reaction-Diffusion dans le greffon G’MIC-Qt.

    Là encore, l’intérêt de ce type de filtres peut paraître assez limité. Pourtant c’est l’exemple même de texture qui peut servir de base à la création d’œuvres d’art génératif. Prenez une texture créée par ce filtre, appliquez-lui quelques-uns des autres effets disponibles dans G’MIC (au hasard, le filtre Deformations / Drop Water), et vous voilà prêt à produire des animations amusantes, telles que celle ci-dessous :

    Filtre 'Patterns / Reaction-Diffusion'

    • Le filtre Rendering / Spline Spirograph s’inspire du jeu du Spirographe pour le processus de génération de courbes paramétriques, créant des effets de texture et de couleurs intrigants. La présence du bouton Paramètres aléatoires dans le greffon G’MIC-Qt est ici plus que bienvenue, pour obtenir rapidement un panorama varié des résultats possibles de ce filtre !

    Filtre 'Rendering / Spline Spirograph'
    Filtre 'Rendering / Spline Spirograph'
    Fig.3.4.1. Le filtre Rendering / Spline Spirograph et quelques exemples de rendus possibles.

    Ce filtre propose également un mode de sortie animé, produisant plusieurs calques consécutifs qui représentent différentes frames d’une animation, ce qui permet de synthétiser de courtes vidéos comme celle-ci :

    Filtre 'Rendering / Spline Spirograph'

    • Le filtre Rendering / ABN Filigrees sait lui aussi tracer des courbes paramétriques intéressantes, en s’inspirant cette fois des filigranes que l’on trouve sur les certificats d’actions ou de papier-monnaie. Ce filtre rend hommage à l’American Bank Note Company, un graveur de papier financier ayant été actif à Wall Street du milieu du XIXᵉ siècle jusqu’à il y a une soixantaine d’années.

    Filtre 'Rendering / ABN Filigrees'
    Fig.3.4.4. Le filtre Rendering / ABN Filigrees en action.

    Ce filtre a été réalisé par Garry Osgood, contributeur de longue date et rédacteur des pages de tutoriels du projet. Garry a détaillé tous les aspects techniques de ce filtre-là en particulier, sur cette page.

    • Le filtre Rendering / Random Signature est lui aussi un générateur de courbes amusant : il se propose de dessiner des signatures aléatoires, comme l’illustre la vidéo ci-dessous :

    Filtre 'Rendering / Random Signature'
    Fig.3.4.4. Le filtre Rendering / Random Signature permet de créer des signatures aléatoires.

    Là encore, un filtre dont l’utilité ne peut pas faire débat : « C’est complètement inutile, donc rigoureusement indispensable ! ».

    • Et pour finir cette section, citons le filtre Rendering / Twisted Rays qui génère, comme son nom l’indique, un effet de rayons torsadés. Là encore, l’utilisation de ce filtre restera probablement assez confidentielle. Mais qui sait si dans les milliers d’utilisateurs de G’MIC, il n’y a pas justement quelqu’un qui cherchait à réaliser cet effet en particulier ? Et bien maintenant, il peut ! ☺

    Filtre 'Rendering / Twisted Rays'
    Fig.3.4.5. Le filtre Rendering / Twisted Rays crée un tourbillon de rayons sur vos images.

    Ce filtre peut par exemple être utilisé pour créer ce genre d’effets animés psychédéliques :

    Filtre 'Rendering / Twisted Rays'

    3.5. Effets artistiques

    Et pour finir avec cette énumération des nouveaux filtres de G’MIC, voici quelques filtres en vrac, que l’on va regrouper sous la dénomination « Artistique » (c’est généralement le terme employé dans les logiciels de traitement d’images, pour qualifier des filtres qu’on ne sait pas trop catégoriser…).

    • Le filtre Artistic / Stringify décompose une image d’entrée en blobs de couleurs quantifiés, et relie les points (sous-échantillonnés) localisés sur les contours de ces blobs par des segments de couleur. Là encore, le rendu peut faire penser aux courbes que l’on obtient avec le jeu du Spirographe.

    Filtre 'Artistic / Stringify'
    Fig.3.5.1. Le filtre Artistic / Stringify crée des abstractions d’images à partir de segments de couleur.

    • Le filtre Black & White / Filaments est lui, basé sur le lancer de milliers de particules à partir d’un ou plusieurs bords de l’image, avec des trajectoires qui sont déformées par la géométrie des contours de l’image. Le tracé de ces milliers de trajectoires avec des couleurs semi-transparentes permet de produire ce genre d’images :

    Filtre 'Black & White / Filaments'
    Filtre 'Black & White / Filaments'
    Fig.3.5.2. Le filtre Black & White / Filaments transforme vos images en ensembles de filaments qui se déforment.

    • Le filtre Arrays & Tiles / Loose Photos simule un effet de lancer de photos en vrac sur une table, de telle manière que le contenu des photos recrée une image globale, spécifiée comme entrée du filtre. Beaucoup de paramètres sont réglables (densité, taille et ratio des photographies, paramètres d’ombrage, etc.), afin de laisser à l’utilisateur une grande liberté sur le choix du rendu final.

    Filtre 'Arrays & Tiles / Loose Photos'
    Fig.3.5.3. Exemple de rendu par le filtre Arrays & Tiles / Loose Photos.

    • Le filtre Rendering / Quick Copyright, qui existait déjà dans les versions précédentes, a été ré-implémenté à partir de zéro. Il s’agit d’un filtre facilitant l’insertion d’un texte de copyright (ou d’une signature texte) sur une image numérique. Il possède maintenant de nombreux paramètres permettant de régler finement la position du texte, sa taille, sa fonte, etc. Combiné avec les possibilités d’automatisation du langage G’MIC, c’est un filtre avantageux pour insérer facilement du texte, de manière normalisée, sur des milliers de photographies.

    Filtre 'Rendering / Quick Copyright'
    Fig.3.5.4. Le filtre Rendering / Quick Copyright en action pour l’insertion de texte de copyright sur une image.

    • Et enfin, le filtre Patterns / Random Rectangles transforme une image en une partition aléatoire de rectangles colorés, pour donner un effet d’abstraction d’image, s’inspirant vaguement du style de certains tableaux de Piet Mondrian.

    Filtre 'Patterns / Random Rectangles'
    Fig.3.5.5. Le filtre Patterns / Random Rectangles crée une partition colorée de rectangles aléatoirement placés sur l’image.

    Là encore, on peut imaginer utiliser ce filtre pour générer des textures qui pourront par exemple servir à décorer des objets, comme cela a été fait dans l’animation ci-dessous (en partant d’une image de bruit pur) :

    Filtre 'Patterns / Random Rectangles'

    4. Un logiciel aux utilisations variées

    Comme nous avons essayé de vous le montrer, G’MIC possède de multiples facettes, avec une vaste palette d’applications. La communauté des utilisateurs ne se limite d’ailleurs pas aux artistes numériques, mais comporte également des chercheurs, des programmeurs, des algorithmiciens… Nous montrons ci-dessous quelques autres utilisations variées du logiciel.

    • Débruitage d’images du JWST :

    En octobre 2023, nous avons appris par l’intermédiaire de M.J. McCaughrean, chercheur senior à l´ESA (European Spatial Agency) (parti à la retraite en 2024), que G´MIC était utilisé par certaines personnes au sein de l’ESA pour traiter des images provenant du James Webb Space Telescope (JWST), en particulier pour l’atténuation du bruit fréquentiel apparaissant sur certaines images acquises par le télescope (via le filtre Repair / Banding Denoise notamment).

    G’MIC a par exemple été utilisé (entre autres logiciels) pour la réalisation de l’image de couverture du magazine Nature, vol. 622, issue 7981 du 5 octobre 2023, comme confirmé par M.J. McGaughrean, et indiqué d’ailleurs dans la publication associée, dont il est le co-auteur.

    Utilisation de G’MIC par l’ESA
    Fig.4.1. Utilisation de G´MIC dans le cadre du débruitage d’images de la proto-étoile Herbig-Haro 211, acquises par le JWST.

    Pour nous les développeurs, ça a vraiment été une bonne surprise d’apprendre ça, et de nous rendre compte que G´MIC était utilisé dans le domaine de l’astrophysique.

    • Code créatif :

    G’MIC se révèle être un allié précieux lorsque l’on cherche à faire du code créatif, de par sa capacité à générer/manipuler facilement des images, et de par sa bibliothèque standard d’opérateurs fournie. Durant cette année écoulée, nous nous sommes amusés à explorer ses possibilités pour la création algorithmique d’images et d’animations, dont voici un petit florilège :

    Commençons tout d’abord par cette petite animation de flocons de neige tourbillonnants (code source, 30 lignes) :

    Animation de flocons de neige
    Fig.4.2. Animation de flocons de neige, générée par un script G´MIC.

    Puis enchaînons avec cette variante amusante du jeu de Pierre-Feuille-Ciseaux, où l’on fait d’abord jouer consécutivement chaque pixel d’une image (dont les valeurs initialement aléatoires représentent soit 0 : une pierre, 1 : une feuille, ou 2 : des ciseaux) avec ses 8 voisins, en gardant à chaque fois l’élément qui a été gagnant le plus souvent. Dans un deuxième temps, on stylise la séquence de ces différentes images de labels, là encore, avec le filtre Drop Water, pour aboutir à l’animation suivante, que l’on pourrait intituler « La soupe de l’enfer » (code source, 30 lignes),

    Animation du jeu Pierre-Feuille-Ciseaux
    Fig.4.3. Animation du jeu de Pierre-Feuille-Ciseaux, où tous les pixels d’une image jouent simultanément.

    Et enfin, (re-)plongeons dans le monde merveilleux des fractales de Mandelbrot, tout d’abord avec ce rendu de l’ensemble de Mandelbrot utilisant la technique du Orbit Trap permettant de faire un rendu en y plaquant une image couleur :

    Rendu de l’ensemble de Mandelbrot par la méthode de l’« Orbit Trap »
    Fig.4.4. Rendu de l’ensemble de Mandelbrot par la méthode du Orbit Trap.

    Puis, avec un autre type de rendu, connu sous le nom de Buddhabrot, mais ici en considérant des séries complexes de type zn+1 = zn^p + c, et en faisant varier linéairement l’exposant réel p entre 0 et 6 (plutôt qu’en gardant p=2 comme pour l’ensemble de Mandelbrot classique), pour générer chaque image de l’animation ci-dessous (code source et détails sur cette page) :

    Rendu de type 'Buddhabrot' pour des séries complexes avec exposant
    Fig.4.5. Variations fractales autour du Buddhabrot.

    À noter que pour générer ces images du Buddhabrot modifié à bonne résolution, cela requiert déjà un temps de calcul important (quelques minutes par image). Je trouve cette animation intrigante : il est assez facile d’y retrouver/halluciner des formes familières quand on regarde en détail certaines frames de l’animation, un peu comme quand on regarde les nuages dans le ciel (si vous croyez apercevoir dans cette animation, une tête d’ours, un vieux monsieur assis, une silhouette de personnage, une tête de dragon… alors vous n’êtes pas les seuls à être un peu rêveurs ☺).

    • Conversion d’images pour le String Art :

    Le String Art est une forme de création artistique caractérisée par l’utilisation de fils de couleurs reliés entre des points (le plus souvent des clous) pour former un motif ou reproduire une photographie (classiquement des portraits). Dans un but d’expérimentation, nous avons écrit un script G’MIC qui cherche à transformer une image d’entrée en niveaux de gris choisie par l’utilisateur, sous la forme d’une série d’instructions à suivre pour relier des clous numérotés avec un fil monochrome, afin de reproduire l’image le plus fidèlement possible (en considérant les contraintes propres à ce mode de création) :

    Tentative d’utilisation de G´MIC pour le 'String Art'
    Fig.4.6. Tentative plus ou moins réussie d’utilisation de G´MIC pour le String Art.

    Saurez-vous reconnaitre qui est censé être représenté sur la photo ci-dessous (il n’y a rien de spécial à gagner…) ? Une tentative pas forcément couronnée de succès, qui mériterait d’être approfondie (notamment en gérant des fils de différentes couleurs), mais qui illustre cependant les possibilités multiples d’expérimentations que permet le cadriciel G’MIC !

    • Autres liens connexes :

    Pour finir, citons ces quelques liens en vrac, qui permettent d’apprécier la polyvalence de G’MIC :

    1. Stéganographie : Ou comment cacher des données dans une image de bruit ? La commande rand est capable de générer des valeurs aléatoires à densité, c’est-à-dire dont la densité de probabilité est une fonction spécifiée par l’utilisateur. Cela a par exemple comme application de cacher des images de taille 256x256 dans des histogrammes d’images de bruit à 16bits/canal, comme détaillé sur cette page.
    2. Galeries artistiques : Ivelieu et Gannjondal sont deux artistes fréquentant le site Deviant Art qui utilisent parfois G´MIC dans leur processus de création artistique. Allez faire un tour sur leurs galeries respectives, ça vaut le coup d’œil !

    Images de la galerie d’Ivelieu
    Fig.4.7. Quelques réalisations de Ivelieu / Devian Art.

    Images de la galerie de Gannjondal
    Fig.4.8. Quelques réalisations de Gannjondal / Devian Art.

    1. Nous avons appris que la prochaine version du programme de gestion de photos digiKam 8.4.0 inclura un outil de traitement G’MIC au sein du Batch Queue Manager, ce qui permettra aux utilisateurs de digiKam d’intégrer les filtres G’MIC dans les flux de travail de post-traitement.
    2. Thiojoe est un Youtubeur produisant des vidéos autour de la technologie, et programmeur à ses heures. Il a commencé à développer un outil libre basé sur G´MIC pour générer facilement des animations, outil que vous pouvez retrouver ici. Ne fonctionne que sous Windows pour le moment, mais nous garderons un œil dessus.
    3. Enfin, mentionnons la chaîne Youtube de JustCallMeInsane, illustratrice numérique utilisant Krita. Elle a récemment réalisé une série de vidéos qui explore les différentes catégories de filtres du greffon G´MIC-Qt pour Krita. On espère en passant que l’équipe de développement de Krita, qui gère sa propre version du greffon, pourra le mettre à jour assez rapidement.

    5. Conclusion

    On pourrait résumer cette dépêche en disant que le projet G’MIC « continue son petit bonhomme de chemin ».

    G’MIC reste bien sûr un projet modeste, développé et maintenu par une petite équipe (de passionnés), mais avec un nombre d’utilisateurs croissant et des retours d’utilisation de plus en plus variés. Ce cadriciel a la chance de pouvoir être développé au sein du GREYC, un laboratoire de recherche publique assurant au projet un contexte de développement favorable, d’être soutenu par les tutelles du laboratoire (l’institut « Sciences Informatiques » du CNRS, l’Université de Caen et l’ENSICAEN) et même encouragé par la direction dudit laboratoire.

    Et même si le plus gros du développement sur ce projet a probablement déjà été réalisé (plus de 15 ans de développement quand même), nous sommes confiants dans le fait que nous allons continuer à faire évoluer G’MIC, en tout cas, tant qu’on verra qu’il peut s’avérer utile aux traiteurs et traiteuses d’images de tout poil ! Et nous en reparlerons certainement dans une prochaine dépêche.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇Korben
    • SocialScreenshots – Mettez en valeur vos captures écran sans effort
      Vous rêvez de créer des visuels de fou pour vos réseaux sociaux ? Ne cherchez plus, SocialScreenshots est là ! Développé par Gabriel, un jeune développeur toulousain de 29 ans, cet outil ingénieux vous permet de capturer, recadrer et améliorer vos captures d’écran en quelques clics, directement depuis votre navigateur. Inspiré par l’interface de Screen Studio, Gab a développé son site uniquement avec ReactJS et canvas, en créant lui-même tout l’habillage et le résultat est très sympa !

    SocialScreenshots – Mettez en valeur vos captures écran sans effort

    Par : Korben
    26 mai 2024 à 17:03

    Vous rêvez de créer des visuels de fou pour vos réseaux sociaux ?

    Ne cherchez plus, SocialScreenshots est là ! Développé par Gabriel, un jeune développeur toulousain de 29 ans, cet outil ingénieux vous permet de capturer, recadrer et améliorer vos captures d’écran en quelques clics, directement depuis votre navigateur.

    Inspiré par l’interface de Screen Studio, Gab a développé son site uniquement avec ReactJS et canvas, en créant lui-même tout l’habillage et le résultat est très sympa !

    Grâce à ce site, vous pouvez créer un screenshot directement depuis un site web, puis le recadrer automatiquement au format voulu (Pour X, Facebook, Instagram, Linkedin et les résolutions d’écran classiques), et l’améliorer grâce à l’éditeur afin d’obtenir des rendus dignes d’un graphiste en herbe en ajoutant une ombre, en arrondissant les coins, et en choisissant un joli fond ou un dégradé pour l’arrière-plan.

    C’est gratuit, y’a pas de filigrane ni de limite de temps, vous n’avez rien à installer et pas même besoin de créer un compte. Et toutes les manipulations se font localement dans votre navigateur, pour un maximum de simplicité et de confidentialité.

    À découvrir ici

    • ✇Korben
    • Créez votre avatar IA en un clin d’oeil avec PuLID
      Développé par une équipe de chez ByteDance (mais si, TikTok, votre réseau social préféré), ce modèle baptisé PuLID va vous permettre de créer des images sur-mesure à partir de photos existantes et tout ça en un clin d’œil. Basé sur le principe d’alignement contrastif, PuLID vous offre une customisation d’identité ultra rapide et de haute qualité. Pour cela, il utilise une architecture qui apprend à la volée les caractéristiques clés d’une identité source (des photos de vous) pour les transp

    Créez votre avatar IA en un clin d’oeil avec PuLID

    Par : Korben
    18 mai 2024 à 11:38

    Développé par une équipe de chez ByteDance (mais si, TikTok, votre réseau social préféré), ce modèle baptisé PuLID va vous permettre de créer des images sur-mesure à partir de photos existantes et tout ça en un clin d’œil.

    Basé sur le principe d’alignement contrastif, PuLID vous offre une customisation d’identité ultra rapide et de haute qualité. Pour cela, il utilise une architecture qui apprend à la volée les caractéristiques clés d’une identité source (des photos de vous) pour les transposer efficacement sur de nouvelles images cibles (images générées par IA). On obtient alors des visuels uniques générés en quelques secondes à peine, tout en préservant la cohérence des photos d’origine.

    Bon, ok, ça peut paraître un peu barbare dit comme ça mais c’est super simple à utiliser. Si vous êtes flemmard, vous pouvez aller directement sur Huggingface ou pour les plus courageux, l’installer sur votre machine. Tout ce dont vous avez besoin, c’est d’un bon vieux Pytorch (version 2.0 minimum svp) et de quelques lignes de code pour démarrer l’entraînement.

    PuLID (Pure and Lightning ID Customization via Contrastive Alignment) fonctionne en utilisant des techniques de machine learning pour aligner des représentations latentes en comparant des paires d’images ou d’identités. L’objectif est de maximiser la similarité pour des identités similaires et de minimiser la similarité pour des identités différentes. En ajustant ces représentations grâce à l’alignement contrastif, PuLID permet de créer des images uniques avec une grande précision et rapidité.

    Si vous bossez dans la comm et que ous avez déjà quelques concepts arts sympas d’un personnage, mais vous aimeriez voir à quoi il ressemblerait dans différents environnements ou avec des styles graphiques variés, pas de souci ! Vous balancez vos images dans PuLID avec les bonnes instructions et le tour est joué. Vous obtiendrez alors tout un tas de variations stylées de votre personnage, tout en gardant son visage reconnaissable.

    L’équipe de ByteDance a pensé à tout : PuLID est 100% open-source et disponible sur GitHub. Vous pouvez donc bidouiller le code comme bon vous semble pour l’adapter à vos besoins. Y’a même des tutoriels et des exemples pour vous aider à prendre en main le bouzin rapidement.

    Et pour les plus impatients d’entre vous, voici un petit tuto d’installation pour commencer à jouer avec PuLID :

    Pré-requis :

    Étapes d’installation :

    1. Cloner le dépôt PuLID :
    git clone https://github.com/ToTheBeginning/PuLID.git
    cd PuLID
    

    Créer et activer l’environnement conda :

    conda create --name pulid python=3.10
    conda activate pulid
    

    Installer les dépendances :

    pip install -r requirements.txt
    

    Installer PyTorch : Suivez les instructions sur le site de PyTorch pour installer la version compatible avec votre système. Par exemple, pour CUDA 11.7 :

    conda install pytorch torchvision torchaudio cudatoolkit=11.7 -c pytorch
    

    Lancer l’application :

    python app.py
    

    Pour en savoir plus sur PuLID et récupérer le code source, rendez-vous sur le repo GitHub.

    Allez, je vous laisse vous amuser avec votre nouveau jouet. Un grand merci à Lorenper pour l’info. Grâce à toi, on va pouvoir personnaliser nos avatars comme jamais.

    Source

    • ✇Korben
    • Les secrets dans Docker – Le cauchemar des fuites de données dans vos images
      Vous pensiez que vos secrets étaient en sécurité dans vos images Docker ? Détrompez-vous ! Une étude de l’Université d’Aix-la-Chapelle a révélé que près de 10% des images publiques sur DockerHub contenait des secrets (donc des identifiants, des clés API, des mots de passe, des endpoints sensibles…Etc). Ça fait froid dans le dos. On parle de plus de 50 000 clés d’API et d’identifiants accessibles publiquement. Et ce n’est que la partie émergée de l’iceberg puisque les chercheurs de Redhu

    Les secrets dans Docker – Le cauchemar des fuites de données dans vos images

    Par : Korben
    17 mai 2024 à 09:00

    Vous pensiez que vos secrets étaient en sécurité dans vos images Docker ? Détrompez-vous ! Une étude de l’Université d’Aix-la-Chapelle a révélé que près de 10% des images publiques sur DockerHub contenait des secrets (donc des identifiants, des clés API, des mots de passe, des endpoints sensibles…Etc).

    Ça fait froid dans le dos.

    On parle de plus de 50 000 clés d’API et d’identifiants accessibles publiquement. Et ce n’est que la partie émergée de l’iceberg puisque les chercheurs de Redhunt Labs ont aussi trouvé plus de 46 000 Dockerfiles exposant des infos sensibles. Bref, c’est la fête du slip côté sécurité !

    Mais comment ces secrets se retrouvent-ils à fuiter comme une passoire ? Et bien c’est souvent, c’est à cause d’opérations de fichiers trop permissives, de secrets mis en dur dans les Dockerfiles…etc

    Par exemple, beaucoup de tutos et même la doc officielle de Docker suggèrent d’utiliser COPY . . pour copier tout le répertoire courant dans l’image. Sauf que ça inclut aussi les fichiers sensibles comme .env ou l’historique Git. Pas top pour la confidentialité.

    Et même si vous supprimez ces fichiers sensibles après le COPY, ils restent présents dans les couches précédentes de l’image. Un attaquant pourra donc toujours y accéder. Merci les layers 🙂

    Autre coup classique : mettre directement les secrets dans le Dockerfile ou les passer en argument au build. Là encore, c’est cadeau pour les hackers. Un simple docker history --no-trunc et hop, vos secrets sont à nu.

    Heureusement, il existe des solutions pour sécuriser tout ça. Par exemple, les builds multi-stages permettent d’isoler les secrets dans une étape intermédiaire qui ne sera pas conservée dans l’image finale. Et depuis peu, BuildKit propose une option --secret pour injecter les secrets sans les stocker dans l’image, mais attention aux pièges ! Si votre app log le secret qu’elle utilise, il finira quand même dans l’image. Les builds multi-stages restent donc plus safe de ce côté là.

    Bref, vous l’aurez compris, la gestion des secrets dans Docker, c’est pas de la tarte mais en suivant les bonnes pratiques, vous pourrez limiter les risques.

    Bref, pensez builds multi-stages, utilisez .dockerignore, oubliez les secrets en dur et n’abusez pas des arguments de build. Et surtout, ayez le réflexe d’auditer vos images avec des outils comme TruffleHog. Parce qu’un secret qui fuite, c’est votre réputation qui coule.

    • ✇Korben
    • Jpegli – La lib JPEG nouvelle génération de Google
      Google vient de publier en open source une nouvelle bibliothèque de codage JPEG appelée Jpegli qui permet de compresser vos images 35% plus efficacement qu’avec les codecs JPEG traditionnels, tout en conservant une qualité d’image supérieure. Non seulement Jpegli est rétrocompatible avec le standard JPEG original, mais en plus il offre des fonctionnalités intéressantes comme le support des composantes 10 bits et plus, ce qui permet d’éliminer les vilains artefacts dans les dégradés pour avo

    Jpegli – La lib JPEG nouvelle génération de Google

    Par : Korben
    3 avril 2024 à 22:44

    Google vient de publier en open source une nouvelle bibliothèque de codage JPEG appelée Jpegli qui permet de compresser vos images 35% plus efficacement qu’avec les codecs JPEG traditionnels, tout en conservant une qualité d’image supérieure.

    Non seulement Jpegli est rétrocompatible avec le standard JPEG original, mais en plus il offre des fonctionnalités intéressantes comme le support des composantes 10 bits et plus, ce qui permet d’éliminer les vilains artefacts dans les dégradés pour avoir un rendu beaucoup plus ultra-smooth ^^.

    Pour cela, Jpegli utilise de la quantification adaptative et une sélection améliorée des matrices de quantification. En gros, ça réduit le bruit, améliore la qualité d’image, et ça fait des miracles sur la taille des fichiers.

    De plus, Jpegli reste aussi rapide que les solutions de codage actuelles, donc vous pouvez intégrer cette merveille dans vos workflows sans sacrifier les performances. Alors voilà, si vous voulez donner un coup de boost à vos sites web et offrir de meilleures images plus belles et plus légères, allez jeter un œil à Jpegli ! Pour le moment, y’a pas encore d’outils de conversion mais les sources sont dispo sur le Github, alors y’a plus qu’à attendre que le monde se l’approprie.

    Source

    • ✇LinuxFr.org : les dépêches
    • Sortie de GIMP 2.99.18 (version de développement)
      Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.99.18 du 21 février 2024 (en anglais). Voici enfin la dernière version de développement avant GIMP 3 ! Bien que la sortie de la version 2.99.18 soit un peu en retard par rapport au planning espéré, celle-ci contient un certain nombre de fonctionnalités et d'améliorations que nous sommes ravis de pouvoir partager avec vous. ⚠️ ☢️ Nous vous rappelons qu'une version de développement sert à présenter les travaux

    Sortie de GIMP 2.99.18 (version de développement)

    Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.99.18 du 21 février 2024 (en anglais).

    Voici enfin la dernière version de développement avant GIMP 3 ! Bien que la sortie de la version 2.99.18 soit un peu en retard par rapport au planning espéré, celle-ci contient un certain nombre de fonctionnalités et d'améliorations que nous sommes ravis de pouvoir partager avec vous.

    ⚠️ ☢️ Nous vous rappelons qu'une version de développement sert à présenter les travaux en cours, mais vous permet aussi de détecter et signaler les problèmes au plus tôt. En d'autres termes, cette version est instable et nous ne recommandons pas son usage en production. Utilisez-là parce que vous voulez aider à améliorer GIMP en signalant des bogues.

    En particulier, cette version 2.99.18 est peut-être l'une des versions les plus instables de la série 2.99 à cause du projet « space invasion » (NDT : « invasion venue de l'espace », un jeu de mots avec l'anglais colorspace signifiant espace de couleurs). Cela est parfaitement attendu et normal. ⚠️ ☢️

      Sommaire

      Cette dépêche présente les changements les plus notables et les plus visibles. En particulier, elle ne contient pas de liste exhaustive des correctifs de bogues ou des améliorations un peu moins importantes. Pour une liste plus complète des changements, nous vous invitons à consulter le fichier NEWS ou à jeter un coup d’œil à l'historique du dépôt Git.

      L'invasion de l'espace (des couleurs) !

      Nous avons travaillé dur sur le projet Space Invasion, qui est — comme vous vous en rappelez peut-être — le nom de code que nous avons donné au projet visant à rendre GIMP plus correct en ce qui concerne les couleurs.

      Ces derniers temps, nous avons réalisé le portage des anciennes structures de couleurs utilisées en interne (GimpRGB, GimpCMYK, GimpHSV…) dont nous nous servions pour stocker les informations de couleurs vers GeglColor. Cet objet générique peut contenir n'importe quelle donnée de couleur, quel que soit le modèle colorimétrique, la précision ou l'espace, du moment que ceux-ci sont pris en charge par babl, notre moteur pour l'encodage des pixels.

      En ce qui concerne la justesse des couleurs, cela signifie que nous ferons maintenant les conversions de couleurs uniquement si cela est nécessaire (conversions à la dernière minute), ce qui permettra de ne pas perdre d'information lorsque cela peut être évité. Par exemple, imaginons que vous utilisiez la pipette à couleurs sur une image : si nous convertissions cette couleur vers un format intermédiaire avant de l'utiliser sur une autre image (qui peut avoir le même format de couleurs ou un format différent), deux conversions auraient lieu. Cela augmente les possibilités de perte de précision. Ce problème est encore plus flagrant si les formats d'entrée et de sortie sont les mêmes (autrement dit, lorsqu'aucune conversion n'est nécessaire). Et cela sera encore plus problématique lorsque le modèle CMJN sera pris en charge nativement (nous voulons éviter à tout prix de faire un aller-retour entre un format intermédiaire et le CMJN, qui n'a pas de relation bijective avec la plupart des autres modèles de couleurs, même en travaillant sans bornes et en ignorant les problèmes de précision).

      Définition d'un espace non borné (ajout par rapport à la dépêche originelle) : lorsque la précision est entière, l'espace est toujours borné (par exemple [0-255] en 8-bit). Par contre, en flottant, où l'espace de travail standard est [0, 1], on peut décider d'accepter les valeurs négatives et supérieures à 1. Cela rend les conversions entre beaucoup d'espaces de couleurs bijectives, aux erreurs de précisions près. Notamment, les conversions entre deux espaces RVB, ou même un espace RVB et divers autres modèles, deviennent bijectives. Ce n'est pas le cas entre RVB et CMJN, même en espace de couleurs infini.

      Nous sommes également en train de migrer le stockage des données de couleur vers ce type d'objet générique. Cela signifie entre autres que les palettes de couleurs pourront comporter des couleurs au format CMJN, CIELAB ou bien encore dans tout autre modèle pris en charge (et pas seulement ces couleurs après une étape de conversion vers le sRVB non borné - « unbounded sRGB »).

      Une conséquence pour la maintenance logicielle est qu'il sera beaucoup plus facile de gérer les conversions de couleurs au sein de notre code, étant donné que cette structure comprend à la fois les données et leur « signification ». Cela rend la gestion des couleurs beaucoup moins susceptible d'introduire des bogues par rapport à l'approche précédente, qui consistait à faire suivre les deux types d'information séparément.

      Finalement, nous travaillons à faire apparaître l'information concernant l'espace de couleurs à plusieurs endroits de l'interface où cela est pertinent, par exemple lorsque des données RVB, CMJN, TSL ou TSV sont affichées ou peuvent être choisies. Les valeurs brutes dans ces modèles de couleurs en l'absence de la connaissance de l'espace de couleurs associé n'ont pratiquement aucun sens. L'affichage dans l'interface de valeurs RVB sans autre précision est un reliquat du passé, lorsque cela signifait le plus souvent sRVB. Cela n'est plus vrai dans un contexte graphique moderne et l'interface devrait être claire à ce sujet.

      La vidéo ci-dessous montre quelques aspects de ce travail sur l'interface, par exemple le fait que les modèles RVB, TSV ou CMJN affichent à tout instant l'espace de couleurs dans lequel les valeurs sont considérées (ce qui très souvent correspond au nom du profil ICC). Cela est déjà fait pour la pipette à couleurs, les échantillons de couleurs, l'ancrable des couleurs de premier/d'arrière plan, la boîte de dialogue « Changer la couleur de premier/d'arrière plan », ainsi qu'à d'autres endroits.

      Non seulement cela, mais lorsque les gens sélectionnent un profil d’épreuve sur écran et activent l'épreuve sur écran (par exemple grâce à la nouvelle bascule de simulation qui a été ajoutée dans GIMP 2.99.12), nous afficherons également non seulement la zone hors gamme de l'espace colorimétrique de l'image, mais également celle de l'espace d’épreuve.

      Invasion de l'espace dans l'interface - GIMP 2.99.18
      Invasion de l'espace dans l'interface - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

      Avertissement très important : il s'agit encore une fois d'un portage énorme dans notre base de code, ce qui a impacté littéralement des milliers de lignes de code. Ce travail est inachevé mais il devra être terminé avant la première version candidate. Des instabilités ou des bugs sont à prévoir dans cette mise à jour donc si vous rencontrez un problème, nous recommandons de le rapporter.

      Amélioration des algorithmes de couleur

      Øyvind Kolås a amélioré quelques algorithmes internes :

      • Les pixels achromatiques de l'outil Teinte-Saturation sont désormais un cas spécial afin que les pixels en niveaux de gris (saturation de 0) ne soient modifiés que par le réglage principal, pas par le réglage rouge.
      • Les dégradés en niveaux de gris restent désormais achromatiques même avec "Tramage" coché dans l'outil Dégradé.

      Au fur et à mesure que le projet space invasion avance, obtenir des résultats cohérents devient plus facile dans divers algorithmes liés aux couleurs, nous permettant ainsi de découvrir rapidement les problèmes et de les résoudre.

      Édition non-destructive, première mouture

      Un domaine dans lequel nous sommes « en avance sur le planning » est l'édition non destructive, qui était très demandée ! Les fondations de ces fonctionnalités ont été mises en place par de nombreux développeurs au cours de nombreuses années, depuis l'introduction de GEGL dans GIMP. Bien qu'initialement prévue pour la feuille de route de la version 3.2, une première implémentation a vu le jour en tant que continuation d'un projet Google Summer of Code. Si vous n'êtes pas familier avec ce terme, « édition non destructive » implique notamment que des effets de filtres tels qu'un effet de flou sont stockés séparément des pixels du calque. Cela signifie que si vous désirez plus tard modifier un réglage, réarranger ou même retirer le filtre, vous pouvez le faire très facilement sans affecter le reste de l'image. Jusqu'à présent, GIMP utilisait une procédure d'édition destructive où les effets étaient immédiatement appliqués sur le calque, c'est donc un changement majeur !

      Toute opération GEGL munie d'une interface graphique est désormais appliquée aux calques de manière non destructive. (Les effets non destructifs pour les masques de calques et les canaux sont prévus pour les versions ultérieures.) Cela inclut les greffons GEGL tiers et les opérations personnalisées créées avec notre outil GEGL Graph. Ces effets peuvent être sauvegardés et chargés via les fichiers de projet .xcf, bien que toutes les propriétés GEGL ne soient pas encore prises en charge dans la version actuelle.

      Une fois qu'un filtre a été appliqué, vous pouvez continuer à interagir avec lui en cliquant sur l'icône de filtre dans l'ancrable des calques. Cela ouvrira une boîte de dialogue montrant tous les filtres actuellement appliqués au calque. À partir de là, vous pouvez alterner l'état de visibilité du filtre, modifier ses réglages, réordonner les filtres et retirer les effets un à un. Vous pouvez aussi fusionner tous les filtres et les appliquer à l'image pour retrouver une procédure d'édition destructive.

      Effets non destructifs - GIMP 2.99.18
      Effets non destructifs - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

      Notez bien que tout cela est seulement une première implémentation, et beaucoup de travail reste à faire pour disposer d'une édition non destructive complète et riche. Nous allons continuer à affiner les fonctionnalités existantes pour la sortie de la version 3.0 en nous basant sur les tests et les retours des utilisateurs, et nous les développerons davantage par la suite. L'interface elle-même ne correspond pas à notre vision idéale de cette fonctionnalité, et un premier jet de spécifications a été écrit pour définir un processus d'édition bien plus intégré.

      La capture d'écran ci-dessous est une maquette réalisée à partir de ces premières spécifications. Elle montre les effets de calque placés au sein de la liste principale des calques, partageant les mêmes boutons « œil » et « cadenas », mais également avec leurs propres masques faciles à éditer :

      Maquette des spécifications pour l'application non-destructive d'effets de calque

      Maquette des spécifications : les effets de calque sont visibles directement dans la liste des calques, avec leur propres masques

      Néanmoins, l'implémentation de cette nouvelle interface sera un défi en elle-même et nous avons donc décidé de la remettre à après la sortie de GIMP 3 et de proposer cette première mouture en premier lieu.

      N'hésitez pas à partager vos opinions dans les forums de discussion et dans le suivi des incidents !

      Amélioration de la prise en charge des polices de caractères

      Idriss Fekir, un autre étudiant du GSoC 2023, a travaillé avec Liam Quinn, un développeur de longue date, sur l'amélioration de la prise en charge des polices de caractères par GIMP. Une grande partie de ce travail concerne le code interne de GIMP afin d'améliorer sa capacité à gérer les futures mises à jour de polices et de texte. Certains changements plus visibles sont par exemple :

      • GIMP n'a plus besoin que les noms des polices de caractères soient uniques pour pouvoir les distinguer les unes des autres. Cela signifie qu'il n'ajoutera plus « #1 », « #2 » et ainsi de suite, mais gardera à présent les noms originaux dans la liste de sélection des polices. Malgré des noms apparemment identiques, deux polices avec le même nom fonctionneront désormais correctement.
      • GIMP peut maintenant charger des polices avec des styles personnalisés (en contournant l'utilisation de Pango qui n'est pas capable de les charger).
      • Nous pouvons à présent charger davantage de types de polices qu'auparavant. Si jamais nous ne prenons pas encore en charge une police donnée (ou si elle est inexistante), nous sommes mieux à même de le détecter et nous pouvons nous replier sur une police par défaut. Cela permet d'améliorer la prise en charge d'un fichier .xcf créé sur un autre ordinateur avec différentes polices disponibles.
      • Sous Windows, nous forçons le moteur Pango à toujours utiliser l'anticrénelage. Cela augmente la lisibilité du texte des menus sous ce système d'exploitation, en particulier lorsqu'un thème sombre est utilisé.
      • Le code pour la sauvegarde au format XCF stocke désormais les informations concernant les polices de manière bien plus précise, ce qui aide à éviter de charger une police incorrecte lors de la réouverture d'un fichier XCF.
      • L'alignement du texte dans les calques de texte pour les langues écrites de la droite vers la gauche est maintenant plus cohérent avec la manière dont cela fonctionne dans d'autres programmes (par exemple LibreOffice et Scribus).

      Ces changements sont beaucoup moins voyants que certaines autres fonctionnalités et pourraient sembler moins importants, mais ils constituent en fait les fondations qui permettront d'avoir une gestion du texte bien plus fiable dans GIMP. Notre vision pour le futur est d'avoir une édition de texte plus simple tout en étant plus puissante et plus riche en fonctionnalités (en particulier les fonctionnalités OpenType qui sont quelques-unes des améliorations majeures que nous espérons ajouter un jour ou l'autre).

      Expansion automatique des calques

      Le troisième projet GSoC de l'été dernier par l'étudiant Shubham Daule a apporté une fonctionnalité demandée depuis longtemps : l'expansion automatique de calques ! Les outils de peinture ont désormais une option supplémentaire « Étendre les calques ». Lorsque cette case est cochée, peindre au-delà des limites des calques les fera s'étendre automatiquement afin que vous n'ayez pas à gérer vous-même la taille du calque. Si vous souhaitez étendre le calque au-delà de la taille actuelle du canevas, vous devrez également cocher l'option « Afficher tout » dans le menu Affichage.

      Calques à expansion automatique - démonstration de GIMP 2.99.18
      Calques à expansion automatique - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

      L'option d'expansion des calques comporte également des paramètres supplémentaires lorsqu'elle est sélectionnée. Vous pouvez décider dans quelle mesure vous souhaitez que les limites du calque s'étendent chaque fois que le pinceau les atteint. Il existe également des options pour spécifier comment les nouvelles zones du calque et du masque de calque doivent être remplies une fois étendues.

      Nouvelles options d'alignement

      Le nouveau contributeur mr. fantastic a développé deux nouvelles options pour aligner les calques sur le canevas. Avec « Snap to Bounding Boxes » (« Aligner sur les boîtes englobantes ») activé, des guides dynamiques s'afficheront désormais pour vous montrer quand le calque que vous déplacez est aligné avec le centre ou les côtés des autres. Le calque actif s'alignera également sur ces bordures pour vous aider à les organiser correctement. La deuxième option, « Snap to Equidistance » (« Aligner à équidistance »), vous permet un alignement entre trois calques équidistants les uns des autres.

      Aligner sur les boîtes englobantes et Aligner à équidistance - démonstration de GIMP 2.99.18
      Nouvelles options d'alignement automatique - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

      Thèmes

      Nous avons continué à améliorer l'interface utilisateur et le style de cette version. L’une des améliorations les plus importantes concernait la gestion des « fuites de thèmes système ». Il existe des styles qui n'ont pas été spécifiquement définis dans nos thèmes, donnant ainsi l'opportunité aux règles de style du thème système de "fuiter" de manière conflictuelle dans notre interface. Avec l’aide et les retours de plusieurs contributeurs et utilisateurs, nous avons beaucoup progressé dans la définition de ces styles afin que tous aient une expérience cohérente !

      Récemment, Jehan a travaillé sur la réorganisation et la simplification de notre système de thèmes. Dans les versions de développement précédentes, nous avions cinq thèmes différents : Par Défaut, Gris, Système, Plus Sombre et Compact (chacun avec des options claires et sombres). Ceux-ci ont été simplifiés dans le thème Système et un seul thème par défaut avec trois états possibles : clair, foncé et gris. De même, nos quatre thèmes d'icônes distincts ont été condensés dans l'ensemble Legacy et un thème d'icôns par défaut avec des variantes couleur et symbolique. Nous pensons que ces changements réduiront la confusion des utilisateurs et leur permettront de trouver plus facilement leur apparence d'interface préférée.

      De plus, sous Windows, la barre de titre principale (et la plupart des barres de titre des boîtes de dialogue) s'ajuste désormais au mode clair ou sombre en fonction du thème sélectionné.

      Boîte de dialogue de bienvenue

      La boîte de dialogue de bienvenue a été étendue pour fournir un accès rapide à un certain nombre de fonctionnalités et d'options utiles. Elle comporte ainsi quatre nouvelles sections :

      • Personnaliser : Plusieurs options de personnalisation nécessitent de fouiller dans la boîte de dialogue des Préférences pour être modifiées. À présent, vous pouvez facilement modifier les thèmes de couleurs et d'icônes, la langue et la taille de la police de l'interface utilisateur, ainsi que certains réglages en fonction du système d'exploitation.
      • Créer : Cette section affiche les huit images que vous avez ouvertes en dernier et vous permet de les rouvrir rapidement. Des boutons pour créer une nouvelle image ou pour en charger une existante sont également présents. À l'instar d'autres programmes, vous pouvez demander à ce que cet écran apparaisse automatiquement au démarrage de GIMP pour un accès direct à ces fonctionnalités.
      • Contribuer : Nous avons réuni ici quelques-unes des nombreuses façons dont vous pouvez participer au développement de GIMP. Cette section comporte des liens pour le signalement de bogues, pour écrire du code, pour aider aux traductions ou pour faire un don.
      • Notes de version : Précédemment, le lien vers ces notes étaient affichées dans la moitié inférieure de la boîte de dialogue de bienvenue. À présent, nous avons un onglet entier dédié à ces notes pour une lecture plus aisée.

      Formats de fichiers

      Comme cela était déjà le cas avec les versions précédentes, nous avons amélioré la prise en charge de formats de fichiers déjà existants et nous avons ajouté la prise en charge de l'importation et de l'exportation pour de nouveaux formats.

      DDS

      Stayd, un nouveau contributeur, a travaillé avec notre développeur Jacob Boerema pour apporter de nombreuses améliorations au greffon DDS. Pour commencer, les fonctions d'importation ont été écrites afin d'être plus simples et plus faciles à étendre dans le futur. Les mises à jour supplémentaires incluent également :

      • Le chargement d'images DDS RVBA 16 et 32 bits/canal est maintenant possible.
      • Le filtre cubique Catmull-Rom a été ajouté pour la génération de mipmaps, et tous les calculs pour générer les mipmaps sont effectués avec une précision de 32 bits.
      • Les images DDS aux formats R8G8, R16 et R16G16 peuvent maintenant également être chargées.
      • Une option pour renverser verticalement les images DDS lors de l'importation a été ajoutée pour faire écho à l'option d'exportation correspondante, étant donné que certaines images de jeux stockent leurs données de cette manière.

      GIF

      Par le passé, écraser un fichier GIF à la sauvegarde (plutôt que de l'exporter) le convertissait systématiquement en un fichier avec une seule image. Désormais nous vérifions lors du chargement si le fichier GIF est une animation, de manière à également sauvegarder une animation lors de l'écrasement.

      HEIF et JPEG-XL

      Les deux greffons utilisent maintenant leurs bibliothèques respectives (libheif et libjxl) pour le chargement des métadonnées. Cela nous a permis de retirer notre code maison chargé d'interpréter l'orientation des images et d'utiliser à la place les informations fournies par ces bibliothèques.

      OpenEXR

      Le format OpenEXR permet aux canaux d'avoir des noms personnalisés, outre le type de couleur. Dans ce cas, nous considérons maintenant toute image à un seul canal avec un nom non conventionnel comme étant en niveaux de gris. Lors de l'importation, nous affichons une notification afin que les utilisateurs soient prévenus de cette conversion.

      PDF

      L'option d'exportation « Calques en tant que pages » fonctionne maintenant même s'il y a un seul groupe de calques. Auparavant, cette option n'était pas disponible car le greffon vérifiait seulement s'il y avait plus d'un « calque » sans examiner s'il s'agissait d'un groupe de calques avec de multiples sous-calques.

      PNG

      Les fragments de fichiers PNG qui sont « copiables sans risque » (« safe-to-copy chunks ») sont maintenant préservés lors de l'importation et inclus dans l'image exportée. Un autre souci qui existait lors de l'exportation de PNGs indexés avec transparence (et qui nous avait été souvent signalé) a été résolu. Désormais les couleurs indexées devraient être affichées correctement après exportation.

      PSD

      Jacob Boerema a poursuivi son travail d'amélioration du greffon PSD. En plus d'avoir résolu des bogues, par exemple dans l'ordre des calques lors de l'importation, il a aussi clarifié l'avertissement présenté lors de l'exportation et concernant la compatibilité des modes de calques entre GIMP et Photoshop.

      PSP

      Le greffon Paintshop Pro peut maintenant importer davantage de caractéristiques depuis un fichier projet, comme par exemple le profil de couleurs ICC, les guides, les grilles, et la sélection active lors de la sauvegarde. Les failles de sécurité ZDI-CAN-22096 et ZDI-CAN-22097 ont également été corrigées dans cette version.

      Nouveaux formats d'image pris en charge : Farbfeld, Esm Software PIX, HEJ2

      Nous avons récemment ajouté la prise en charge de l'importation et de l'exportation pour le format Farbfeld, un format d'image sRVB conçu pour être facile à lire, à envoyer dans des pipes et à compresser avec des outils tiers.

      Nous avons aussi ajouté la prise en charge de l'importation seule pour les nouveaux formats suivants :

      • Esm Software PIX : Un format JPEG modifié utilisé exclusivement par l'entreprise Esm Software pour stocker leurs images propres. Cela a été implementé en réponse à un signalement de bogue qui avait confondu ce format avec le format Alias PIX que nous prenions déjà en charge.
      • HEJ2 : Un ajout à notre greffon HEIF déjà existant fourni par Daniel Novomeský qui permet d'importer des images JPEG 2000 compressées.

      Nouveau format de palette pris en charge : Swatchbooker

      Swatchbooker est un programme libre de création et de conversion de palettes de couleurs qui prend en charge de nombreux formats. Bien que le programme lui-même n'ait pas été mis à jour depuis de nombreuses années, son format de palette propre .sbz est le plus complet de tous ceux que nous prenons en charge actuellement. Parmi ses nombreuses fonctionnalités, on peut citer la possibilité de définir des couleurs dans plusieurs modèles de couleurs pour chaque entrée d'une palette, des noms et des descriptions régionalisables, et la prise en charge de profils de couleurs ICC différents pour chaque entrée.

      Via notre travail sur la prise en charge de son importation, nous avons pu fournir des informations qui ont conduit à un correctif de bogue dans la prise en charge de Swatchbooker par Krita. C'est toujours sympa quand des projets peuvent collaborer et s'entraider !

      Interactions avec les pads de tablettes graphiques sous Wayland

      Carlos Garnacho, un contributeur GNOME de longue date, a ajouté la prise en charge de l'interaction directe des boutons de tablettes graphiques (pad) avec GIMP. Quand une tablette est branchée, vous pouvez désormais assigner différentes actions aux contrôles de la tablette depuis la boîte de dialogue « Périphériques d'entrée » dans le menu Édition.

      Assigner des actions aux boutons d'une tablette graphique
      Assigner des actions aux boutons d'une tablette graphique - GIMP 2.99.18

      Ce travail a aussi impliqué le portage de fonctionnalités vers GTK 3, la boîte à outils utilisée par GIMP pour son interface graphique. Notez que cette fonctionnalité est seulement disponible sous Wayland pour le moment.

      Mise à jour de l'API

      L'interface de programmation d'application (API), destinée aux créateurs de greffons, est régulièrement retravaillée dans le cadre de la refonte de GIMP 3. Une partie de ce travail est de migrer l'API vers l'utilisation de GeglColor lorsque les couleurs sont impliquées, ce qui entre dans le cadre plus général du projet Space Invasion. Malgré tout, ce n’est qu’une petite partie de l’ensemble des améliorations de l’API.

      Nous nous orientons également vers plus de classes pour représenter les différentes ressources gérées par GIMP (pinceaux, polices, motifs, etc.) au lieu de les représenter uniquement par des noms (ce qui était une limitation historique alors qu'il est tout à fait possible à 2 créateurs de ressources de choisir le même nom et le fait est que nous voyons de tels cas dans la nature — par exemple, 2 polices créées indépendamment peuvent avoir le même nom).

      Un autre grand pas consiste à remplacer le GimpValueArray représentant les arguments ordonnés d'une procédure d'un greffon par un GimpProcedureConfig qui contient les arguments par nom plutôt que par ordre. Cela permet une utilisation beaucoup plus sémantique des procédures de greffon (surtout lorsqu'elles ont une longue liste d'arguments) et facilitera également l'amélioration des greffons à l'avenir, avec des arguments nouveaux ou réorganisés sans créer de nouvelles procédures, car l'ordre et le nombre des arguments comptent beaucoup moins. Cela signifie que l'ajout de nouveaux arguments dans le futur ne brisera plus les scripts déjà existants qui dépendaient des versions antérieures de ces greffons (les auteurs de greffons devront toujours choisir des valeurs par défaut appropriées pour les nouveaux arguments afin que cela soit vrai, bien sûr).

      En parallèle, nous continuons d'améliorer la capacité de création automatique d'interfaces graphiques offerte aux greffons, rendant la création de boîtes de dialogue plus simple que jamais. Cela inclut (parmi de nombreuses autres améliorations) un nouveau type d'argument de procédure nommé GimpChoice qui est une liste de choix sous forme de chaînes de caractères qui peut être présentée aux créateurs sous forme de widgets de liste déroulante dans la boîte de dialogue de votre greffon.

      Nous prévoyons d'écrire et de publier un didacticiel pour les rédacteurs de greffons dans la section Développement de ressources de notre site Web pour développeur en même temps que la sortie de GIMP 3, ou peu de temps après.

      GEGL et babl

      Cette version de GIMP est accompagnée de nouvelles versions de GEGL et babl, qui contribuent toutes deux au projet (Color) Space Invasion.

      babl 0.1.108 apporte une nouvelle fonction babl_space_is_rgb pour nous aider à confirmer directement qu'un espace colorimétrique est RVB (plutôt que de faire plusieurs tests pour voir s'il n'est pas CMJN ou niveaux de gris). Plusieurs améliorations ont également été apportées au processus de compilation et à l'outil d'interface de ligne de commande de babl.

      GEGL 0.4.48 fournit plusieurs mises à jour de l'objet GeglColor qui prend désormais en charge une grande partie des opérations de couleur de GIMP. Les améliorations spécifiques incluent la possibilité d'obtenir et de définir directement les valeurs de couleur CMJN, ainsi que l'attribution de l'espace colorimétrique lors de la définition des couleurs RVB(A).

      Un crash dans le filtre gegl:voroni existant a été corrigé, et un bogue de longue date avec le filtre gegl:dropshadow qui empêchait l'effet de rétrécir a également été corrigé.

      Enfin, un nouveau filtre gegl:shuffle-search a été ajouté à l'atelier. Il mélange les pixels voisins pour créer un effet de tramage plus optimisé.

      Statistiques de sortie

      Hormis la première version de la série (2.99.2), GIMP 2.99.18 est clairement la plus grosse mise à jour à bien des égards. Depuis la version 2.99.16 :

      • 238 rapports ont été clôturés comme CORRIGÉS.
      • 201 demandes de fusion ont été acceptées.
      • 1358 commits ont été poussés.
      • 26 traductions ont été mises à jour : allemand, basque, biélorusse, portugais brésilien, bulgare, catalan, chinois (Chine), danois, espagnol, espéranto, finnois, géorgien, grec, hongrois, islandais, italien, lituanien, norvégien nynorsk, persan, polonais, russe , slovène, suédois, turc, ukrainien, vietnamien.

      60 personnes ont apporté des modifications ou des correctifs à la base de code de GIMP 2.99.18 (l'ordre est déterminé par le nombre de commits; certaines personnes apparaissent dans plusieurs groupes) :

      • 23 développeurs pour le code principal : Jehan, Alx Sa, Shubham, Jacob Boerema, Idriss Fekir, bootchk, Anders Jonsson, Carlos Garnacho, mr.fantastic, Stanislav Grinkov, lillolollo, Øyvind Kolås, Sabri Ünal, programmer_ceds, Lukas Oberhuber, programmer-ceds, James Golden, Luca Bacci, Massimo Valentini, Niels De Graef, Zander Brown, psykose, sonia.
      • 17 développeurs de greffons ou de modules : Jehan, Alx Sa, Jacob Boerema, bootchk, Anders Jonsson, Stayd, Zander Brown, Bruno Lopes, Daniel Novomeský, Sabri Ünal, programmer_ceds, Kamil Burda, Mark, Michael Schumacher, Stanislav Grinkov, programmer-ceds, sonia.
      • 31 traducteurs : Yuri Chornoivan, Martin, Ekaterine Papava, Luming Zh, Sabri Ünal, Anders Jonsson, Rodrigo Lledó, Jordi Mas, Alan Mortensen, Vasil Pupkin, Asier Sarasua Garmendia, Kolbjørn Stuestøl, Boyuan Yang, Víttor Paulo Vieira da Costa, dimspingos, Alexander Shopov, Alexandre Prokoudine, Aurimas Černius, Balázs Úr, Marco Ciampa, Sveinn í Felli, Danial Behzadi, Ngọc Quân Trần, Jürgen Benvenuti, Piotr Drąg, Timo Jyrinki, Andre Klapper, Kristjan SCHMIDT, MohammadSaleh Kamyab, Rafael Fontenelle, Tim Sabsch.
      • 9 créateurs de ressources (icônes, thèmes, curseurs, splash screen, métadonnées…) : Alx Sa, Jehan, Ferry Jérémie, Stanislav Grinkov, Anders Jonsson, Bruno Lopes, Jacob Boerema, Sabri Ünal, mr.fantastic.
      • 5 contributeurs à la documentation : Jehan, Bruno Lopes, Jacob Boerema, Alx Sa, Anders Jonsson.
      • 14 contributeurs pour la compilation, l'empaquetage ou l'intégration continue : Jehan, Bruno Lopes, bootchk, Alx Sa, Zander Brown, Jacob Boerema, Jacob Boerema, Stayd, Carlos Garnacho, Heiko Becker, mr.fantastic, Daniel Novomeský, U-YGGDRASIL\ender, lillolollo.

      Contributions à d'autres dépôts du GIMPverse (l'ordre est déterminé par le nombre de commits) :

      • babl 0.1.108 est composé de 17 commits par 6 contributeurs : Jehan, Øyvind Kolås, John Marshall, Andre Klapper, John, sid.
      • GEGL 0.4.48 est composé de 77 commits par 20 contributeurs : Øyvind Kolås, Jehan, Anders Jonsson, Jacob Boerema, Yuri Chornoivan, Alan Mortensen, Sabri Ünal, Andre Klapper, Ekaterine Papava, Jan Tojnar, Jordi Mas, Luming Zh, Martin , Piotr Drąg, Víttor Paulo Vieira da Costa, Asier Sarasua Garmendia, Marco Ciampa, Rodrigo Lledó, dimspingos, woob.
      • ctx a eu 308 commits depuis la version 2.99.14 par 1 contributeur : Øyvind Kolås.
      • La version gimp-macos-build (scripts d'empaquetage macOS) est composée de 32 commits par 1 contributeur : Lukas Oberhuber.
      • La version flatpak est composée de 15 commits par 3 contributeurs : Jehan, Daniel Novomeský et Hubert Figuière.
      • Notre site Web principal a eu 31 commits depuis la sortie du 2.10.36 par 6 contributeurs : Jehan, Alx Sa, Sabri Ünal, Anders Jonsson, Bruno Lopes, Jonathan Demeyer.
      • Notre site Web des développeurs a eu 30 commits depuis la version 2.10.36 par 5 contributeurs : Bruno Lopes, Jehan, Alx Sa, bootchk, Robin Swift.
      • Notre documentation 3.0 a enregistré 247 commits depuis la version 2.99.16 par 17 contributeurs : Andre Klapper, Jacob Boerema, Yuri Chornoivan, Alx Sa, Jordi Mas, Alan Mortensen, Dimspingos, Anders Jonsson, Boyuan Yang, Sabri Ünal, Víttor Paulo Vieira da Costa, Juliano de Souza Camargo, Rodrigo Lledó, Kolbjørn Stuestøl, Marco Ciampa, Danial Behzadi, Emin Tufan Çetin.

      N'oublions pas de remercier toutes les personnes qui nous aident à faire le tri dans Gitlab, rapportent des bogues et discutent avec nous d'éventuelles améliorations. Notre communauté est également profondément reconnaissante envers les guerriers d'Internet qui gèrent nos différents canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

      Remarque : compte tenu du nombre de pièces qui composent GIMP et son environnement, et de la manière dont nous obtenons des statistiques via des scripts git, des erreurs peuvent se glisser dans ces statistiques. N'hésitez pas à nous dire si nous avons manqué ou mal catégorisé certains contributeurs ou contributions.

      Nouvelles de l'équipe et procédure de sortie

      Les droits d'accès au dépôt git ont été récemment accordés à Bruno Lopes (qui a été très actif dans l'amélioration de notre processus de compilation et de l'empaquetage pour Windows).

      Plusieurs développeurs ou empaqueteurs de longue date ou plus récents qui ont commencé à contribuer au nouveau site Web des développeurs ont également reçu l'accès au dépôt git associé.

      De plus en plus de contributeurs participent désormais activement aux tests des versions et du processus d'empaquetage, et c'est la première dépêche depuis des années (NDT : cela désigne la news originale sur le site de GIMP) que Jehan n'a pas écrite presque entièrement ! Merci beaucoup à Alx Sa (alias Nikc ou CmykStudent) d'avoir entamé la rédaction collaborative de la nouvelle !

      Il est clair que nous consolidons jour après jour une solide équipe de contributeurs et cela se voit dans notre processus de publication, avec de plus en plus de retours à chaque version.

      Nous sommes également particulièrement heureux et fiers que les 4 projets GSoC que nous avons eus, depuis que nous avons recommencé à souscrire à ce programme de mentorat, aient tous été couronnés de succès et ont fini par être fusionnés avec la branche principale du code au plus tard six mois après la fin du stage.

      Autour de GIMP

      Des nouvelles des miroirs

      Depuis la dernière dépêche, un nouveau miroir a été apporté à GIMP par :

      • Sahil Dhiman, à Nuremberg, en Allemagne, comme projet personnel.

      Cela nous amène à un total de 46 miroirs répartis dans le monde.

      Les miroirs sont importants car ils aident le projet en partageant la charge de dizaines de milliers de téléchargements quotidiens. De plus, en disposant de miroirs répartis à travers le monde, nous garantissons que tout le monde puisse avoir un accès rapide au téléchargement de GIMP.

      GIMP sous Windows/ARM

      Depuis notre annonce d'une version expérimentale sur Windows pour l'architecture ARM 64 bits (en anglais), nous avons reçu l'aide de Hernan Martinez, contributeur bien connu du projet MSYS2, qui a hébergé notre tout premier runner pour l'intégration continue (CI) pour Windows sur l'architecture Aarch64. Bien que cela n'ait été qu'une configuration temporaire (littéralement une machine de compilation dans le salon de quelqu'un) en attendant une situation plus stable, nous sommes extrêmement reconnaissants envers Hernan qui nous a aidés à faire notre deuxième pas sur cette plateforme (la première étape a été effectuée par Jernej, qui a créé notre premier installateur expérimental), s'est assuré que notre processus de compilation automatique fonctionne sur cette machine, et plus encore.

      Depuis lors, la situation plus stable est arrivée : Arm Ltd. eux-mêmes se sont mobilisés et ont officiellement contribué trois runners pour notre processus d'intégration continue dans Gitlab ! Arm Ltd. a également sponsorisé un kit de développement Windows pour l'un de nos développeurs.

      Bien que nous considérions toujours cette version comme expérimentale, en raison du manque de tests et du fait que seuls 2 contributeurs disposent actuellement d'une machine capable de l'exécuter, le plus gros facteur bloquant a été supprimé et nous sommes heureux d'annoncer que notre programme d'installation Windows universel pour GIMP 2.99.18 contient GIMP pour les 3 plates-formes (x86 32 et 64 bits, et maintenant ARM 64 bits) !

      Télécharger GIMP 2.99.18

      Vous trouverez toutes nos versions officielles sur le site officiel de GIMP (gimp.org) :

      • Flatpaks Linux pour x86 et ARM (64 bits)
      • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits)
      • Paquets macOS DMG pour le matériel Intel
      • Paquets macOS DMG pour le matériel Apple Silicon

      D'autres paquets réalisés par des tiers devraient évidemment suivre (paquets des distributions Linux ou *BSD, etc.).

      Et ensuite ?

      Alors que nous sommes maintenant entrés dans un gel des fonctionnalités, notre attention s'est déplacée vers la correction des bogues, le nettoyage et la préparation de la première version candidate 3.0.

      Nous pensons en effet qu'il s'agit de la dernière version de développement puisqu'aucune nouvelle fonctionnalité ne sera introduite désormais, du moins au niveau de l'interface utilisateur (l'API est encore en évolution jusqu'à la première version candidate). Donc, ce que vous voyez maintenant est essentiellement ce que vous devriez obtenir dans GIMP 3.0.0, en termes de fonctionnalités.

      C'est pourquoi nous avons sorti cette version même si nous savons qu'elle est assez instable. C'est l'heure des commentaires de dernière minute ! C'est aussi le moment de signaler et de corriger les bogues comme si demain n'existait pas. Nous espérons pouvoir bientôt livrer une RC1 et elle devrait être aussi dépourvue de bogue que possible.

      Nous espérons actuellement pouvoir publier GIMP pour le prochain Libre Graphics Meeting du 9 au 12 mai. Pour être honnête, ce n’est pas un objectif facile et nous ne sommes donc pas sûrs de pouvoir l’atteindre. Ce qui est sûr, c'est que même si nous n'y parvenons pas à temps, cela ne devrait pas arriver trop longtemps après. En particulier, nous ne publierons pas simplement parce que nous avons fixé une date limite. Nous voulons offrir la meilleure expérience possible, ce qui signifie que si nous découvrons des bogues bloquants de dernière minute, nous retarderons la sortie jusqu'à ce qu'ils soient corrigés.

      N'oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, c'est un moyen de donner en retour et d'accélérer le développement de GIMP. L’engagement communautaire permet au projet de se renforcer ! 💪🥳

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇Korben
      • Geppetto – ChatGPT et Dall-e dans votre Slack
        Aujourd’hui, je vais vous parler d’un projet innovant qui vaut le détour. Il s’agit de Geppetto, qui n’a rien à voir avec l’autre naze de Pinocchio, mais qui est un bot avancé utilisant la technologie d’OpenAI pour amener une touche d’intelligence dans votre Slack. Geppetto intègre ChatGPT-4 et DALL-E-3, ce qui permet d’avoir de la production d’écrits, mais également de la génération d’images. Une fois déployé, Geppetto s’intègre à votre espace de travail Slack et améliore la communication

      Geppetto – ChatGPT et Dall-e dans votre Slack

      Par : Korben
      10 mars 2024 à 09:00

      Aujourd’hui, je vais vous parler d’un projet innovant qui vaut le détour. Il s’agit de Geppetto, qui n’a rien à voir avec l’autre naze de Pinocchio, mais qui est un bot avancé utilisant la technologie d’OpenAI pour amener une touche d’intelligence dans votre Slack.

      Geppetto intègre ChatGPT-4 et DALL-E-3, ce qui permet d’avoir de la production d’écrits, mais également de la génération d’images. Une fois déployé, Geppetto s’intègre à votre espace de travail Slack et améliore la communication au sein de vos équipes en ajoutant des salutations automatisées, des réponses cohérentes et, bien sûr, ces fameuses visualisations créatives. Comme ça, plus besoin de perdre du temps à chercher les mots justes ou les images parfaites, Geppetto s’en charge pour vous.

      En gros, si vous avez un truc urgent à dire à votre équipe sur Slack, mais vous ne trouvez pas les mots pour la formuler de manière claire et concise, plutôt que de perdre du temps à chercher comment exprimer maladroitement votre pensée, vous pouvez simplement demander à Geppetto de vous aider à formuler par exemple une question ou à y répondre. Tout ça dans la limite des connaissances du bot évidemment.

      La génération d’image peut également vous aider à illustrer un concept complexe ou simplement pour ajouter un peu de fun à la conversation.

      Alors, elle n’est pas belle la vie avec un bot comme Geppetto ? C’est vachement plus pratique qu’un pantin en bois trop con.

      Si ce projet vous intrigue et que vous souhaitez en savoir plus, je vous invite à consulter le dépôt GitHub à l’adresse suivante : https://github.com/Deeptechia/geppetto.

      Merci à Lorenper

      ❌
      ❌