PROJET AUTOBLOG


Warrior du Dimanche

Site original : Warrior du Dimanche

⇐ retour index

Addy Osmani sur Twitter : Have low-resolution images? Enlarge them & improve their quality with ojoy.netlify.app. All client side. Powered by ML using UpscalerJS & TensorFlow.js.

mardi 26 janvier 2021 10:38

Une alternative à Waifux2 dont j'avais parlé ici (http://waifu2x.udp.jp/) SPOILER: Waifu est mieux. Test ci-dessous

J'ai voulu tester sous firefox mais sans succès: la page mouline et plante. Sous chromium, pas de souci majeur quand l'appli veut bien fonctionner... J'ajouterais que le résultat obtenu reste très en dessous de ce que fait waifu, tant en termes de qualité que de poids:

TEST N°1

1590225843-200x200originale.jpeg

image d'origine en 200x200

Avec OJOY

800x800.png

redimensionée en 800x800 (4x) / en PNG / poids: 1.2 mo !

Avec WAIFUx2

800x800

redimensionnée aussi en 800x800 / en JPG / poids 152 ko

TEST N°2

Pour donner une seconde chance à Ojoy, j'ai récupéré une image de celles qu'eux mêmes préconisent: j'ai découpé un joli requin dont l'image présente l'avantage de tester aussi bien les contrastes forts, les angles et les dégradés

requin.jpg

350x650 / jpg 90%/ 15ko

Avec Ojoy

Impossible d'obtenir autre chose qu'un carré noir, tant avec une image d'origine en jpg qu'en png...

Capture du 2021-01-26 11-02-14.png

Avec Waifu

No souçaïe, waifu fait le job quel que soit le format d'entrée (même s'il s'en sort mieux avec un png).

Au départ j'avais laissé waifu sur le profil «photo» avec une forte réduction du bruit numérique ce qui faisait qu'on avait un peu d'artefacts jpg dans l'image obtenue. J'ai recommencé en mode dessin et avec une réduction moyenne et les artefacts ont disparu:

la moins bonne image obtenue

4a77db9e-002e-4d32-a5da-8a3674738810.png

700x700 / png / 185 ko

La meilleure

92c5711f-072a-4b31-bae8-eac65bf5aedf.png

700x700 / png / 145 ko

Mode dessin avec réduction du bruit bas

Comparatif Image d'origine | image moins bonne | Meilleure image

Capture du 2021-01-26 11-30-51.png

Au bout du compte, l'image générée par waifu est carrément plus belle et propre que celle d'origine.

TEST N°3

Parce que tester uniquement avec un dessin, ce ne serait pas sérieux, je lance un défi à base de photo extraite d'un gif animé et sauvée en jpg 90%.

eavybreathing.jpg

374x346 / jpg extrait d'un gif / 38.3 ko

Comme précédemment, impossible d'obtenir d'Ojoy autre chose qu'une image noire... bref, pas concluant.

