We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
What should `cog predict` do if you don't pass an input name?
The syntax of `cog predict` is this:

    cog predict -i image=@image.jpg

But you can also do this:

    cog predict -i @image.jpg

Which implicitly means an input name of `input`. This is a neat short hand but a bit weird for a few reasons:

- `input` is a Python built-in, so we should really be encouraging using that as a variable name.
- It is a magic name.
- For a sufficiently complex model, you probably don't want to call it `input`.

What could we do that is better here? Maybe if you don't pass a name, it defaults to the _first_ input defined, rather than a magic name? This is vaguely backwards compatible, which is neat.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `pkg/cli/init-templates/predict.py`
Content:
```
1 # Prediction interface for Cog ⚙️
2 # https://github.com/replicate/cog/blob/main/docs/python.md
3 
4 from cog import BasePredictor, Input, Path
5 
6 
7 class Predictor(BasePredictor):
8     def setup(self):
9         """Load the model into memory to make running multiple predictions efficient"""
10         # self.model = torch.load("./weights.pth")
11 
12     def predict(
13         self,
14         input: Path = Input(description="Grayscale input image"),
15         scale: float = Input(
16             description="Factor to scale image by", ge=0, le=10, default=1.5
17         ),
18     ) -> Path:
19         """Run a single prediction on the model"""
20         # processed_input = preprocess(input)
21         # output = self.model(processed_input, scale)
22         # return postprocess(output)
23
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/pkg/cli/init-templates/predict.py b/pkg/cli/init-templates/predict.py
--- a/pkg/cli/init-templates/predict.py
+++ b/pkg/cli/init-templates/predict.py
@@ -11,12 +11,12 @@
 
     def predict(
         self,
-        input: Path = Input(description="Grayscale input image"),
+        image: Path = Input(description="Grayscale input image"),
         scale: float = Input(
             description="Factor to scale image by", ge=0, le=10, default=1.5
         ),
     ) -> Path:
         """Run a single prediction on the model"""
-        # processed_input = preprocess(input)
-        # output = self.model(processed_input, scale)
+        # processed_input = preprocess(image)
+        # output = self.model(processed_image, scale)
         # return postprocess(output)

{"golden_diff": "diff --git a/pkg/cli/init-templates/predict.py b/pkg/cli/init-templates/predict.py\n--- a/pkg/cli/init-templates/predict.py\n+++ b/pkg/cli/init-templates/predict.py\n@@ -11,12 +11,12 @@\n \n     def predict(\n         self,\n-        input: Path = Input(description=\"Grayscale input image\"),\n+        image: Path = Input(description=\"Grayscale input image\"),\n         scale: float = Input(\n             description=\"Factor to scale image by\", ge=0, le=10, default=1.5\n         ),\n     ) -> Path:\n         \"\"\"Run a single prediction on the model\"\"\"\n-        # processed_input = preprocess(input)\n-        # output = self.model(processed_input, scale)\n+        # processed_input = preprocess(image)\n+        # output = self.model(processed_image, scale)\n         # return postprocess(output)\n", "issue": "What should `cog predict` do if you don't pass an input name?\nThe syntax of `cog predict` is this:\r\n\r\n    cog predict -i image=@image.jpg\r\n\r\nBut you can also do this:\r\n\r\n    cog predict -i @image.jpg\r\n\r\nWhich implicitly means an input name of `input`. This is a neat short hand but a bit weird for a few reasons:\r\n\r\n- `input` is a Python built-in, so we should really be encouraging using that as a variable name.\r\n- It is a magic name.\r\n- For a sufficiently complex model, you probably don't want to call it `input`.\r\n\r\nWhat could we do that is better here? Maybe if you don't pass a name, it defaults to the _first_ input defined, rather than a magic name? This is vaguely backwards compatible, which is neat.\n", "before_files": [{"content": "# Prediction interface for Cog \u2699\ufe0f\n# https://github.com/replicate/cog/blob/main/docs/python.md\n\nfrom cog import BasePredictor, Input, Path\n\n\nclass Predictor(BasePredictor):\n    def setup(self):\n        \"\"\"Load the model into memory to make running multiple predictions efficient\"\"\"\n        # self.model = torch.load(\"./weights.pth\")\n\n    def predict(\n        self,\n        input: Path = Input(description=\"Grayscale input image\"),\n        scale: float = Input(\n            description=\"Factor to scale image by\", ge=0, le=10, default=1.5\n        ),\n    ) -> Path:\n        \"\"\"Run a single prediction on the model\"\"\"\n        # processed_input = preprocess(input)\n        # output = self.model(processed_input, scale)\n        # return postprocess(output)\n", "path": "pkg/cli/init-templates/predict.py"}], "after_files": [{"content": "# Prediction interface for Cog \u2699\ufe0f\n# https://github.com/replicate/cog/blob/main/docs/python.md\n\nfrom cog import BasePredictor, Input, Path\n\n\nclass Predictor(BasePredictor):\n    def setup(self):\n        \"\"\"Load the model into memory to make running multiple predictions efficient\"\"\"\n        # self.model = torch.load(\"./weights.pth\")\n\n    def predict(\n        self,\n        image: Path = Input(description=\"Grayscale input image\"),\n        scale: float = Input(\n            description=\"Factor to scale image by\", ge=0, le=10, default=1.5\n        ),\n    ) -> Path:\n        \"\"\"Run a single prediction on the model\"\"\"\n        # processed_input = preprocess(image)\n        # output = self.model(processed_image, scale)\n        # return postprocess(output)\n", "path": "pkg/cli/init-templates/predict.py"}]}