Sans indiquer la version de SD (ou le modèle) utilisée c'est un peu difficile de se faire une opinion
Ici en SD 2.1
https://imgur.com/X9JzCTt.jpeg
Sans indiquer la version de SD (ou le modèle) utilisée c'est un peu difficile de se faire une opinion
Ici en SD 2.1
https://imgur.com/X9JzCTt.jpeg
Hiq v LinkedIn d'avril 2022 a validé le web scrapping de données publiques ; car la défense portait sur le cfaa (sécurité des SI) et mettait explicitement en parenthèse le dmca car c'était pas la défense utilisée ; car le préjudice pour l'intérêt public de l'interdiction serait du côté de toutes les systemes qui webscrapent les données publiques.
Oui, ce procès a prouvé qu'on pouvais copier légalement des données publiques.
Et du coup je comprends encore moins pourquoi tu dis que la question du droit d'auteur reste en suspend vu que :
- j'ai dis qu'elle ne pouvais pas empêcher cette action
- et dans ce procès elle n'a pas été invoqué (car ils devaient justement savoir que ça servirai à rien)
---------------
Sinon, de mon coté j'ai avancé un peu sur mon convertisseur d'image IA en véritable pixel art, ça a cette tête :
Pour tester je suis allé chercher un autre exemple de pixel art de MJ (pas de moi celui là) :
Avant :
Après :
C'était via une interface web, je connais pas la version et ce n'est pas indiqué dans la FAQ. Ce sont mes débuts avec la génération d'image, pour l'instant je tâtonne.
https://stablediffusionweb.com/#demo
L'anatomie est bien plus réussie sur tes images effectivement.
C'est certain, pour l'instant c'est vraiment qu'un proto
Je pense lancer une version en ligne pour voir si c'est le genre d'outil qui pourrai plaire, je verrai ensuite à mettre en place une UI un peu plus soignée si jamais je décide de le maintenir ensuite.
Tu as un backend pour le traitement ou tout fonction en statique/js ?
Je reste persuadé qu'il faut trouver une astuce pour avoir une génération auto de palette.
Oui y'a un backend, la stack c'est front Angular, backend en ASP.NET Core, avec du SignarR pour le websocket (je voulais tester le truc, c'était l'occasion). Finalement en changeant de dépendance pour le traitement d'image, tout ce beau monde devrai être compatible linux (=> docker) et avec des perfs assez bonnes (à voir sur un VPS ce que ça donnera).
Pour l'auto-palette, j'en suis de moins en moins convaincu, en fait on peux trouver des trucs qui approchent, mais du fait que certaines couleurs peuvent être vraiment minoritaires mais ultra importante, ça me semble assez compliqué. Après je peux toujours voir à proposer une base imparfaite qui serai éditable. Mais 100% automatisé j'y crois moyen. Surtout avec le dernier exemple, même à la main c'était loin d'être évident de choisir les bonnes couleurs.
Ha ça m'etonne un peu que tu sois pas parti sur une app frontend seulement, c'est typiquement le genre d'appli qui s'y prête. Avec le traitement d'image via un canvas. Si tu compte faire payer le service c'est assez logique par contre.
Ouais je pensais à générer une première palette pour simplifier le boulot, mais laisser l'utilisateur affiner ensuite ! Juste histoire de faciliter l'utilisation.
Car c'était pas des données concernées par le dmca. Ca reste à voir si ces données utilisées par des algo dont l'objectif est la reproduction de données à partir de mot clefs sans l'autorisation des ayants droits des données originales c'est ok. Ca cherche à faire la meilleure reproduction possible même si le résultat produit n'est pas une reproduction exacte car le corpus est trop large, que ca joue sur des probabilités et que ca provoque du bruit, ou car on demande de reproduire quelque chose qui n'existe pas. Par exemple si la Joconde peut être assez bien reproduite ca fait ce que c'est supposé faire. Ce ne serait pas un problème d'overfitting, car c'était assez trop entrainé, l'overfitting ca serait si t'as des résultas qui ressemblent à la Joconde alors que ce n'est pas ce que l'on demande.
Si tu entraines ou ajustes ces modèles avec un corpus assez réduit pour bien cibler des oeuvres en particuliers dont les données protégées par le droit d'auteur ont été récupérées sans autorisation font des résultats très précis mais dont on a pas besoin de citer un ayant droit pourtant évident ; est ce que tu peux dire perché c'est de l'inspiration car le corpus a été obtenu sur des sites publiques?
Est ce qu'il faut mettre en principe des protections juste contre les résultats obtenus, ou aussi sur les données d'origines et limiter l'usage à des corpi de données explicitement collectées avec le consentement à cette fin, ou rien car si t'es pas content fallait rester dans ta grotte?
Les données protégées par le droit d'auteur sont sur le principe particulièrement protégées. C'est pas juste des données publiques, ces algos c'est pas de l'inspiration, et cette pratique va vraisemblablement entraîner des préjudices importants. Et pour ça la question de comment ca va être arbitré? on aura pas la réponse avant quelques années, si on a pas une législation qui tranche entre temps.
Mes premiers tests étaient avec des temps de traitements assez long, avoir un blackend et un worker interne qui traite les ordres progressivement était une manière de m'assurer que tout ça se traiterai correctement (puis je peux paralléliser des choses du coup, c'est pas trop le cas encore dans le code mais j'y ai déjà des structures thread safe pour cette raison).
Puis j'utilise souvent des projets perso pour tester des technos, c'était l'occasion de tester SignalR.
Pour la monétisation on verra, surtout en fonction des frais de fonctionnements.
Je pourrai sortir une palette imparfaite par contre, en effet.
Le DMCA est un moyen de lutte contre les violations du droit d'auteur, pour que ce genre d'outil soit utile il faut au préalable qu'il y ai violation. Comme je l'ai déjà dit de nombreuses fois déjà, il ne peux pas avoir violation du droit d'auteur si tu ne republie pas les données, si tu ne copie qu'à titre privé tu fait même parti d'une des exceptions du droit d'auteur.
Concernant la Joconde, c'est un très mauvais exemple de la nature du système car... la Joconde est un personnage pop aujourd'hui, plutôt qu'un tableau (à cause des détournements, mèmes, etc). Ça ne veux donc pas dire que le système essaye de faire une "meilleure reproduction possible" : et si c'était le cas on verra systématiquement des points communs avec des tableaux existants quand on utilise le nom de certains artistes, hors c'est pas franchement le cas.
Tu n'a pas besoin d'autorisation pour accéder / copier de manière privée des données protégée par le droit d'auteur. Cette exigence/limitation n'existe tout simplement pas (d'ailleurs confirmé par ton exemple sur le scraping).
"Les données protégées par le droit d'auteur sont sur le principe particulièrement protégées" oui mais dans un cadre particulier (celui de la reproduction publique), ça n'est pas une sorte de loi magique qui interdit tout les usages. Tu as notamment le droit de caricaturer, citer, copier à titre privé, diffuser à titre d'enseignement, etc. C'est pas un truc qui donne un droit de regard sur tout les usages au créateur, loin de là (même si c'est un fantasme très répandu).
Après ça ne veux pas dire qu'un changement législatif ne devrai pas être nécessaire pour le cas particulier des IA.
Mais le problème du droit d'auteur (et d'autres droits équivalents, comme le droit à l'image) c'est qu'il y a beaucoup de fantasmes dessus et souvent les gens surestiment sa portée, en parti à cause des mensonges de l’industrie du divertissement sur les questions du "piratage", et aussi du contrôle très strict de certaines propriété intellectuelles comme les personnages de Disney (mais ce n'est pas grâce au droit d'auteur : c'est surtout qu'ils ont été déposés comme marques !).
J'avoue c'est implacable comme raisonnement, le seul truc que je vois comme reprehensible serait :
- Un mec utilise Mickey généré avec une IA
- Et c'est lui qui se fait niquer
- Simplement parce que c est une Trademark
par contre tu peux dessiner une abeille dans le style de Walt Disney (a la Cuphead), que ce soit toi ou une IA, il t'arrivera rien et encore moins a la plate forme
Grand maître du lien affilié
Je me demande d'ailleurs si ces IA sont pas plus attaquables, en France et en Europe, via l'angle du droit des bases de données ou via une évolution de celui-ci (qui interdirait d'utiliser des données tierces soumises à la propriété intellectuelle sans accord et/ou rémunération à des fins d'utilisation commerciales) plutôt que via le droit d'auteur à proprement parler...
J’aimerais bien plus d’infos, Dross, notamment sur ton choix d’AWS (j’ai mon wps OVH qui prend fin bientôt). On peut en discuter sur le topic des devs web ?
Pas de soucis, je ne suis pas sous AWS (des VPS sur Vultr) mais pose tes questions dans l'autre topic j'y répondrai avec plaisir !
Un thème sombre pour le forum : ça se passe ici.
De mon coté j'ai fini de retravailler ma petite miss à capuche :
Je l'ai posté sur r/pixelart pour voir la réception (le modo du sub est assez neutre par rapport aux AI mais c'est un peu moins le cas des redditeurs qu'on y trouve) et la réception est assez bonne !
Je vais travailler sur d'autres exemples, je devrai avoir des trucs sympa à vous montrer bientôt !
On peut trouver la palette d'origine de la NES :
https://fr.wikipedia.org/wiki/Fichier:NES_palette.png
Apparemment, pour les jeux en VESA, on tombe sur cette palette :
https://en.wikipedia.org/wiki/Mode_13h
Ce qui est ouf, c'est que dans mes souvenirs, c'était surtout le rose qui était utilisé, genre
Doit y'avoir une fonction mathématique qui permet de dire sur un point en 3D quel point est le plus prêt, mais je ne m'y connais pas assez pour ça
Une idée :
Si on encode une couleur avec 3 coordonnées X, Y et Z représentant rouge, vert et bleu, les 64 couleurs de la palette correspondent chacune à un point précis dont les coordonnées sont Xi, Yi et Zi (i étant le numéro de la couleur de 1 à 64)
Si tu as une couleur quelconque, disons que ses coordonnées sont X0, Y0 et Z0.
Le point de la palette le plus proche de ta couleur quelconque est celui pour lequel (X0-Xi)^2 + (Y0-Yi)^2 + (Z0-Zi)^2 est le plus petit. Comme il n'y a que 64 points de palette à tester, ça doit se calculer assez vite avec un petit programme.
Merci pour la réponse
Question : pourquoi tu mets au carré ? Y'a un nom à ça pour que je regarde l'explication ?
Edit : le résultat n'est pas probant, mais je me demande si ce n'est pas lié au principe même de la palette de couleurs et de notre perception d'icelles.
Dernière modification par deathdigger ; 23/01/2023 à 14h23.
C'est la formule de distance (euclidienne) habituelle entre deux points (que tu cherches donc à minimiser), en 3 dimensions (ça s'étend pareil à N dimensions). C'est le théorème de Pythagore, quoi.
Sinon il y a d'autres formules de distance que tu pourrais utiliser et qui donnent parfois un meilleur résultat selon le contexte (remplace les carrés par des valeurs absolues, par exemple).
Battle.net, BGA : S0uly
C'est à cause de Pythagore
Imagine qu'on est en 2 dimensions (2 couleurs).
L'ensemble des points qui sont à une distance R d'un point P donné, c'est un cercle (de rayon R).
Si le cercle est centré sur l'origine, chaque point du cercle, de coordonnées X et Y, vérifie X^2+Y^2= R^2 (c'est Pythagore).
Si le centre du cercle est un point de coordonnées X0 et Y0, c'est un poil différent, ça devient (X-X0)^2 + (Y-Y0)^2 = R^2
Donc si tu as les coordonnées X et Y d'un point et les coordonnées X0 et Y0 d'un autre point, tu peux trouver la distance entre ces deux points : c'est R, soit racine((X-X0)^2 + (Y-Y0)^2).
Maintenant, si tu as un tas de points (X0, Y0), (X1, Y1), etc. et que tu veux trouver duquel ton point (X, Y) est le plus proche, tu peux calculer la distance à chacun de ces points avec la formule ci-dessus. On n'a pas besoin de prendre la racine carrée vu qu'on cherche juste le point le plus proche : celui dont le R est le plus faible sera aussi celui dont le R^2 sera le plus faible.
Quand on passe en 3 dimensions, c'est la même chose, sauf que l'ensemble des points à distance R de l'origine, ce n'est plus un cercle, mais une sphère, et l'équation est X^2+Y^2+Z^2 = R^2 (où R est le rayon de la sphère).
(on pourrait définir d'autres "distances" mais celle-ci est la plus intuitive)
Si tu définis une couleur via ses valeurs Rouge Vert Bleu (rgb), tu définis en fait un point A(r,b,g) dans un cube, l'espace des couleurs, à 3 dimensions. Et la formule qu'il utilise est simplement la distance(1) "classique" d'un espace à 3 dimension
Par contre, effectivement, l'espace de couleur rgb n'est pas le plus naturel pour notre perception, et si tu fais la moyenne de deux couleurs, tu n'obtiens pas forcément un résultat qui serait conforme à notre perception de la couleur entre les deux
Il y a d'autres espaces de couleurs, et pour ce genre d'approche, un codage des couleurs en Teinte Saturation Luminosité donnera sans doute de bien meilleurs résultats
(1) : enfin, la distance au carrée, mais ça n'est pas utile de prendre la racine carrée pour savoir quel point est le plus proche
Edit : a moitié grillé
Pour les calculs de distances, c'est effectivement ce que je fais pour le remplacement des couleurs avec la palette. Le vrai soucis c'est la détermination de la palette en fait.
Oui, en gros mon pipeline c'est génération MidJourney => Pixelisation / simplification palette => Fin du travail dans Procreate (avec des pinceaux spécialisés pixel art).
J'ai fais quelques essais ce WE, allant de la simple correction de pixels au travail plus complet (j'ai retravaillé les dégradés en dithering..) et je suis assez satisfait : mon code me permet de préparer suffisamment le terrain pour pouvoir travailler sérieusement dessus ensuite.
Par contre forcément, à ce moment là, ce n'est plus une image "100% IA", mais elle n'aurai pas existé sans elle non plus (puis j'ai déjà corrigé dans photoshop certaines images de midjourney aussi par le passé).
Hello !
J'ai un ami qui me demande de l'aide pour un tatouage mais je n'arrive pas à avoir ce qu'il veut avec stable diffusion. Je le cite :
"Un pigeon de face. Ailes écartées, tête de profil. Avec la cage thoracique éclatée et un sacré coeur (un coeur en feu) devant la cage thoracique.
Le tout dans un style de tatouage néotraditionnel américain"
J'ai tenté plusieurs prompts, dont :
"pigeon, spreaded wings, shattered chest, a heart in fire springing out of it, neotraditional american tatoo style"
J'arrive pas à lui faire exploser le thorax quoique je fasse...
J'ai roulé ton prompt dans MJ avec l'option "--niji" pour tester :
J'pense que tu va être typiquement dans le cas où la rigidité de l'IA va t'emmerder à fond, dès que tu veux un truc composé précis, ça deviens très difficile d'obtenir ce qu'on veux.
De mon coté j'ai une version publique de mon pixelisateur à vous partager !
pixelart-cleaner.com
C'est une première version donc c'est encore brut de décoffrage mais ""ça marche"". Il manque une gestion d'erreur digne de ce nom, il faudrait que je mette en place aussi quelques limitations contre le spam (j'ai réduit la rapidité de traitement volontairement pour freiner un peu les risques mais faut que je revois ça), et d'autres trucs mais comme ça vous pouvez l'utiliser durant ce temps.
Je pense le passer à terme dans un format "freemium", accès gratuit et un peu limité (en perf ou autre) et un accès sans limitations avec les meilleures perfs possibles pour ceux qui mettrons une petite pièce pour l'hébergement et le reste.
(Pour les canards qui participent à ce thread je vous donnerai un accès gratuit à la version ""premium"" quand elle verra le jour, suffira de me le demander en MP)
Je m'amuse déjà beaucoup avec, je suis curieux de voir ce que vous pourriez en faire aussi. Mon pipeline actuel est le suivant :
- Génération d'image "pixel art" sur MJ. Pour ce faire le champ lexical du jeu vidéo est très utile, de type 2d game asset, 8-bits, 16-bits, pixel art, big pixels, sprite, pixel art style, NES Graphic, pixelated glitch art pointillism, pixelated, etc.
- Réduction de la palette et repixelation avec mon outil
- Correction du résultat (photoshop, gimp, procreate, etc), perso je suis sous procreate avec ce set de brushs.
Et ça marche même avec des images pas vraiment pixelisées en entrée :
Congrats !
J'espère que ça percera un peu
Je t'encourage à mettre un exemple ou deux en première page, par contre.
Pas de signature.
C'est vraiment le résultat de la conversion, non retouché? Je trouve ça bizarre, parce la façade du bâtiment plus clair au premier plan me semble assez différente, et il manque les éléments hors cadre au niveau du sol.
Ça donne quoi avec des photos?
(Quelque part je trouve surprenant qu'il y ait besoin d'autant de boulot pour faire ça, à la base j'aurais pensé que c'était juste une question de réduction de la résolution. C'est le choix de palette la difficulté?)