Pix2Pix
Dibuixa un esbós i deixa que la intel·ligència artificial el converteixi en una imatge realista. Descobreix Pix2Pix, la tecnologia que tradueix traços en fotografies.
Què és Pix2Pix?
Pix2Pix és un model d'intel·ligència artificial que aprèn a traduir imatges d'un domini a un altre. Per exemple:
- Esbós → Fotografia: dibuixes un contorn i el model genera una imatge realista.
- Mapa → Satèl·lit: un mapa de carrers es converteix en una vista aèria.
- Blanc i negre → Color: una foto en escala de grisos es coloreja automàticament.
- Dia → Nit: una escena diürna es transforma en nocturna.
El model s'entrena amb parells d'imatges: per cada esbós, hi ha una foto real corresponent. Així aprèn la correspondència entre els dos dominis.
Pix2Pix amb ml5.js
ml5.js ofereix el model pix2pix, que accepta un canvas com a entrada i genera una imatge de sortida en temps real mentre dibuixes.
Estructura bàsica del codi:
let pix2pix;
async function setup() {
createCanvas(256, 256);
background(0);
pix2pix = ml5.pix2pix('models/edges2cats.pict', modelReady);
}
function modelReady() {
pix2pix.transfer(canvas, (error, result) => {
if (error) { console.error(error); return; }
image(result, 0, 0, width, height);
});
}
function draw() {
if (mouseIsPressed) {
stroke(255); strokeWeight(10);
line(pmouseX, pmouseY, mouseX, mouseY);
pix2pix.transfer(canvas, gotResult);
}
}
Exemples de models pre-entrenats: 'edges2cats' (contorns a gats), 'edges2shoes' (contorns a sabates), 'facades' (mapes a edificis).
Simulació: dibuixa i transforma
Com que els models Pix2Pix requereixen descàrrega, simularem el funcionament: dibuixes al llenç i el sistema "tradueix" el teu traç a una interpretació visual diferent.
// Mode 1: dibuix normal (esbós)
// Mode 2: generació automàtica (Pix2Pix simulat)
// Tecla 'g': genera una imatge completa automàticament
function keyPressed() {
if (key === '1') { mode = 0; background(255); } // Mode esbós
if (key === '2') { mode = 1; background(255); } // Mode generació
if (key === 'c') { background(255); } // Netejar
if (key === 'g') { /* Generar imatge automàtica */ }
}
El procés creatiu amb Pix2Pix
Pix2Pix canvia la manera com pensem el dibuix. En lloc de dibuixar el resultat final, dibuixes indicacions i deixes que el model completi la imatge. El procés típic és:
- Preparar el llenç: fons negre o blanc segons el model.
- Dibuixar els contorns: traços blancs sobre fons negre (o viceversa).
- Transferir: el model tradueix l'esbós a imatge realista.
- Iterar: ajustar el dibuix i tornar a transferir fins obtenir el resultat desitjat.
És un diàleg entre tu i la màquina: tu proposes, ella completa, tu ajustes.
Exemples creatius pas a pas
De formes bàsiques a "realitat"
Dibuixa formes geomètriques simples i el sistema les "interpreta" com a objectes del món real.
function mouseReleased() {
// Analitza l'esbós i genera una "traducció"
let comptador = 0;
// Compta píxels foscos...
if (comptador > 100) { /* Genera imatge */ }
}
Mapa a paisatge
Simulació de Pix2Pix per a mapes: taques de colors es converteixen en un paisatge.
// Clic esquerre: "terra" (verd)
// Clic dret: "aigua" (blau)
// Barra espaiadora: netejar
// Pix2Pix traduiria aquests colors a un paisatge realista
Consells per treballar amb Pix2Pix
- Models pre-entrenats: ml5.js inclou 'edges2cats', 'edges2shoes', 'edges2handbags', 'facades'. Prova'ls tots.
- Preparació del dibuix: la majoria de models esperen fons negre i traços blancs (o al revés). Llegeix la documentació.
- Mida del canvas: 256x256 píxels és la mida estàndard per a la majoria de models.
- Temps de resposta: la transferència pot trigar entre 0.5 i 2 segons. Dibuixa amb traços clars i espera el resultat.
- Experimenta: prova a dibuixar formes abstractes i observa com el model les interpreta. Sovint els resultats són sorprenents.
Exercicis per practicar
- Crea un canvas de dibuix amb dos modes: mode esbós (traços negres) i mode generació (el sistema afegeix elements visuals automàticament).
- Implementa un sistema de capes: dibuixa en una capa i el sistema genera contingut en una altra capa superposada.
- Dissenya un generador de paisatges: l'usuari pinta zones de color (verd=terra, blau=aigua, gris=muntanya) i el sistema completa el paisatge.
- Fes un joc de dibuix col·laboratiu: dues persones dibuixen (una amb ratolí, l'altra amb teclat) i el sistema genera la imatge final combinada.
- Repte: Investiga els models Pix2Pix disponibles a ml5.js i prepara l'estructura de codi per carregar-ne un i aplicar-lo a un canvas de dibuix.
Reflexió artística
Pix2Pix redefineix el concepte de dibuixar. Ja no dibuixes el que veus, sinó que dibuixes instruccions per a una màquina que completa la visió. És una col·laboració radical: tu aportes la intenció, la màquina aporta la realització. Aquesta tecnologia obre preguntes fascinants sobre l'autoria. Qui és l'artista d'una imatge generada per Pix2Pix? La persona que ha dibuixat l'esbós? L'equip que ha entrenat el model? Els creadors de les imatges d'entrenament? O el model en si? Com a artista-programador, el teu rol és explorar aquestes preguntes, jugar amb les expectatives, crear obres que qüestionin els límits entre allò humà i allò artificial. Pix2Pix no és només una eina per generar imatges: és un mirall on es reflecteix la nostra relació amb la tecnologia creativa.
Mini-projecte del Tema 26
Crea un "Estudi de dibuix generatiu" amb les següents característiques:
- Implementa un canvas de dibuix on l'usuari pugui dibuixar amb el ratolí (traços negres sobre fons blanc).
- Inclou almenys dos modes de generació simulats: un que afegeix textures pictòriques i un altre que afegeix formes geomètriques.
- Utilitza tecles per canviar entre modes (1=Dibuix lliure, 2=Pintura automàtica, 3=Geometria generativa).
- Afegeix un botó de netejar (tecla 'C') i un de generació automàtica (tecla 'G').
- Mostra un indicador del mode actiu i instruccions breus a la pantalla.