Commit 70c2a853

YufeiG <yufei@openai.com>
2023-01-07 06:11:37
Add optional mask for dalle's edit api (#157) (#169)
* Add optional mask for dalle's edit api
1 parent a730583
Changed files (2)
openai
api_resources
openai/api_resources/image.py
@@ -156,7 +156,7 @@ class Image(APIResource):
     def _prepare_create_edit(
         cls,
         image,
-        mask,
+        mask=None,
         api_key=None,
         api_base=None,
         api_type=None,
@@ -179,14 +179,15 @@ class Image(APIResource):
         for key, value in params.items():
             files.append((key, (None, value)))
         files.append(("image", ("image", image, "application/octet-stream")))
-        files.append(("mask", ("mask", mask, "application/octet-stream")))
+        if mask is not None:
+            files.append(("mask", ("mask", mask, "application/octet-stream")))
         return requestor, url, files
 
     @classmethod
     def create_edit(
         cls,
         image,
-        mask,
+        mask=None,
         api_key=None,
         api_base=None,
         api_type=None,
@@ -215,7 +216,7 @@ class Image(APIResource):
     async def acreate_edit(
         cls,
         image,
-        mask,
+        mask=None,
         api_key=None,
         api_base=None,
         api_type=None,
openai/cli.py
@@ -240,8 +240,10 @@ class Image:
     def create_edit(cls, args):
         with open(args.image, "rb") as file_reader:
             image_reader = BufferReader(file_reader.read(), desc="Upload progress")
-        with open(args.mask, "rb") as file_reader:
-            mask_reader = BufferReader(file_reader.read(), desc="Upload progress")
+        mask_reader = None
+        if args.mask is not None:
+            with open(args.mask, "rb") as file_reader:
+                mask_reader = BufferReader(file_reader.read(), desc="Upload progress")
         resp = openai.Image.create_edit(
             image=image_reader,
             mask=mask_reader,
@@ -893,7 +895,7 @@ Mutually exclusive with `top_p`.""",
         "-M",
         "--mask",
         type=str,
-        required=True,
+        required=False,
         help="Path to a mask image. It should be the same size as the image you're editing and a RGBA PNG image. The Alpha channel acts as the mask.",
     )
     sub.set_defaults(func=Image.create_edit)