- Intro:
Achieving a consistent character in Stable Diffusion can be hard, In this method, you'll need anywhere from 1 to 4 images of the same character, cutting each part and separating the clothing, hat, and fine details. This approach ensures a remarkable consistency in character generation.
Conseguir un personaje consistente en Stable Diffusion puede ser duro. En este método, se necesita entre 1 y 4 imágenes del mismo personaje, cortando cada parte y separando la ropa, el gorro y los detalles finos. Este enfoque garantiza una consistencia notable en la generación de personajes.
DISCLAIMER: all my training are done in ponyXL/Todos mis entrenamientos fueron hechos en PonyXL.
UPDATE: This way of training works really well in PonyXL, the training in SDXL has not worked very well for me although I have not tried it enough yet. IF you have achieved good results in SDXL I would like to see them.
UPDATE: Esta forma de entrenar funciona muy bien en PonyXL, el entrenamiento en SDXL no me ha funcionado muy bien aunque todavía no lo he probado lo suficiente. SI has conseguido buenos resultados en SDXL me gustaría verlos.
1.- DATASET:
To build your dataset, you'll need between 1 and 5 images of the same character. You can generate these images using a prompt for multiple views or search for them online. You can also scale the file to get larger crops. That's what I've done with my datasets. Here are 2 examples:
Para construir tu dataset, necesitarás entre 1 y 5 imágenes del mismo personaje. Puedes generar estas imágenes usando algún prompt de múltiples vistas o buscarlas en internet. También puedes escalar el archivo para obtener recortes más grandes. Esto es lo que he hecho con mis datasets. A continuación, mostraré 2 ejemplos:
This is a drawing (obviously), the next thing was to use AI to color and then cut the results. I use Segment anything for the segmentation.
dataset:
generations: PonyXL base model:
I've done this next one with only 2 images of the same character
dataset:
generated images:
As you can see, it is very consistent, it is not very flexible but we preserve the fine details very well
2.- TAGING:
To tag the images, I used the auto caption feature and lowered the threshold below the recommended value to obtain a wide range of tags. This allowed me to identify important keywords such as "no_humans" in all relevant cases. Subsequently, I performed a cleanup of unwanted tags. However, I am still assessing whether this strategy was effective. One of my main challenges is to improve the model's ability to capture the colors of the outfits more accurately, as it sometimes struggles to generate the colors correctly.
Para etiquetar las imágenes, utilicé la función de auto caption y reduje el umbral por debajo del valor recomendado para obtener una amplia variedad de etiquetas. Esto me permitió identificar palabras clave importantes como "no_humans" en todos los casos relevantes. Posteriormente, realicé una limpieza de las etiquetas no deseadas. Sin embargo, aún estoy evaluando si esta estrategia fue efectiva. Uno de mis principales desafíos es mejorar la capacidad del modelo para captar los colores de los atuendos de manera más precisa, ya que a veces se confunde al generar los colores correctamente.
meredy76, ears muffs, yellow_ribbon, blue_cape, large breasts, torn clothes, sash, waist bow, yellow sash, cowboy shot, head out of frame, ribbon, close-up, yellow bow, bow, kimono, solo, breast focus, red dress, dress, medium breasts, frills, cleavage, simple background, long sleeves, thighhighs, 1girl, cropped legs, japanese clothes
generations:
3.- settings:
Independientemente del tamaño del dataset, he mantenido la misma configuración para el entrenamiento de mis modelos:
Número de Repeticiones (num_repeats): el valor para el número de repeticiones dependerá de la cantidad de imágenes que vayas a usar.
Para 10 imágenes (recortes e imagen original), usé 20 repeticiones. Verdaderamente lo importante es caer dentro del umbral de los 330 a 370 pasos de entrenamiento.
Épocas (epochs): He fijado el número de épocas en 10 pero dependerá de lo anterior.
Tamaño del Lote de Entrenamiento (train_batch_size): Mi comprensión es que esta propiedad indica cuántas imágenes se consideran juntas durante el entrenamiento. He establecido este valor en 6, ya que he observado que valores más bajos no producen buenos resultados y pueden llevar a sobreajuste del modelo. Aunque no he probado valores más altos, creo que un valor de 6 o más podría mejorar el rendimiento del entrenamiento.
Optimizador (Optimizer): He utilizado el optimizador "prodigy" con el argumento: "decouple=True weight_decay=0.01 betas=[0.9,0.999] d_coef=2 use_bias_correction=True safeguard_warmup=True". Recomendado en el cuaderno que ocupo.
Regardless of the dataset size, I've maintained the same training configuration for my models:
Number of Repetitions (num_repeats): the value for the number of repetitions will depend on the number of images you are going to use. For 10 images (crops and original image), I used 20 repetitions. Truly the important thing is to fall within the threshold of 330 to 370 training steps.
Epochs: I have set the number of epochs to 10 but it will depend on the above
Training Batch Size: My understanding is that this property indicates how many images are considered together during training. I've set this value to 6, as I've observed that lower values don't yield good results and can lead to overfitting. Although I haven't tested higher values, I believe a value of 6 or more could improve training performance.
Optimizer: I've used the "prodigy" with this argument: "decouple=True weight_decay=0.01 betas=[0.9,0.999] d_coef=2 use_bias_correction=True safeguard_warmup=True".
recommended in the notebook I use
Ventajas de Usar Este Método:
Detalles Finos y Pulidos: Logra resultados excepcionales en la reproducción de detalles finos, como cabello y formas generales.
No Requiere un Gran Dataset: A diferencia de otros métodos que dependen de grandes cantidades de datos, mi enfoque es eficiente en términos de recursos. Con solo cuatro imágenes del mismo personaje, se pueden obtener buenos resultados.
Entrenamiento Rápido: Gracias a su simplicidad, el tiempo de entrenamiento necesario para entrar es considerablemente más corto en comparación con enfoques más complejos.
Generación Adicional de Imágenes: Si deseas expandir tu conjunto de datos de entrenamiento, puedes generar más imágenes directamente desde este método.
Desventajas:
A pesar de sus ventajas, este método tiene algunas limitaciones:
Poca Flexibilidad del Modelo: El modelo puede no ser muy flexible y producir artefactos visuales no deseados. Para mitigar esto, es necesario proporcionar indicaciones negativas para ciertos tipos de imágenes, como close-up, close-in, no humans, etc., para mejorar la precisión en la generación de personajes.
Fondos Aburridos: el modelo puede generar fondos poco interesantes o monótonos.
Advantages of Using This Method:
Polished Fine Details: Achieves exceptional results in reproducing fine details such as hair and overall shapes.
Does Not Require a Large Dataset: Unlike other methods that depend on large amounts of data, my approach is resource-efficient. With just four images of the same character, good results can be obtained.
Fast Training: Thanks to its simplicity, the training time required is considerably shorter compared to more complex approaches.
Generation of Additional Images: If you wish to expand your training dataset, you can generate more images directly from this method.
Disadvantages:
Despite its advantages, this method has some limitations:
Limited Model Flexibility: The model may not be very flexible and may produce unwanted visual artifacts. To mitigate this, it is necessary to provide negative prompts for certain types of images, such as close-up, close-in, no humans, etc., to improve the accuracy in generating characters.
Boring Backgrounds: The model may generate uninteresting or monotonous backgrounds.
I hope this helps someone other than me, I have gotten a consistent character many times, but I think this is very efficient in terms of time and helps me understand more things about the training process.