"controlnet_input_image": [img], "controlnet_module": 'openpose', "controlnet_model": 'control_sd15_openpose [fef5e48e]', This is how json objects are formated and those that are necessary. My setup works fine this way with depth, pose and scribble. Img is a base64 string for the image that goes into the ControlNet UI on the SD WebUI. EDIT: control img can be added but procrastinating on it. If interested in doing so, just need to encode the img in the second index of the output that is in numpy array format. Good. Small advice: Move API stuff to another file, like api.py Maybe we should add some examples in the readme.