Sfoglia il codice sorgente

AI解决图片base64错误

zhangdongming 3 settimane fa
parent
commit
8cf8124267
1 ha cambiato i file con 6 aggiunte e 3 eliminazioni
  1. 6 3
      Object/NovaImageTagObject.py

+ 6 - 3
Object/NovaImageTagObject.py

@@ -87,12 +87,13 @@ class NovaImageTagObject(object):
             })
         return formatted_results
 
-    def normalize_b64(self, b64_str: str) -> str:
+    @staticmethod
+    def normalize_b64(b64_str: str) -> str:
         """清理并补齐base64字符串"""
         if not b64_str:
             return ""
+        b64_str = re.sub(r"^data:image/[^;]+;base64,", "", b64_str)
         b64_str = b64_str.strip().replace("\n", "").replace(" ", "")
-        # 补齐到4的倍数
         padding = 4 - (len(b64_str) % 4)
         if padding and padding != 4:
             b64_str += "=" * padding
@@ -121,8 +122,10 @@ class NovaImageTagObject(object):
                 if not img_type or img_type.lower() not in ["jpeg", "jpg", "png", "webp"]:
                     raise ValueError(f"不支持的图片格式: {img_type}")
 
+                img_b64_str = base64.b64encode(img_bytes).decode("utf-8")
+
                 image_contents.append({
-                    "image": {"format": img_type, "source": {"bytes": img_bytes}}
+                    "image": {"format": img_type.lower(), "source": {"bytes": img_b64_str}}
                 })
                 img_bytes_list.append(img_bytes)