This commit is contained in:
科林_Cyril Pilgrim
2025-01-28 17:03:28 +08:00
parent cf67b7abce
commit f0542cfe4c
2 changed files with 59 additions and 22 deletions
+29 -15
View File
@@ -8,7 +8,7 @@ logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(
logger = logging.getLogger(__name__)
class DeepSeekImageGeneration:
"Enhanced Image Generation Node for DeepSeek Janus Pro"
"""Enhanced Image Generation Node for DeepSeek Janus Pro"""
@classmethod
def INPUT_TYPES(cls):
@@ -110,7 +110,7 @@ class DeepSeekImageGeneration:
# Prepare inputs
inputs = tokenizer(
conversations=conversation,
return_tensors='pt',
return_tensors="pt",
truncation=True,
max_length=max_length,
padding=True
@@ -122,18 +122,32 @@ class DeepSeekImageGeneration:
for k, v in inputs.items()
}
# Generate images
with torch.no_grad():
outputs = model.generate(
**batch_inputs,
do_sample=True,
temperature=temperature,
guidance_scale=guidance_scale,
num_beams=batch_size * 2,
max_length=max_length + 20,
pad_token_id=tokenizer.tokenizer.pad_token_id,
eos_token_id=tokenizer.tokenizer.eos_token_id,
)
try:
# Generate images
with torch.no_grad():
outputs = model.text_generate( # Changed from generate to text_generate
**batch_inputs,
do_sample=True,
temperature=temperature,
guidance_scale=guidance_scale,
num_beams=batch_size * 2,
max_length=max_length + 20,
pad_token_id=tokenizer.tokenizer.pad_token_id,
eos_token_id=tokenizer.tokenizer.eos_token_id,
)
except AttributeError:
# Fallback to regular generate if text_generate is not available
with torch.no_grad():
outputs = model.generate(
**batch_inputs,
do_sample=True,
temperature=temperature,
guidance_scale=guidance_scale,
num_beams=batch_size * 2,
max_length=max_length + 20,
pad_token_id=tokenizer.tokenizer.pad_token_id,
eos_token_id=tokenizer.tokenizer.eos_token_id,
)
# Decode and process images
images = model.decode_images(outputs)
@@ -171,4 +185,4 @@ NODE_CLASS_MAPPINGS = {
# Node display name mappings
NODE_DISPLAY_NAME_MAPPINGS = {
"DeepSeekImageGeneration": "DeepSeek Image Generation Pro"
}
}
+30 -7
View File
@@ -43,7 +43,7 @@ class DeepSeekImageUnderstanding:
"""
try:
# Log the image parameter
logger.info(f"Received image: {image}")
logger.info(f"Received image tensor with shape: {image.shape}")
# 图像预处理
if len(image.shape) == 4: # BCHW format
@@ -72,12 +72,35 @@ class DeepSeekImageUnderstanding:
return_tensors='pt'
).to(model.device)
# 生成响应
outputs = model.generate(
**model_inputs,
max_new_tokens=512,
do_sample=False
)
try:
# 首先尝试使用 text_generate
with torch.no_grad():
outputs = model.text_generate(
**model_inputs,
max_new_tokens=512,
do_sample=False
)
except AttributeError:
try:
# 如果 text_generate 不可用,尝试使用 chat
with torch.no_grad():
outputs = model.chat(
tokenizer,
question,
history=[],
images=[pil_image],
max_new_tokens=512,
do_sample=False
)
return (outputs,)
except AttributeError:
# 如果 chat 也不可用,使用标准 generate
with torch.no_grad():
outputs = model.generate(
**model_inputs,
max_new_tokens=512,
do_sample=False
)
# 解码响应
answer = tokenizer.decode(outputs[0], skip_special_tokens=True)