PlumLoom Reporte de proyecto

Generación de imágenes anime con Stable Diffusion WebUI Forge Neo e Illustrious SDXL: catálogo de personajes, banco de poses validadas y packs temáticos por stage (sugerente, spicy1, spicy2, explicit1, explicit2) listos para auditar y publicar.

Actualizado: 20-10-2026 Checkpoint: waiIllustriousSDXL_v170 832×1216 · 28 steps · DPM++ 2M Karras Sin git · verificación visual
216personajes
389LoRAs en disco
126seeds Danbooru
26temas
37poses útiles
45imágenes / pack
17temas pilotados

Resumen ejecutivo

De un catálogo de personajes a packs de contenido

El motor y los personajes ya están resueltos. El trabajo actual es convertir metadatos de Danbooru en temas, combinar esos temas con un banco de poses validadas y producir packs completos sin repetir la misma postura ni el mismo encuadre en todas las imágenes.

Qué funciona hoy

  • Forge Neo + Illustrious generando por API.
  • 216 personajes con LoRA y línea curada.
  • Eje A completo: seeds → bloques → temas → packs.
  • 51 imágenes de piloto en 17 temas, 0 fallos.
  • Banco ampliado a 37 poses útiles (fase 1 +21, fase 2 +5).
  • Primer pack real: 45/45 imágenes, aceptado.

Qué falta para publicar

  • Probar un pack completo con el pipeline de 5 stages (dry-run validado).
  • Filtro de clones y duplicados.
  • Auditoría automática de anatomía y composición.
  • Cola de trabajos y base de datos de packs.
  • Integración de publicación (Patreon / X).

Principio de trabajo

Nada se aprueba por tener los tags correctos. La imagen generada es el único test válido: se audita a ojo, se aparta lo descartado con su motivo y se documenta lo medido.

El proyecto

Qué es PlumLoom

Un generador de imágenes anime para contenido de personajes. El catálogo vive en Archivos/personajes.txt: una línea por personaje, con su LoRA, triggerwords y rasgos de identidad. La línea base nace desnuda y solo conserva accesorios de cabeza (sombrero, lazos, aretes), porque el outfit lo decide el tema.

Encima de eso hay dos capas: el banco de poses (poses que ya se validaron visualmente) y los temas (escena, luz y props). Un pack combina personaje + tema + pose + cámara y genera 45 imágenes en cinco stages de intensidad, con un outfit base único y modificadores por stage.

Ficha técnica

MotorStable Diffusion WebUI Forge Neo
ModelowaiIllustriousSDXL_v170.safetensors
Estilo5 LoRAs fijos (IFL, add-detail, bwl, scara2b, Add_color)
Personajes216 líneas / 389 LoRAs
Resolución832×1216
SamplerDPM++ 2M Karras · 28 steps · CFG 5 · clip_skip 2

Arquitectura

Pipeline canónico

El Eje A añade metadatos de Danbooru al pipeline de bloques WD14. La composición del prompt mantiene la estructura fija con BREAK: identidad, hombre (si hay), pose y entorno.

01 · FUENTES
Personajes, seeds, poses

personajes.txt · danbooru_seeds.txt · pose_bank.jsonl

02 · METADATOS
Bloques y temas

danbooru_harvest · WD14 tagger · themes.json · snapshot.json

03 · COMPOSICIÓN
Prompt y job

pack_builder · PromptBuilder · assemble_prompt · BREAK

04 · RENDER
Forge Neo API

txt2img 832×1216 · seed · LoRAs · negative

05 · SALIDA
Auditoría y pack

pilots/ · packs/ · manifest · metrics · revisión visual

Regla de oro del prompt: la pose va justo después del primer BREAK. Sin esa separación compite con el pelo y la ropa del personaje y la postura se pierde.

Avance

Estado por fases

Catálogo de personajes216 líneas, 216 claves, 0 colisiones. CERRADO
Curación base desnudo0 pendientes, 73 curados, 5 excepciones de identidad. CERRADO
WD14 taggerswinv2-v3 ONNX CPU, ~1,5-1,9 s/imagen. OPERATIVO
Eje A (T1-T9)Cliente Danbooru, harvest, temas, pack_builder y props. COMPLETO
Catálogo de temas126 seeds, 118 bloques, 26 temas (18 curados). AMPLIADO
Banco de poses39 totales, 37 útiles (12/13/12). Fase 1 +21; fase 2 +5 (3/0/2). AMPLIADO
Pilotos por tema17 temas × 3 niveles = 51 imágenes, 0 fallos. VALIDADO
Packs reales45/45 en oficina/Makima, aceptado. Pipeline de 5 stages validado en dry-run. ACEPTADO
Auditoría automáticaHoy es manual; no hay detector de clones ni anatomía. PENDIENTE

Números que importan

Seeds126 · 50 / 40 / 36
Bloques118 · 50 / 34 / 34
Etiquetas snapshot31.175
Aceptadas3.854
Temas26 · 18 curados + 8 auto
Poses útiles37 de 39
Piloto51 imágenes · 17 temas
Pack45 imágenes · 9/stage · 5 stages

Los 17 temas pilotados

azotea · baño · biblioteca · cafetería · callejón · cocina · dormitorio · escuela · fiesta · gimnasio · invierno · noche_ciudad · oficina · onsen · piscina · templo · tren

Stack actual

Con qué está construido hoy

Un stack deliberadamente simple: Python + Forge Neo + ficheros. Funciona y se audita a mano, pero no está pensado para volumen ni para trabajo en equipo.

