refactor: rebrand image nodes to Seed

- Update class names to SeedreamTextToImageNode and SeedEditImageToImageNode
- Change category to Seed/ImageGeneration
- Rename utility classes to SeedResultProcessor and SeedImageApiHandler
- Update all error messages and display names for consistent Seed branding
This commit is contained in:
pixelworld AI
2025-09-07 09:01:27 -05:00
parent 37c0c50ec0
commit fd769fdfd8
+33 -33
View File
@@ -6,12 +6,12 @@ from PIL import Image
from .byteplus_utils import BytePlusConfig, BytePlusImageUtils
class BytePlusResultProcessor:
"""Utility functions for processing BytePlus image generation results."""
class SeedResultProcessor:
"""Utility functions for processing Seed image generation results."""
@staticmethod
def process_image_result(result):
"""Process BytePlus image generation result and return tensor."""
"""Process Seed image generation result and return tensor."""
try:
images = []
# BytePlus API returns data array with url field
@@ -29,8 +29,8 @@ class BytePlusResultProcessor:
img_tensor = torch.from_numpy(stacked_images)
return (img_tensor,)
except Exception as e:
print(f"Error processing BytePlus image result: {str(e)}")
return BytePlusResultProcessor.create_blank_image()
print(f"Error processing Seed image result: {str(e)}")
return SeedResultProcessor.create_blank_image()
@staticmethod
def create_blank_image():
@@ -41,12 +41,12 @@ class BytePlusResultProcessor:
return (img_tensor,)
class BytePlusImageApiHandler:
"""Utility functions for BytePlus image API interactions."""
class SeedImageApiHandler:
"""Utility functions for Seed image API interactions."""
@staticmethod
def generate_image(model, arguments):
"""Generate image using BytePlus API."""
"""Generate image using Seed API."""
config = BytePlusConfig()
headers = {
@@ -59,7 +59,7 @@ class BytePlusImageApiHandler:
**arguments
}
print(f"Making BytePlus image request to: {config.get_base_url()}/images/generations")
print(f"Making Seed image request to: {config.get_base_url()}/images/generations")
print(f"Model: {model}")
print(f"Requested batch size (n): {payload.get('n', 1)}")
print(f"Payload: {payload}")
@@ -74,25 +74,25 @@ class BytePlusImageApiHandler:
if response.status_code == 200:
result = response.json()
print(f"BytePlus image generation successful: {result}")
print(f"Seed image generation successful: {result}")
return result
else:
print(f"BytePlus image generation error: {response.status_code} - {response.text}")
print(f"Seed image generation error: {response.status_code} - {response.text}")
raise Exception(f"API request failed: {response.status_code} - {response.text}")
except Exception as e:
print(f"Error in BytePlus image generation: {str(e)}")
print(f"Error in Seed image generation: {str(e)}")
raise e
@staticmethod
def handle_image_generation_error(model_name, error):
"""Handle image generation errors consistently."""
print(f"Error generating image with {model_name}: {str(error)}")
return BytePlusResultProcessor.create_blank_image()
return SeedResultProcessor.create_blank_image()
class BytePlusSeedreamTextToImageNode:
"""BytePlus Seedream Text-to-Image Generation Node"""
class SeedreamTextToImageNode:
"""Seedream Text-to-Image Generation Node"""
@classmethod
def INPUT_TYPES(cls):
@@ -109,7 +109,7 @@ class BytePlusSeedreamTextToImageNode:
RETURN_TYPES = ("IMAGE",)
FUNCTION = "generate_image"
CATEGORY = "BytePlus/ImageGeneration"
CATEGORY = "Seed/ImageGeneration"
def generate_image(self, prompt, size, seed=-1):
try:
@@ -125,21 +125,21 @@ class BytePlusSeedreamTextToImageNode:
if seed != -1:
arguments["seed"] = seed
result = BytePlusImageApiHandler.generate_image(
result = SeedImageApiHandler.generate_image(
"seedream-3-0-t2i-250415",
arguments
)
return BytePlusResultProcessor.process_image_result(result)
return SeedResultProcessor.process_image_result(result)
except Exception as e:
return BytePlusImageApiHandler.handle_image_generation_error(
"BytePlus Seedream Text-to-Image", str(e)
return SeedImageApiHandler.handle_image_generation_error(
"Seedream Text-to-Image", str(e)
)
class BytePlusSeedEditImageToImageNode:
"""BytePlus SeedEdit Image-to-Image Generation Node"""
class SeedEditImageToImageNode:
"""SeedEdit Image-to-Image Generation Node"""
@classmethod
def INPUT_TYPES(cls):
@@ -158,15 +158,15 @@ class BytePlusSeedEditImageToImageNode:
RETURN_TYPES = ("IMAGE",)
FUNCTION = "generate_image"
CATEGORY = "BytePlus/ImageGeneration"
CATEGORY = "Seed/ImageGeneration"
def generate_image(self, prompt, image, size, seed=-1, guidance_scale=5.5):
try:
# Convert image to base64
image_base64 = BytePlusImageUtils.image_to_base64(image)
if not image_base64:
return BytePlusImageApiHandler.handle_image_generation_error(
"BytePlus SeedEdit Image-to-Image", "Failed to convert image to base64"
return SeedImageApiHandler.handle_image_generation_error(
"SeedEdit Image-to-Image", "Failed to convert image to base64"
)
arguments = {
@@ -183,27 +183,27 @@ class BytePlusSeedEditImageToImageNode:
if seed != -1:
arguments["seed"] = seed
result = BytePlusImageApiHandler.generate_image(
result = SeedImageApiHandler.generate_image(
"seededit-3-0-i2i-250628",
arguments
)
return BytePlusResultProcessor.process_image_result(result)
return SeedResultProcessor.process_image_result(result)
except Exception as e:
return BytePlusImageApiHandler.handle_image_generation_error(
"BytePlus SeedEdit Image-to-Image", str(e)
return SeedImageApiHandler.handle_image_generation_error(
"SeedEdit Image-to-Image", str(e)
)
# Node class mappings
NODE_CLASS_MAPPINGS = {
"BytePlusSeedreamTextToImage": BytePlusSeedreamTextToImageNode,
"BytePlusSeedEditImageToImage": BytePlusSeedEditImageToImageNode,
"SeedreamTextToImage": SeedreamTextToImageNode,
"SeedEditImageToImage": SeedEditImageToImageNode,
}
# Node display name mappings
NODE_DISPLAY_NAME_MAPPINGS = {
"BytePlusSeedreamTextToImage": "Seedream Text-to-Image",
"BytePlusSeedEditImageToImage": "SeedEdit Image-to-Image",
"SeedreamTextToImage": "Seedream Text-to-Image",
"SeedEditImageToImage": "SeedEdit Image-to-Image",
}