更新节点
This commit is contained in:
@@ -88,9 +88,10 @@ class PDGeminiImageGenAPIKey:
|
||||
}),
|
||||
},
|
||||
"optional": {
|
||||
"image_ref": ("IMAGE", {
|
||||
"images": ("IMAGE", {
|
||||
"tooltip": "Reference image(s) for image-to-image generation"
|
||||
}),
|
||||
"files": ("GEMINI_INPUT_FILES", ),
|
||||
"system_prompt": ("STRING", {
|
||||
"multiline": True,
|
||||
"default": GEMINI_IMAGE_SYS_PROMPT,
|
||||
@@ -107,7 +108,7 @@ class PDGeminiImageGenAPIKey:
|
||||
FUNCTION = "generate_image"
|
||||
CATEGORY = "PD_Tools/Image_Generation"
|
||||
|
||||
def generate_image(self, api_key, prompt, model, aspect_ratio, response_modalities, seed, unique_id, image_ref=None, system_prompt=""):
|
||||
def generate_image(self, api_key, prompt, model, aspect_ratio, response_modalities, seed, unique_id, images=None, files=None, system_prompt=""):
|
||||
"""生成图片"""
|
||||
|
||||
# 验证 API Key
|
||||
@@ -129,9 +130,9 @@ class PDGeminiImageGenAPIKey:
|
||||
parts.append({"text": prompt})
|
||||
|
||||
# 添加参考图片(如果有)
|
||||
if image_ref is not None:
|
||||
for i in range(image_ref.shape[0]):
|
||||
b64_str = tensor_to_base64(image_ref[i])
|
||||
if images is not None:
|
||||
for i in range(images.shape[0]):
|
||||
b64_str = tensor_to_base64(images[i])
|
||||
parts.append({
|
||||
"inlineData": {
|
||||
"mimeType": "image/png",
|
||||
@@ -140,6 +141,15 @@ class PDGeminiImageGenAPIKey:
|
||||
})
|
||||
print(f"[GEMINI_APIKEY] Added reference image {i+1}")
|
||||
|
||||
# Files 输入处理
|
||||
if files:
|
||||
for file_part in files:
|
||||
if hasattr(file_part, "model_dump"):
|
||||
parts.append(file_part.model_dump(exclude_none=True))
|
||||
else:
|
||||
parts.append(file_part)
|
||||
print(f"[GEMINI_APIKEY] Added file part")
|
||||
|
||||
# 生成配置
|
||||
generation_config = {
|
||||
"responseModalities": ["IMAGE"] if response_modalities == "IMAGE" else ["TEXT", "IMAGE"]
|
||||
@@ -280,5 +290,5 @@ NODE_CLASS_MAPPINGS = {
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"PDGeminiImageGenAPIKey": "PD: Gemini Image (apikey)"
|
||||
"PDGeminiImageGenAPIKey": "PD: Gemini Image (ComfyUI Key)"
|
||||
}
|
||||
|
||||
@@ -87,9 +87,10 @@ class PDGeminiImageGenAuthToken:
|
||||
}),
|
||||
},
|
||||
"optional": {
|
||||
"image_ref": ("IMAGE", {
|
||||
"images": ("IMAGE", {
|
||||
"tooltip": "Reference image(s) for image-to-image generation"
|
||||
}),
|
||||
"files": ("GEMINI_INPUT_FILES", ),
|
||||
"system_prompt": ("STRING", {
|
||||
"multiline": True,
|
||||
"default": GEMINI_IMAGE_SYS_PROMPT,
|
||||
@@ -106,7 +107,7 @@ class PDGeminiImageGenAuthToken:
|
||||
FUNCTION = "generate_image"
|
||||
CATEGORY = "PD_Tools/Image_Generation"
|
||||
|
||||
def generate_image(self, auth_token, prompt, model, aspect_ratio, resolution, seed, unique_id, image_ref=None, system_prompt=""):
|
||||
def generate_image(self, auth_token, prompt, model, aspect_ratio, resolution, seed, unique_id, images=None, files=None, system_prompt=""):
|
||||
"""生成图片"""
|
||||
|
||||
print(f"[GEMINI_AUTHTOKEN] ========== 开始执行 ==========")
|
||||
@@ -138,9 +139,9 @@ class PDGeminiImageGenAuthToken:
|
||||
parts.append({"text": prompt})
|
||||
|
||||
# 添加参考图片(如果有)
|
||||
if image_ref is not None:
|
||||
for i in range(image_ref.shape[0]):
|
||||
b64_str = tensor_to_base64(image_ref[i])
|
||||
if images is not None:
|
||||
for i in range(images.shape[0]):
|
||||
b64_str = tensor_to_base64(images[i])
|
||||
parts.append({
|
||||
"inlineData": {
|
||||
"mimeType": "image/png",
|
||||
@@ -149,6 +150,15 @@ class PDGeminiImageGenAuthToken:
|
||||
})
|
||||
print(f"[GEMINI_AUTHTOKEN] Added reference image {i+1}")
|
||||
|
||||
# Files 输入处理
|
||||
if files:
|
||||
for file_part in files:
|
||||
if hasattr(file_part, "model_dump"):
|
||||
parts.append(file_part.model_dump(exclude_none=True))
|
||||
else:
|
||||
parts.append(file_part)
|
||||
print(f"[GEMINI_AUTHTOKEN] Added file part")
|
||||
|
||||
# 生成配置
|
||||
generation_config = {
|
||||
"responseModalities": ["IMAGE"]
|
||||
@@ -277,5 +287,5 @@ NODE_CLASS_MAPPINGS = {
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"PDGeminiImageGenAuthToken": "PD: Gemini Image (comfyui_AuthToken)"
|
||||
"PDGeminiImageGenAuthToken": "PD: Gemini Image (ComfyUI AuthToken)"
|
||||
}
|
||||
|
||||
@@ -93,6 +93,7 @@ class PDGeminiProImageGenAPIKey:
|
||||
"images": ("IMAGE", {
|
||||
"tooltip": "Optional reference image(s) (up to 14)"
|
||||
}),
|
||||
"files": ("GEMINI_INPUT_FILES", ),
|
||||
"system_prompt": ("STRING", {
|
||||
"multiline": True,
|
||||
"default": GEMINI_IMAGE_SYS_PROMPT,
|
||||
@@ -109,7 +110,7 @@ class PDGeminiProImageGenAPIKey:
|
||||
FUNCTION = "generate_image"
|
||||
CATEGORY = "PD_Tools/Image_Generation"
|
||||
|
||||
def generate_image(self, api_key, prompt, model, aspect_ratio, resolution, response_modalities, seed, unique_id, images=None, system_prompt=""):
|
||||
def generate_image(self, api_key, prompt, model, aspect_ratio, resolution, response_modalities, seed, unique_id, images=None, files=None, system_prompt=""):
|
||||
"""生成图片"""
|
||||
|
||||
# 验证 API Key
|
||||
@@ -146,6 +147,15 @@ class PDGeminiProImageGenAPIKey:
|
||||
if images.shape[0] > 14:
|
||||
print(f"[GEMINI_PRO_APIKEY] Warning: Only first 14 images will be used (provided {images.shape[0]})")
|
||||
|
||||
# Files 输入处理
|
||||
if files:
|
||||
for file_part in files:
|
||||
if hasattr(file_part, "model_dump"):
|
||||
parts.append(file_part.model_dump(exclude_none=True))
|
||||
else:
|
||||
parts.append(file_part)
|
||||
print(f"[GEMINI_PRO_APIKEY] Added file part")
|
||||
|
||||
# 生成配置
|
||||
generation_config = {
|
||||
"responseModalities": ["IMAGE"] if response_modalities == "IMAGE" else ["TEXT", "IMAGE"]
|
||||
@@ -290,5 +300,5 @@ NODE_CLASS_MAPPINGS = {
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"PDGeminiProImageGenAPIKey": "PD: Gemini Pro Image (apikey)"
|
||||
"PDGeminiProImageGenAPIKey": "PD: Gemini Pro Image (ComfyUI Key)"
|
||||
}
|
||||
|
||||
@@ -93,6 +93,7 @@ class PDGeminiProImageGenAuthToken:
|
||||
"images": ("IMAGE", {
|
||||
"tooltip": "Optional reference image(s) (up to 14)"
|
||||
}),
|
||||
"files": ("GEMINI_INPUT_FILES", ),
|
||||
"system_prompt": ("STRING", {
|
||||
"multiline": True,
|
||||
"default": GEMINI_IMAGE_SYS_PROMPT,
|
||||
@@ -109,7 +110,7 @@ class PDGeminiProImageGenAuthToken:
|
||||
FUNCTION = "generate_image"
|
||||
CATEGORY = "PD_Tools/Image_Generation"
|
||||
|
||||
def generate_image(self, auth_token, prompt, model, aspect_ratio, resolution, response_modalities, seed, unique_id, images=None, system_prompt=""):
|
||||
def generate_image(self, auth_token, prompt, model, aspect_ratio, resolution, response_modalities, seed, unique_id, images=None, files=None, system_prompt=""):
|
||||
"""生成图片"""
|
||||
|
||||
print(f"[GEMINI_PRO_AUTHTOKEN] ========== 开始执行 ==========")
|
||||
@@ -152,6 +153,15 @@ class PDGeminiProImageGenAuthToken:
|
||||
if images.shape[0] > 14:
|
||||
print(f"[GEMINI_PRO_AUTHTOKEN] Warning: Only first 14 images will be used (provided {images.shape[0]})")
|
||||
|
||||
# Files 输入处理
|
||||
if files:
|
||||
for file_part in files:
|
||||
if hasattr(file_part, "model_dump"):
|
||||
parts.append(file_part.model_dump(exclude_none=True))
|
||||
else:
|
||||
parts.append(file_part)
|
||||
print(f"[GEMINI_PRO_AUTHTOKEN] Added file part")
|
||||
|
||||
# 生成配置
|
||||
generation_config = {
|
||||
"responseModalities": ["IMAGE"] if response_modalities == "IMAGE" else ["TEXT", "IMAGE"]
|
||||
@@ -296,5 +306,5 @@ NODE_CLASS_MAPPINGS = {
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"PDGeminiProImageGenAuthToken": "PD: Gemini Pro Image (comfyui_AuthToken)"
|
||||
"PDGeminiProImageGenAuthToken": "PD: Gemini Pro Image (ComfyUI AuthToken)"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user