Communitygithub.com

AI 단편 드라마

이야기 아이디어, 대본, 소설 챕터를 완성된 단편 드라마 에피소드로 변환합니다. 등장인물이 모든 샷에서 일관성을 유지하며, 대화 또는 내레이터 음성, 자막이 포함된 하나의 MP4 파일을 생성합니다. apimodels.app(Seedance 2.0 비디오, Nano Banana 이미지, MiniMax 음성)을 하나의 API 키로 사용합니다.

AI 단편 드라마란 무엇인가요?

AI 단편 드라마 스킬은 사용자가 제공한 이야기 아이디어, 대본 또는 소설 챕터를 완성된 단편 드라마 에피소드(MP4 + SRT 자막)로 변환하는 전문 도구입니다. 등장인물의 얼굴, 의상, 스타일이 모든 샷에서 일관되게 유지되는 것이 핵심 기능으로, 각 캐릭터에 대해 참조 시트(정면, 측면, 후면)를 생성한 후 Seedance 2.0 비디오 모델에 전달하여 동일한 인물이 등장하는 샷을 렌더링합니다. 사용자는 `project.json`에 등장인물, 장소, 샷을 정의하기만 하면 되며, `scripts/drama.mjs` 스크립트가 비용이 드는 모든 작업(캐릭터 시트 생성, 음성 내레이션, 비디오 렌더링, 자막 및 ffmpeg 조립)을 자동으로 처리합니다. 이 스킬은 특히 漫剧(만주), AI 코믹 드라마, 단편 드라마(短剧), 소설 적응 영상, 수직 스토리 영상 제작에 최적화되어 있으며, 대화 모드와 내레이션 모드를 모두 지원합니다. API 호출 실패 시 비용이 청구되지 않으며, 모든 작업은 중단 후 재개 가능하여 비용 효율적입니다. Cursor, Claude Code, Codex 등 다양한 AI 에이전트 환경에서 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/stimQQ/ai-short-drama/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

AI 단편 드라마 (AI short drama)

스토리를 입력하면 에피소드가 출력됩니다. 사용자가 project.json(등장인물, 장소, 샷)에 이야기를 작성합니다. scripts/drama.mjs가 비용이 발생하거나 실수하기 쉬운 모든 작업을 처리합니다:

project.json ─ 견적 ─ 캐스팅 ─ (음성) ─ 샷 ─ 조립 ─▶ episode.mp4 + .srt
               무료       참조       내레이션   Seedance   ffmpeg: 정규화,
               검증       이미지     모드만     렌더링     음성 믹싱,
               + 가격    캐릭터별              각 샷      연결, 자막
                         및 장소별

등장인물이 동일하게 유지되는 방법: 각 캐릭터는 하나의 참조 시트(초상화 + 정면/측면/후면)를 받습니다. 각 샷은 해당 샷에 등장하는 캐릭터의 시트를 Seedance 2.0에 참조 이미지로 전달하고, 프롬프트에 어떤 이미지가 누구인지 명시합니다.

규칙

  1. 항상 scripts/drama.mjs를 실행하세요. curl 또는 fetch로 API를 직접 호출하지 마십시오. 스크립트는 작업 ID가 생성되는 즉시 저장하므로, 충돌이나 타임아웃이 발생해도 동일한 작업을 재개하여 다시 비용을 지불하지 않습니다. 직접 호출하면 이 기능이 손실됩니다.
  2. project.json을 작성하기 전에 references/project-schema.md와 references/shot-writing.md를 읽으십시오. 샷 작성 가이드는 에피소드가 하나의 영화처럼 보일지, 아니면 12개의 관련 없는 클립처럼 보일지를 결정합니다.
  3. 먼저 estimate를 실행하고 결과(샷 목록, 총 길이, 모델 및 가격표)를 사용자에게 보여주십시오. cast / shots 전에 사용자의 승인을 기다리십시오. 스크립트는 --yes 없이 $1 이상의 단계를 거부합니다. 사용자가 해당 금액에 동의한 후에만 --yes를 전달하십시오.
  4. 샷을 렌더링하기 전에 사용자에게 캐릭터 시트를 보여주십시오. 시트는 각각 약 $0.02이며, 샷은 10~100배 더 비쌉니다. 얼굴, 의상 또는 스타일이 잘못된 경우 look을 수정하고 지금 cast --redo <id>를 실행하십시오. 모든 샷이 이를 상속받습니다.
  5. 새 프로젝트의 경우 먼저 한 개의 샷을 렌더링하십시오(shots --only s1). 사용자와 함께 확인한 후 나머지를 렌더링하십시오. 매우 짧은 프로젝트(세 개 이하의 샷) 또는 사용자가 요청한 경우에만 이 단계를 건너뛰십시오.
  6. 모델 이름을 임의로 만들지 마십시오. 아래 표에 있는 모델만 사용하십시오. 사용자가 다른 모델을 요청하면 이 스킬이 지원하지 않는다고 말하십시오.
  7. 실패한 작업에 대해 비용이 청구되지 않습니다. 작업이 실패하면 명확히 말하고, 이유(스크립트가 이유와 다음 단계를 출력함)를 설명하고, 재시도를 제안하십시오.
  8. 업스트림 제공자나 라우팅에 대해 언급하지 마십시오. 이 파일에 있는 모델 이름만 말하고 그 뒤에 있는 내용은 언급하지 마십시오.
  9. 동의 없이 실제 식별 가능한 사람을 사용하지 말고, 실제 인물에 대한 성적, 혐오 또는 명예 훼손적인 내용을 금지합니다. 해당 요청은 거절하십시오.

