This commit is contained in:
JueMing
2025-08-21 22:31:10 +08:00
parent 71573ca5a6
commit a65baab6f7
+21 -1
View File
@@ -113,26 +113,42 @@ class KLingAIMultiImage2Image:
def image_to_base64(self, image):
"""将ComfyUI图像转换为base64字符串(与image_generation.py保持一致)"""
if image is None:
print("图像输入为None")
return None
try:
print(f"输入图像类型: {type(image)}")
if hasattr(image, 'shape'):
print(f"输入图像形状: {image.shape}")
# 处理tensor格式的图像
if isinstance(image, torch.Tensor):
pil_image = self.tensor_to_pil(image)
if pil_image is None:
print("tensor_to_pil返回None")
return None
print(f"PIL图像尺寸: {pil_image.size}")
print(f"PIL图像模式: {pil_image.mode}")
else:
# 原来的处理方法 (已不再使用,保留以防万一)
img = Image.fromarray((image[0] * 255).astype('uint8'), 'RGB')
pil_image = img
print(f"备用方法PIL图像尺寸: {pil_image.size}")
# 转换为base64
buffered = io.BytesIO()
pil_image.save(buffered, format="JPEG")
return base64.b64encode(buffered.getvalue()).decode("utf-8")
image_bytes = buffered.getvalue()
print(f"JPEG图像字节大小: {len(image_bytes)}")
base64_result = base64.b64encode(image_bytes).decode("utf-8")
print(f"Base64结果长度: {len(base64_result)}")
return base64_result
except Exception as e:
print(f"图像转换base64错误: {str(e)}")
import traceback
traceback.print_exc()
return None
def download_and_convert_image(self, image_url, filename_prefix, output_dir, index=0):
@@ -193,6 +209,8 @@ class KLingAIMultiImage2Image:
# 转换主体图片1为base64
if subject_image1 is not None:
image1_base64 = self.image_to_base64(subject_image1)
print(f"主体图片1 Base64转换结果长度: {len(image1_base64) if image1_base64 else 0}")
print(f"主体图片1 Base64前50字符: {image1_base64[:50] if image1_base64 else 'None'}")
if not image1_base64:
raise ValueError("主体图片1转换为base64失败")
subject_image_list.append({"subject_image": image1_base64})
@@ -245,6 +263,8 @@ class KLingAIMultiImage2Image:
# 处理场景参考图
if scene_image is not None:
scene_base64 = self.image_to_base64(scene_image)
print(f"场景图片 Base64转换结果长度: {len(scene_base64) if scene_base64 else 0}")
print(f"场景图片 Base64前50字符: {scene_base64[:50] if scene_base64 else 'None'}")
if scene_base64:
payload["scene_image"] = scene_base64 # 使用正确的scene_image参数名
print("添加了场景参考图")