{
  "schemaVersion": "vidia-package@1",
  "meta": {
    "title": "건설 숏츠 제작 패키지 · 100% AI 영상",
    "summary": "건물·교량·터널·시공 원리를 60초 안팎 세로 숏츠로 만듭니다. 모든 장면을 AI 영상으로 만들고, 공학 평가 팩으로 대본을 채점·개선한 뒤 한국어 내레이션·자막·렌더링까지 자동으로 이어집니다.",
    "format": "shorts",
    "tags": [
      "건설",
      "숏츠",
      "시공 원리",
      "구조",
      "토목"
    ],
    "knowhow": "## 이 패키지의 접근\n\n- **현장의 \"왜\"로 연다.** 건설 숏츠는 눈앞의 구조물·공법 하나에서 이상한 점(크기·하중·순서)을 짚고, 그 이유를 끝까지 설명합니다. 첫 장면 구조물로 마지막에 돌아와 답합니다.\n- **공법은 순서로 보여 준다.** 기초 → 골조 → 하중 전달 → 결과처럼 시공 순서와 힘의 흐름을 인과 사슬로 풀고, 가장 긴 장면을 원리에 줍니다.\n- **숫자는 현장 비교로.** 하중·높이·양생 기간 같은 수치를 생활 비교와 함께 말합니다.\n- **평가 → 개선 루프.** `engineering@1`(공학·건설 해설, 통과선 60)로 채점해 미달이면 대본개선 → 재평가를 최대 2번 반복합니다.\n- **모든 장면 AI 영상.** 정지 이미지 + 켄번즈 장면 없이 모든 장면을 AI 영상으로 만듭니다. AI 영상은 한 번에 최대 15초라 장면마다 낭독 글을 15초 안에 맞추고, 길면 장면을 나눕니다. 비용을 줄이려면 이미지 혼합 패키지를 쓰세요.\n\n## 예상 비용 구성\n대본 LLM 토큰 + 평가 + TTS(약 400~500자) + 키프레임 이미지(장면 수) + 이미지 검수 + AI 영상(전체 길이 × 초당 단가) + 무료 자막·렌더링.",
    "visualMix": "ai-video"
  },
  "inputForm": [
    {
      "key": "topic",
      "label": "주제",
      "type": "longtext",
      "required": true,
      "help": "예: 초고층 빌딩은 태풍에도 왜 쓰러지지 않을까? 꼭대기 660톤 추의 비밀",
      "maxLength": 5000
    },
    {
      "key": "tone",
      "label": "말투",
      "type": "select",
      "required": false,
      "help": "",
      "options": [
        "친근",
        "단정",
        "유머"
      ],
      "default": "친근"
    },
    {
      "key": "video_ratio",
      "label": "AI 영상 비율",
      "type": "select",
      "required": false,
      "help": "이 패키지는 모든 장면을 AI 영상으로 만듭니다(직접 등록한 사진 장면만 사진 그대로). 비용을 줄이려면 같은 이름의 'AI 영상 + AI 이미지' 패키지를 쓰세요.",
      "options": [
        "100%"
      ],
      "default": "100%"
    },
    {
      "key": "user_images",
      "label": "직접 등록할 이미지",
      "type": "asset",
      "required": false,
      "help": "직접 찍었거나 사용 권리가 있는 사진을 고르면 AI 이미지 대신 그 사진을 장면 화면으로 씁니다(장면당 1장, 최대 6장, 켄번즈 움직임). 여기서 바로 올릴 수도 있습니다.",
      "accept": "image",
      "multiple": true,
      "max": 6
    },
    {
      "key": "user_images_note",
      "label": "등록한 이미지 설명",
      "type": "longtext",
      "required": false,
      "help": "사진마다 한 줄씩 '파일 이름: 무엇을 찍은 사진인지' 로 적으면 알맞은 장면에 배치합니다. 비우면 파일 이름으로 판단합니다.",
      "placeholder": "교량받침: 다리 상판 아래 고무 받침을 가까이서 찍은 사진\n신축이음: 다리 이음부 톱니 모양 철판",
      "maxLength": 5000
    },
    {
      "key": "facts",
      "label": "근거자료",
      "type": "longtext",
      "required": false,
      "help": "수치·사례의 출처가 되는 글을 붙여 넣으면 대본과 평가가 이 내용을 기준으로 사실을 판단합니다.",
      "maxLength": 5000
    },
    {
      "key": "evaluation_pack",
      "label": "평가 팩(고급)",
      "type": "text",
      "required": false,
      "help": "대본 평가 기준. 기본 engineering@1(공학·건설 해설 숏츠).",
      "maxLength": 300,
      "default": "engineering@1"
    }
  ],
  "agent": {
    "maxTurns": 30
  },
  "start": "n1",
  "nodes": [
    {
      "id": "n1",
      "module": {
        "id": 71,
        "versionId": 71,
        "name": "대본작성",
        "stage": "script",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "대본작성",
      "next": "n2",
      "pause": false,
      "maxVisits": 3,
      "note": "공학 숏츠 톤: 구체 대상 + 이상한 점으로 열고 작동 원리에 가장 긴 장면을 준다.",
      "branches": [],
      "ui": {
        "x": 0,
        "y": 0
      }
    },
    {
      "id": "n2",
      "module": {
        "id": 69,
        "versionId": 69,
        "name": "대본평가",
        "stage": "evaluate",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "대본평가",
      "next": "n4",
      "pause": false,
      "maxVisits": 3,
      "note": "engineering@1, 통과선 60",
      "branches": [
        {
          "label": "점수 미달(60 미만)",
          "when": {
            "path": "evaluation.score",
            "op": "<",
            "value": 60
          },
          "goto": "n3"
        },
        {
          "label": "사실 위반 등 불통과",
          "when": {
            "route": "rewrite"
          },
          "goto": "n3"
        }
      ],
      "ui": {
        "x": 0,
        "y": 140
      }
    },
    {
      "id": "n3",
      "module": {
        "id": 70,
        "versionId": 70,
        "name": "대본개선",
        "stage": "improve",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "대본개선",
      "next": "n2",
      "pause": false,
      "maxVisits": 2,
      "note": "약한 축을 고친 뒤 다시 평가한다(최대 2회).",
      "branches": [],
      "ui": {
        "x": 320,
        "y": 210
      }
    },
    {
      "id": "n4",
      "module": {
        "id": 76,
        "versionId": 76,
        "name": "TTS 생성",
        "stage": "tts",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "TTS 생성",
      "next": "n5",
      "pause": false,
      "maxVisits": 3,
      "note": "",
      "branches": [],
      "ui": {
        "x": 0,
        "y": 280
      }
    },
    {
      "id": "n5",
      "module": {
        "id": 11,
        "versionId": 11,
        "name": "AI 이미지",
        "stage": "image",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "AI 이미지",
      "next": "n6",
      "pause": false,
      "maxVisits": 2,
      "note": "",
      "branches": [],
      "ui": {
        "x": 0,
        "y": 420
      }
    },
    {
      "id": "n6",
      "module": {
        "id": 38,
        "versionId": 38,
        "name": "이미지 평가",
        "stage": "review",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "이미지 평가",
      "next": "n7",
      "pause": false,
      "maxVisits": 2,
      "note": "7점 미만은 한 번 다시 만들고, 그래도 미달이면 이미지 단계로 되돌린다.",
      "branches": [
        {
          "label": "다시 만들기",
          "when": {
            "route": "retry"
          },
          "goto": "n5"
        }
      ],
      "ui": {
        "x": 0,
        "y": 560
      }
    },
    {
      "id": "n7",
      "module": {
        "id": 79,
        "versionId": 79,
        "name": "AI 영상",
        "stage": "video",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "AI 영상",
      "next": "n8",
      "pause": false,
      "maxVisits": 3,
      "note": "",
      "branches": [],
      "ui": {
        "x": 0,
        "y": 700
      }
    },
    {
      "id": "n8",
      "module": {
        "id": 73,
        "versionId": 73,
        "name": "자막 생성",
        "stage": "subtitle",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "자막 생성",
      "next": "n9",
      "pause": false,
      "maxVisits": 3,
      "note": "",
      "branches": [],
      "ui": {
        "x": 0,
        "y": 840
      }
    },
    {
      "id": "n9",
      "module": {
        "id": 22,
        "versionId": 22,
        "name": "최종 렌더링",
        "stage": "render",
        "versionNo": 1,
        "ownerId": 1,
        "price": 0,
        "contentPublic": true
      },
      "label": "최종 렌더링",
      "next": null,
      "pause": false,
      "maxVisits": 3,
      "note": "",
      "branches": [],
      "ui": {
        "x": 0,
        "y": 980
      }
    }
  ]
}