워크플로우

S=/absolute/path/to/this/skill/scripts/drama.mjs     # 기본 디렉토리를 알고 있음; 사용하십시오
node $S check                                         # 키, 잔액, ffmpeg 확인
mkdir -p dramas/my-episode                            # 에피소드당 하나의 폴더, 사용자 작업 공간에
# write dramas/my-episode/project.json               (references/project-schema.md 참조)
node $S estimate dramas/my-episode/project.json --prompts
node $S cast     dramas/my-episode/project.json      # 그런 다음 cast/에 있는 이미지를 보여주십시오
node $S voice    dramas/my-episode/project.json      # 내레이션 모드만
node $S shots    dramas/my-episode/project.json --only s1   # 하나 확인 후:
node $S shots    dramas/my-episode/project.json
node $S assemble dramas/my-episode/project.json --burn-subs
node $S status   dramas/my-episode/project.json      # 언제든지: 진행 상황, 지출, 남은 작업
  • 렌더링은 느립니다. 하나의 샷은 보통 2~8분이 소요되며, 샷은 한 번에 3개씩 실행됩니다. shots 전에 사용자에게 대략적인 소요 시간을 알려주십시오. 조용한 터미널 앞에 사용자를 방치하지 마십시오.
  • 모든 명령은 안전하게 재실행할 수 있습니다. 완료된 작업은 건너뜁니다. 진행 중인 작업은 중단된 지점부터 재개됩니다. 실패한 샷은 --retry-failed를 통해서만 재시도됩니다.
  • 렌더링된 후 샷을 편집해도 다시 렌더링되지 않습니다. status는 "inputs changed"로 표시합니다. shots --redo <id>로 의도적으로 다시 렌더링하십시오. 이 경우 다시 비용이 청구됩니다.
  • 결과를 보여주십시오: 최종 MP4 경로, 길이, .srt 파일. 그런 다음 지출된 금액을 말하십시오: status는 API에서 읽어온 정확한 청구 금액을 출력합니다.
  • 모든 파일은 프로젝트 폴더에 다운로드됩니다. API 결과 URL은 30일 후에 만료되므로, 폴더가 영구적인 복사본입니다.

대화 또는 내레이션

샷을 작성하기 전에 선택하십시오:

"mode": "dialogue""mode": "narration"
말하는 사람화면 속 캐릭터, 입 모양 동기화. Seedance가 비디오와 함께 음성을 생성합니다.한 명의 내레이터 음성(텍스트 음성 변환), 각 샷의 배경음과 혼합됩니다.
적합한 경우대화 중심 장면, 실사 스타일 미니 드라마.漫剧 / AI 코믹 드라마, 소설 적응, 요약 및 스토리텔링 비디오.
음성 일관성캐릭터의 음성이 샷마다 약간 다를 수 있습니다.에피소드 전체에 걸쳐 동일한 음성.
샷 길이duration(4~15초)을 설정합니다. 각 대사를 길이에 맞게 유지하십시오.각 내레이션 줄에 맞게 최대 15초까지 자동 설정됩니다.
제한 사항5초 샷당 약 1~2개의 짧은 대사. 누가 언제 말하는지 정확히 제어할 수 없습니다.캐릭터가 화면에서 말하지 않습니다.

사용자가 지정하지 않은 경우, 漫剧, 코믹, 소설 또는 스토리 요약으로 설명된 내용에는 내레이션을 사용하십시오. 대화 위주의 장면에는 대화를 사용하십시오.

모델 및 비용

스크립트는 스타일에서 기본 video_model을 선택합니다. 스타일리시한 외형(애니메이션, 코믹, 国漫, 만화, 수채화)은 dreamina-seedance-2-0-mini를 얻습니다. 나머지는 모두 seedance-2.0-mini를 얻습니다. 사용자가 다른 것을 원할 경우 project.json에서 재정의하십시오.

사용자가 원하는 것video_model해상도비디오 초당 가격
스타일리시한 에피소드 (애니메이션, 코믹, 国漫); 초안dreamina-seedance-2-0-mini480p / 720p$0.0225 / $0.048
스타일리시, mini보다 한 단계 업dreamina-seedance-2-0-fast480p / 720p$0.0644 / $0.1372
스타일리시, 최대 1080p 최종 품질dreamina-seedance-2-0480p / 720p / 1080p$0.10 / $0.22 / $0.55
사실적인 사람seedance-2.0-mini480p / 720p$0.044 / $0.095
사실적인, mini보다 한 단계 업seedance-2.0-fast480p / 720p$0.071 / $0.153
사실적인, 최대 1080p 최종 품질seedance-2.0480p / 720p / 1080p$0.092 / $0.197 / $0.492