CapaHoyEstado
HardwarePC Windows con RTX 5050 (8 GB VRAM); inferencia ONNX en CPULÍMITE
SO / shellWindows · PowerShell 5.1OK
RuntimePython 3.12 · requests · PyYAML · Pillow · python-dotenv · onnxruntime (CPU)OK
Motor de imagenForge Neo en 127.0.0.1:7860 con --api · SDXLOK
ModeloswaiIllustriousSDXL_v170 · 5 LoRAs de estilo · 389 LoRAs de personajeOK
MetadatosAPI anónima de Danbooru + caché local · CSV de 192k tags · snapshot de 31kOK
TaggerSmilingWolf/wd-swinv2-tagger-v3 · ONNXOK
DatosTXT / CSV / JSON / JSONL · manifests por packDISPERSO
NotificacionesBot de Telegram (.env) con avisos por tandaOK
CalidadAuditoría visual manual + dry-run + manifiestosNO ESCALA
OpsSin git, sin tests, sin linter, sin cola de trabajosDEUDA

Stack ideal

Hacia dónde queremos ir

El objetivo no es cambiar de motor: Forge Neo se queda. Lo que falta es envolverlo con una capa de producto: datos, cola, control de calidad y publicación.

CapaIdealPor qué
Versionadogit + ramas + revisión + releasesPoder volver atrás y comparar cambios de prompt/código
Secretos.env fuera del repo + gestor de secretosEvitar claves de Telegram/API en disco y en logs
RuntimePython 3.12 + uv/venv + dependencias fijadasReproducibilidad entre máquinas
DatosSQLite/Postgres: personajes, LoRAs, temas, poses, jobs, manifestsConsultas, integridad y una sola fuente de verdad
OrquestaciónCola de trabajos con workers, reintentos e idempotenciaPacks de 45+ imágenes sin bloquear la terminal
RenderForge Neo API + 1-2 workers · GPU 24 GB+ o cloud para picosBajar de ~25 s/img y escalar lotes
Taggeronnxruntime-gpu con CUDA~5-10× más rápido en WD14
PromptHash de prompt + seed + manifest + A/BSaber exactamente qué generó cada imagen
QA automáticaVLM local + detector de anatomía + hash perceptualDetectar clones, dedos y duplicados antes de publicar
UIDashboard web de revisión: aprobar, descartar, puntuarLa auditoría visual deja de ser una carpeta de PNG
AssetsAlmacenamiento organizado + watermark + metadatos + backupsPublicación y trazabilidad por pack
PublicaciónIntegraciones Patreon / X + calendario + analíticaCerrar el ciclo contenido → audiencia
Calidad de códigopytest + ruff + mypy + CIDejar de depender de "funciona en mi máquina"
ObservabilidadLogs estructurados + métricas + alertas TelegramSaber qué falló y cuánto costó
Hardware idealRTX 5090 32 GB o A100 cloud · 64 GB RAM · NVMePacks completos y vídeo sin cuellos de botella

Decisiones y mediciones

Lo que ya no se discute

Prompt

  • BREAK separa identidad, hombre, pose y entorno.
  • 1girl / 1boy una sola vez: repetido lo lee como dos personas.
  • El LoRA manda: si hay ropa horneada, se baja a 0.6-0.8 y se refuerza el negative.
  • Nunca "no X" en el positive: refuerza X. La negación va al negative.
  • Accesorios de cabeza = identidad; los de cuerpo se limpian.

Banco y packs

  • Seed aleatoria por imagen (implementada); fija solo para corregir una concreta.
  • Blacklist por línea normalizada: editar la línea la invalida.
  • on_bed no es escena: se quita del banco.
  • pb0012 dibuja dos hombres: fuera hasta nuevo render.
  • 5 stages + outfit base único: modificadores por stage, no un outfit distinto por nivel. Diseño de stages.
  • spicy2 es explícito para X; explicit1 bloquea cum/orgasm.
  • Cámaras por stage; from side no se fuerza. Los warnings pose↔escena no añaden props.
  • Props del tema van al slot de entorno, después de la escena.
Medición del 20-10-2026: con seed fija y una pose reutilizada, el pack produce pares idénticos (sugerente 01/06, 02/08…; spicy 19/22…; explícito 39/44…). No es un fallo del modelo: es la misma entrada. La seed aleatoria lo elimina.

Riesgos

Qué puede romper el pipeline

Un solo Forge

Si Forge se cae, todo el pipeline se detiene. No hay worker secundario ni cola persistente.

Auditoría manual

45 imágenes por pack a ojo no escala a 17 packs. Los clones y las anatomías rotas se detectan tarde.

Datos dispersos

Temas, poses, manifiestos y personajes viven en formatos distintos. Cambiar una línea puede invalidar una blacklist.

Sesgo del LoRA

Yelan ignora el vestido incluso a 1.3; Boa tiende a bikini. El personaje condiciona el outfit más que el tag.

WD14 desactualizado

Las wildcards de harvest se generaron con regex viejos y no se han regenerado.

Sin red de seguridad

No hay git, tests ni backups automáticos de personajes, temas y banco.

Roadmap

Próximos pasos

Ahora

  • Renderizar un pack completo con el pipeline de 5 stages.
  • Filtro de clones y duplicados.
  • Cerrar el caso de fiesta.

30 días

  • Packs para los 17 temas.
  • QA automática con VLM + hash perceptual.
  • SQLite de personajes, temas, poses y jobs.
  • Dashboard mínimo de revisión.

90 días

  • Publicación Patreon / X.
  • Vídeo con Wan 2.2 (I2V).
  • Texto natural → tags Danbooru.
  • Segundo worker o GPU cloud.

Referencias

Dónde seguir