Pour waifu, toujours aucun problème même si la qualité est moins bonne (mais c'est normal vu le challenge)

0351ed1e-6298-454c-8231-f047cb06e9ab.png

748x692 / png / 605 ko

TEST N°4

Enfin, je suis allé chercher une photo tirée d'unslash que j'ai volontairement réduite et sauvée en jpg 90%.

face.jpg

236x300 / jpg 90% / 26.6ko

Toujours image noire avec Ojoy et pas de problème avec Waifu.

Le résultat est très honorable pour une photo, même s'il y a des artefacts et des soucis de dégradés dus à la quantité de détails (grain de peau, cheveux etc):

face1db7aa8b-ebcb-4f45-8ba6-66d06923c838.png

472x600 / png / 386ko

Conclusion

L'impossibilité d'obtenir quoi que ce soit avec Ojoy me semble injustement disqualificatoire mais bon, j'ai eu beau tripatouiller rien n'y a fait...

C est quand  même pas ma  faute  .png

Sans surprise, Waifu se démerde carrément bien, en particulier avec les dessins - ce qui n'étonnera personne

Si certains veulent se fader un autre test parce qu'ils sont parvenus à faire fonctionner Ojoy, allez-y (parce que je fais quand même partie des poissards informatiques)

Via https://links.nekoblog.org/?Wm1tZQ


<link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

À quoi ressemblait vraiment l'Angleterre à l'époque de «La Chronique des Bridgerton»?

mardi 26 janvier 2021 10:34

@SammyFisher : C'est exactement ce que j'en ai pensé: il faut le prendre comme une pure fiction, voire une uchronie idéaliste. Ça ne me semble ni bien ni mal en soi... tant que le postulat de départ est bien clair pour tout le monde.

Sans compter que j'ai trouvé le tout assez fade et sans charme.

Via https://www.sammyfisherjr.net/Shaarli/


<link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

Donnez un look NES à votre site web

vendredi 22 janvier 2021 14:20

Donner un style NES à un site ou une appli web ? Voilà une feuille de style toute prête...

<link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

Eqk-iwuWMAUsXbW (Image JPEG, 4032 × 3024 pixels) - Redimensionnée (31%)

vendredi 22 janvier 2021 11:03

Je suis prêt   on part quand  tu veux  .png

J'ai beau essayer plein de jeux différents, rien n'y fait: ça ne vaut pas les elder scrolls à mes yeux.

Les autres jeux sont soit trop dirigistes, soit trop narratifs, soit mal foutus du point de vue ergonomique... je ne retrouve jamais le plaisir de jeu, l'immédiateté, la simplicité, la liberté de Skyrim, Oblivion ou Morrowind...

heavyb.jpg

Via https://www.sammyfisherjr.net/Shaarli/
<link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires

How to save a base64 image from javascript with php | Our Code World

jeudi 21 janvier 2021 15:41

Bon, on ne m'enlèvera pas de la tête que c'est pas super intuitif, ni super simple, mais bon, je n'ai trouvé que ça qui fonctionne...

Mon souci

  1. Je crée une image côté navigateur avec canvas
  2. je veux l'envoyer à mon serveur pour stockage

On pourrait croire que c'est simple, hein... ben j'ai pas trouvé, personnellement.

J'ai essayé

  1. de transformer le canvas en blob et de l'envoyer via un formdata
  2. de transformer le canvas en blob et de l'envoyer comme un objet simple
  3. de transformer le canvas en DataURL et de l'envoyer via un formdata
  4. de transformer le canvas en DataURL et de l'envoyer comme un objet simple

Mais à chaque fois, j'ai pas été foutu de récupérer les données côté PHP (bon, je me doute qu'il doit y avoir un pacson de trucs que j'ignore encore, hein...)

Ensuite, j'ai pensé

«et si je passais les données au format base64, je devrais pouvoir les récupérer facilement...» car je pratique couramment un optimisme ridicule au sujet duquel il m'arrive encore de sombrer dans la stupéfaction à grand fracas...

Dont acte: je recommence à farfouiller avec des fetch, des posts pis tout mais sans succès: les données décodées font une image invalide.

en désespoir de cause

Je décide de procéder moins élégamment: je copie les données vers un formulaire caché que je poste en target blank pour pas perdre ma page de travail... Oui, je sais, c'est sale, c'est moche, c'est pas secure, j'en ai conscience, c'est pas la peine de m'enfoncer, j'ai déjà assez honte comme ça...

Je reçois bien de la base 64, je décode... Et l'image n'est toujours pas valide. Puis une recherche m'apprend qu'il faut virer l'en-tête base64 côté serveur avant de décoder pour que ça fonctionne...

Je teste et... ça marche.

SUPER INTUITIF MERCI

<link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/style.css"/> <link rel="stylesheet" href="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/> <script src="http://warriordudimanche.net/./plugins/Galart/assets/lightbox.js"> <script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});

► Commentaires