Preparación
Dependiendo de cómo y qué estés entrenando, puede que necesites recortar las fotos a un ancho y alto específicos. Otros tipos de entrenamiento pueden categorizar las imágenes en varios tamaños y no requieren recorte. Revisa qué se requiere para el método de entrenamiento que estás usando, el modelo que estás entrenando y el programa que estás usando para entrenar tu modelo.Descripciones – Notas generales
Evita las descripciones automatizadas
- BLIP y deepbooru son interesantes, pero todavía es un poco pronto para ellos.
- BLIP y deepbooru tienen dificultades con el contexto y la importancia relativa.
- Es más rápido describir manualmente que corregir los errores cometidos por BLIP o deepbooru y aun así tener que describir manualmente.
Describe de la misma manera en que haces prompts
- La descripción y el prompting están relacionados.
- Reconoce cómo sueles hacer prompts. ¿Usas oraciones extensas? ¿Descripciones cortas? ¿Prompts vagos o detallados?
- Describe con un estilo y nivel de detalle similares a los que sueles usar al hacer prompts.
Sigue una estructura fija por concepto
- Seguir una estructura beneficiará el proceso de aprendizaje.
- Podrías tener una estructura para fotografías y otra para ilustraciones. Sin embargo, intenta evitar mezclar estructuras al describir un único dataset.
Las descripciones son como variables que puedes usar en tus prompts
Todo lo que describes en una descripción puede considerarse una variable que puedes manipular en tu prompt. Esto tiene dos implicaciones:- Conviene describir tantos detalles como sea posible sobre cualquier cosa que no sea el concepto que estás intentando enseñar de forma implícita. En otras palabras, describe todo lo que quieras que se convierta en una variable. Por ejemplo, si estás enseñando un rostro específico pero quieres poder cambiar el color del pelo, deberías describir el color del pelo en cada imagen para que “hair color” se convierta en una de tus variables.
- No conviene describir nada (más allá de una descripción a nivel de clase) que quieras que se aprenda de forma implícita. En otras palabras, aquello que intentas enseñar no debería convertirse en una variable. Por ejemplo, si estás enseñando un rostro específico, no deberías describirlo como si tuviera una nariz grande. No quieres que el tamaño de la nariz sea variable, porque entonces ya no sería ese rostro específico. Sin embargo, puedes seguir usando la descripción “face” si quieres, lo que proporciona contexto al modelo que estás entrenando. Esto tiene algunas implicaciones descritas en el siguiente punto.
Aprovechar las clases como etiquetas
- Aquí hay dos conceptos.
- Usar etiquetas de clase genéricas sesgará toda esa clase hacia tus datos de entrenamiento. Esto puede ser deseado o no, según tus objetivos.
- Usar etiquetas de clase genéricas proporciona contexto al proceso de aprendizaje. Conceptualmente, es más fácil aprender qué es una “face” cuando el modelo ya tiene una aproximación razonable de “face”.
- Si quieres sesgar toda la clase de tu modelo hacia tus imágenes de entrenamiento, usa etiquetas de clase amplias en lugar de específicas. Por ejemplo, si quieres enseñar a tu modelo que todo hombre debería parecerse a Brad Pitt, tus descripciones deberían contener la etiqueta “man”, pero no deberían ser más específicas que eso. Esto influye en tu modelo para que produzca un hombre con aspecto de Brad Pitt cada vez que uses la palabra “man” en tu prompt. Esto también permite que tu modelo recurra y aproveche lo que ya sabe sobre el concepto de “man” mientras entrena.
- Si quieres reducir el impacto de tu entrenamiento sobre toda la clase, incluye etiquetas específicas y resta énfasis a las etiquetas de clase. Por ejemplo, si quieres enseñar a tu modelo que solo “ohwxman” debería parecerse a Brad Pitt, y no quieres que todo “man” se parezca a Brad Pitt, no usarías “man” como etiqueta; solo lo etiquetarías con “ohwxman”. Esto reduce el impacto de tus imágenes de entrenamiento sobre la etiqueta “man” y asocia fuertemente tus imágenes de entrenamiento con “ohwxman”. Tu modelo recurrirá a lo que sabe sobre “ohwxman”, que prácticamente no es nada (ver nota), construyendo así conocimiento casi exclusivamente a partir de tus imágenes de entrenamiento y creando una asociación muy fuerte.
- Nota: Esto está simplificado para facilitar la comprensión. En realidad, esto se tokenizaría en dos tokens, “ohwx” y “man”, pero estos tokens estarían fuertemente correlacionados para fines de entrenamiento, lo que aun así debería reducir el impacto sobre la clase general de “man” en comparación con entrenar usando “man” como token en la descripción. Las matemáticas involucradas son bastante complejas y están muy fuera del alcance de este documento.
Descripciones consistentes
- Usa descripciones consistentes en todo tu entrenamiento. Esto te ayudará a invocar tu concepto de forma consistente al hacer prompts.
- Usar etiquetas inconsistentes en tu dataset hará que el concepto que intentas enseñar sea más difícil de comprender para el modelo, ya que en esencia lo estás obligando a aprender tanto el concepto como las diferentes formas de expresarlo. Es mucho mejor hacer que aprenda el concepto bajo un único término.
- Por ejemplo, probablemente no quieras tener tanto “legs raised in air” como “raised legs” si estás intentando enseñar un único concepto de una persona con las piernas levantadas en el aire. Quieres poder invocar esta pose de forma consistente en tu prompt, así que elige una sola manera de describirla.
Evita la repetición
- Intenta evitar la repetición siempre que sea posible. Al igual que con los prompts, repetir palabras aumenta el peso de esas palabras.
- Por ejemplo, si repetimos demasiado la palabra “background”, podríamos tener tres etiquetas que digan “background” (por ejemplo, simple background, white background, lamp in background). Aunque queremos que el fondo tenga poco peso, hemos aumentado su peso de forma significativa sin querer. Sería mejor combinarlas o reformularlas (por ejemplo, simple white background with a lamp).
Ten en cuenta el orden
- De nuevo, igual que con los prompts, el orden importa para el peso relativo de las etiquetas.
- Tener una estructura u orden específico que uses generalmente para las descripciones puede ayudarte a mantener los pesos relativos de las etiquetas entre imágenes de tu dataset, lo que debería beneficiar el proceso de entrenamiento.
- Tener un orden estandarizado hace que todo el proceso de descripción sea más rápido a medida que te familiarizas con describir siguiendo esa estructura.
Usa a tu favor el conocimiento existente de tu modelo
- Tu modelo ya produce resultados decentes y entiende razonablemente lo que le estás pidiendo. Aprovecha eso describiendo con palabras que ya funcionen bien en tus prompts.
- Conviene usar palabras descriptivas, pero si usas palabras demasiado oscuras o de nicho, probablemente no puedas aprovechar mucho del conocimiento existente. Por ejemplo, podrías decir “sarcastic” o “mordacious”. El modelo tiene cierta idea de lo que transmite “sarcastic”, pero probablemente no tenga ni idea de qué significa “mordacious”.
- También puedes verlo desde la perspectiva opuesta. Si estuvieras intentando enseñar el concepto de “mordacious”, podrías tener un dataset lleno de imágenes que transmitan “sarcastic” y describirlas con las etiquetas “sarcastic” y “mordacious” una al lado de la otra (para que estén cerca en peso relativo).
Descripciones – Estructura
Esto está pensado principalmente para personas o personajes, por lo que puede que no sea tan aplicable a algo como paisajes de fantasía, pero quizá pueda aportar algo de inspiración.Formato general
Asociaciones libres
- Aquí es donde colocamos cualquier asociación libre final que tengamos con la imagen.
- Esto podría ser cualquier cosa que se nos venga a la cabeza, normalmente “sensaciones” que sentimos al mirar la imagen o conceptos que creemos que se representan; en realidad, cualquier cosa sirve aquí siempre que exista en la imagen.
- Ten en cuenta que esto es para asociaciones libres. Si la imagen representa de forma muy evidente alguna sensación, quizá queramos etiquetarla más cerca del inicio de la descripción para darle mayor peso.
- Por ejemplo: happy, sad, joyous, hopeful, lonely, sombre
EJEMPLO COMPLETO DE UNA SOLA IMAGEN
Este es un ejemplo de cómo describiríamos una sola imagen que elegimos de safebooru. Supondremos que quiero entrenar el estilo de esta imagen y asociarlo con la etiqueta “ohwxStyle”, y supondremos que tenemos muchas imágenes de este estilo dentro de nuestro dataset. Imagen de muestra: https://safebooru.org/index.php?page=post&s=view&id=3887414- Globales: ohwxStyle
- Tipo o perspectiva de una: anime, drawing, of a young woman, full body shot, from side
- Palabras de acción: sitting, looking at viewer, smiling, head tilt, holding a phone, eyes closed
- Descripción del sujeto: short brown hair, pale pink dress with dark edges, stuffed animal in lap, brown slippers
- Detalles notables: sunlight through windows as lighting source
- Fondo o ubicación: brown couch, red patterned fabric on couch, wooden floor, white water-stained paint on walls, refrigerator in background, coffee machine sitting on a countertop, table in front of couch, bananas and coffee pot on table, white board on wall, clock on wall, stuffed animal chicken on floor
- Asociaciones libres: dreary environment