Entrené un clon digital y envejeció quince años
El entrenamiento de identidad con LoRA colapsó en una edad cuando un descriptor dominó el 100% de los captions. El modelo aprende lo que mantienes constante. Varía todo lo que no quieras que memorice.
El entrenamiento terminó limpio. La loss convergió de 11,4 a 0,44 en 1500 steps en una A100. Setenta y seis minutos, rank 16, 69 fotos de rostro curadas y filtradas por similitud de embedding. Luego corrí la inferencia.
La persona en la salida era yo. Pero quince años mayor.
Toda constante se vuelve un rasgo definitorio
Todos los captions empezaban con el mismo bloque:
a photo of f3l1p3, a 40s brazilian man, short dark wavy hair,
full beard with graying chin, wearing dark rectangular glasses, ...
“Graying chin” aparecía en el 100% de las muestras de entrenamiento. Así que el modelo ató ese descriptor al token de identidad, no como un detalle de cada foto.
El resultado en inferencia fue sistemático:
- Escala 1.0: ruido puro. El overfit destruyó el modelo base.
- Escala 0.5: deslavado y anciano.
- Escala 0.3: estructura reconocible, pero unos quince años mayor.
El modelo aprendió quién era yo a partir de lo que se mantuvo constante entre las muestras. Dejé constante lo que no era.
Varía todo lo que no quieras que memorice
Los captions tienen que variar todo lo que el rostro no define. Pose, expresión, luz, escena, ropa: todo debe variar. Lo que repitas en el 100% de las muestras, el modelo lo va a atar al token de identidad. Si quieres que el modelo aprenda un rostro, deja de enseñarle una edad.
Esto fue un callejón sin salida. El pivote fue face injection zero-shot: una foto de referencia en tiempo de inferencia, sin entrenamiento, sin captions que arruinar. Cuando existen mejores herramientas, no vale la pena arreglar la ruta del LoRA.
Lección
Un modelo aprende lo que mantienes constante. Si quieres que aprenda identidad, tienes que variar todo lo demás.