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:
# 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.