Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben
  • ✇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 !

  • ✇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

  • ✇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

❌
❌