빠른 시작#
로그인부터 리깅된 모델까지 세 단계. Node.js 18.17 이상이 필요합니다.
- 01
키 만들기
Google로 afk.ai 계정에 로그인해 API 키 항목에서 키를 만드세요. 키는
afk_로 시작하며 한 번만 표시되고, 언제든 그곳에서 폐기할 수 있습니다. 웹 페이지나 사람들이 다운로드하는 앱에는 넣지 마세요. - 02
환경 변수에 넣기
shellexport AFK_API_KEY=afk_... # from afk.ai/account#api - 03
모델 리깅하기
npx afk-rig knight.glb --type human -o knight.rigged.glb리깅은 저희 GPU에서 실행되며 보통 1~2분 걸립니다. CLI와 클라이언트가 완료될 때까지 기다립니다. MCP 클라이언트에서는 “models/fox.glb를 네발 동물로 리깅해 줘”처럼 요청하세요.
그림에서 만들기#
아직 3D 모델이 없나요? 대신 캐릭터 그림을 보내세요. 호출 한 번으로 그림에서 텍스처가 입혀진 3D 모델을 만들고, 체형에 맞는 모든 애니메이션과 함께 리깅해 약 2~3분 만에 GLB 하나로 돌려줍니다.
캐릭터 1개당 25¢, 크레딧에서 차감: 3D 모델, 리그, 모든 애니메이션 포함, 실패 시 환불. 무료 리깅은 캐릭터에 적용되지 않습니다. 작업의 billing에 표시됩니다. 실행 중에는 held, 그다음 charged 또는 refunded이며, CLI는 청구된 금액과 남은 크레딧을 출력합니다.
npx afk-rig character knight.png -o knight.glb
# Done in 135 s: 593 animations, 15.2 MB, charged $0.25 from your API credits. $4.75 of credits left.캐릭터 하나의 전신이 단색 배경 위에 선명하고 밝게 나온 그림이 가장 좋습니다. 모델의 텍스처(색상, 메탈, 러프니스)는 그림에 맞게 만들어지며, 한동안 요청이 없다가 들어온 첫 요청은 GPU가 시작되는 동안 최대 5분이 걸릴 수 있습니다. MCP 클라이언트에서는 “art/knight.png로 리깅된 캐릭터를 만들어 줘”처럼 요청하세요. 자세한 내용은 이미지→리깅 캐릭터 API 가이드를 참고하세요.
체형#
--type으로 하나를 넘기세요. afk.ai가 그 체형용으로 만든 스켈레톤을 맞추고, 스킨 웨이트를 입히고, 그 스켈레톤용으로 만든 모든 애니메이션을 추가합니다. 전체 체형을 합쳐 933개입니다. afk-rig types <type>로 한 체형의 애니메이션 목록을 볼 수 있습니다.

사람, 로봇, 좀비 등 두 발로 서는 모든 것. 손가락 포함.

개, 고양이, 여우, 늑대

말, 사슴, 소

날개와 두 다리

날개와 네 다리

직립, 꼬리 있음

다리 6개 또는 8개, 날개 없음

다리 없이 길게 이어진 척추 하나

