polywright-references은(는) 무엇을 하나요?
참조 자료는 3D 결과물의 대부분을 결정합니다. image-to-3D 모델은 입력의 조명, 원근감 및 실수를 그대로 복사합니다. 모델러나 bpy 스크립트에는 치수와 뷰가 필요합니다. 먼저 수집하거나 생성하여 에셋의 refs/에 넣고, 각각을 pw.py manifest --add-source로 기록합니다(생성된 항목은 모델 이름과 시드를 지정합니다).
허브로 돌아가기: ../polywright/SKILL.md. 프롬프트 템플릿 및 검사: references/reference-kit.md.
1단계: 이 모델에 필요한 것
| 모델 | 수집 (실물) | 생성 (상상 또는 누락된 것) |
|---|---|---|
| 실제 객체 | 평면에 자를 대고 6면 사진, 근접 촬영, 실제 치수(제조사 시트, 위키피디아, 줄자) | 사진이 부실한 경우에만 직교 정리 |
| 차량, 제품, 가구 | 청사진 또는 CAD 도면(알려진 치수 하나 확인), 제조사 치수 | 기술 도면 스타일의 정면, 측면, 상면 입면도 |
| 건물 | 바닥면적(OSM), 높이 또는 층수, 각 면 사진, 지붕 모양 | 면별 입면도, 지붕 평면도 |
| 실제 장소 | 지도 발췌, 고도, 항공 사진, 랜드마크 지상 사진 | 없음: 장소는 데이터에서 비롯됨(polywright-capture) |
| 상상 속 소품 | 스타일 참조 | 쓰리쿼터 히어로 이미지, 그런 다음 정면/좌측/후면/우측 동일한 축척 |
| 캐릭터 또는 생물체 | 스타일 및 의상 참조 | 턴어라운드: 정면, 측면, 후면, 쓰리쿼터, A-포즈, 높이 막대, 평범한 배경 |
| 표면(벽, 바닥, 지형) | 재료 사진, 평평하고 고르게 조명된 상태 | 시머리스 타일러블 알베도, 그런 다음 맵(4단계) |
항상 축척 참조를 추가하세요: 알려진 치수, 1.8m 인간 실루엣, 시트의 높이 막대.
역사 조사 팩(historywright 플러그인이 만든 answer.md, refs/index.json 및 anachronism.md가 포함된 폴더)은 이미 유효한 에셋 폴더입니다. 여기서 시작하고 다시 검색하지 마세요. refs/index.json을 읽으세요. 각 참조에는 객체 자체의 날짜, 장소, 기관, 소장 번호 및 라이선스가 있습니다. object_date가 브리프 기간에 맞는 참조만 사용하세요. nc: true가 있는 참조는 상업용 모델에서 제외하세요. 메싱 전에 생성된 모든 뷰를 anachronism.md와 비교하여 확인하세요.
2단계: 뷰 생성 (중요한 규칙)
이미지 도구에 요청하세요: 하나의 객체, 중앙에 배치, 프레임의 약 2/3 채우기; 흰색 또는 밝은 회색 배경; 평평하고 고르며 그림자 없는 조명; 강한 원근감 없음(망원 렌즈 또는 직교 느낌); 1024px 이상; 텍스트 없음. 캐릭터는 편안한 A-포즈(팔을 아래로 30~45도, 다리를 약간 벌림)를 취합니다. T-포즈는 비율을 왜곡하고 액션 포즈는 생성기와 리거에서 실패합니다. 종류별 템플릿은 키트에 있습니다.
하나의 이미지에서 일관된 추가 뷰를 얻으려면 다중 각도 어댑터가 있는 이미지 편집 모델(Qwen Image Edit with a Multiple Angles LoRA, 2025-2026)이 각 뷰를 개별적으로 프롬프팅하는 것보다 정체성을 더 잘 유지합니다. 색상 드리프트가 예상되므로 각 뷰를 정면에 색상 일치시키세요. 생성된 모든 뷰를 정면과 비교 확인하세요: 동일한 비율, 동일한 수의 팔, 동일한 항목, 재조준된 것 없음. 일치하지 않는 뷰는 버리세요. 잘못된 후면 뷰는 없는 것보다 더 나쁩니다. 실제 객체의 색상은 단어가 아닌 사진 픽셀(중간 색조, 채도, 명도)에서 이름을 지정하세요. 편집 모델은 그림보다 단어를 따릅니다(L-003). 후면 뷰는 정면 표시를 등에 복사하는 경향이 있습니다.
Z-Image Turbo 호스트를 위한 준비된 워크플로우: references/zimage-reference.api.json
({SUBJECT} 플레이스홀더; 2026-10-11 테스트 완료).
2b단계: 설계된 소품의 시트는 모델에서 비롯됨
소품이 설계된 경우(단어나 팬 시트에 설명된 무기, 도구, 차량 부품) 텍스트 프롬프트가 계속 절반의 형태만 제공한다면 프롬프팅을 중단하세요. bpy 스크립트(polywright-blender 레시피 "A designed prop from a written description")로 빌드하고 모델에서 시트를 렌더링하세요. 측면 및 상면 직교, 평평한 중간 회색 배경, GPU가 사용 중일 때 CPU에서 Cycles 사용. 모델은 정확하며 각 메모 후 몇 초 만에 다시 렌더링되며, 동일한 파일이 나중에 소품을 사진에 합성합니다(허브: "Compose a model into a picture"). 부품이 거울 이미지 쌍으로 제공되거나 하나가 다른 것 뒤에 숨겨지는 경우 측면 카메라를 10~15도 올리세요.
3단계: 블록아웃에서 뷰 생성 (뷰가 계속 불일치할 때)
대략적인 블록아웃(기본 도형 또는 첫 번째 정면 전용 생성 메시)을 만들고 pw.py render <file> --out refs/blockout --views front,right,back,left --color clay로 렌더링한 다음, 이미지 편집 모델이 각 회색 렌더링을 피사체의 색상과 디테일로 다시 페인팅하도록 합니다(렌더를 첫 번째 참조로, 정면 뷰를 두 번째 참조로 하는 image-to-image). 카메라만 움직이므로 아무것도 재조준되거나 팔다리가 추가로 자랄 수 없습니다. 후면은 블록아웃이 암시하는 것만 보여줄 수 있습니다. 다시 페인팅된 세트를 멀티뷰 생성에 제공하세요.
4단계: 텍스처 및 머티리얼
- 생성된 것보다 CC0 머티리얼(Poly Haven, ambientCG)을 선호하세요.
- 생성된 타일러블: "seamless, tileable, top-down, flat even light"을 2의 거듭제곱 크기로 요청한 다음
pw.py texture <img> --out refs/tex --seamless(오프셋-블렌드 심)를 실행하고 2x2 타일링을 살펴보세요. - 사진 또는 알베도에서 빠른 맵:
pw.py texture <img> --out refs/tex [--convention opengl|directx]는 휘도에서 파생된 높이, 노멀 및 러프니스를 작성합니다. 소품 및 지형에 적합하며 측정된 머티리얼에는 잘못됨. 노멀 맵: OpenGL(Y+)는 Blender, Unity, Godot, glTF, three.js, Roblox용; DirectX(Y-)는 Unreal용. - 사진의 베이크된 조명은 알베도에 베이크된 조명이 됩니다: 평평한 조명으로 상류에서 수정하거나
--delight를 추가하세요(넓은 그라데이션을 나눔; 날카로운 캐스트 섀도우는 남아 있으므로 페인트로 제거). 노멀 맵은 음영만 변경합니다: 실루엣은 평평하게 유지되고 큰 형태는 얕은 각도에서 깨지므로 큰 형태를 모델링하고 작은 디테일만 맵핑하세요.
5단계: 활용하기
- Blender에서: 참조 이미지를 정면, 우측, 상단 뷰의 빈 오브젝트로 배치하고 알려진 치수로 스케일 조정(
pw.py render의 직교 렌더링은metres_per_px를 보고함); 레시피는 polywright-blender에 있음. - image-to-3D용: 정사각형, 패딩, 1024px;
pw.py gen은 자체적으로 패딩 및 배경 제거. GPU 실행 전에 사진을 판단하고 메시보다 사진에서 수정할 사항을 판단하세요: references/images-for-3d.md. - 사람용 보드(PureRef 2.1)에서: 뷰별로 그룹화하고 보드에 치수 기록.
유지보수
Evergreen 유닛, 티어 fast. 동반 파일: RESEARCH.md, CHANGELOG.md,
LEARNINGS.md, TESTS.md (evals/evals.json 포함), MAINTENANCE.md,
evergreen.json의 상태. 사용할 때마다 evergreen.json을 읽고 필요할 때 새로고침하세요.