Use default scheduler when IP-Adapter disabled
DDIM scheduler was always active, causing softer output. Now only uses DDIM when ENABLE_IP_ADAPTER=True, otherwise uses model's default scheduler for best quality.
This commit is contained in:
@@ -60,7 +60,9 @@ class SDXLGenerator:
|
|||||||
try:
|
try:
|
||||||
dtype = torch.float16 if config.USE_FP16 else torch.float32
|
dtype = torch.float16 if config.USE_FP16 else torch.float32
|
||||||
|
|
||||||
# Use DDIM scheduler for IP-Adapter compatibility
|
# Only use DDIM scheduler when IP-Adapter is enabled (it requires DDIM)
|
||||||
|
# Otherwise let the model use its default scheduler for best quality
|
||||||
|
if config.ENABLE_IP_ADAPTER:
|
||||||
noise_scheduler = DDIMScheduler(
|
noise_scheduler = DDIMScheduler(
|
||||||
num_train_timesteps=1000,
|
num_train_timesteps=1000,
|
||||||
beta_start=0.00085,
|
beta_start=0.00085,
|
||||||
@@ -70,6 +72,7 @@ class SDXLGenerator:
|
|||||||
set_alpha_to_one=False,
|
set_alpha_to_one=False,
|
||||||
steps_offset=1,
|
steps_offset=1,
|
||||||
)
|
)
|
||||||
|
logger.info("Using DDIM scheduler for IP-Adapter compatibility")
|
||||||
|
|
||||||
self.pipeline = StableDiffusionXLPipeline.from_pretrained(
|
self.pipeline = StableDiffusionXLPipeline.from_pretrained(
|
||||||
config.SDXL_MODEL_ID,
|
config.SDXL_MODEL_ID,
|
||||||
@@ -79,6 +82,15 @@ class SDXLGenerator:
|
|||||||
cache_dir=str(config.MODELS_DIR),
|
cache_dir=str(config.MODELS_DIR),
|
||||||
add_watermarker=False,
|
add_watermarker=False,
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
# Use model's default scheduler for best quality
|
||||||
|
self.pipeline = StableDiffusionXLPipeline.from_pretrained(
|
||||||
|
config.SDXL_MODEL_ID,
|
||||||
|
torch_dtype=dtype,
|
||||||
|
use_safetensors=True,
|
||||||
|
cache_dir=str(config.MODELS_DIR),
|
||||||
|
add_watermarker=False,
|
||||||
|
)
|
||||||
|
|
||||||
# Move to device
|
# Move to device
|
||||||
self.pipeline = self.pipeline.to(self.device)
|
self.pipeline = self.pipeline.to(self.device)
|
||||||
|
|||||||
Reference in New Issue
Block a user