feat: add versioned Blender production contracts

This commit is contained in:
NINI
2026-10-09 23:18:07 +09:00
parent b2b37a1105
commit d4f1a800aa
52 changed files with 1601 additions and 224 deletions
+12
View File
@@ -0,0 +1,12 @@
{
"schema_version": "1.1",
"project_id": "contract-example",
"stage_id": "08-scenes",
"revision": 1,
"inputs": [],
"payload": {
"scenes": [],
"connections": [],
"preview": null
}
}
@@ -0,0 +1,31 @@
{
"schema_version": "1.1",
"project_id": "contract-example",
"stage_id": "10-references",
"revision": 1,
"inputs": [],
"payload": {
"request": {
"engine": "Blender",
"style_reference": "references/1.png",
"render_profile": {
"engine": "BLENDER_EEVEE",
"device": "GPU",
"fps": 50,
"width": 1080,
"height": 1920,
"samples": 32,
"seed": 1
},
"items": [
{
"id": "water",
"kind": "object",
"entity_id": null,
"prompt": "물방울"
}
]
},
"result": null
}
}
+47
View File
@@ -0,0 +1,47 @@
{
"schema_version": "1.1",
"project_id": "contract-example",
"stage_id": "11-images",
"revision": 1,
"inputs": [],
"payload": {
"request": {
"engine": "Blender",
"scene_path": "examples/blender-contract/preview.blend",
"render_profile": {
"engine": "BLENDER_EEVEE",
"device": "GPU",
"fps": 50,
"width": 1080,
"height": 1920,
"samples": 32,
"seed": 1
},
"frames": [
{
"id": "c1-start",
"cut_id": "c1",
"position": "start",
"prompt": "상태 설명",
"reference_ids": [
"water"
],
"scene_name": "Water",
"frame_index": 0
},
{
"id": "c1-end",
"cut_id": "c1",
"position": "end",
"prompt": "상태 설명",
"reference_ids": [
"water"
],
"scene_name": "Water",
"frame_index": 200
}
]
},
"result": null
}
}
+35
View File
@@ -0,0 +1,35 @@
{
"schema_version": "1.1",
"project_id": "contract-example",
"stage_id": "12-motion",
"revision": 1,
"inputs": [],
"payload": {
"request": {
"engine": "Blender",
"scene_path": "examples/blender-contract/preview.blend",
"render_profile": {
"engine": "BLENDER_EEVEE",
"device": "GPU",
"fps": 50,
"width": 1080,
"height": 1920,
"samples": 32,
"seed": 1
},
"clips": [
{
"cut_id": "c1",
"start_frame_id": "c1-start",
"end_frame_id": "c1-end",
"duration_ms": 4000,
"motion_prompt": "둥글게",
"scene_name": "Water",
"start_frame": 0,
"end_frame": 200
}
]
},
"result": null
}
}
+7
View File
@@ -0,0 +1,7 @@
# Blender 1.1 계약 요청 예제
이 폴더의 네 JSON은 구조를 보여주는 요청 예제다. 실제 .blend·PNG·MP4·사용자 승인·완료 결과가 없으며 scene_path는 생성 예정 경로다. 08 preview=null, 10–12 result=null을 유지한다. 이전 [1.0 연결 예제](../water-cycle/README.md)는 변환하지 않는다.
실제 제작에서는 같은 제작물의 07 실측 컷·08 장면·09 요소와 승인 버전을 연결한다. 이 예제의 c1과 0–4000ms·Water Scene·50fps·200 프레임은 설명용 값이며 실제 내레이션 측정이 아니다. 프레임은 [0,200)이고 끝점 PNG는 논리 200을 평가한다. Blender 실제 번호는 논리 프레임+1이다.
[전달 계약](../../docs/contracts.md)과 [공통 완료 기준](../../docs/workflow-contracts.md)을 따른다. contracts/check.py는 예제와 빈 양식·기존 1.0 제작을 구조 검사하고 일부 부정·참조·미완료 사례를 실행한다. 파일 재열기·렌더링·화면·청취·사용자 승인 성공을 증명하지 않는다.