mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2026-09-06 17:17:06 +08:00
parent
dec4dd9858
commit
e710a19f9b
@ -3,6 +3,7 @@ from inspect import cleandoc
|
|||||||
from PIL import Image
|
from PIL import Image
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import io
|
import io
|
||||||
|
import torch
|
||||||
from comfy_api_nodes.apis import (
|
from comfy_api_nodes.apis import (
|
||||||
IdeogramGenerateRequest,
|
IdeogramGenerateRequest,
|
||||||
IdeogramGenerateResponse,
|
IdeogramGenerateResponse,
|
||||||
@ -209,14 +210,26 @@ V3_RESOLUTIONS= [
|
|||||||
"1536x640"
|
"1536x640"
|
||||||
]
|
]
|
||||||
|
|
||||||
def download_and_process_image(image_url):
|
def download_and_process_images(image_urls):
|
||||||
"""Helper function to download and process image from URL"""
|
"""Helper function to download and process multiple images from URLs"""
|
||||||
|
|
||||||
# Using functions from apinode_utils.py to handle downloading and processing
|
# Initialize list to store image tensors
|
||||||
image_bytesio = download_url_to_bytesio(image_url) # Download image content to BytesIO
|
image_tensors = []
|
||||||
img_tensor = bytesio_to_image_tensor(image_bytesio, mode="RGB") # Convert to torch.Tensor with RGB mode
|
|
||||||
|
for image_url in image_urls:
|
||||||
|
# Using functions from apinode_utils.py to handle downloading and processing
|
||||||
|
image_bytesio = download_url_to_bytesio(image_url) # Download image content to BytesIO
|
||||||
|
img_tensor = bytesio_to_image_tensor(image_bytesio, mode="RGB") # Convert to torch.Tensor with RGB mode
|
||||||
|
image_tensors.append(img_tensor)
|
||||||
|
|
||||||
|
# Stack tensors to match (N, width, height, channels)
|
||||||
|
if image_tensors:
|
||||||
|
stacked_tensors = torch.cat(image_tensors, dim=0)
|
||||||
|
else:
|
||||||
|
raise Exception("No valid images were processed")
|
||||||
|
|
||||||
|
return stacked_tensors
|
||||||
|
|
||||||
return img_tensor
|
|
||||||
|
|
||||||
class IdeogramV1(ComfyNodeABC):
|
class IdeogramV1(ComfyNodeABC):
|
||||||
"""
|
"""
|
||||||
@ -340,12 +353,13 @@ class IdeogramV1(ComfyNodeABC):
|
|||||||
|
|
||||||
if not response.data or len(response.data) == 0:
|
if not response.data or len(response.data) == 0:
|
||||||
raise Exception("No images were generated in the response")
|
raise Exception("No images were generated in the response")
|
||||||
image_url = response.data[0].url
|
|
||||||
|
|
||||||
if not image_url:
|
image_urls = [image_data.url for image_data in response.data if image_data.url]
|
||||||
raise Exception("No image URL was generated in the response")
|
|
||||||
|
|
||||||
return (download_and_process_image(image_url),)
|
if not image_urls:
|
||||||
|
raise Exception("No image URLs were generated in the response")
|
||||||
|
|
||||||
|
return (download_and_process_images(image_urls),)
|
||||||
|
|
||||||
|
|
||||||
class IdeogramV2(ComfyNodeABC):
|
class IdeogramV2(ComfyNodeABC):
|
||||||
@ -511,12 +525,13 @@ class IdeogramV2(ComfyNodeABC):
|
|||||||
|
|
||||||
if not response.data or len(response.data) == 0:
|
if not response.data or len(response.data) == 0:
|
||||||
raise Exception("No images were generated in the response")
|
raise Exception("No images were generated in the response")
|
||||||
image_url = response.data[0].url
|
|
||||||
|
|
||||||
if not image_url:
|
image_urls = [image_data.url for image_data in response.data if image_data.url]
|
||||||
raise Exception("No image URL was generated in the response")
|
|
||||||
|
|
||||||
return (download_and_process_image(image_url),)
|
if not image_urls:
|
||||||
|
raise Exception("No image URLs were generated in the response")
|
||||||
|
|
||||||
|
return (download_and_process_images(image_urls),)
|
||||||
|
|
||||||
class IdeogramV3(ComfyNodeABC):
|
class IdeogramV3(ComfyNodeABC):
|
||||||
"""
|
"""
|
||||||
@ -734,12 +749,14 @@ class IdeogramV3(ComfyNodeABC):
|
|||||||
|
|
||||||
if not response.data or len(response.data) == 0:
|
if not response.data or len(response.data) == 0:
|
||||||
raise Exception("No images were generated in the response")
|
raise Exception("No images were generated in the response")
|
||||||
image_url = response.data[0].url
|
|
||||||
|
|
||||||
if not image_url:
|
image_urls = [image_data.url for image_data in response.data if image_data.url]
|
||||||
raise Exception("No image URL was generated in the response")
|
|
||||||
|
if not image_urls:
|
||||||
|
raise Exception("No image URLs were generated in the response")
|
||||||
|
|
||||||
|
return (download_and_process_images(image_urls),)
|
||||||
|
|
||||||
return (download_and_process_image(image_url),)
|
|
||||||
|
|
||||||
NODE_CLASS_MAPPINGS = {
|
NODE_CLASS_MAPPINGS = {
|
||||||
"IdeogramV1": IdeogramV1,
|
"IdeogramV1": IdeogramV1,
|
||||||
@ -752,3 +769,4 @@ NODE_DISPLAY_NAME_MAPPINGS = {
|
|||||||
"IdeogramV2": "Ideogram V2",
|
"IdeogramV2": "Ideogram V2",
|
||||||
"IdeogramV3": "Ideogram V3",
|
"IdeogramV3": "Ideogram V3",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user