# Change Pose

> Change the pose/position of models in product images. Use when user wants to modify how a model is positioned or posed while wearing clothes.

- Skill: `livus-ai/change-pose` (Agent Skill)
- Install (CLI): `npx skillmds@latest add livus-ai/change-pose`
- Raw SKILL.md: https://api.skillmd.com/api/skills/livus-ai/change-pose/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Livus-AI (https://skillmd.com/u/livus-ai)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/livus-ai/change-pose

---


# Change Pose Workflow

Change the pose or position of models in product images using Visuals AI.

## Input handling

Follow the same input handling pattern as `change-color` skill:
- **Shopify URLs**: Fetch images, let user choose, upload to fal.ai
- **Local files**: Resize if >7MB, convert to base64 data URL
- **Direct URLs**: Use as-is

**Important:** For images >7MB, auto-resize to 1024px width before base64 encoding to avoid 10MB payload limit.

See `change-color` skill for complete examples of:
- Image resizing (using sips or ImageMagick)
- JSON payload construction (using Node.js)
- Polling loop with proper variable names

## Execute workflow

Available pose references:
- `standing` - Em Pé (standing straight)
- `hand_on_hip` - Mão no Quadril (hand on hip)
- `walking` - Caminhando (walking)
- `leaning` - Encostada (leaning)
- `arms_crossed` - Braços Cruzados (arms crossed)

Or use a custom description like "arms raised above head" or "sitting cross-legged".

Follow the execution pattern from `change-color` skill:

```bash
# Set API credentials
API_URL="${VISUALS_API_URL:-https://visuals-ai.vercel.app}"
API_KEY="${VISUALS_API_KEY}"

# Create JSON payload using Node.js
node -e "
const fs = require('fs');
const payload = {
  workflowId: 'change-pose',
  inputs: {
    prompt: '<pose_description>',
    poseReference: '<pose_id>'
  },
  images: {
    productImage: '${image_url}'
  }
};
fs.writeFileSync('/tmp/workflow_payload.json', JSON.stringify(payload));
"

# Execute and poll (see change-color skill for complete polling loop)
response=$(curl -s -X POST "$API_URL/api/workflow/execute" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d @/tmp/workflow_payload.json)
```

Poll for completion using the polling loop from `change-color` skill.

