O que polywright-references faz?
As referências determinam a maior parte do resultado 3D: um modelo imagem-para-3D copia a iluminação, perspectiva e erros da entrada; um modelador ou script bpy precisa de dimensões e vistas. Colete ou gere-as primeiro, coloque-as na pasta refs/ do ativo, registre cada uma com pw.py manifest --add-source (as geradas nomeiam o modelo e a semente).
De volta ao hub: ../polywright/SKILL.md. Modelos de prompt e verificações: references/reference-kit.md.
Etapa 1: o que este modelo precisa
| Modelo | Coletar (real) | Gerar (imaginado ou faltando) |
|---|---|---|
| Objeto real | fotos de 6 lados com uma régua no plano, closes, dimensões reais (ficha do fabricante, Wikipédia, fita métrica) | limpezas ortográficas apenas se as fotos forem ruins |
| Veículo, produto, mobiliário | plantas ou desenhos CAD (verifique uma dimensão conhecida), dimensões do fabricante | elevações frontal, lateral e superior em estilo de desenho técnico |
| Edifício | pegada (OSM), altura ou número de andares, fotos de cada face, forma do telhado | elevações por face, planta do telhado |
| Lugar real | extrato de mapa, elevação, foto aérea, fotos terrestres de pontos de referência | nenhum: lugares vêm de dados (polywright-capture) |
| Adereço imaginado | referências de estilo | uma imagem herói de três quartos, depois frente/esquerda/direita/trás na mesma escala |
| Personagem ou criatura | referências de estilo e figurino | turnaround: frente, lado, costas, três quartos, pose A, barra de altura, fundo liso |
| Superfícies (paredes, chão, terreno) | foto do material, plana e uniformemente iluminada | albedo seamless tileable, depois mapas (Etapa 4) |
Sempre adicione uma referência de escala: uma dimensão conhecida, uma silhueta humana de 1,8 m, uma barra de altura na folha.
Um pacote de pesquisa histórica (uma pasta contendo answer.md, refs/index.json e anachronism.md, criado pelo plugin historywright) já é uma pasta de ativo válida: comece a partir dele, não pesquise novamente. Leia refs/index.json: cada referência tem a própria data, local, instituição, número de acesso e licença do objeto. Use apenas referências cujo object_date se encaixe no período do briefing. Mantenha uma referência com nc: true fora de um modelo comercial. Verifique cada vista gerada com anachronism.md antes de ser meshada.
Etapa 2: gerar as vistas (regras que importam)
Peça à ferramenta de imagem: um objeto, centralizado, preenchendo cerca de dois terços do quadro; fundo branco ou cinza claro liso; luz plana, uniforme, sem sombras; sem perspectiva forte (lente longa ou aparência ortográfica); 1024 px ou mais; sem texto. Personagens ficam em uma pose A relaxada (braços 30 a 45 graus para baixo, pernas ligeiramente afastadas): poses T distorcem proporções e poses de ação falham em geradores e riggers. Modelos por tipo estão no kit.
Para vistas extras consistentes a partir de uma imagem, um modelo de edição de imagem com adaptador multi-ângulo (Qwen Image Edit com uma LoRA de Múltiplos Ângulos, 2025–2026) mantém a identidade melhor do que solicitar cada vista; espere variação de cor e combine a cor de cada vista com a frontal. Verifique cada vista gerada contra a frontal: mesmas proporções, mesmo número de braços, mesmos itens, nada redirecionado. Descarte uma vista que discorde; uma vista traseira errada é pior do que nenhuma. Nomeie a cor de um objeto real a partir dos pixels da foto (mediana de matiz, saturação, valor), não de uma palavra: o modelo de edição segue a palavra em vez da imagem (L-003). Vistas traseiras tendem a copiar uma marcação frontal para as costas.
Um fluxo de trabalho pronto para um host Z-Image Turbo: references/zimage-reference.api.json
({SUBJECT} placeholder; testado em 2026-10-11).
Etapa 2b: a folha de um adereço projetado vem do modelo
Quando o adereço é projetado (uma arma, ferramenta, parte de veículo descrita em palavras ou em uma ficha de fã) e os prompts de texto continuam dando metade da forma, pare de solicitar: construa-o com um script bpy (receita polywright-blender "Um adereço projetado a partir de uma descrição escrita") e renderize a folha a partir do modelo, vista superior e lateral ortográfica em cinza médio liso, Cycles na CPU quando a GPU estiver ocupada. Um modelo é exato, rerrenderiza em segundos após cada anotação, e o mesmo arquivo mais tarde compõe o adereço em imagens (hub: "Compor um modelo em uma imagem"). Levante a câmera lateral de 10 a 15 graus quando as peças vêm em pares espelhados, ou uma se esconde atrás da outra.
Etapa 3: vistas a partir de um blocagem (quando as vistas continuam discordando)
Construa uma blocagem aproximada (primitivas, ou uma primeira malha gerada apenas frontal), renderize-a com pw.py render <arquivo> --out refs/blockout --views front,right,back,left --color clay, então peça a um modelo de edição de imagem que repinte cada render cinza nas cores e detalhes do assunto (imagem-para-imagem com o render como primeira referência e a vista frontal como segunda). Apenas a câmera se move, então nada pode ser redirecionado ou ganhar membros extras; a parte traseira só pode mostrar o que a blocagem implica. Alimente o conjunto repintado para a geração de múltiplas vistas.
Etapa 4: texturas e materiais
- Prefira um material CC0 (Poly Haven, ambientCG) a um gerado.
- Tileable gerado: peça "seamless, tileable, top-down, flat even light" em uma potência de dois, depois
pw.py texture <img> --out refs/tex --seamless(offset-blend seams) e olhe para uma tiling 2x2. - Mapas rápidos a partir de uma foto ou albedo:
pw.py texture <img> --out refs/tex [--convention opengl|directx]escreve altura, normal e rugosidade derivadas da luminância. Bom para adereços e terreno, errado para materiais medidos. Mapas normais: OpenGL (Y+) para Blender, Unity, Godot, glTF, three.js, Roblox; DirectX (Y-) para Unreal. - Luz cozida em uma foto torna-se luz cozida no albedo: corrija upstream com luz plana, ou adicione
--delight(divide gradientes amplos; sombras projetadas nítidas permanecem, pinte-as). Mapas normais alteram apenas o sombreamento: silhuetas permanecem planas e grandes formas quebram em ângulos rasantes, então modele grandes formas e mapeie apenas pequenos detalhes.
Etapa 5: coloque-os para funcionar
- No Blender: imagens de referência como empties nas vistas frontal, direita e superior, dimensionadas para uma dimensão conhecida (renders ortográficos de
pw.py renderinformammetres_per_px); receita em polywright-blender. - Para imagem-para-3D: quadrado, com preenchimento, 1024 px;
pw.py genpreenche e remove fundos automaticamente. Julgue a imagem antes da execução na GPU e o que corrigir nela em vez de na malha: references/images-for-3d.md. - Em um quadro (PureRef 2.1) para um humano: agrupe por vista, anote dimensões no quadro.
Manutenção
Unidade perene, nível fast. Companheiros: RESEARCH.md, CHANGELOG.md,
LEARNINGS.md, TESTS.md com evals/evals.json, MAINTENANCE.md,
estado em evergreen.json. Leia evergreen.json a cada uso; atualize quando devido.