code: def create_ui(self):
      with gr.Row():
          with gr.Column():
              select_model = gr.Dropdown(
                  label="Choose a model",
                  elem_id="t2i_retri_models",
                  elem_classes="select_model",
                  choices=self.model_list,
                  value=self.model_list[0],
              )
          with gr.Column():
              prototype = gr.File(
                  file_count="multiple", file_types=["image"]
              )
              text_input = gr.Textbox(
                  label="Query",
                  elem_classes="input_text",
                  interactive=True,
              )
              retri_output = gr.Image(
                  label="Result",
                  source="upload",
                  interactive=False,
                  elem_classes="result",
              )
  
              run_button = gr.Button(
                  "Run",
                  elem_classes="run_button",
              )
              run_button.click(
                  self.inference,
                  inputs=[select_model, prototype, text_input],
                  outputs=retri_output,
              )
  
imports: import gradio
  import torch
  from mmengine.logging import MMLogger
  from mmdet.apis import DetInferencer
  from projects.XDecoder.xdecoder.inference import ImageCaptionInferencer, RefImageCaptionInferencer, TextToImageRegionRetrievalInferencer
label_desc: Use image node_id 2 for calling the TextToImageRetrievalTab obj's underlying member method code with example usage: obj.create_ui() without return types