전제 조건
생성 전에 다음 스킬들을 설치하고 로드하세요(@pruna로 컨텍스트에 이미 포함된 경우 건너뛰기):
| 스킬 | 설명 | 설치 명령어 |
|---|---|---|
generation-diversity | 모든 생성형 프롬프트 작성 시 사용 — 유료 API 호출 전에 의식적 시드(seed), 명시적 구조, 시나리오 축, 품질 게이트를 적용합니다. | npx skills add PrunaAI/pruna-skills@generation-diversity -y |
image-prompting | 정지 이미지 프롬프트 작성 시 사용 — 구성, 아이덴티티 시트, 편집, 가상 피팅, 포토리얼 페르소나 등에 활용합니다. | npx skills add PrunaAI/pruna-skills@image-prompting -y |
pruna-api | Pruna 또는 Replicate HTTP 호출 전에 사용 — 인증 정보, 업로드/폴링/다운로드, 병렬 배치, 에이전트 안전을 처리합니다. | npx skills add PrunaAI/pruna-skills@pruna-api -y |
또는 전체 스위트를 한 번에 설치: npx skills add PrunaAI/pruna-skills@pruna -y
각 스킬의 생성 전 / 가이드 섹션을 따르세요 — 여기에 가이드 내용을 반복하지 마세요.
에이전트 습관
첫 번째 응답에서 `p-image-try-on`을 백틱으로 표시하고, PRUNA_API_KEY를 확인한 후 person_image + garment_images를 요청하세요. 입력을 받은 후에는 generation-diversity 명확화 입력을 진행하세요. 참조에 모호함이 있을 때는 프롬프트 작성(동적 + 충실) 섹션을 참고해 초안을 작성하세요 — 스킬 예제를 그대로 붙여넣지 마세요. 배경만 변경하거나 옷이 없는 작업은 p-image-edit으로 리디렉션하세요.
프롬프트 작성 (동적 + 충실)
아이덴티티와 의상은 person_image + **garment_images[]**에서 비롯됩니다. 선택적 **prompt**는 참조를 명확히 하는 용도로만 사용되며, 새로운 인물이나 옷을 창작하지 않습니다.
| 수행할 사항 | 수행하지 말아야 할 사항 |
|---|---|
**person_image**와 모든 garment_images[] URL을 먼저 고정합니다. 깔끔한 평면 사진(flat-lay)인 경우 **prompt**를 생략합니다. | 사용자가 제공하지 않은 새로운 장면, 모델 또는 의상을 묘사합니다. |
참조가 모호할 때: 이미지 1의 초록색 티셔츠와 이미지 2의 바지 (image-prompting의 가상 피팅 가이드 활용) | 분위기만 설명하는 프롬프트(fashion editorial vibe) 또는 참조가 다를 때 이 스킬의 확장 예제를 복사합니다. |
| 모호한 표현을 작성하기 전에 의식적 시드를 수행합니다. 여러 유효한 매핑이 있을 때 문구를 다양하게 사용합니다. | 배경 변경을 위해 **prompt**를 사용합니다 — p-image-edit으로 리디렉션하세요. |
참조가 모호할 때 POST 전에 필요한 경우 **prompt**를 표시합니다. | 포즈, 얼굴, 또는 의상을 변경하는 무음 가상 피팅을 수행합니다. |
충실도 확인(결제 전): 출력물이 여전히 사용자의 인물이 사용자의 의상을 입고 있어야 합니다. **prompt**가 다른 참조 세트에 적용될 수 있다면 명확화를 다시 작성하세요.
사용하지 말아야 할 경우
대신 다른 스킬을 사용하세요:
| 스킬 | 설명 | 설치 명령어 |
|---|---|---|
p-image | 누군가가 명시적으로 가장 빠르고 저렴한 사진 생성을 원할 때 사용 — 무드 보드, 대량 패널, 빠른 반복 작업. 통제된 포토리얼 또는 이미지 내 텍스트가 필요할 때는 사용하지 마세요. | npx skills add PrunaAI/pruna-skills@p-image -y |
p-image-edit | 누군가가 기존 사진을 편집하려 할 때 사용 — 옷이나 배경 변경, 참조 이미지로 구성, 프롬프트 기반 편집. | npx skills add PrunaAI/pruna-skills@p-image-edit -y |
가격
생성당 (일반 모드와 터보 모드 동일):
- $0.015 첫 번째 의상
- $0.008 추가 의상당
예시: 의상 3개 → $0.015 + 2 × $0.008 = $0.031.
요청 형식
하나의 person_image, 각 의상당 하나의 garment_images[] 항목(최대 11개), 선택적 reference_pose. 모델이 각 의상을 자동 분류하므로 배열 순서는 중요하지 않습니다. 혼합 카테고리는 한 번의 호출에 포함하세요.
prompt— 참조에 여러 의상이 있거나 모델이 입고 있는 경우에만 사용합니다. 깔끔한 평면 사진에는 프롬프트가 필요하지 않습니다.preserve_input_size: true(기본값) — 출력 크기는 인물 이미지를 따릅니다.
Runware 필드 매핑: person → person_image, garment → garment_images[], pose → reference_pose, positivePrompt → prompt, settings.turbo → turbo.
HTTP (curl)
이미지 업로드
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/person.jpg"
curl -X POST "https://api.pruna.ai/v1/files" \
-H "apikey: ${PRUNA_API_KEY}" \
-F "content=@/path/to/garment.png"
각 응답의 urls.get을 input.person_image와 input.garment_images[]에 사용하세요. 선택 사항: reference_pose.
생성 (비동기 — 권장)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": ["https://api.pruna.ai/v1/files/GARMENT_FILE_ID"]
}
}'
폴링 및 다운로드: pruna-api를 따르세요.
프롬프트 작성 전에 generation-diversity의 무작위 시드 의식을 완료하세요 — 의식 문자열을 API seed로 전달하지 마세요.
생성 (동기 — 빠른 테스트 전용)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-H 'Try-Sync: true' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": ["https://api.pruna.ai/v1/files/GARMENT_FILE_ID"]
}
}'
확장 입력 (터보 + 포즈 + 프롬프트)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-try-on' \
-d '{
"input": {
"person_image": "https://api.pruna.ai/v1/files/PERSON_FILE_ID",
"garment_images": [
"https://api.pruna.ai/v1/files/MULTI_GARMENT_SHOT_ID",
"https://api.pruna.ai/v1/files/BOTTOM_ID"
],
"reference_pose": "https://api.pruna.ai/v1/files/POSE_REF_ID",
"prompt": "the green t-shirt from image 1 and the trousers from image 2",
"turbo": true,
"output_format": "jpg",
"output_quality": 95,
"preserve_input_size": true
}
}'
생성 전
- 전제 조건 가이드 읽기 순서 완료 (
generation-diversity→image-prompting의 가상 피팅 가이드). - 의식적 시드 → 선택적 동적 + 충실 명확화
prompt초안 작성 (위 섹션) →person_image,garment_images(최종 결과물은 ≤6개; 78개는 대부분 성공; 911개는 마지막 항목이 빠질 수 있음), 그리고 선택적turbo/reference_pose/prompt확인. - Pruna 참고: 신체 부위당 하나의 의상 (양말 + 신발 → 일반적으로 신발이 우선).
turbo(2.53.5초)는 기본적으로 꺼져 있으며, 최종 결과물에 약 4개 이상의 의상일 때는 권장하지 않음. 전신 또는 3/4분할 인물 크롭이 가장 잘 작동합니다.garment_images[]에서 장갑, 미튼, 손에 든 소품, 포켓 스퀘어, 서스펜더, 브로치는 생략하세요.
필수 입력
person_image(문자열 URL)garment_images(문자열 URL 배열, 최대 11개)
공통 선택적 필드
seed,output_format(webp/jpg/png, 기본값jpg),output_quality(0–100, 기본값 95)preserve_input_size(boolean, 기본값true)turbo(boolean, 기본값false)reference_pose(인물 이미지 URL)prompt(실험적 — 비평면/다중 의상 참조 명확화)
일반적인 다음 단계
이 스킬 이후 흔히 사용되는 후속 스킬:
| 스킬 | 설명 | 설치 명령어 |
|---|---|---|
p-image-upscale | 누군가가 인쇄, 큰 크롭, 또는 고품질 전달을 위해 기존 이미지를 업스케일 또는 선명하게 하려 할 때 사용합니다. | npx skills add PrunaAI/pruna-skills@p-image-upscale -y |
p-video-2-pro | 누군가가 텍스트 또는 시작/종료 프레임에서 영화 같은 클립을 원할 때 사용 — 제품 광고, 다큐멘터리 샷, 생성 오디오가 포함된 대화. 1080p, 가져온 오디오 트랙 또는 헤드만 나오는 호스트용이 아닙니다. | npx skills add PrunaAI/pruna-skills@p-video-2-pro -y |
p-video-2 | 누군가가 텍스트, 이미지 또는 가져온 오디오에서 세련된 짧은 클립을 원할 때 사용 — 1080p B-roll, 시작/종료 프레임 애니메이션, 혼합 트랙이 포함된 모션 샷. 영화 같은 생성 오디오 클립 또는 헤드만 나오는 호스트용이 아닙니다. | npx skills add PrunaAI/pruna-skills@p-video-2 -y |
p-video | 누군가가 텍스트 또는 이미지에서 간단한 짧은 클립을 원할 때 사용 — 빠른 B-roll, 초안, 시작/종료 프레임 애니메이션. 영화 같은 생성, 최고 품질, 정확한 립싱크 또는 1080p에서 가져온 오디오가 필요할 때는 사용하지 마세요. | npx skills add PrunaAI/pruna-skills@p-video -y |
p-video-avatar | 누군가가 사람이 카메라에 나와 스크립트를 말하는 것을 원할 때 사용 — 립싱크 호스트, 대변인, 또는 초상화 사진에서 내레이션 아바타. | npx skills add PrunaAI/pruna-skills@p-video-avatar -y |