ArtificialGuyBR

Home / Blog / Prompting and control

Prompting en A1111/Forge: wildcards y prompts dinámicos

Compara extensiones que limpian prompts, genera variantes y gestiona bibliotecas de caracteres en A1111 y Forge, con características verificadas.

8 sources cited Prompting and control

Prompting en A1111/Forge: wildcards y prompts dinámicos

TL;DR

  • sd-webui-prompt-format formatea los prompts al generar en A1111/Forge: elimina etiquetas duplicadas, arregla corchetes, normaliza guiones bajos y actúa también en las passes de Hires. fix. Habilita Eliminar duplicados y Eliminar guiones bajos en la configuración; usa Alt+Mayús+F para correrlos a mano [^1].
  • sd-dynamic-prompts añade un lenguaje de plantillas ({a|b|c}, __wildcard__) con expansión combinatoria, Magic Prompt (red neuronal) y "¡suerte, voy a dar mi shot!" (búsqueda en Lexica.art). Los wildcards viven en extensions/sd-dynamic-prompts/wildcards/ como archivos .txt [^2].
  • Bases de datos de personajes (BoChars, megapack C0rn_Fl4k3s) son colecciones YAML/txt grandes. Siguen la convención __path__ para lookup de tokens, pero conteos como "154 wildcards" o "770+ ubicaciones" son reportados por los autores [^5] [^6].

Qué hace cada herramienta

sd-webui-prompt-format — limpieza para prompts basados en etiquetas

Esta extensión se ejecuta cuando pulsas Generar en A1111 o Forge, o manualmente mediante Alt+Shift+F [^1]. La configuración está bajo la sección Formato de prompt en la categoría Sistema:

CaracterísticaLo que haceLimitación
Eliminar espacios y comas extraContrae espacios en blanco repetidos y comas sueltasSolo en la misma línea
Arreglar corchetes, comas, puntos mal situadosRepara sintaxis como tag,, tag o tag .Solo en la misma línea
Eliminar duplicadosBorra etiquetas idénticasSolo prompts basados en etiquetas; salta prompts estilo oración
Eliminar guiones bajosSustituye _ por espacio—
Añadir coma al final de cada líneaGarantiza separación de etiquetas entre líneas—
Limpiar ruido de pegado BooruQuita metadatos de danbooru/gelbooru—

El eliminador de duplicados es local por línea: no captura una etiqueta que aparece en la línea 1 y de nuevo en la línea 3. Ni siquiera hace nada con prompts en lenguaje natural. El README lo indica explícitamente: "Solo revisa dentro de la misma línea ... Solo funciona para prompts basados en etiquetas, no en oraciones" [^1].

Trigger manual: Alt+Shift+F. El modo automático puede desactivarse si otras extensiones (p. ej., tagcomplete) reaccionan a los cambios del formateador.


sd-dynamic-prompts — lenguaje de plantillas + motor de wildcards

Esta extensión añade un lenguaje de plantillas a A1111/Forge. Sintaxis básica del tutorial oficial [^2]:

| Sintaxis | Comportamiento | Ejemplo |

---|---|---:|

| {a\|b\|c} | Elegir una opción por generación | a {gold\|platinum} band |

| {{a\|b}\|c} | Variantes anidadas | {{rose\|yellow\|white} gold\|platinum} |

| __name__ | Cargar name.txt desde la carpeta de wildcards | __gems__ → cada línea de gems.txt |

| {N$$__name__} | Elegir N entradas distintas del wildcard | {2$$__artists/illustrations/childrens_books__} |

| {N-M$$__name__} | Elegir entre N y M entradas | {2-4$$__wildcard__} |

| {N$$ y $$__name__} | Separador personalizado | Usa and en vez de coma |

| # comment | Ignorado dentro de las llaves | {# esto se ignora} |

| Modo combinatorio | Enumera todas las combinaciones en vez de samplear una rama | Útil para grids por lotes. |

Características integradas (mismo tutorial):

  • Gestor de wildcards — biblioteca incluida organizada por tema; activar/desactivar por archivo.
  • Magic Prompt — expande un tema a un prompt completo usando una red neuronal. La primera vez, Dynamic Prompts descarga el modelo (puede tardar según la velocidad de conexión).
  • ¡Suerte, voy a dar mi shot! — consulta Lexica.art por prompts reales que coincidan con la entrada.
  • Captador de atención — añade aleatoriamente énfasis como (full body illustration:1.58).

Los archivos de wildcard son .txt planos (una entrada por línea) guardados en extensions/sd-dynamic-prompts/wildcards/. Después de editarlos hay que reiniciar la interfaz web; esto se confirma en el tutorial de sd-dynamic-prompts [^2] y también está notado en la guía del megapack C0rn_Fl4k3s [^6].


Bases de datos de personajes — BoChars y el megapack C0rn_Fl4k3s

Dos colecciones comunitarias grandes ilustran el patrón:

