• [^] # Re: quelques questions sur GIMP

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Conférence "GIMP et ZeMarmot" à Vandœuvre-lès-Nancy. Évalué à 6.

    bravo pour votre travail et persévérance.

    Merci.

    Aparté: sur LinuxFr, j'ai tendance à tutoyer, et surtout on s'est déjà parlé quelques fois en IM et aussi rencontré à des évènements physiques. Enfin bon, ça me dérange pas de vouvoyer, mais je pense qu'on peut se tutoyer. ;-)
    À moins que le "vous" s'adressait à l'équipe GIMP et/ou ZeMarmot!

    Je connais l'outil d'extraction de premier plan de GIMP qui fonctionne bien, mais on est à un niveau encore au dessus ici, pour une tâche très courante.

    Perso je ne trouve pas qu'il marche vraiment bien (notre outil d'extraction de premier plan). 😅
    En discutant avec des contributeurs qui connaissent mieux ce type d'algorithme, ce que je comprends, c'est que cet algorithme qu'on utilise n'est pas vraiment adapté à de l'extraction d'objet. C'est plus pour de la sélection de régions d'incertitude où chaque pixel peut partiellement appartenir en partie à l'objet à extraire et en partie soit au fond soit à d'autres objets. Typiquement sélectionner tout ce qu'en 3D, ils aiment appeler "particules", ou les cheveux, poils... Cet outil serait donc plus adapté pour de la finition d'extraction d'objet.
    Et en plus, y a de gros problèmes de mémoire qui peuvent parfois planter GIMP avec cet outil actuellement.

    On a un nouvel outil expérimental qui s'appelle le "paint select tool" et qui est vraiment assez impressionnant: https://www.gimp.org/news/2021/05/08/gimp-2-99-6-released/#paint-select-tool
    C'est je pense ce que tu cherches, non?

    Malheureusement il a encore des problèmes de performance et de stabilité et le contributeur fait des aller-retours. Donc je ne suis pas certain que l'outil sera réellement fini pour GIMP 3.0. C'est le problème du logiciel libre sur des outils de haut niveau technique. Il n'y a finalement pas tant de développeurs que cela capables de développer ces outils ou du moins de passer le stade de "preuve de concept" (qui est le stade où on a un outil qui marche mais qui souvent a plein de bugs et/ou des problèmes de performances qu'on remarque par exemple dès qu'on utilise des images de grande taille). Or en imagerie, on arrive très vite à des cas où certains vont traiter de très grosses données (en traitement photographique déjà, les dimensions "écrans" telles que FullHD ou 4K, sont dépassées depuis longtemps; on connaît aussi des gens qui travaillent sur des scans de dizaines de milliers de pixel de côté; même en illustration, si on travaille sur de grands formats ou dans certains cas, on a besoin de grosses densités de pixel; et je parle même pas des images scientifiques, médicales, microscopes, télescopes, etc.!) et c'est là qu'on voit très vite les limites des développement "démos" qui sont souvent faites sur de petites images. Dans un outil comme GIMP, on a besoin d'outils de travail réel (typiquement, si j'en crois git, l'outil de sélection de premier plan date de 2005, par un ancien mainteneur. Sauf que de nos jours, si quelqu'un contribuait cet outil dans son état actuel, je ne l'accepterais pas encore en version stable).

    On a déjà eu le cas avec des outils tels que le "seamless clone" notamment qui est aussi très impressionnant sauf que dès qu'on l'essaye sur des images de tailles plus réalistes (pour du travail pro), on déchante. Et donc cet outil aussi est dans notre bac à sable depuis que le contributeur l'a laissé ainsi en disant qu'il reviendrait bientôt pour optimiser (je me rappelle l'avoir rencontré à LGM, en 2014 je crois, et il disait qu'il pourrait accélérer l'outil par ×ばつ10! Malheureusement on n'a pas eu trop de nouvelles ensuite). Il me semble que les équipes GIMP qui me précèdent ont eu plusieurs fois ce type de mésaventures avec le GSoC et c'est en partie pour ce genre de raison qu'ils ont arrêté d'y participer (avoir des étudiants qui font des démos puis disparaissent, démos impressionnantes mais en fait inutilisable sur du travail réel du quotidien, c'est pas très utile). Souvent ce n'est même pas forcément que ces développeurs ne peuvent améliorer, mais soit à un moment donné, ça les ennuie (c'est un énorme travail d'optimiser et souvent les gens ne voient que le travail démo; je sais bien, en tant que mainteneur, je passe énormément de temps sur du nettoyage, corrections et optimisations de patchs; et je pense que dans pas mal de cas, j'y passe plus de temps que le contributeur du patch originel). En outre je pense que pas mal des bons développeurs se font ensuite embaucher grâce à leur développement libre donc même s'ils pourraient vraiment revenir optimiser, ben ils ont autre chose en tête ensuite. C'est bien sûr pas une critique, il faut bien vivre!

    Enfin bon, on verra pour le Paint Select tool. Je sais que le contributeur est vraiment bon et il est d'ailleurs revenu pour envoyer quelques patchs en début d'année. J'espère donc qu'il reviendra bientôt avec pour objectif de finir cet outil! 🙂

    Est-ce que ce genre d'outil est envisageable dans GIMP à plus ou moins long terme ?

    Donc la réponse est: oui. Y a même du développement en cours, comme t'as vu. Mais faut le finir et je peux pas te promettre quand!

    2) est-ce que vous avez vous-même joué un peu avec ça ? Est-ce que ça peut entrer dans votre processus de création ?

    Personnellement mon avis sur ces outils "IA", je l'ai donné là: https://linuxfr.org/users/hellpe/liens/matthew-butterick-veut-poursuivre-github-copilot-en-justice#comment-1904701

    3) est-ce que des choses sont envisagées dans le cœur de GIMP pour intégrer ces nouveau outils de machine learning ?

    Comme tu l'imagines avec ma réponse en 2), c'est pas moi qui pousserais mais je ne bloquerais pas un contributeur qui voudrait et contribuerait un bon patch.
    Sincèrement ça m'a l'air très simple à intégrer (mais moins pour faire ça bien, déjà en terme d'intégration technique de la dépendance et réfléchir comment faire cela proprement sans multiplier la taille des téléchargements par 20; ensuite pour faire une interface de qualité).

    Par contre, tu le notes toi-même, les divers plug-ins que certains ont déjà faits pour GIMP requièrent des comptes à des services tiers (je sais pas si on a regardé le même plug-in, mais j'en ai vu un, il fallait genre 3 ou 4 comptes sur des services différents!). Et ça oui, clairement je bloquerais. GIMP n'est pas une passerelle vers des services propriétaires (SaS), même gratuits. Jamais je n'accepterais un outil core qui impose d'avoir un compte sur un de ces services tiers pour fonctionner.

    Donc OK, si quelqu'un propose un patch où on embarque le tout (si ça fait une taille raisonnable ou bien avec une logique d'intégration, genre téléchargement au premier usage en expliquant que ça va télécharger quelques GiB de données, que ça prendra beaucoup de mémoire à l'usage et donc si on n'a pas une machine de guerre, ce sera dur, etc.), et que c'est que du libre, pourquoi pas. Mais pas les trucs que j'ai vu qui passent par des services tiers, ou un hardware particulier pour fonctionner. (notamment y a plein de tutoriels qui expliquent comment utiliser Stable Diffusion par un service Google qui permet apparemment de faire les calculs sur des serveurs Google; je suppose que c'est ça que tu as vu)

    Par contre, les gens sont libres de développer des plug-ins et d'installer ce qu'ils veulent sur leur GIMP. On vérifie pas derrière les gens et on juge pas. 😉

    Et puis réellement, alors que j'écris tout cela, en réfléchissant davantage, étant donné mes réticences quant à héberger de telles données, et même mes doutes sur la légalité (ce qui pourrait être confirmé par des procès; voir notamment ce qu'il se passe avec Github Copilot qui est dans une situation très similaire et se fait maintenant poursuivre en justice), je ne suis même pas sûr s'il serait vraiment une bonne idée d'accepter même un bon patch. Peut-être serait-il mieux de laisser cela aux plug-ins tiers (ce qui permettra aux gens d'utiliser la solution qu'ils préfèrent, tel que de passer par des services tiers s'ils veulent vraiment ça, et ainsi de générer des images commandées à partir de petites configurations hardware; l'expérience d'usage pourrait même être mieux pour le grand public, mais bien sûr au prix de donner ses données à encore d'autres plateformes SaS — au moins c'est eux qui choisissent!).

    c'est fascinant (et un peu flippant) de voir que des choses qui étaient réservées à la recherche il y a peu sont désormais accessibles.

    C'est effectivement fascinant et flippant (les 2). Je suis curieux de voir comment ça évoluera mais je ne suis pas particulièrement optimiste (comme le lien vers mon commentaire, que je donne plus haut le montre). Que ce soit d'un point de vue social (vision de l'art et vision des travailleurs de l'art) comme qualitatif (pour moi, c'est du nivellement par le bas, ça a beau avoir l'air impressionnant en essayant un peu — encore l'effet démo —, ce n'est absolument pas comparable à du vrai travail graphique et est vraiment du bas de gamme d'après moi; et le problème se posera vraiment quand les gens s'habitueront à cela et décideront que c'est la "norme"). Je ne suis absolument pas contre la machine qui remplace l'humain pour des tâches absurdes et répétitives. Dans un monde idéal, l'humain ne devrait pas avoir à travailler plus de 2 ou 3 jours par semaine. C'est d'ailleurs mon boulot de développeur d'aider l'humain à automatiser ces parties de leur travail.
    Par exemple, on va les aider à sélectionner un objet sur une photo facilement (ton exemple plus haut), un truc qu'un humain peut faire laborieusement mais qui en soit n'a pas de grande qualité artistique (mais technique oui). On peut aussi aider à détecter les traits pour faciliter la colorisation d'œuvres. On peut imaginer plein d'aides: des détections de lignes droites, des remises en perspective, annuler des déformations de lentilles, etc. Tout ça c'est des sujets techniques. Mais dessiner à la place de l'humain?

    Ces algorithmes d'IA essaient de remplacer la partie créative de l'humain, ce qui pour moi n'a aucun sens. Ça ne sera jamais possible et ça ne devrait pas l'être. Et non on n'a pas déjà réussi. Il suffit de voir toutes les erreurs des images générées: des mains à 6 doigts, des bras tordus, des visages déformés... toutes ces absurdités qui montrent bien qu'il n'y a vraiment aucune "pensée" ou "créativité" derrière ces images. C'est juste une forme évoluée de reproduction automatique sans la moindre "intelligence", basée sur des algorithmes d'apprentissage, et qui arrivent presque à faire croire à de la pensée. Mais l'IA ne pourra jamais t'expliquer les "choix" derrière chaque détail de l'image, si elle voulait faire passer certaines idées, certaines émotions, ou bien une composition ultra-réfléchie pour mettre en exergue un point particulier de l'image dans le contexte d'une plus grande œuvre, d'une histoire, d'autres images, une arrière-pensée philosophique... Enfin toutes ces choses que les artistes humains font constamment et cela depuis des siècles, voire millénaires!

    Ensuite on verra, je peux me tromper. 😛

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]