Una escena brumosa e intrincada de un bosque fantástico con sapos dorados surrealistas y hongos azur imponentes, con dos figuras filipinas caminando por un sendero en un bosque detallado.

Prompts Recomendados

award-winning Art Nouveau xlmrblng15-1300, analog realistic colour photo of a Japanese mermaid sitting on a rock in the midst of crashing waves, very detailed

cybernetic nun, xlmrblng15-1300

fantasy winter landscape, xlmrblng15-1300

(__Art_Movements__:0.5) xlmrblng15-1300, mature __Nationalities__ (__Character_MF__) riding a __BW_Animals__ in a white-tinted __Landscapes__, __Metal_Color__ filigree inlay

very detailed, intricate

Parámetros Recomendados

samplers

DPM++ 2M Karras

steps

40 - 50

cfg

7

resolution

1024x1024, 960x1344, 1344x960, 1024x1024, 640x960, 960x1344

vae

sdxl_vae - 1.0, sdxl_vae.safetensors (235745af8d)

other models

crystalClearXL_ccxl (0b76532e03)

Parámetros Recomendados de Alta Resolución

upscaler

Latent (nearest-exact), 4x-UltraSharp

upscale

1.25 - 1.5

steps

30

denoising strength

0.4 - 0.7

Consejos

Usa de 3 a 5 tokens antes del token TI (por ejemplo, 'retrato de una mujer, xlmrblng15-1300') para obtener mejores resultados.

Los mejores resultados se obtienen con prompts entre 30 y 45 tokens sin prompts negativos.

Evita usar palabras disparadoras TI que se solapen con conceptos conocidos por SDXL (como 'marbling'), ya que causa resultados inesperados.

Usa el sistema de comodines de Dynamic Prompts para prompts variados y creativos.

El entrenamiento con kohya_ss requiere seleccionar cuidadosamente la palabra inicial; usa 'pattern' para un equilibrio óptimo y evitar patrones repetitivos.

La TI consta de 8 vectores para un mayor efecto, lo que es demasiado para prompts cortos/simples.

Usa samplers como DPM++ 2M Karras con CFG de 7 y 40 pasos para la generación.

Resoluciones cercanas a 1MP (1024x1024, 960x1344, 1344x960) ofrecen buena calidad; 1344x960 escala bien para impresiones de 7"x5".

Aspectos Destacados de la Versión

Esta es una re realización con la versión actual de kohya_ss (v22.6.0 al momento de escribir) ya que las configuraciones que usé con la versión antigua no producen el mismo resultado. Se incluyen datos de entrenamiento y notas para los interesados. La ejecución de entrenamiento usó acumulación de gradiente = 4, así que los 500 pasos son similares a 2000 pasos sin GA.

31 Ene 2024

v2.0 no es una versión mejor de MarblingTIXL. Simplemente diferente. v1.0 sigue funcionando bien.

Con los cambios en kohya resultó que la forma en que hice la v1 de esta TI ya no funciona, o al menos no produce nada muy útil.

Gracias a @raken por avisarme sobre esto.

Sigo pensando que hay gran potencial en las incrustaciones SDXL, así que hice una instalación nueva de kohya_ss (v22.6.0 al momento de escribir) y probé varios parámetros/configuraciones hasta encontrar una combinación que hace un pariente cercano del MarblingTIXL original.

Por si alguien está interesado en las TI de SDXL (¡y sé que al menos hay 2 ustedes por ahí!), he incluido mis datos de entrenamiento y el JSON de configuración de kohya_ss. Posiblemente algunas notas también si se me ocurre algo útil.

Como aspecto positivo, esta TI entrenó más rápido... por el lado negativo no es tan consistente como la TI anterior. O quizás no le he dedicado suficiente tiempo. ¿Quién puede asegurarlo aquí en la vanguardia?!

Si alguien tiene preguntas, observaciones, opiniones o sabiduría para compartir, por favor deje un comentario abajo. No parece haber mucha información clara en este momento sobre cómo crear estilos TI... He leído/visto muchos puntos de vista contradictorios. Pero se puede hacer, y creo que hay espacio para mejores TI que las que he logrado hasta ahora.

¿Competencia para LoRAs? No, realmente no - las LoRAs añaden algo a un checkpoint mientras que las TI aprovechan lo que ya está en el checkpoint. Según entiendo, las TI permiten alcanzar áreas en el espacio de posibilidades de un checkpoint que serían difíciles de alcanzar consistentemente. Así que TI y LoRAs son cosas diferentes para propósitos distintos... que puedes usar juntas. Así que todos contentos :-)