물고기, 상어, 고래
말벌, 벌, 잠자리
큰 뒷다리로 깡충 뜀
개구리와 두꺼비
거북과 육지거북
다리 없이 떠다님
상자, 깃발, 아이템
CLI#
npx afk-rig로 실행하거나 npm i -g afk-rig로 전역 설치하세요. 진행 상황은 stderr로, 저장된 파일 경로는 stdout으로 출력되므로 스크립트에서 조합하기 좋습니다.
| 명령 | 기능 |
|---|---|
| afk-rig <model> [options] | 모델을 리깅하고 리깅된 .glb를 저장 |
| afk-rig character <image> [options] | 그림에서 리깅·애니메이션된 캐릭터를 만들어 .glb로 저장(25¢) |
| afk-rig status <rig id> | 리깅 상태 |
| afk-rig download <rig id> -o <file> | 완료된 리깅 다운로드(24시간 동안) |
| afk-rig account | 이번 달 남은 무료 리깅, 플랜의 월간 크레딧, API 크레딧 |
| afk-rig types [type] | 체형 목록과 체형별 애니메이션 |
| afk-rig mcp | stdio에서 MCP 서버로 실행 |
옵션
| -t, --type <type> | 모델의 종류: human(기본값) 또는 다른 체형 |
|---|---|
| -a, --animations <list> | all(기본값), none, 또는 쉼표로 구분한 애니메이션 이름 |
| --facing <degrees> | auto(기본값), 0, 90, 180, 270: 위쪽 축을 기준으로 모델이 돌아간 각도 |
| -o, --out <file> | 기본값: 원본 옆에 <모델 또는 이미지>.rigged.glb |
| --no-wait | 리깅을 시작하고 id를 출력한 뒤 종료 |
| --json | JSON 출력 |
종료 코드
| 0 | 리깅 완료, 저장된 파일 경로가 stdout에 출력됨 |
|---|---|
| 3 | 무료 리깅과 크레딧 소진 |
| 1 | 그 밖의 모든 경우(메시지는 stderr에 출력) |
Node.js#
같은 패키지가 타입이 지정된 클라이언트이기도 합니다: import { AfkRig } from 'afk-rig'. new AfkRig()는 AFK_API_KEY를 읽으며, { apiKey }을 넘길 수도 있습니다.
| 메서드 | 반환값 |
|---|---|
| rig(model, options) | 업로드, 대기, 다운로드를 한 번에. options.output이 주어지면 파일로 저장. { job, glb }로 resolve |
| startRig(model, options) | 업로드하고 대기열에 들어간 작업을 반환. Idempotency-Key를 보내므로 업로드를 재시도해도 리깅이 두 번 시작되지 않음 |
| character(image, options) | 그림을 넣으면 리깅된 캐릭터가 나옴: rig()처럼 { job, glb }로 resolve |
| startCharacter(image, options) | 그림을 업로드하고 대기열에 들어간 작업을 반환. 이후 리깅과 같이 waitForRig와 downloadRig 사용 |
| getRig(id) | 현재 상태의 작업 |
| waitForRig(id, { onUpdate }) | 성공할 때까지 폴링, 실패하면 throw |
| downloadRig(id) | 리깅된 .glb를 Uint8Array로 |
| account() | 남은 무료 리깅, 크레딧, 제한, 최근 리깅 |
| types() | 체형과 각 체형의 애니메이션 |
한 단계씩
import { AfkRig } from 'afk-rig'
const afk = new AfkRig()
const started = await afk.startRig('fox.glb', { type: 'fox', facing: 'auto' })
// { id: 'rig_…', status: 'queued', billing: { charge: 'credits', state: 'held', … } }
const done = await afk.waitForRig(started.id, {
onUpdate: (job) => console.log(job.status, job.stage), // rigging skeleton, rigging fit, …
})
const glb = await afk.downloadRig(done.id) // Uint8Array, for 24 hours오류는 HTTP status, 아래 표의 code, 그리고 속도 제한에 걸렸을 때는 초 단위의 retryAfter를 가진 AfkRigError입니다.
MCP 서버#
npx -y afk-rig mcp로 stdio에서 MCP 서버로 실행하면 Claude Code, Cursor, Windsurf, Claude Desktop 등 MCP 클라이언트가 자신이 만든 모델을 리깅할 수 있습니다. 환경 변수로 AFK_API_KEY를 넘기세요.
claude mcp add afk-rig -e AFK_API_KEY=afk_... -- npx -y afk-rig mcp{
"mcpServers": {
"afk-rig": {
"command": "npx",
"args": ["-y", "afk-rig", "mcp"],
"env": { "AFK_API_KEY": "afk_..." }
}
}
}도구
| rig_model | 모델 파일을 리깅하고 옆에 .glb를 저장 |
|---|---|
| image_to_character | 그림에서 리깅·애니메이션된 캐릭터를 만들어 옆에 .glb를 저장 |
| get_account | 이번 달 남은 무료 리깅, 플랜의 월간 크레딧, API 크레딧 |
| list_body_types | 체형과 각 체형의 애니메이션 |
| rig_status | id로 조회한 리깅 상태 |
리깅 수명 주기#
리깅은 비동기 작업입니다. 모델을 업로드하면 바로 id를 받고, 작업은 아래 상태를 거쳐 진행되며 CLI와 클라이언트가 대신 폴링합니다.
stage: prepare → skeleton (→ retry) → fit → weights → skinstage: animationsbilling.state는 유료 리깅이 실행되는 동안 held, 파일이 준비되면 charged, 실패하면 refunded이므로 실패한 리깅은 비용이 없습니다. billing.charge는 결제 방식을 나타냅니다: free, rerig, credits, character. 그림에서 만드는 캐릭터는 리깅 전에 generating(3D 모델 생성 중) 상태를 거칩니다. afk-rig status <id> --json이 출력하는 완료된 작업 예시:
{
"id": "rig_Xq3v9KfL2mTz8RbA1cWd",
"status": "succeeded",
"stage": null,
"type": "human",
"file": "knight.glb",
"animations": "all",
"facing": null,
"created_at": "2026-10-26T17:02:11Z",
"finished_at": "2026-10-26T17:03:35Z",
"billing": { "charge": "credits", "amount_usd": "0.05", "state": "charged" },
"error": null,
"result": {
"download_url": "https://…/v1/rigs/rig_Xq3v9KfL2mTz8RbA1cWd/model.glb",
"bytes": 7412032,
"animations": 593,
"expires_at": "2026-10-27T17:03:35Z"
}
}오류#
API가 거부한 요청은 HTTP 상태와 code와 함께 돌아오며, 요금이 청구되지 않습니다.
| 상태 | 코드 | 의미 |
|---|---|---|
| 401 | missing_api_key | 키가 전송되지 않았습니다. AFK_API_KEY를 설정하세요. |
| 401 | invalid_api_key | 키가 잘못되었거나 폐기되었습니다. 계정 페이지에서 새로 만드세요. |
| 402 | insufficient_credits | 이번 달 무료 리깅이 남지 않았고, 플랜 크레딧도 없으며, 크레딧도 부족합니다. 캐릭터는 무료 리깅과 관계없이 항상 크레딧이 필요합니다. 캐릭터 1개당 25¢가 크레딧에서 차감되며(3D 모델, 리그, 모든 애니메이션 포함), 실패하면 환불됩니다. CLI는 종료 코드 3으로 끝납니다. |
| 400 | bad_type, bad_facing, unknown_animation | API가 모르는 옵션입니다. afk-rig types로 체형과 애니메이션 목록을 확인하세요. |
| 400 | missing_image | 그림 없이 캐릭터를 요청했습니다. |
| 413 | too_large | 파일이 200 MB를 넘거나, 메시가 너무 정밀해 리깅할 수 없습니다(최대 약 500만 버텍스). 캐릭터의 경우 그림이 20 MB를 넘습니다. |
| 415 | unsupported_format | .glb, 모든 것이 내장된 .gltf, .fbx가 아닙니다(캐릭터의 경우 PNG, JPEG, WebP가 아님). |
| 422 | unreadable_model | 파일을 3D 모델로 읽을 수 없습니다. |
| 429 | rate_limited | 실행 중이거나 이번 시간에 시작한 리깅이 너무 많거나, 이번 분에 요청이 너무 많거나, 한 리깅을 이번 시간에 너무 자주 다운로드했습니다(어느 쪽인지는 reason에 나옵니다). retry_after초 기다리세요. 리깅과 요청은 CLI와 클라이언트가 자동으로 기다립니다. |
| 409 | not_ready | 리깅이 끝나기 전에 다운로드했습니다. 상태가 succeeded가 될 때까지 폴링하세요. |
| 410 | expired | 다운로드 가능한 24시간이 지났습니다. 다시 리깅하세요(재리깅은 무료). |
리깅이 실패할 때
접수되었지만 리깅할 수 없었던 작업은 status: "failed"로 끝나며 error.code에 아래 중 하나가 들어갑니다. 요금은 청구되지 않습니다.
| unriggable | AI가 모델에서 리깅할 몸을 찾지 못했습니다. |
|---|---|
| content_not_allowed | afk.ai의 모든 리깅이 거치는 성인 콘텐츠 검사를 통과하지 못했습니다. |
| rig_failed | GPU에서 문제가 발생했습니다. 다시 시도하세요. |
| no_model | 캐릭터: 그림에서 3D 모델을 만들 수 없었습니다. 캐릭터 하나의 전신이 더 선명하게 나온 그림으로 시도하세요. |
제한#
| 입력 | .glb, .gltf(버퍼와 텍스처 내장) 또는 .fbx. Draco와 meshopt로 압축된 메시는 아직 지원하지 않습니다. |
|---|---|
| 모델 크기 | 텍스처 포함 최대 200 MB, 최대 약 500만 버텍스 |
| 그림 | 캐릭터용: PNG, JPEG, WebP, 최대 20 MB, 캐릭터 하나, 전신, 단색 배경. 캐릭터도 리깅과 같은 동시 실행 및 속도 제한에 포함됩니다. |
| 동시 실행 | 계정당 동시에 2개 리깅, CLI가 빈 슬롯을 기다림 |
| 속도 | 시간당 리깅 시작 100회 |
| 요청 | 상태, 계정, 다운로드 요청은 계정당 분당 120회 |
| 키 없이 | IP 주소당 분당 60회 요청: 체형 조회, 그리고 키가 없거나 잘못된 요청 |
| 다운로드 | 리깅마다 .glb를 시간당 20회 |
| 결과 | 리깅 완료 후 24시간 동안 다운로드 가능 |
| 출력 | 스켈레톤, 스킨 웨이트, 애니메이션 클립이 담긴 glTF 바이너리(.glb). 텍스처와 머티리얼은 그대로 유지됩니다. Unity(glTFast), Unreal, Godot, Blender, three.js로 임포트할 수 있습니다. |
| 리깅된 입력 | 보이는 포즈 그대로 다시 리깅되며, 기존 스켈레톤과 애니메이션은 교체됩니다 |
| 라이선스 | 모델은 계속 사용자 소유입니다. 스켈레톤과 애니메이션은 CC0이며 상업적 이용도 가능합니다. |
요금#
리깅당 5¢, 고정 요금입니다. 리깅 한 번이 전체 결과물입니다: 스켈레톤, 스킨 웨이트, 체형에 맞는 모든 애니메이션. 그림으로 만든 캐릭터는 25¢입니다. 애니메이션별 요금이나 구독은 없습니다.
| 리깅당 | 선불 크레딧에서 $0.05 |
|---|---|
| 무료 | 매월 3회, afk.ai/rig와 공유 |
| Pro 이용 시 | Pro Pass(30일 $29)마다 $10, Lifetime($85)에는 $10 상당의 크레딧 추가(모두 afk.ai/lifetime에서 구매), 계속 보유 가능. 이전 Lifetime 또는 휴대폰 앱 Lifetime 회원은 대신 매월 $10 상당의 리깅(200회)을 무료 리깅 다음·크레딧보다 먼저 사용 |
| 재리깅 | 그달 같은 모델 재리깅(다른 체형, 방향, 재시도): 3회 추가 무료 |
| 실패한 리깅 | $0: 리깅이 시작될 때 금액이 보류되고 파일이 준비되었을 때만 청구 |
| 그림으로 만든 캐릭터 | 캐릭터 1개당 25¢, 크레딧에서 차감: 3D 모델, 리그, 모든 애니메이션 포함, 실패 시 환불. 무료 리깅은 캐릭터에 적용되지 않음 |
| 충전 | 계정 페이지에서 $5(100회 리깅)부터, 크레딧은 만료되지 않음 |
월별 비용
| 월 리깅 수 | 결제 금액 | 애니메이션 |
|---|---|---|
| 3 | $0.00 | 모든 리깅에 전부 포함 |
| 100 | $4.85 | 모든 리깅에 전부 포함 |
| 1,000 | $49.85 | 모든 리깅에 전부 포함 |
| 10,000 | $499.85 | 모든 리깅에 전부 포함 |
다른 리깅 API와 비교#
저희가 찾은 리깅 API 중 가장 낮은 종량제 가격입니다. 공개된 API 가격을 기준으로, 각 서비스의 일반 플랜에서 크레딧을 달러로 환산했습니다. 1년을 선결제하면 기본 리깅만은 Ludo.ai가 더 저렴하지만, 애니메이션 10개를 갖춘 휴머노이드는 저희가 가격을 조사한 어떤 API보다 여기가 저렴합니다. 계산 과정은 자동 리깅 API 가격 비교에 있습니다.
| API | 리깅당 | 애니메이션 | 체형 | 결제 |
|---|---|---|---|---|
| afk.ai | 5¢ | 전부 포함(전체 체형 900개 이상) | 휴머노이드, 동물, 새, 드래곤, 공룡, 거미, 뱀, 물고기 등 | 선불 크레딧, 구독 없음 |
| Ludo.ai | 3¢~5¢ | 각 1.5¢~2.5¢ | 어떤 형태든. 프리셋 애니메이션은 휴머노이드용 | Pro 또는 Studio 구독(월 $50, 또는 연 $420이나 $3,600) |
| Meshy | 6.25¢~10¢ | 각 3.75¢~6¢(걷기와 달리기는 리그에 포함) | 휴머노이드만 | 유료 플랜, 월 $20부터 |
| Uthana | 15¢ | 별도 요금 | 휴머노이드 | 종량제 |
| Tripo | 25¢ | 각 10¢ | 이족 보행, 네발 동물, 다리 6개·8개 크리처, 새, 뱀, 바다 생물 | 종량제, $1부터 |
| Anything World | 크레딧 방식, 요금 페이지 참고 | 리깅·애니메이션 엔드포인트 있음 | 휴머노이드, 네발 동물, 새, 물고기 등 | 매월 무료 제공량, 이후 크레딧 |
| Mixamo | 무료, 공개 API 없음 | 휴머노이드 라이브러리 | 휴머노이드만 | Adobe ID로 무료 |
가격은 2026년 10월에 각 서비스의 공식 페이지에서 일반 플랜 기준으로 확인했습니다(신규 사용자 혜택 제외): Ludo.ai, Meshy API, Meshy 플랜, Uthana, Tripo, Anything World, Mixamo FAQ. 가격은 바뀔 수 있으니 결정하기 전에 확인하세요.
자주 묻는 질문#
가장 저렴한 리깅 API인가요?
종량제로는 그렇습니다. 리깅당 5¢는 구독 없이 저희가 찾은 가장 낮은 가격입니다(Uthana는 15¢, Tripo는 25¢). Ludo.ai의 연간 플랜은 1년 선결제로 3¢~3.5¢라 기본 리깅만은 더 저렴하지만 애니메이션은 별도 요금입니다. 애니메이션 10개를 갖춘 휴머노이드는 그곳에서 약 18¢ 이상, 여기서는 5¢입니다. 출처를 포함한 전체 비교는 자동 리깅 API 가격 비교 글에 있습니다.
3D 모델 대신 그림으로 시작할 수 있나요?
네. 캐릭터 그림을 보내면 호출 한 번으로 그림에서 텍스처가 입혀진 3D 모델을 만들고, 체형에 맞는 모든 애니메이션과 함께 약 2~3분 만에 리깅합니다. 캐릭터 1개당 25¢, 크레딧에서 차감: 3D 모델, 리그, 모든 애니메이션 포함, 실패 시 환불. 무료 리깅은 캐릭터에 적용되지 않습니다. 캐릭터 하나의 전신이 단색 배경 위에 선명하게 나온 그림이 가장 좋습니다. 자세한 내용은 이미지→리깅 캐릭터 API 글을 참고하세요.
리깅에는 무엇이 포함되나요?
모델에 애니메이션을 입히는 데 필요한 모든 것, 즉 스켈레톤, 스킨 웨이트, 그 체형에 맞는 모든 애니메이션이 GLB 하나에 담깁니다. 애니메이션별 추가 요금은 없습니다. 첫 결과가 마음에 들지 않으면 같은 모델을 최대 3회까지 무료로 다시 리깅할 수 있습니다.
무료 리깅은 어떻게 작동하나요?
모든 계정에 웹사이트와 동일하게 매월 무료 리깅 3회가 제공됩니다. 그 이후 리깅은 선불 크레딧에서 회당 5¢씩 차감됩니다. 웹사이트의 무료 플랜과 마찬가지로 무료 리깅에는 무료 애니메이션만 들어 있고 골드 애니메이션은 빠집니다. 크레딧으로 결제한 리깅에는 전부 들어 있으며, 유료 afk.ai 플랜을 쓰는 계정의 리깅도 모두 그렇습니다. 골드 애니메이션을 이름으로 요청하면 그 리깅은 크레딧으로 결제되고, 무료 리깅은 그대로 남습니다.
구독인가요?
아니요. 필요할 때 $5부터 크레딧을 충전하며, 자동 갱신되는 것은 없습니다. 크레딧은 만료되지 않습니다.
Pro에 API 크레딧이 포함되나요?
네. afk.ai Pro Pass(30일 $29)를 구매할 때마다 API 크레딧이 $10씩, Lifetime($85)을 구매하면 $10이 추가됩니다. 구매한 크레딧과 똑같이 만료되지 않고, Pro Pass가 끝난 뒤에도 남습니다. 이전 Lifetime 또는 휴대폰 앱 Lifetime 회원은 대신 매월 $10의 API 크레딧, 즉 리깅 200회를 받으며, 무료 리깅 다음, 선불 크레딧보다 먼저 사용됩니다. 이 크레딧은 그림으로 만드는 캐릭터가 아닌 리깅에 쓰이고, 매월 1일에 다시 채워지며 이월되지 않습니다. 남은 양은 계정 페이지에서 확인할 수 있습니다.
리깅은 얼마나 걸리나요?
저희 서버에서 보통 1~2분 정도 걸립니다. API는 비동기 방식입니다. 모델을 업로드하면 id를 받고, 리깅된 GLB가 준비될 때까지 상태를 확인합니다. CLI가 대신 기다려 줍니다.
무엇을 보내고 무엇을 받나요?
GLB, glTF 또는 FBX와 체형을 보내세요. 스켈레톤, 스킨 웨이트, 애니메이션이 담긴 표준 glTF 바이너리(GLB)를 받으며, Unity(glTFast 사용), Unreal, Godot, Blender, three.js로 임포트할 수 있습니다.
AI 에이전트가 쓸 수 있나요?
네. afk-rig 패키지는 MCP 서버이기도 하므로 Claude Code, Cursor, Windsurf, Claude Desktop 등 MCP 클라이언트가 리깅을 도구로 쓸 수 있습니다. 셸만 있는 에이전트는 CLI를 실행하면 됩니다.
리깅한 모델을 상업적으로 써도 되나요?
네. 모델은 계속 사용자 소유이고, 애니메이션은 CC0(퍼블릭 도메인)이므로 상업용 게임과 앱에 넣어 출시할 수 있습니다.
API 키는 어디서 받나요?
afk.ai에 로그인해 계정 페이지의 API 키 항목에서 만드세요. 키는 한 번만 표시되니 안전한 곳에 보관하세요. 언제든 폐기하고 새로 만들 수 있습니다.