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.
On this page
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 duplicadosyEliminar guiones bajosen la configuración; usaAlt+Mayús+Fpara 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 enextensions/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ística | Lo que hace | Limitación |
|---|---|---|
| Eliminar espacios y comas extra | Contrae espacios en blanco repetidos y comas sueltas | Solo en la misma línea |
| Arreglar corchetes, comas, puntos mal situados | Repara sintaxis como tag,, tag o tag . | Solo en la misma línea |
| Eliminar duplicados | Borra etiquetas idénticas | Solo prompts basados en etiquetas; salta prompts estilo oración |
| Eliminar guiones bajos | Sustituye _ por espacio | — |
| Añadir coma al final de cada línea | Garantiza separación de etiquetas entre líneas | — |
| Limpiar ruido de pegado Booru | Quita 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ón | Formato | Alcance reportado | Notas |
|---|---|---|---|
| BoChars (DonMischo) | YAML fusionado en un solo archivo | Categorías de personajes cyberpunk/regular/mágico/ciencia ficción: ropa, construcciones, cúmulos, criaturas, escenas | Usa 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 + AllInOne | Basemodel (género, etnia, 15F/23M, ~40/45 estilos de cabello), ubicaciones (770+ lugares, 5150+ variantes), vestimenta, criaturas, objetos, escenas | Todos los conteos son reportados por el autor; no pudimos abrir los archivos publicados para verificarlos [^6] |
| Recursos fantasy DonMischo (artículo 3432) | Artículo Civitai | Checkpoints, LoRAs y wildcards curados para criaturas fantasy | Lista 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íntoma | Causa | Corrección | Fuente |
|---|---|---|---|
| El formateo activa otras extensiones (tagcomplete, etc.) | Las extensiones escuchan eventos de edición de texto | Desactivar "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 limpieza | La implementación es local por línea y solo en modo etiqueta | No depender de ella para prompts estilo oración; dedupe en el origen | [^1] |
| El archivo de wildcard editado no se refleja | Los wildcards se leen al inicio | Reiniciar 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 prompt | Habilitar "Limpiar textos no deseados al pegar de sitios Booru" en prompt-format | [^1] |
| Necesitas variación de prompt pero solo tienes un tema | Calidad del texto de relleno demasiado baja | Usar 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
- Wildcards y prompts dinámicos: profundización
- Configuración básica de ComfyUI con Impact Pack
- Arreglar rostros y manos con ADetailer
- Sintaxis de prompts para modelos Pony y Illustrious
- Consistencia de personajes entre generaciones