Hay documentos técnicos al respecto (cubriendo qué es una TI, cómo entrenarla, cosas sobre codificadores de texto, etc.) pero usualmente me quedo fuera de alcance a mitad de la primera página :-(

Por lo que puedo decir, kohya_ss solo está entrenando el primer codificador de texto (TE) en SDXL. Ese es el de SD v1.x que debería funcionar en auto1111 SDXL pero no lo hace. (Algunas personas han reportado que las TI de SD v1.x funcionan en Comfy, pero la experiencia parece variable.) Por lo que sé el segundo TE no está siendo entrenado en kohya_ss (ese es el de SD v2.x). ¿O será un duplicado del TE1?

Probé con OneTrainer (que tiene opciones para ambos TE) pero no tuve éxito con las pocas ejecuciones que intenté, así que por ahora me quedo con kohya_ss.

Para referencia, uso una RTX-3060 con 12GB en un PC decente. Las ejecuciones actuales de kohya_ss justo saturan los 12GB (+ otros 6GB si genero muestras), así que consume más recursos que entrenar una LoRA. Pensaba que las TI necesitarían menos (o igual) recursos, así que me sorprende un poco. ¿Quizás no se ha optimizado para TI? Todavía :-)

La TI fue entrenada con:

sd_xl_base_1.0_0.9vae.safetensors

Las imágenes de muestra se generaron con:

crystalClearXL_ccxl.safetensors [0b76532e03]

Es decir, una TI entrenada en base vanilla debería funcionar con otros checkpoints.

Las imágenes se generan en a1111 v1.7.0 y he usado Hires.fix pero ningún otro ajustador.

La galería adicional muestra pares sin/con para que puedas ver cómo la TI afecta algunos prompts seleccionados. La etiqueta "xlmrblnh36-500" indica sin TI, la etiqueta "xlmrblng36-500" con TI. Lo hice así para mantener los dos prompts lo más similares posible.

Si te interesa, el zip de datos de entrenamiento contiene todas las TI guardadas en intervalos de 25 pasos (*4 acumulación de gradiente = 100 pasos normales).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

NOTA: Hay un problema con SDXL en la versión actual del webui de automatic1111 (v1.6.0). Si usas un checkpoint refiner, el webui olvida todas tus incrustaciones hasta que cargas otro checkpoint diferente y luego recargas el original (o reinicias el webui). He reportado el problema a los desarrolladores:

https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/13117

y ha sido confirmado como un bug.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

***RESUMEN***

Esta incrustación aplicará una estética surrealista/fantástica inspirada en patrones vintage de papel marmoleado. El efecto varía de bajo a extremo dependiendo de qué tan “cercano” esté tu prompt a esta estética.

El entrenamiento para esta TI no incluyó obras o etiquetas de artistas.

Copia los datos de generación de una de las imágenes de muestra y ajústalos a tu gusto, o empieza con un prompt como este que debería dar un buen resultado con cualquier semilla:

award-winning Art Nouveau xlmrblng15-1300, foto analógica realista de una sirena japonesa sentada en una roca en medio de olas rompientes, muy detallada

checkpoint: crystalClearXL_ccxl.safetensors [0b76532e03]

sampler: DPM++ 2M Karras

pasos: 40

CFG: 7

alto=ancho=1024

y luego varía los términos a tu gusto. Trata de mantener entre 3 y 5 palabras antes de “xlmrblng15-1300”.

Los prompts más simples para probar son algo así:

monja cibernética, xlmrblng15-1300

paisaje de invierno fantástico, xlmrblng15-1300

pero generalmente necesitarás más palabras para obtener resultados interesantes.

Tras mucha experimentación, encontré que obtengo mejores resultados con prompts entre 30 y 45 tokens, sin prompts negativos.

He proporcionado algunos pares de imágenes antes/después en las galerías adicionales abajo.

xlmrblnh15 = sin esta TI

xlmrblng15 = con esta TI

Como verás, esta TI hace más que simplemente añadir patrones de papel marmoleado :-)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

***MÁS DETALLES E INFO DE ENTRENAMIENTO***

Esta es una incrustación TI (inversión textual) que ajusta la generación de imágenes añadiendo patrones de papel marmoleado, o ajustando hacia esos patrones dependiendo de tus prompts. Debido a cómo funciona el sistema SDXL, el efecto con prompts más largos/complejos suele ser estructural más que simplista.

Es el sucesor SDXL de mi MarblingTI para SD v1.5:

https://civitai.com/models/69768/marblingti

Por todos los cambios en SDXL tuve muchos inicios fallidos (más de 20), pero creo que esta nueva TI es más útil que la antigua... al menos para las cosas surrealistas/ilustrativas que me gusta crear.

