|
|
from PIL import Image |
|
|
import gradio as gr |
|
|
from controlnet_aux import OpenposeDetector |
|
|
|
|
|
|
|
|
openpose = OpenposeDetector.from_pretrained("lllyasviel/ControlNet") |
|
|
|
|
|
def generate_pose(image, use_openpose=True): |
|
|
img = image.convert("RGB") |
|
|
if use_openpose: |
|
|
result = openpose(img) |
|
|
else: |
|
|
result = img |
|
|
if not isinstance(result, Image.Image): |
|
|
result = Image.fromarray(result) |
|
|
return result |
|
|
|
|
|
|
|
|
demo = gr.Interface( |
|
|
fn=generate_pose, |
|
|
inputs=[ |
|
|
gr.Image(type="pil", label="Upload Image"), |
|
|
gr.Checkbox(value=True, label="Use OpenPose (default: true)"), |
|
|
], |
|
|
outputs=gr.Image(type="pil", label="Pose Output"), |
|
|
title="OpenPose Pose Generator", |
|
|
description="Generate full body pose including face and hands." |
|
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
demo.launch(server_name="0.0.0.0", server_port=7860) |
|
|
|