polywright-referencias
Las referencias determinan la mayor parte del resultado 3D: un modelo de imagen a 3D copia la iluminación, la perspectiva y los errores de su entrada; un modelador o un script de bpy necesita dimensiones y vistas. Recopílalas o genéralas primero, colócalas en la carpeta refs/ del activo, registra cada una con pw.py manifest --add-source (las generadas nombran el modelo y la semilla).
De vuelta al centro: ../polywright/SKILL.md. Plantillas de prompts y comprobaciones: references/reference-kit.md.
Paso 1: qué necesita este modelo
| Modelo | Recopilar (real) | Generar (imaginado o faltante) |
|---|---|---|
| Objeto real | fotos de 6 lados con una regla en el plano, primeros planos, dimensiones reales (hoja del fabricante, Wikipedia, una cinta métrica) | limpiezas ortográficas solo si las fotos son malas |
| Vehículo, producto, mueble | planos o dibujos CAD (verificar una dimensión conocida), dimensiones del fabricante | alzados frontal, lateral, superior en estilo de dibujo técnico |
| Edificio | huella (OSM), altura o número de pisos, fotos de cada cara, forma del techo | alzados por cara, plano del techo |
| Lugar real | extracto de mapa, elevación, foto aérea, fotos terrestres de puntos de referencia | ninguno: los lugares provienen de datos (polywright-capture) |
| Accesorio imaginario | referencias de estilo | una imagen hero de tres cuartos, luego frontal/izquierda/trasera/derecha a la misma escala |
| Personaje o criatura | referencias de estilo y vestuario | vuelta completa: frontal, lateral, trasera, tres cuartos, pose A, barra de altura, fondo liso |
| Superficies (paredes, suelo, terreno) | foto del material, plana y uniformemente iluminada | albedo sin costuras y tilable, luego mapas (Paso 4) |
Siempre añade una referencia de escala: una dimensión conocida, una silueta humana de 1,8 m, una barra de altura en la hoja.
Un paquete de investigación histórica (una carpeta que contiene answer.md, refs/index.json y anachronism.md, creada por el plugin historywright) ya es una carpeta de activos válida: empieza desde ahí, no busques de nuevo. Lee refs/index.json: cada referencia tiene la fecha, el lugar, la institución, el número de acceso y la licencia del objeto. Usa solo referencias cuyo object_date encaje en el período del briefing. Mantén una referencia con nc: true fuera de un modelo comercial. Verifica cada vista generada con anachronism.md antes de mallarla.
Paso 2: generar las vistas (reglas que importan)
Pídele a la herramienta de imagen: un objeto, centrado, ocupando aproximadamente dos tercios del encuadre; fondo blanco o gris claro liso; luz plana, uniforme, sin sombras; sin perspectiva fuerte (teleobjetivo o aspecto ortográfico); 1024 px o más; sin texto. Los personajes se colocan en una pose A relajada (brazos 30 a 45 grados hacia abajo, piernas ligeramente separadas): las poses T distorsionan las proporciones y las poses de acción fallan en generadores y riggers. Las plantillas por tipo están en el kit.
Para vistas adicionales consistentes a partir de una imagen, un modelo de edición de imagen con un adaptador multiángulo (Qwen Image Edit con un LoRA de Múltiples Ángulos, 2025-2026) mantiene la identidad mejor que generar cada vista por separado; espera deriva de color y ajusta el color de cada vista para que coincida con la frontal. Verifica cada vista generada con la frontal: mismas proporciones, mismo número de brazos, mismos elementos, nada reubicado. Descarta una vista que no coincida; una vista trasera incorrecta es peor que ninguna. Nombra el color de un objeto real a partir de los píxeles de la foto (mediana de tono, saturación, valor), no de una palabra: el modelo de edición sigue la palabra sobre la imagen (L-003). Las vistas traseras tienden a copiar una marca frontal en la parte trasera.
Un flujo de trabajo listo para un host Z-Image Turbo: references/zimage-reference.api.json
({SUBJECT} placeholder; probado 2026-10-11).
Paso 2b: la hoja de un accesorio diseñado proviene del modelo
Cuando el accesorio está diseñado (un arma, una herramienta, una pieza de vehículo descrita en palabras o en una hoja de fan) y los prompts de texto siguen dando la mitad de la forma, deja de hacer prompts: constrúyelo con un script de bpy (receta de polywright-blender "Un accesorio diseñado a partir de una descripción escrita") y renderiza la hoja desde el modelo, ortográfica lateral y superior sobre gris medio plano, Cycles en la CPU cuando la GPU esté ocupada. Un modelo es exacto, se rerenderiza en segundos después de cada nota, y el mismo archivo luego compone el accesorio en imágenes (centro: "Componer un modelo en una imagen"). Eleva la cámara lateral 10 a 15 grados cuando las piezas vienen en pares de imagen especular, o una se esconde detrás de la otra.
Paso 3: vistas desde un blockout (cuando las vistas siguen discrepando)
Construye un blockout aproximado (primitivas, o una primera malla generada solo frontal), renderízalo con
pw.py render <archivo> --out refs/blockout --views front,right,back,left --color clay, luego haz que un modelo de edición de imagen repinte cada render gris en los colores y detalles del sujeto (imagen a imagen con el render como primera referencia y la vista frontal como segunda). Solo la cámara se mueve, por lo que nada puede reubicarse ni crecer extremidades adicionales; la parte trasera solo puede mostrar lo que implica el blockout. Alimenta el conjunto repintado a la generación multivista.
Paso 4: texturas y materiales
- Prefiere un material CC0 (Poly Haven, ambientCG) sobre uno generado.
- Generado tilable: pide "sin costuras, tilable, cenital, luz plana uniforme" a una potencia de dos, luego
pw.py texture <img> --out refs/tex --seamless(fusiona bordes con desplazamiento) y mira un mosaico 2x2. - Mapas rápidos a partir de una foto o albedo:
pw.py texture <img> --out refs/tex [--convention opengl|directx]escribe mapas de altura, normal y rugosidad derivados de la luminancia. Adecuado para accesorios y terreno, incorrecto para materiales medidos. Mapas normales: OpenGL (Y+) para Blender, Unity, Godot, glTF, three.js, Roblox; DirectX (Y-) para Unreal. - La luz horneada en una foto se convierte en luz horneada en el albedo: corrige aguas arriba con luz plana, o añade
--delight(divide los gradientes amplios; las sombras nítidas proyectadas permanecen, píntalas). Los mapas normales solo cambian el sombreado: las siluetas permanecen planas y las formas grandes se rompen en ángulos rasantes, así que modela formas grandes y mapea solo detalles pequeños.
Paso 5: ponlos a trabajar
- En Blender: imágenes de referencia como empties en vistas frontal, derecha y superior, escaladas a una dimensión conocida
(los renders ortográficos de
pw.py renderreportanmetres_per_px); receta en polywright-blender. - Para imagen a 3D: cuadrada, con relleno, 1024 px;
pw.py genrellena y elimina fondos automáticamente. Juzga la imagen antes de la ejecución de la GPU, y qué corregir en ella en lugar de en la malla: references/images-for-3d.md. - En un tablero (PureRef 2.1) para un humano: agrupa por vista, anota dimensiones en el tablero.
Mantenimiento
Unidad perenne, nivel fast. Compañeros: RESEARCH.md, CHANGELOG.md,
LEARNINGS.md, TESTS.md con evals/evals.json, MAINTENANCE.md,
estado en evergreen.json. Lee evergreen.json en cada uso; actualiza cuando corresponda.