Pasar de automatic1111 a kohya_ss para entrenar no fue un proceso fácil. Más detalles abajo.

La TI consta de 8 vectores (es decir, usa 8 tokens de tu prompt). Es demasiado potente para prompts cortos/simples. Eso es intencional - hice unas versiones más sutiles pero no servían para los prompts largos/complexos que he usado con SDXL. Por lo que entiendo de stable diffusion, 4 vectores deberían bastar pero no conseguí resultados consistentes con 4 vectores.

El material fuente consiste en escaneos/fotos de papel marmoleado vintage que sirvieron para crear varias TI precursoras, las cuales se usaron para crear imágenes híbridas, que luego sirvieron de entradas para esta TI.

Para los prompts necesitas colocar de 3 a 5 tokens al inicio.

p.ej.

retrato de una mujer, xlmrblng15-1300

en vez de

xlmrblng15-1300, retrato de una mujer

Si usas un prompt corto/simple probablemente solo obtendrás un patrón vintage de papel marmoleado. Bien pero aburrido. Además, para prompts cortos la TI podría añadir un ligero tinte verde a las imágenes. No sé por qué; las imágenes de entrenamiento no tienen tinte general.

Peso/enfasis: de 0.81 a 1.33 es utilizable según el prompt. Encuentro que obtengo resultados más consistentes moviendo el token TI en lugar de usar peso.

Toda la generación de imágenes para esta TI se hizo en webui automatic1111 v1.6.0. La única extensión no incorporada que uso es Dynamic Prompts (instalada vía pestaña Extensions). No he usado Hires.fix ni in/outpainting ni detailers ni otras TI o LoRAs, así que puedes hacerte una idea por las imágenes de muestra si vale la pena probar esta TI.

https://github.com/AUTOMATIC1111/stable-diffusion-webui

https://github.com/adieyal/sd-dynamic-prompts

Sueldo usar CrystalClearXL:

https://civitai.com/models/122822?modelVersionId=133832

o SDXL FaeTastic

https://civitai.com/models/129681?modelVersionId=157988

checkpoints para generación SDXL, pero esta TI funciona con cualquier checkpoint SDXL que he probado.

Por cómo funcionan los prompts, si quieres ver efectos con/sin esta TI cambia solo una letra.

p.ej.

CON: monja cibernética, xlmrblng15-1300

SIN: monja cibernética, xlmrblnh15-1300

Puedes cambiar la palabra disparadora renombrando el archivo safetensors que descargaste. PROBLEMA: si cambias a una palabra que SDXL “conoce” como marbling, obtendrás resultados inesperados. Incluso si juntas palabras como newmarbling, SDXL detecta “new” y “marbling” y, umm, hace cosas con ellas en lugar de la TI.

El nombre que uso me indica que es una TI SDXL, que es marbling (mrblng) y que es la iteración en el paso 1300 de la versión 15.

Suelto usar un movimiento artístico al inicio de mis prompts, por ejemplo Art Nouveau, tal cual o con peso entre 0.3 y 0.5. Páginas para movimientos artísticos:

https://en.wikipedia.org/wiki/List_of_art_movements

https://en.wikipedia.org/wiki/Periods_in_Western_art_history

Si eso no es del gusto de los puristas de los prompts, prueba algo tipo “award-winning illustrative”. Para mí, añadir un movimiento artístico que disfruto significa que no tengo que ajustar tanto el resto del prompt para lograr un efecto similar. La lista corta de movimientos artísticos que me gustan está en un archivo txt y la pongo en la carpeta de comodines de Dynamic Prompts para usar __Art_Movements__ en mis prompts.

Como regla, no uso nombres de artistas excepto, a veces, póstumos para lograr un efecto muy particular, p.ej. René Lalique

https://en.wikipedia.org/wiki/Ren%C3%A9_Lalique

He empezado a usar kohya_ss (v21.8.9) para entrenar TIs ya que parece que automatic1111 no añadirá entrenamiento SDXL al webui.

https://github.com/bmaltais/kohya_ss

