import gradio as gr from PIL import Image from controlnet_aux.open_pose import OpenposeDetector # NEW from controlnet_aux.depth_anything import DepthAnythingDetector # Load models openpose = OpenposeDetector.from_pretrained("lllyasviel/ControlNet") depth = DepthAnythingDetector.from_pretrained("depth-anything/Depth-Anything-V2") def process(image: Image.Image): image = image.convert("RGB") result_openpose = openpose(image) result_depth = depth(image) if not isinstance(result_openpose, Image.Image): result_openpose = Image.fromarray(result_openpose) if not isinstance(result_depth, Image.Image): result_depth = Image.fromarray(result_depth) return result_openpose, result_depth demo = gr.Interface( fn=process, inputs=gr.Image(type="pil", label="Upload an image"), outputs=[ gr.Image(type="pil", label="OpenPose Result"), gr.Image(type="pil", label="Depth Result"), ], title="ControlNet Aux Demo", description="Upload an image and run both OpenPose and Depth Anything." ) if __name__ == "__main__": demo.launch()