diff --git a/invokeai/app/invocations/baseinvocation.py b/invokeai/app/invocations/baseinvocation.py
index be21369050..cbf5d1bfae 100644
--- a/invokeai/app/invocations/baseinvocation.py
+++ b/invokeai/app/invocations/baseinvocation.py
@@ -170,6 +170,7 @@ class _InputField(BaseModel):
     ui_hidden: bool
     ui_type: Optional[UIType]
     ui_component: Optional[UIComponent]
+    ui_order: Optional[int]
 
 
 class _OutputField(BaseModel):
@@ -182,6 +183,7 @@ class _OutputField(BaseModel):
 
     ui_hidden: bool
     ui_type: Optional[UIType]
+    ui_order: Optional[int]
 
 
 def InputField(
@@ -215,6 +217,7 @@ def InputField(
     ui_type: Optional[UIType] = None,
     ui_component: Optional[UIComponent] = None,
     ui_hidden: bool = False,
+    ui_order: Optional[int] = None,
     **kwargs: Any,
 ) -> Any:
     """
@@ -273,6 +276,7 @@ def InputField(
         ui_type=ui_type,
         ui_component=ui_component,
         ui_hidden=ui_hidden,
+        ui_order=ui_order,
         **kwargs,
     )
 
@@ -306,6 +310,7 @@ def OutputField(
     repr: bool = True,
     ui_type: Optional[UIType] = None,
     ui_hidden: bool = False,
+    ui_order: Optional[int] = None,
     **kwargs: Any,
 ) -> Any:
     """
@@ -352,6 +357,7 @@ def OutputField(
         repr=repr,
         ui_type=ui_type,
         ui_hidden=ui_hidden,
+        ui_order=ui_order,
         **kwargs,
     )
 
@@ -380,7 +386,7 @@ class BaseInvocationOutput(BaseModel):
     """Base class for all invocation outputs"""
 
     # All outputs must include a type name like this:
-    # type: Literal['your_output_name']
+    # type: Literal['your_output_name'] # noqa f821
 
     @classmethod
     def get_all_subclasses_tuple(cls):
@@ -421,7 +427,7 @@ class BaseInvocation(ABC, BaseModel):
     """
 
     # All invocations must include a type name like this:
-    # type: Literal['your_output_name']
+    # type: Literal['your_output_name'] # noqa f821
 
     @classmethod
     def get_all_subclasses(cls):
diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py
index ba7f9e754f..314301663b 100644
--- a/invokeai/app/invocations/latent.py
+++ b/invokeai/app/invocations/latent.py
@@ -107,12 +107,12 @@ class DenoiseLatentsInvocation(BaseInvocation):
 
     # Inputs
     positive_conditioning: ConditioningField = InputField(
-        description=FieldDescriptions.positive_cond, input=Input.Connection
+        description=FieldDescriptions.positive_cond, input=Input.Connection, ui_order=0
     )
     negative_conditioning: ConditioningField = InputField(
-        description=FieldDescriptions.negative_cond, input=Input.Connection
+        description=FieldDescriptions.negative_cond, input=Input.Connection, ui_order=1
     )
-    noise: Optional[LatentsField] = InputField(description=FieldDescriptions.noise, input=Input.Connection)
+    noise: Optional[LatentsField] = InputField(description=FieldDescriptions.noise, input=Input.Connection, ui_order=3)
     steps: int = InputField(default=10, gt=0, description=FieldDescriptions.steps)
     cfg_scale: Union[float, List[float]] = InputField(
         default=7.5, ge=1, description=FieldDescriptions.cfg_scale, ui_type=UIType.Float, title="CFG Scale"
@@ -122,11 +122,13 @@ class DenoiseLatentsInvocation(BaseInvocation):
     scheduler: SAMPLER_NAME_VALUES = InputField(
         default="euler", description=FieldDescriptions.scheduler, ui_type=UIType.Scheduler
     )
-    unet: UNetField = InputField(description=FieldDescriptions.unet, input=Input.Connection, title="UNet")
+    unet: UNetField = InputField(description=FieldDescriptions.unet, input=Input.Connection, title="UNet", ui_order=2)
     control: Union[ControlField, list[ControlField]] = InputField(
-        default=None, description=FieldDescriptions.control, input=Input.Connection
+        default=None, description=FieldDescriptions.control, input=Input.Connection, ui_order=5
+    )
+    latents: Optional[LatentsField] = InputField(
+        description=FieldDescriptions.latents, input=Input.Connection, ui_order=4
     )
-    latents: Optional[LatentsField] = InputField(description=FieldDescriptions.latents, input=Input.Connection)
     mask: Optional[ImageField] = InputField(
         default=None,
         description=FieldDescriptions.mask,
diff --git a/invokeai/frontend/web/src/services/api/schema.d.ts b/invokeai/frontend/web/src/services/api/schema.d.ts
index e2615a391e..1e03f92190 100644
--- a/invokeai/frontend/web/src/services/api/schema.d.ts
+++ b/invokeai/frontend/web/src/services/api/schema.d.ts
@@ -6215,6 +6215,8 @@ export type components = {
       ui_hidden: boolean;
       ui_type?: components["schemas"]["UIType"];
       ui_component?: components["schemas"]["UIComponent"];
+      /** Ui Order */
+      ui_order?: number;
     };
     /**
      * _OutputField
@@ -6227,6 +6229,8 @@ export type components = {
       /** Ui Hidden */
       ui_hidden: boolean;
       ui_type?: components["schemas"]["UIType"];
+      /** Ui Order */
+      ui_order?: number;
     };
     /**
      * StableDiffusion1ModelFormat
@@ -6234,12 +6238,6 @@ export type components = {
      * @enum {string}
      */
     StableDiffusion1ModelFormat: "checkpoint" | "diffusers";
-    /**
-     * StableDiffusionOnnxModelFormat
-     * @description An enumeration.
-     * @enum {string}
-     */
-    StableDiffusionOnnxModelFormat: "olive" | "onnx";
     /**
      * ControlNetModelFormat
      * @description An enumeration.
@@ -6258,6 +6256,12 @@ export type components = {
      * @enum {string}
      */
     StableDiffusion2ModelFormat: "checkpoint" | "diffusers";
+    /**
+     * StableDiffusionOnnxModelFormat
+     * @description An enumeration.
+     * @enum {string}
+     */
+    StableDiffusionOnnxModelFormat: "olive" | "onnx";
   };
   responses: never;
   parameters: never;