Hay muchas configuraciones en kohya_ss y todavía no sé qué significa la mitad :-( Sin embargo, daré info que podría ayudar a quien quiera entrenar estilos TI SDXL con kohya_ss. No he probado objetos TI SDXL, y no consigo que el entrenamiento LoRA funcione en kohya_ss (o no arranca o se cae a mitad).

Puedo describir solo configuraciones que funcionaron en mi PC, pero espero que sean relevantes también para PCs similares. Así que...

El PC que uso es:

Nvidia 3060/12GB (no Ti), MSI X570 mb, Ryzen 7-2700 (8c/16t), 64GB RAM sistema, múltiples SSD, Win10pro.

Creé esta estructura de carpetas:

XLmrblng15

\--img

\--\--50_XLmrblng15 style

\--log

\--model

Imágenes de entrenamiento:

Creé 45 imágenes 1024x1024 y las puse en “50_XLmrblng15 style”. Luego creé un archivo .caption para cada imagen. Ejemplo:

cliff with waterfall.png

cliff with waterfall.caption

Los archivos caption son solo texto, así que usé editor de texto simple. El contenido de cada .caption sigue el mismo patrón:

xlmrblng15, cliff with waterfall

Es el nombre de la TI que creo, una coma, un espacio y el nombre descriptivo del archivo.

No uso utilidades de captioning.

En lo siguiente, si no menciono un parámetro es que lo dejé por defecto.

En la pestaña principal “Textual Inversion” en kohya_ss:

Fuente modelo

Model Quick Pick = custom

Guardar modelo entrenado como = safetensors

Nombre o ruta de modelo preentrenado = G:/stable-diffusion-webui-master/webui/models/Stable-diffusion/SDXL/sd_xl_base_1.0_0.9vae.safetensors

Modelo SDXL = tildado

Pestaña Carpetas

Carpeta imágenes = G:/KOHYA/TRAIN/XLmrblng15/img

Carpeta salida = G:/KOHYA/TRAIN/XLmrblng15/model

Carpeta de logs = G:/KOHYA/TRAIN/XLmrblng15/log

Nombre de salida del modelo = xlmrblng15

Pestaña Parámetros (básicos)

Cadena token = xlmrblng

Palabra inicial = pattern

Vectores = 8

Plantilla = caption

Precisión mixta = bf16

Precisión al guardar = bf16

Número de hilos CPU por núcleo = 1

Cache latentes = tildado

Cache latentes en disco = tildado

Scheduler LR = constant

Optimizador = AdamW8bit

Velocidad de aprendizaje = 0.001

Resolución máxima = 1024,1024

Sin VAE half = tildado

Pestaña Parámetros (avanzados)

VAE = G:/KOHYA/sdxl_vae.safetensors

Guardar cada N pasos = 100

Checkpointing gradiente = tildado

Atención eficiente en memoria = tildado

Número máximo de trabajadores DataLoader = 4

Pestaña Parámetros (muestras)

Muestra cada n pasos = 100

Prompts muestra =

una fotografía analógica realista de una magnífica jarra en una mesa con vasos, muy detallada, intrincada, xlmrblng15 --w 1024 --h 1024

xlmrblng15, una fotografía analógica realista de una magnífica dama inglesa con vestido de baño victoriano, muy detallada, intrincada, --w 1024 --h 1024

Con todas las configuraciones anteriores, el tiempo de entrenamiento se estabilizó en unos 6s por iteración. Variable porque sigo usando el PC para otras cosas (¡simples!) mientras kohya hace su trabajo. El xlmrblng15-1300 se produjo alrededor de 2h10min tras el inicio.

Para la mayor parte del entrenamiento, la RAM GPU estuvo justo dentro de los 12GB de la 3060. Sin embargo, durante la generación de muestras y guardar la TI cada 100 pasos se usaron 7GB extra (19GB en total). Esos 7GB extra provienen de la "Memoria Compartida GPU", es decir, RAM principal del sistema. Después de generar muestras el uso de memoria volvió a 12GB solo GPU.

La ralentización usando "Memoria Compartida GPU" fue de unas 10 veces. ¡Maldita sea! :-(

Las muestras que kohya produce son muy pobres comparadas con usar el modelo base SDXL en webui automatic1111. Pero las dejé porque al menos podía ver si el entrenamiento iba aproximadamente en la dirección correcta.

Obviamente, el dataset de entrenamiento es muy importante. Probé muchas combinaciones de imágenes reales y generadas hasta obtener el conjunto que produjo la TI de esta página.

Para 45 imágenes, usando batch size 1 (el predeterminado), el nombre especial de la carpeta “50_XLmrblng15 style” indica a kohya procesar las imágenes 45 veces. 45 * 50 = 2250 pasos totales. Tras probar las TI guardadas a 100, 200, 300 pasos y así, decidí que la del paso 1300 era la mejor.

En la pestaña Parameters-Basic hay un campo “Init word”. Encontré que el entrenamiento era muy sensible a la palabra inicial. En este caso usé “pattern” que es una palabra de 1 token para SDXL. Teóricamente debería usar una frase de 8 tokens (kohya avisa si vectores != init tokens). Para algunos entrenamientos usé más tokens y obtuve TI interesantes, pero no lo que buscaba.

Usar “pattern” tiene un inconveniente: según tu prompt a SDXL, puedes obtener muchas repeticiones, como un patrón repetido en papel tapiz o envoltorio de regalo.

Usar “marblng” o "paper marbling" no funcionó: comparado con SDv1.x, SDXL "sabe" mucho más sobre marbling. ¡Pruébalo en tus prompts! Pide mármol/marbling/patrones marmoleados y SDXL lo hace mucho mejor que SDv1.x. Cada vez que hacía una TI cuyo init word era marbling o término cercano, el resultado era una TI que usaba el marbling integrado de SDXL en lugar del entrenamiento de mi dataset. :-(

Investigué la historia del papel marmoleado e intenté términos como “ebru”, la versión turca del papel marmoleado. Tampoco funcionó muy bien. Al final, el término muy amplio “pattern” me dio lo que quería.

Kohya_ss tiene la opción de plantilla “style” en Parameters-Basic. Tuve un par de resultados decentes usando “style” para algunas TI SDXL no publicadas, pero para esta de papel marmoleado los resultados no fueron buenos.

Textual Inversion vs. LoRA

Me concentro en TI porque (a) no puedo completar un entrenamiento LoRA, y (b) quiero aprovechar el contenido dentro de SDXL en vez de añadir más datos encima. No estoy en contra de las LoRAs - ¡para nada! Me divierto mucho con LoRAs de konyconi y otros, obteniendo resultados geniales ¡wow! :-)

Pero me siento más afín a las TI por ahora. Lo que pienso es que las TI permiten ajustar tus prompts hacia áreas de SDXL que con palabras simples no puedes alcanzar, mientras que las LoRAs agregan cosas nuevas encima que "mezclas" con el contenido de SDXL vía prompts.

Esto es muy simplista pero no quiero entrar en discusión sobre el espacio completo de muestras de SDXL vs. su espacio de probabilidades, y qué ocurre en un superconjunto. Esto es un hobby para mí, no un trabajo :-)

Por último, uso mucho el sistema de comodines de Dynamic Prompts. Mis prompts típicos usando esta TI xlmrblng15-1300 se ven así:

(__Art_Movements__:0.5) xlmrblng15-1300, maduro __Nationalities__ (__Character_MF__) montando un __BW_Animals__ en un __Landscapes__ teñido de blanco, incrustación de filigrana __Metal_Color__

Los prompts instanciados (es decir, tras el procesamiento de Dynamic Prompts) suelen tener entre 30 y 45 tokens.

Cuando arrastro una imagen generada a la pestaña “PNG Info” en automatic1111 webui, un resultado típico del prompt dinámico anterior es de 34 tokens:

(Surrealismo:0.5) xlmrblng15-1300, maduro sueco (vampiro masculino) montando un dálmata en un lodazal teñido de blanco con grullas escarlata, incrustación negra de filigrana

¿Por qué poner cosas como nacionalidades si SDXL les presta poca atención en prompts largos? Porque SDXL es sesgado y añadirá pequeños extras asociados a nacionalidades. Puede ser cabello rojo si mencionas escocés, pirámides si mencionas egipcio, o Monte Fuji si mencionas japonés. Funciona para otras cosas también; la vinculación/contexto parece mucho más fuerte en SDXL que en SDv1.x. Intentar controlarlo es un dolor de cabeza :-(

Las resoluciones que uso para SDXL son usualmente 1024x1024, 960x1344 y 1344x960. Las resoluciones sugeridas que he visto en la red recomiendan usar la base de 1mp (megapíxel) 1024x1024 claro, y otras resoluciones lo más cercanas posible a 1mp. Así que si quiero 1344 de ancho debo usar 768 de alto. Probé eso y mi percepción de calidad para la imagen 1344x768 fue mucho menor que para 1024x1024 y 1344x960. Además, 1344x960 se ajusta exactamente a mi papel fotográfico de 7" por 5". Así que eso :-)

Anterior
Solo negro. SDXL - v1.0
Siguiente
BaZaaR - v0.20_UD

Detalles del Modelo

Tipo de modelo

TextualInversion

Modelo base

SDXL 1.0

Versión del modelo

v2.0

Hash del modelo

25613074d7

Palabras entrenadas

xlmrblng36-500

Creador

Discusión

Por favor log in para dejar un comentario.

Imágenes por MarblingTIXL - v2.0

Imágenes con fantasía

Imágenes con estilo

Imágenes con surrealista