12 de noviembre de 2026 · Equipo de VRAMfarm
Entrena un LoRA de Flux con tus propias fotos: 20 imágenes, 24 GB y unas dos horas
Veinte fotos buenas, unos 2000 pasos de entrenamiento y una tarjeta de 24 GB: eso es todo lo que necesita un LoRA de parecido para Flux.1 dev. En una RTX 4090 alquilada, el entrenamiento en sí dura de 1 a 2,5 horas, y una primera tanda con la preparación y las imágenes de prueba sale por unos 1,24 € de tiempo de GPU. La mayoría de los LoRA fallidos fallan antes de que arranque la GPU, en las fotos y en las descripciones, así que esos dos pasos merecen tanto cuidado como los comandos.
El dataset: cuántas fotos y cuáles
Para una persona, el rango útil es de 15 a 30 fotos. Con menos de 10, el modelo no consigue separar tu cara de la iluminación de esas fotos concretas. Más de 40 rara vez ayuda y hace más difícil mantener una calidad uniforme. Veinte fotos nítidas y variadas ganan a cien parecidas.
Así es un buen conjunto:
- Variedad donde quieres flexibilidad. Ángulos distintos (de frente, tres cuartos, de perfil), luz (de día, en interior, al atardecer), fondos, ropa y expresiones. Todo lo que se repite en el conjunto acaba grabado en el LoRA. Si llevas el mismo jersey negro en 15 fotos, ese jersey volverá en cada imagen.
- Sobre todo cabeza y hombros, y unas pocas de medio cuerpo y cuerpo entero. Que unos dos tercios sean primeros planos da a la cara suficientes píxeles; el resto enseña las proporciones.
- Solo tú en el encuadre. Recorta a las demás personas o deja fuera esa foto. Una segunda cara confunde al entrenamiento más que ninguna otra cosa.
- Sin filtros fuertes, modos belleza ni escalados con IA. El LoRA aprende el filtro como si fuera parte de tu cara.
- Al menos 1024 píxeles en el lado corto después de recortar. Las fotos del móvil sirven. Las imágenes pequeñas las amplía el entrenador y quedan blandas.
No hace falta recortarlo todo en cuadrado: ai-toolkit y kohya agrupan las imágenes por proporción. Pon las imágenes en una carpeta con un nombre neutro, como dataset, con nombres de archivo como 01.jpg, 02.jpg. Tu nombre no pinta nada en los nombres de archivo que van a una máquina alquilada.
Para un LoRA de estilo (un estilo de ilustración, el aspecto de un producto), las cifras son parecidas: 20–50 imágenes que comparten el estilo y cambian de tema.
Descripciones y palabra clave
Cada imagen lleva un archivo de texto con el mismo nombre (01.txt junto a 01.jpg). La descripción le dice al modelo qué parte de la imagen es el concepto nuevo y qué parte es corriente.
Elige una palabra clave (trigger word) que todavía no signifique nada, como annx o mrkv. Una palabra real como «anna» ya tiene un significado en el modelo y pelea contra tu entrenamiento. Después escribe descripciones cortas que mencionen la palabra clave y describan lo que cambia de una foto a otra:
photo of annx, a woman with curly hair, smiling, sitting at a cafe table, daylight
photo of annx, close-up portrait, serious expression, dark background
Dos reglas deciden casi todo el resultado. Describe lo que quieres que siga siendo cambiable (ropa, fondo, luz), porque lo descrito se trata como algo separado del concepto. No describas la cara en detalle, porque eso es lo que debe absorber la palabra clave.
Flux es indulgente en esto. Unas descripciones que solo dicen photo of annx funcionan sorprendentemente bien para una sola cara, y mucha gente entrena así. Las descripciones detalladas ayudan cuando el conjunto es desigual o cuando más tarde quieres cambiar ropa y escenarios con libertad. Los generadores automáticos de descripciones (FluxGym usa Florence-2; JoyCaption es popular) te ahorran teclear, pero lee lo que generan y quita lo que esté mal, sobre todo las descripciones de la cara.
ai-toolkit, FluxGym o kohya: qué entrenador
Los tres son gratuitos y funcionan en un servidor vacío con PyTorch y Jupyter.
| Entrenador | Cómo se usa | Bueno para | Ajustes de VRAM |
|---|---|---|---|
| ai-toolkit (Ostris) | Un archivo YAML de configuración y un comando; interfaz web opcional | Los mejores valores por defecto para Flux, imágenes de muestra durante el entrenamiento, también FLUX.2, Qwen-Image, Wan | Configuración para 24 GB; opción low_vram para menos |
| FluxGym | Una página web sencilla: subir, describir, entrenar | Primer LoRA, sin archivos de configuración | Ajustes para 12, 16 y 20 GB |
| kohya sd-scripts | Línea de comandos con muchas opciones | Control fino; son los scripts que FluxGym ejecuta por debajo | Cualquiera, con fp8 e intercambio de bloques |
Si te manejas con la terminal, elige ai-toolkit: su configuración de ejemplo train_lora_flux_24gb.yaml es un punto de partida sensato y genera imágenes de muestra cada pocos cientos de pasos, que es como eliges el mejor checkpoint. FluxGym es más fácil para un primer intento, sobre todo en una tarjeta de 16 GB.
Los dos entrenan sobre Flux.1 dev. Es un modelo de acceso restringido en Hugging Face: para ai-toolkit, acepta su licencia en la página del modelo y crea un token de lectura; FluxGym descarga sus archivos de modelo en el primer arranque, como explica su README. Los pesos de Flux.1 dev tienen una licencia no comercial; revisa sus condiciones actuales antes de usar las imágenes en trabajos de pago. Si eso te importa, ai-toolkit puede entrenar sobre Flux.1 schnell (Apache 2.0) con un adaptador de entrenamiento.
VRAM, tiempo y coste por tarjeta
Flux.1 dev tiene 12 000 millones de parámetros, unos 24 GB en bf16. Los entrenadores lo cargan en 8 bits, lo que lo reduce a la mitad y deja sitio para el LoRA, el optimizador y las imágenes a 1024 px. Por eso 24 GB es el tamaño cómodo. En 16 GB, el entrenador además mueve bloques del modelo a la RAM del sistema y de vuelta en cada paso, lo que funciona pero va bastante más lento.
Una tanda típica: 20 fotos, 2000 pasos, rango 16, grupos de resolución de hasta 1024 px.
| Tarjeta | VRAM | Tiempo de entrenamiento (rango) | Coste del entrenamiento en el punto medio del rango |
|---|---|---|---|
| RTX 4080, RTX 5080 (con trucos para 16 GB) | 16 GB | 3–6 h | 1,40 € en una RTX 4080 |
| RTX 3090 | 24 GB | 2,5–4 h | 0,90 € |
| RTX 4090 | 24 GB | 1–2,5 h | 0,89 € |
| RTX 5090 | 32 GB | 0,8–1,6 h | 0,84 € |
| H100 | 80 GB | 0,5–1 h | 2,93 € |
Toma los tiempos como rangos para planificar, no como benchmarks: la resolución, el rango, el número de imágenes de muestra y la versión del entrenador los mueven. Entrenar solo a 512 px reduce el tiempo más o menos a la mitad, con menos detalle fino. Una H100 es la más rápida, pero rara vez la más barata; un LoRA es un trabajo demasiado pequeño para aprovecharla del todo. La RTX 4090 y la RTX 3090 son las opciones habituales, y la 3090, más barata, a menudo gana en precio por LoRA cuando no vas con prisa. En la página de precios están las tarifas actuales.
Sobre los pasos: unos 100 pasos por foto es un buen comienzo, así que 1500–2500 para un conjunto de 15–25. Una tasa de aprendizaje de 1e-4 y rango 16 (los valores por defecto de ai-toolkit) van bien para caras. Guarda un checkpoint cada 250 pasos y juzga por las muestras. El mejor muchas veces no es el último.
Lanzar el entrenamiento en un servidor alquilado
Lanza un servidor vacío PyTorch + Jupyter con una tarjeta de 24 GB. El driver y la versión de CUDA de la máquina se muestran antes de lanzar; los entrenadores actuales piden CUDA 12.x o posterior, así que compruébalo ahí. Abre Jupyter → File → New → Terminal, o conéctate por SSH (guía de claves SSH).
Sube tu carpeta dataset con el botón de subida de Jupyter (comprímela antes y luego unzip dataset.zip). Después instala ai-toolkit siguiendo su README para las versiones exactas:
cd /workspace
git clone https://github.com/ostris/ai-toolkit
cd ai-toolkit
pip install -r requirements.txt
echo "HF_TOKEN=<your read token>" > .env
cp config/examples/train_lora_flux_24gb.yaml config/annx.yaml
En config/annx.yaml, fija name, trigger_word: "annx", folder_path: "/workspace/dataset", steps: 2000 y los prompts de muestra (pon en ellos tu palabra clave). Luego arráncalo dentro de tmux, para que siga funcionando cuando cierres el navegador:
tmux new -s lora
python run.py config/annx.yaml
# sal con Ctrl+B y luego D; vuelve con: tmux attach -t lora
El primer arranque descarga Flux.1 dev y sus codificadores de texto, unos 30–35 GB. Esos minutos se facturan, y los gigas cuentan como tráfico con la tarifa de la máquina que se muestra antes de lanzar. Los checkpoints y las imágenes de muestra aparecen en /workspace/ai-toolkit/output/<name>/. Abre las muestras en Jupyter a medida que llegan; si ya se ven bien en el paso 1250, puedes parar antes.
FluxGym levanta una página web en su propio puerto. En un servidor PyTorch vacío solo SSH y Jupyter son accesibles desde fuera, así que abre FluxGym a través de un túnel SSH (ssh -L 7860:localhost:7860 ... con el host y el puerto de Mis servidores) y visita http://localhost:7860 en tu ordenador.
Un entrenamiento mantiene ocupada la GPU, así que la protección por inactividad no lo toca. Cuando termina, la GPU se queda en reposo. Si estás durmiendo y no hay nada conectado, recibes un aviso de inactividad al cabo de unas dos horas, y una hora después el servidor guarda /workspace y se detiene (la carpeta de un servidor PyTorch se puede guardar; donde no se puede, solo recibes los avisos). Esas horas inactivas se pagan. Para detenerlo justo al terminar, añade una llamada a la API después de python run.py, o simplemente pon una alarma.
Tus fotos en una máquina alquilada
Es la pregunta que la gente hace en voz baja, así que aquí va una respuesta clara.
Nuestras GPU vienen de anfitriones verificados, no de centros de datos propios. Antes de lanzar ves el país de la máquina. Tu servidor funciona en su propio contenedor, separado de los demás clientes, y su disco se elimina cuando se detiene. El anfitrión maneja el ordenador físico, y quien tiene control físico de una máquina puede, en principio, leer lo que hay en ella. Eso vale para cualquier servidor alquilado, desde un marketplace hasta una gran nube, y es el riesgo que estás valorando.
Con un conjunto de retratos, estos hábitos lo reducen a muy poco:
- Elimina los metadatos antes de subir. Las fotos del móvil llevan coordenadas GPS y el nombre del dispositivo.
exiftool -all= *.jpgen tu ordenador los quita. - Sube solo el conjunto de entrenamiento, no tu fototeca, y usa nombres de archivo neutros.
- Borra el dataset cuando termine el entrenamiento (
rm -rf /workspace/dataset /workspace/dataset.zip), sobre todo antes de Guardar y detener, para que las fotos no se queden en la carpeta guardada. - Trata el LoRA como una foto tuya. Reproduce tu cara cuando se le pide. No lo publiques a menos que sea lo que quieres.
- Elige el país de la máquina si te importa; se muestra antes de lanzar.
Las fotos de otras personas necesitan su consentimiento. Según el RGPD, una cara reconocible es un dato personal, y un modelo que genera imágenes nuevas de alguien va más allá que compartir una foto. Hay más sobre quién puede ver qué en ¿están seguros mis datos en una GPU alquilada?.
Conserva el LoRA y úsalo en ComfyUI
Un LoRA de Flux con rango 16 ocupa unos 100–170 MB, y con rango 32, más o menos el doble. Descarga el checkpoint que te haya gustado desde Jupyter (clic derecho → Download) para tener una copia en casa. Luego, en /workspace/ai-toolkit/output/<name>/, borra los checkpoints que no quieras y usa Guardar y detener. La carpeta guardada conserva /workspace para el siguiente servidor, aunque sea con otra tarjeta, a 0,03 € por GB al mes; unos cuantos LoRA juntos se quedan muy por debajo de un giga. Flux.1 dev vive en la caché de Hugging Face, fuera de /workspace, así que no se guarda y no suma 30 GB a tu factura. Los detalles están en qué pasa con tus archivos al detener una GPU.
Para generar con él, arranca ComfyUI, pon el archivo en /workspace/ComfyUI/models/loras, añade un nodo LoraLoader entre el modelo y el sampler y usa la palabra clave en tu prompt. La app de Flux lista para usar ejecuta Flux.1 schnell, donde un LoRA de dev funciona pero se parece menos a ti; descarga Flux.1 dev en ComfyUI para el parecido completo. La guía de ComfyUI muestra dónde va cada archivo y cómo descargar Flux dev con tu token.
Empieza con una intensidad de 0,8–1,0. Si todas las imágenes se parecen a tus fotos en vez de a ti en una escena nueva, baja la intensidad o vuelve a un checkpoint anterior. Si el parecido es flojo, súbela o entrena 500 pasos más.