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