ColecciónFormatoAlcance reportadoNotas
BoChars (DonMischo)YAML fusionado en un solo archivoCategorías de personajes cyberpunk/regular/mágico/ciencia ficción: ropa, construcciones, cúmulos, criaturas, escenasUsa rutas tipo __BoChars/person/male__; reclama reuso cruzado de wildcards mediante propiedades compartidas (colores, tejidos, materiales) [^5]
Dynamic Wildcard Megapack (C0rn_Fl4k3s)154 wildcards, bundle + AllInOneBasemodel (género, etnia, 15F/23M, ~40/45 estilos de cabello), ubicaciones (770+ lugares, 5150+ variantes), vestimenta, criaturas, objetos, escenasTodos los conteos son reportados por el autor; no pudimos abrir los archivos publicados para verificarlos [^6]
Recursos fantasy DonMischo (artículo 3432)Artículo CivitaiCheckpoints, LoRAs y wildcards curados para criaturas fantasyLista 20+ LoRAs de criaturas y packs de wildcards para arte fantasy [^7]

Ambas siguen la convención __path__ para funcionar con sd-dynamic-prompts. La extensión resuelve los tokens __key__ contra archivos .txt de la carpeta de wildcards; no analiza la estructura YAML [^2] [^3].


Producto cruzado: ComfyUI Impact Pack

El repositorio ComfyUI-Impact-Pack contiene los directorios custom_wildcards/ y wildcards/ en su raíz [^4] y enlaza a un tutorial de wildcards. Esto confirma que el soporte de wildcards existe en ComfyUI, pero la sintaxis exacta y la compatibilidad funcional no se verificaron en esta sesión: trátelo como una implementación distinta, no como un sustituyente directo.


Errores comunes y correcciones

SíntomaCausaCorrecciónFuente
El formateo activa otras extensiones (tagcomplete, etc.)Las extensiones escuchan eventos de edición de textoDesactivar "actualizar prompts reales" en la configuración de prompt-format, o usar Alt+Shift+F manual[^1]
Las etiquetas duplicadas siguen después de la limpiezaLa implementación es local por línea y solo en modo etiquetaNo depender de ella para prompts estilo oración; dedupe en el origen[^1]
El archivo de wildcard editado no se reflejaLos wildcards se leen al inicioReiniciar la interfaz web tras editar un wildcard[^2] [^6]
El pegado Booru deja etiquetas de sitio (artist:name, rating:safe)El metadato se copia con el promptHabilitar "Limpiar textos no deseados al pegar de sitios Booru" en prompt-format[^1]
Necesitas variación de prompt pero solo tienes un temaCalidad del texto de relleno demasiado bajaUsar Magic Prompt (contextual) o "¡suerte, voy a dar mi shot!" (búsqueda Lexica)[^2]

FAQ

¿Los archivos de wildcard se recargan sin reiniciar en A1111? No. La guía del megapack C0rn_Fl4k3s indica que tras editar los archivos de wildcard hay que reiniciar la interfaz web para que los cambios tengan efecto [^6]. El tutorial de sd-dynamic-prompts también confirma que los archivos se leen al inicio [^2].

¿ComfyUI Impact Pack usa la misma sintaxis de wildcard __name__ que sd-dynamic-prompts? El repositorio Impact Pack contiene directorios de wildcards y un enlace a un tutorial, pero en esta sesión no se abrió el archivo del tutorial [^4]. La compatibilidad de sintaxis debe verificarse contra la documentación de Impact Pack antes de asumir compatibilidad directa.

¿Los eliminadores de etiquetas duplicadas en las extensiones afectan a los prompts estilo oración? No. El README de prompt-format documenta: "Solo funciona para prompts basados en etiquetas, no en oraciones" [^1]. Opera sobre tokens separados por comas dentro de una misma línea.

¿Cuál es la diferencia entre Magic Prompt y "¡suerte, voy a dar mi shot!"? Magic Prompt usa una red neuronal descargada para expandir contextualmente un tema. "¡Suerte, voy a dar mi shot!" consulta Lexica.art por prompts de usuarios existentes que coincidan con la entrada. Ambos están en sd-dynamic-prompts [^2].

¿Puedo usar el YAML de BoChars directamente en sd-dynamic-prompts? Solo si el YAML se aplana a rutas de tokens __key__ que coincidan con archivos .txt de la carpeta de wildcards. La extensión no analiza la estructura YAML; solo resuelve lookups __path__ contra archivos de texto [^2] [^5].

¿Funciona el modo combinatorio con Magic Prompt? El tutorial los documenta en secciones distintas [^2]. La expansión combinatoria enumera variantes de plantilla; Magic Prompt genera texto nuevo desde una red neuronal. Sirven para flujos de trabajo distintos.

¿Se verifican los conteos grandes (154 wildcards, 770+ ubicaciones)? No. Esos valores provienen de los artículos de Civitai en sí [^5] [^6]. No pudimos abrir los archivos de wildcard publicados para confirmarlos de forma independiente.


Lectura relacionada


Fuentes