제품 이미지 → 9:16 광고
사진을 확인하고, 세로 프레임으로 확장할지 제안하고, 카메라 움직임 두세 가지로 초안을 만든 다음, 선택한 것을 Fast로 다시 생성합니다.
이렇게 요청해 보세요“이 제품 사진으로 9:16 광고를 만들어 주세요. 먼저 견적부터요.”
스킬 하나로 에이전트에게 세 가지 Pershot 워크플로를 가르칩니다. 제품 이미지로 9:16 광고 만들기, UGC 스타일 토킹 광고, 스프레드시트 기반 일괄 생성입니다. 모든 작업의 견적을 내고, 크레딧을 쓰기 전에 사용자의 승인을 기다립니다.
내 AI 에이전트 연결은 모든 계정에 열려 있고 키가 필요 없습니다. 내 코드로 내 작업을 자동화할 때 쓰는 개발자 API 키는 신청제입니다.
각 워크플로는 Mini 480p로 저렴하게 초안을 만들고, 사용자가 고른 버전만 Fast 720p로 실행합니다.
사진을 확인하고, 세로 프레임으로 확장할지 제안하고, 카메라 움직임 두세 가지로 초안을 만든 다음, 선택한 것을 Fast로 다시 생성합니다.
이렇게 요청해 보세요“이 제품 사진으로 9:16 광고를 만들어 주세요. 먼저 견적부터요.”
실존 인물이 아닌 일반적인 인물이 제품을 들고 자신의 목소리로 대사를 말하며, 휴대폰 동영상처럼 촬영됩니다.
이렇게 요청해 보세요“우리 세럼으로 10초짜리 토킹 광고를 만들어 주세요. 대사는 ‘빠르게 스며듭니다’로요.”
모든 행을 확인하고, 시트 전체의 가격을 산정하고, 총액 상한을 걸어 일괄 생성으로 제출한 뒤, 결과를 SKU별로 내보냅니다.
이렇게 요청해 보세요“products.csv를 드릴게요. 행마다 5초 클립 하나씩, 초안부터 만들어 주세요.”
모든 워크플로는 견적, 확인, 생성 순서를 따릅니다. 스킬은 실제로 실행될 작업의 크레딧과 달러 금액을 정확히 보여 주고, 사용자의 승인을 기다린 뒤, 각 작업을 가격 상한과 멱등성 키와 함께 보내므로 재시도해도 두 번 청구되지 않습니다.
같은 zip 파일이 어디서나 작동합니다. 루트에 SKILL.md가 있는 스킬 폴더 하나가 들어 있습니다.
zip 파일을 다운로드해 개인 스킬 폴더에 압축을 풀거나, 팀과 공유하려면 저장소의 .claude/skills에 압축을 푸세요.
mkdir -p ~/.claude/skills
unzip ~/Downloads/pershot-video.zip -d ~/.claude/skills/MCP 서버를 연결한 뒤 Claude Code에서 /mcp를 입력해 로그인하세요. 크리에이티브 잔액을 씁니다.
claude mcp add --transport http pershot https://mcp.pershot.app/mcp동영상을 요청하세요. Claude가 요청을 보고 스킬을 사용하며, 스킬 이름으로 직접 실행할 수도 있습니다.
/pershot-video ./product.png로 9:16 광고를 만들어 주세요. 먼저 견적부터요설정의 기능 메뉴에서 "코드 실행 및 파일 생성"을 켜세요.
사용자 지정을 연 다음 스킬로 이동하세요. +, 스킬 만들기, 스킬 업로드를 차례로 선택하고 zip 파일을 고르세요.
MCP 서버를 사용자 지정 커넥터로 추가하세요. 같은 계정으로 로그인하면 업로드한 스킬을 Claude Code에서도 사용할 수 있습니다.
zip 파일을 ~/.agents/skills에 압축을 풀거나, 저장소의 .agents/skills에 압축을 푸세요.
mkdir -p ~/.agents/skills
unzip ~/Downloads/pershot-video.zip -d ~/.agents/skills/MCP 서버를 연결하고 codex mcp login으로 로그인하세요. 크리에이티브 잔액을 씁니다.
codex mcp add pershot --url https://mcp.pershot.app/mcp
codex mcp login pershot스킬이 보이지 않으면 Codex를 다시 시작한 다음, $와 스킬 이름을 입력해 호출하세요. AGENTS.md를 선호하시나요? zip 파일에 기존 AGENTS.md에 붙여 넣을 수 있는 파일이 들어 있습니다.
$pershot-video product.png로 9:16 광고를 만들어 주세요. 먼저 견적부터요읽고 편집할 수 있는 일반 Markdown 파일입니다. 브랜드의 프롬프트 규칙을 SKILL.md에 바로 넣을 수 있습니다.
pershot-video/SKILL.mdpershot-video/AGENTS.mdpershot-video/LICENSEpershot-video/agents/openai.yamlpershot-video/reference/api.mdpershot-video/reference/mcp.mdpershot-video/workflows/product-to-ad.mdpershot-video/workflows/spreadsheet-batch.mdpershot-video/workflows/ugc-talking-ad.md---
name: pershot-video
description: Make short videos with Pershot (Seedance 2.0 Mini and Fast, Qwen-Image) on the user's own account, through its MCP tools or /v1 API. Use when the user wants a 9:16 ad from a product image, a UGC-style talking ad, or a batch of videos from a spreadsheet. Always quotes the price and waits for the user's yes before spending credits.
license: MIT
---
# Pershot video workflows
You help the user make short videos with Pershot: Seedance 2.0 Mini for cheap drafts, Seedance 2.0 Fast for finals, and Qwen-Image for stills and first frames. You work on the user's own Pershot account, as the user's own AI agent, and spend their creative balance like the studio does. Credits are the user's money: 1 credit = US$0.01.
## Rules that always apply
1. **Quote, confirm, generate.** Never call a spending tool or endpoint until you have shown the user the quoted credits and dollars for exactly what you will run, and they said yes. A yes covers only what you showed.
2. **Cap every job.** Pass the `quote_id` you showed (valid 10 minutes) or a `max_credits` equal to the confirmed amount. Never raise a cap without asking.
3. **One idempotency key per job.** Make a fresh key for each new job. On a retry after a timeout or network error, send the same key again: it returns the same job and never charges twice.
4. **Draft cheap, finish once.** Draft variants on Mini at 480p; run the one the user picks on Fast at 720p.
5. **Sign in as the user's agent, and keep it secret.** Over MCP the client signs in for you. With a shell, sign in by device login: the user confirms a short code in their browser and you receive a sign-in of your own on their account, which spends their creative balance like the studio ([reference/api.md](reference/api.md), "Sign in: device login"). Keep that sign-in in the `API_KEY` environment variable. Never write a sign-in, a connection code or a key into a prompt, a file, a commit or the chat. Developer API keys (`sk_…`) are by application; never ask the user for one, and use one only if the user already put it in `API_KEY`.
6. **Stop when money runs out.** On `insufficient_credits`, stop. The user has two balances that never cover each other, and `details.account` names the short one: `creative` (the studio, MCP, connection codes and device login) or `api` (a developer API key, by application). Ask the user to top up that balance at https://pershot.app/app/billing, or to raise the cap when `details.limit` is not `balance`. Never switch credentials, models or quality silently to fit a budget.
7. **Respect people and brands.** Faces of real people, celebrities and other companies' brands need the user's permission. If the quote's pre-check says `warn` or `block`, tell the user before anything runs. A refused job (`content_rejected`) is not charged.
8. **Hand over results promptly.** Result links are signed and expire after 24 hours. Give the links and tell the user to download what they keep.
## Connect
- **MCP (preferred):** the server at https://mcp.pershot.app/mcp. Tools: `list_models`, `get_model`, `get_pricing`, `quote`, `plan_auto`, `plan_image_auto`, `use_preset`, `create_upload`, `generate_video`, `generate_image`, `get_job`, `wait_for_job`, `cancel_job`, `get_balance`. Only `generate_video` and `generate_image` spend credits. Setup and details: [reference/mcp.md](reference/mcp.md).
- **HTTP API:** base https://api.pershot.app/v1, header `Authorization: Bearer $API_KEY` with the device-login sign-in, which spends the user's creative balance. The credential decides which balance pays: a developer API key (`sk_…`, by application) would spend the separate developer API balance instead. Endpoints and examples: [reference/api.md](reference/api.md). OpenAPI: https://pershot.app/api/v1/openapi.json
## The loop, every time
1. **Plan** the job with the user: model, resolution, duration, aspect ratio, how many variants.
2. **Quote** it: MCP `quote` (pass the prompt too, for the content pre-check) or `POST /v1/quotes`.
3. **Show** "N credits (≈ $X)" per job and the total, plus any pre-check note. Ask for a yes.
4. **Generate** with the `quote_id` (or `max_credits`) and a new idempotency key.
5. **Wait**: MCP `wait_for_job` (up to 60 s per call, repeat) or poll `GET /v1/jobs/{id}` every few seconds. `unknown` means the outcome is being checked with the model: keep waiting, do not resubmit.
6. **Report** status, credits charged and the result links. A job that makes no video (it failed, or the model refused it) or whose result a safety check blocked has its credits refunded automatically. A video that is made is charged, even if the user does not like it: offer another take, quoted and confirmed like the first. If a file is broken, the user reports it in the studio, and it is refunded after a check.
## Workflows
- Product image → 9:16 ad: [workflows/product-to-ad.md](workflows/product-to-ad.md)
- UGC talking ad: [workflows/ugc-talking-ad.md](workflows/ugc-talking-ad.md)
- Spreadsheet batch: [workflows/spreadsheet-batch.md](workflows/spreadsheet-batch.md)
## Writing prompts
- Three layers, in this order: subject and action; camera (one move, with speed, height and lens); light and style.
- More than one beat: a timeline, "0–2 s: … 2–5 s: …", covering the whole duration.
- Images: refer to them as @image1, @image2 and say what each is for ("keep the label from @image1").
- End with one short "Avoid:" line. Put spoken lines in quotes and say who speaks.
- Full guide: https://pershot.app/guides/seedance-prompting
## Limits to plan around
- Video: 4 to 15 whole seconds; 480p or 720p; 16:9, 9:16 or 1:1; audio on or off at the same price.
- Images: 1K or 2K; edit models need `image_url`; generate models reject it.
- Up to 9 reference images (API); images up to 10 MB (JPEG, PNG, WebP).
- Seedance first frames and reference images: 300 to 6000 px on each side, width ÷ height 0.4 to 2.5. An upload outside that is refused before anything is charged; resize or extend it first.
- Every limit per model, who checks it and what happens past it: the table at the end of [reference/api.md](reference/api.md), or `limits` in `GET https://api.pershot.app/v1/models`.
- 60 requests a minute per key; a few jobs run at once per account, the rest wait in the queue.
포함되지 않은 것: API 키, 토큰, 웹훅 시크릿, 계정 정보. 스킬은 MCP 연결을 쓰거나, 기기 로그인으로 받은 로그인 정보를 API_KEY 환경 변수에 두고 씁니다.
아니요. 모든 작업의 견적을 내고, 크레딧과 달러 금액을 보여 준 뒤, 사용자의 승인을 기다립니다. 이후 각 작업에는 그 금액이 상한으로 설정되므로, 승인한 금액보다 더 많이 들 수 없습니다.
480p 초안에는 Seedance 2.0 Mini를, 720p 최종본에는 Seedance 2.0 Fast를 사용하며, 제품 사진을 확장하거나 정리할 때는 Image Mini나 Image Fast를 씁니다.
네. 일반 Markdown 파일입니다. 워크플로를 바꾸거나, 자체 프롬프트 규칙을 추가하거나, 필요 없는 부분을 삭제하세요.
네. 셸이 있으면 내 계정에 기기 로그인한 뒤 /v1 API를 직접 호출하고, 크리에이티브 잔액을 씁니다. 개발자 API 키는 신청제이며 별도의 개발자 API 잔액을 씁니다. reference/api.md에 모든 요청이 나와 있습니다.
MCP 연결이나 내 컴퓨터의 환경 변수에 둡니다. 스킬 파일에는 절대 넣지 않으며, 스킬은 에이전트에게 이를 출력하거나 저장하지 말라고 지시합니다. API 키는 필요 없습니다.