fix bug
This commit is contained in:
@@ -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("添加了场景参考图")
|
||||
|
||||
Reference in New Issue
Block a user