ControlNet Preprocess OpenPose
ControlNet Preprocess OpenPose extracts a human pose skeleton from an input image for ControlNet conditioning. It is best for character and figure workflows where body posture, gesture, limb placement, and overall pose need to stay consistent across generations.

API Reference
INTEGRATE
Complete technical specification for integration
RequestResponse
Examples8
CODE
Ready-to-use code snippets for common workflows

import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: true
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/e87d4b6a-3efb-4a64-bbe9-477404d270c2.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": True
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/e87d4b6a-3efb-4a64-bbe9-477404d270c2.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "62e22be3-0a17-4f6d-8a9a-3888bcd5467e",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/e87d4b6a-3efb-4a64-bbe9-477404d270c2.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=true \
inputs.image=https://assets.runware.ai/assets/inputs/e87d4b6a-3efb-4a64-bbe9-477404d270c2.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "62e22be3-0a17-4f6d-8a9a-3888bcd5467e",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/e87d4b6a-3efb-4a64-bbe9-477404d270c2.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "62e22be3-0a17-4f6d-8a9a-3888bcd5467e",
"guideImageURL": "https://im.runware.ai/image/os/a02d21/ws/3/ii/a17d3e0b-1146-474c-b0f7-78f9a82116fd.jpg",
"cost": 0.0102,
"guideImageUUID": "a17d3e0b-1146-474c-b0f7-78f9a82116fd",
"inputImageUUID": "c408b5a1-20de-4ec5-be60-5b0fd68d8d2e"
}detailed-pose-estimation
Museum Interpreter Scene-Swap Pose Map$0.0038~10s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: true
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/c6e2ca5e-d6ea-48ff-813a-12ef2a46c064.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": True
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/c6e2ca5e-d6ea-48ff-813a-12ef2a46c064.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "45670753-194f-4b5c-8210-fedcb00b9ff3",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/c6e2ca5e-d6ea-48ff-813a-12ef2a46c064.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=true \
inputs.image=https://assets.runware.ai/assets/inputs/c6e2ca5e-d6ea-48ff-813a-12ef2a46c064.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "45670753-194f-4b5c-8210-fedcb00b9ff3",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/c6e2ca5e-d6ea-48ff-813a-12ef2a46c064.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "45670753-194f-4b5c-8210-fedcb00b9ff3",
"guideImageURL": "https://im.runware.ai/image/os/a09dlim3/ws/3/ii/e6623fd3-4066-43f0-9565-595051b2ac72.jpg",
"cost": 0.0038,
"guideImageUUID": "e6623fd3-4066-43f0-9565-595051b2ac72",
"inputImageUUID": "c4e1005e-3a8a-48fd-8b3c-e6f795150ae3"
}detailed-pose-estimation
Roller Derby Roster Addition Pose Map$0.0032~8s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: true
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/0b69ab3a-1256-4084-afb5-2e40038fd48c.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": True
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/0b69ab3a-1256-4084-afb5-2e40038fd48c.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "3808d586-7ef3-45dc-b733-875183544914",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/0b69ab3a-1256-4084-afb5-2e40038fd48c.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=true \
inputs.image=https://assets.runware.ai/assets/inputs/0b69ab3a-1256-4084-afb5-2e40038fd48c.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "3808d586-7ef3-45dc-b733-875183544914",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/0b69ab3a-1256-4084-afb5-2e40038fd48c.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "3808d586-7ef3-45dc-b733-875183544914",
"guideImageURL": "https://im.runware.ai/image/os/a06dlim3/ws/3/ii/b4d55348-775d-4669-bb7b-41027f409bae.jpg",
"cost": 0.0032,
"guideImageUUID": "b4d55348-775d-4669-bb7b-41027f409bae",
"inputImageUUID": "2af17594-f3d3-4e60-93b0-0c59f68eca8f"
}pose-estimation
Volcanologist WPA Poster Restyle$0.0026~7s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: false
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/56b3277f-9161-4766-8283-a836c04bca3c.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": False
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/56b3277f-9161-4766-8283-a836c04bca3c.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "dbec5301-215b-4877-89bc-dc4b2f51bbd8",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/56b3277f-9161-4766-8283-a836c04bca3c.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=false \
inputs.image=https://assets.runware.ai/assets/inputs/56b3277f-9161-4766-8283-a836c04bca3c.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "dbec5301-215b-4877-89bc-dc4b2f51bbd8",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/56b3277f-9161-4766-8283-a836c04bca3c.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "dbec5301-215b-4877-89bc-dc4b2f51bbd8",
"guideImageURL": "https://im.runware.ai/image/os/a06dlim3/ws/3/ii/c86928f2-5179-452f-8bbe-8b6ba4f72035.jpg",
"cost": 0.0026,
"guideImageUUID": "c86928f2-5179-452f-8bbe-8b6ba4f72035",
"inputImageUUID": "dadd30eb-3f2c-4128-a8fd-b79e8ae0e62a"
}
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: true
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/8d44098b-0db1-4236-b69c-7676c1e22f31.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": True
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/8d44098b-0db1-4236-b69c-7676c1e22f31.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "478953ef-1372-43ad-a245-ba7721be2590",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/8d44098b-0db1-4236-b69c-7676c1e22f31.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=true \
inputs.image=https://assets.runware.ai/assets/inputs/8d44098b-0db1-4236-b69c-7676c1e22f31.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "478953ef-1372-43ad-a245-ba7721be2590",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/8d44098b-0db1-4236-b69c-7676c1e22f31.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "478953ef-1372-43ad-a245-ba7721be2590",
"guideImageURL": "https://im.runware.ai/image/os/a04d20/ws/3/ii/a2f8f7e3-7532-46e7-9f35-431f5962909a.jpg",
"cost": 0.016,
"guideImageUUID": "a2f8f7e3-7532-46e7-9f35-431f5962909a",
"inputImageUUID": "741b2b9d-5391-4f0e-bddd-8ff1fc71dabd"
}
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: true
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/015b5877-0068-4f75-943a-861579547531.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": True
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/015b5877-0068-4f75-943a-861579547531.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "7010b7d0-d31f-4f2c-af58-91c4a6b6f0f8",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/015b5877-0068-4f75-943a-861579547531.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=true \
inputs.image=https://assets.runware.ai/assets/inputs/015b5877-0068-4f75-943a-861579547531.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "7010b7d0-d31f-4f2c-af58-91c4a6b6f0f8",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/015b5877-0068-4f75-943a-861579547531.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "7010b7d0-d31f-4f2c-af58-91c4a6b6f0f8",
"guideImageURL": "https://im.runware.ai/image/os/a09dlim3/ws/3/ii/ca4a44b6-86fa-4f93-bec4-31a00c74aa9e.jpg",
"cost": 0.007,
"guideImageUUID": "ca4a44b6-86fa-4f93-bec4-31a00c74aa9e",
"inputImageUUID": "bc624964-9360-4d8f-9c4c-23de1bde0048"
}
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: true
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/c9e8d2c5-93e4-44e3-ab7f-b8bb2a83bb09.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": True
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/c9e8d2c5-93e4-44e3-ab7f-b8bb2a83bb09.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "7b534b1a-e6ee-48dc-84cd-926eaaf6d741",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/c9e8d2c5-93e4-44e3-ab7f-b8bb2a83bb09.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=true \
inputs.image=https://assets.runware.ai/assets/inputs/c9e8d2c5-93e4-44e3-ab7f-b8bb2a83bb09.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "7b534b1a-e6ee-48dc-84cd-926eaaf6d741",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": true
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/c9e8d2c5-93e4-44e3-ab7f-b8bb2a83bb09.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "7b534b1a-e6ee-48dc-84cd-926eaaf6d741",
"guideImageURL": "https://im.runware.ai/image/os/a08dlim3/ws/3/ii/fa11ff84-0857-417b-a4a1-d7664a2c8972.jpg",
"cost": 0.0109,
"guideImageUUID": "fa11ff84-0857-417b-a4a1-d7664a2c8972",
"inputImageUUID": "11e4b467-52e0-4857-a198-9d594e5dce38"
}pose-estimation
Motorcycle Airbag Suit Pose Map$0.0032~7s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'runware:controlnet-preprocess@openpose',
settings: {
includeHandsAndFaceOpenPose: false
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/40751967-796d-49cd-9d2b-619725133647.jpg'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": False
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/40751967-796d-49cd-9d2b-619725133647.jpg"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "controlNetPreprocess",
"taskUUID": "f7be28d5-2fd1-4ff3-aee7-06c76e67b5ff",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/40751967-796d-49cd-9d2b-619725133647.jpg"
}
}
]'runware run runware:controlnet-preprocess@openpose \
settings.includeHandsAndFaceOpenPose=false \
inputs.image=https://assets.runware.ai/assets/inputs/40751967-796d-49cd-9d2b-619725133647.jpg{
"taskType": "controlNetPreprocess",
"taskUUID": "f7be28d5-2fd1-4ff3-aee7-06c76e67b5ff",
"model": "runware:controlnet-preprocess@openpose",
"settings": {
"includeHandsAndFaceOpenPose": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/40751967-796d-49cd-9d2b-619725133647.jpg"
}
}Response
{
"taskType": "imageControlNetPreProcess",
"taskUUID": "f7be28d5-2fd1-4ff3-aee7-06c76e67b5ff",
"guideImageURL": "https://im.runware.ai/image/os/a10dlim3/ws/3/ii/11e7a4f8-c741-4bf0-92b2-9b3146a19f49.jpg",
"cost": 0.0032,
"guideImageUUID": "11e7a4f8-c741-4bf0-92b2-9b3146a19f49",
"inputImageUUID": "56864f99-6372-4159-a33e-752bdb1e0582"
}