push
This commit is contained in:
+29
-15
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user