Consejos para entrenar modelos faciales en TheLastBen Colab, para que al generar imágenes la gente que aparezca sea igual a la persona sin que tengas que buscar ese seed/semilla de la suerte.
Aquí hay 8 consejos básicos que funcionan, seguidos de un consejo súper secreto:
- La consistencia es importante. No mezcles fotos de hace 10 años con otras nuevas. Las caras cambian, las personas pierden peso o aumentan de peso y todo eso solo reduce la fidelidad.
- Evite las grandes expresiones, especialmente aquellas en las que la boca está abierta.
- Es mucho más fácil entrenar si el cabello no cambia mucho. Probé un modelo anterior de una mujer usando fotos con el cabello recogido, suelto, en coleta, con un corte diferente, etc. Parece que simplemente confundió a Stable Difussion (SD).
- Evite los selfies (a menos que SOLO use selfies). Hay MUCHA más distorsión de perspectiva cuando la cámara está tan cerca. Para obtener resultados óptimos, se usaría una sola cámara con una lente fija y todas las fotos deberían tomarse a la misma distancia del sujeto. Por lo general, esto no es posible, pero al menos evita las selfies porque causan una gran distorsión de la cara.
- Las tomas de cuerpo completo no son tan importantes. Algunos de los mejores modelos que entrené usaban solo 15 fotos recortadas en la región de la cabeza y los hombros. Muchos de estos eran tomas de cuerpo completo, pero las recorté. SD puede adivinar cómo se ve el resto del cuerpo, y si no, simplemente póngalo en los prompts. Lo único difícil de entrenar es la cara, así que concéntrate en eso.
- Ya no uso fotos de perfil porque no parecen agregar valor. Me gusta tener un par mirando ligeramente hacia la izquierda y un par mirando ligeramente hacia la derecha (quizás 45 grados). Todo lo demás puede estar directamente en la cámara. Además, trata de evitar las fotos tomadas desde ángulos muy altos o bajos.
- Si es posible, es bueno tener algunas (pero no todas) las fotos en un fondo muy limpio. En mi último lote, utilicé una herramienta de eliminación de fondo de IA para eliminar el fondo de 1/4 de las fotos y lo reemplacé con un color sólido. Esto pareció mejorar los resultados.
- Cuidado con el maquillaje. Debe ser muy consistente en todas las fotos. Esos geniales efectos de 'contorno' que engañan a nuestros ojos, también engañan a SD.
- (¡Consejo súper secreto!) Digamos que estás entrenando con 30 fotos. Intente esto: etiquete sus 10 mejores y más consistentes fotos con una etiqueta como 'bettybest'. Luego, etiquete sus próximas 10 fotos con una etiqueta diferente, como 'bettygood'. Y los de valor cuestionable, otra etiqueta como 'bettyokay'.
Ahora en tu prompt, tienes más flexibilidad. Puede colocar la etiqueta 'bettybest' al frente del prompt, luego colocar las otras etiquetas más tarde para que tengan menos peso. Experimente omitiendo la peor etiqueta. Pruebe indicaciones como 'a photo of bettybest mixed with bettygood.'. Este método usa más tokens, pero en mi opinión vale la pena para aumentar las posibilidades de éxito.
Otras consideraciones:
Pregunta: ¿A qué te refieres con etiquetas? nombrando los primeros 10 archivos con un nombre para que estés 'Fusionando' caras diferentes?
Respuesta: Sí, nombre algunos de ellos como bettybest (01).jpg y bettybest (02).jpg y luego otros como bettygood (01).jpg. Esto creará múltiples incrustaciones de la misma persona dentro del modelo. Cuando solicite, simplemente incluya la etiqueta sin paréntesis ni números.
Pregunta: ¿Usas SD 2.1 y 768? ¿Eso afecta el tamaño de las imágenes que puede generar (es decir, entrenar con 512 y generar 768)
Respuesta: Recientemente comencé a entrenar en 2.1, y antes de eso era estrictamente en 1.5. Si entrenas con el modelo 768, debes usar imágenes de 768 x 768 y el entrenamiento tardará 3 veces más. Pero puede obtener mejores resultados con más detalles.
Pregunta: ¿Cuántos UNet training steps utiliza?
Respuesta: Para las caras, generalmente uso menos fotos y más pasos. Como 30 fotos x 200 pasos UNet por foto = 6000 pasos. Siempre entreno el codificador de texto el 50% de esos pasos cuando entreno una cara. Con el modelo 768, parece que tienes que entrenar el codificador de texto un poco más, así que voy al 60 % ahora.
Guarde un punto de control cada 1000 pasos (o incluso 500 pasos si tiene espacio en su unidad de Google). Si el modelo parece sobreentrenado, puede regresar y usar uno de los otros puntos de control.
Pregunta: ¿Qué busca para darse cuenta de que text encoder no se ajusta correctamente? También noté que los valores predeterminados en el notebook de Colab son algo así como 10-20% de los UNet steps para el text encoder, ¿qué tipo de resultados ve en la configuración predeterminada?
Respuesta: Si el text encoder no está bien entrenado, solo verá resultados positivos cuando super-prompt tenga de sus etiquetas. Así que escribe un prompt largo que incluye su etiqueta y no se parece en nada a la persona, pero comienza a funcionar si tiene (etiqueta: 1.5) y/o lo tiene varias veces en el mensaje.
Si el text encoder está sobreentrenado, tener la etiqueta una vez hace que todas las imágenes se vean casi idénticas a las fotos en las que entrenó, y se vuelve muy difícil estilizar las imágenes o incluso cambiar el escenario.
Para entrenar un estilo artístico o una estética general, es mejor entrenar menos el text encoder. Para entrenar una cara, necesita más pasos de text encoder, o realmente tendrá problemas para obtener la etiqueta de aviso lo suficientemente fuerte.
Además, TheLastBen está actualizando su dreambooth casi a diario. Hace unas semanas pedía un porcentaje de pasos en el codificador de texto, ahora pide un número exacto. Cuando era un porcentaje, recomendaba un 40-60 % de pasos de codificador de texto para caras y un 20 % para estilos, lo que creo que es un mejor consejo que el que hay actualmente.
Post votado por la Curación de la Comunidad de Mundo Virtual. Recibes algunos Huesos
Te invitamos a que conozcas nuestra Comunidad de Hive