기타 비용:

  • 캐릭터 및 장소 시트: nano-banana-2-1, 1K 기준 각 $0.022.
  • 내레이션: minimax-speech-2.8-turbo, 1,000자당 $0.04. 짧은 클립은 최소 $0.004가 청구됩니다.

1분 에피소드(12샷 × 5초, 5개 시트)의 대략적인 비용:

  • $1.46 (dreamina-seedance-2-0-mini 480p)
  • $2.99 (dreamina-seedance-2-0-mini 720p)
  • $2.75 (seedance-2.0-mini 480p)
  • $29.63 (seedance-2.0 1080p)

첫 번째 패스에는 480p를 제안하십시오. 720p로 두 번째 패스 시 샷만 다시 렌더링합니다("resolution": "720p"로 설정한 후 shots --redo <ids>). 시트는 그대로 유지됩니다.

사실적인 행이 존재하는 이유: dreamina-* 모델은 실제 사람처럼 보이는 참조 이미지를 거부하며, 사실적인 캐릭터 시트가 이를 유발할 수 있습니다. 스크립트는 이 거부를 인식하고 seedance-2.0-mini로 전환하도록 알려줍니다. 거부된 작업에는 비용이 청구되지 않습니다.

가격은 2026-09-30 기준 정가입니다. status는 실제 청구된 금액을 보여줍니다.

API 키

먼저 node $S check를 실행하십시오. 키는 APIMODELS_API_KEY에서, 또는 ~/.apimodels/credentials에서, 또는 ~/.apimodels/credentials.json에서 가져옵니다. 마지막 파일은 npx apimodels-mcp login에 의해 작성되므로, apimodels 도구에 로그인한 사용자는 이미 설정이 완료된 상태입니다.

키가 없는 경우, 직접 node $S login을 실행하고 출력되는 링크를 사용자에게 제공하십시오. 사용자가 apimodels.app에 로그인하고 Authorize를 클릭합니다. 새 키가 ~/.apimodels/credentials에 기록되며 이 대화에 절대 나타나지 않습니다. 그런 다음 check를 다시 실행하고 계속 진행하십시오.

login이 작동하지 않는 경우(머신에 브라우저가 없음), 채팅에서 키를 요청하지 마십시오. 사용자에게 새 터미널 창에 붙여넣을 명령어 하나를 제공하십시오. 절대 스크립트 경로를 채워서 제공하십시오:

read -s KEY && printf %s "$KEY" | node /ABSOLUTE/PATH/scripts/drama.mjs save-key && unset KEY

키는 https://apimodels.app/console/api-keys에서 생성됩니다.

키 처리:

  • 절대 다시 에코하지 마십시오.
  • 명령 인수로 전달하지 마십시오.
  • 프로젝트 폴더에 기록하지 마십시오.
  • 키가 대화에 나타나면 사용자에게 키를 교체하라고 알리십시오.

오류

스크립트는 이유와 다음 단계를 출력합니다. 간단히 말하면:

표시의미조치
401키가 잘못되었거나 없음login을 다시 실행하십시오
402잔액 부족https://apimodels.app/console/credits에서 충전하십시오. 완료된 샷은 유지됩니다.
"looks like a real person"dreamina-*가 참조 이미지를 거부함video_model을 seedance-2.0-mini로 전환한 후 shots --retry-failed 실행
콘텐츠 검토 거부프롬프트 또는 대사가 거부됨해당 샷을 다시 작성하십시오. 동일한 텍스트를 다시 시도해도 도움이 되지 않습니다.
Busy / timeout업스트림 부하잠시 후 shots --retry-failed 실행
"still running"25분 초과나중에 shots를 다시 실행하십시오. 작업을 재개하며 비용이 청구되지 않습니다.
exit code 3단계 비용이 $1 초과사용자와 금액을 확인한 후 --yes 추가

성공률은 100%가 아닙니다: 가끔 샷이 실패할 수 있으며, 재시도로 보통 해결됩니다.

이 스킬이 하지 않는 일

즉흥적으로 대응하지 말고 직접 말하십시오:

  • 완벽한 일관성을 보장하지 않습니다. 넓은 샷에서 얼굴이 달라질 수 있으며, 한 프레임에 세 명 이상의 캐릭터가 있을 때 그럴 수 있습니다. 샷당 1~2명의 캐릭터를 유지하십시오(shot-writing 참조).
  • 어떤 샷도 15초를 초과하지 않습니다. 더 긴 장면은 여러 샷으로 나뉩니다.
  • 사용자가 녹음한 음성 트랙에 입 모양을 동기화하지 않습니다.
  • 샷의 정확한 첫 프레임을 제어하지 않습니다. 샷은 참조 이미지와 프롬프트에 의해 구동됩니다.
  • 자막 타이밍은 근사치입니다. 각 샷 내에서 균등하게 분배됩니다. 정확한 타이밍이 중요하면 .srt를 편집하십시오.
  • 어디에도 게시하지 않습니다. 출력은 로컬 MP4와 SRT입니다.

관련 스킬