From 9c1806f71dd722f7c8e9a9be8f2d1a9d3ad73808 Mon Sep 17 00:00:00 2001 From: yolain Date: Sat, 23 Nov 2024 17:42:47 +0800 Subject: [PATCH] Fix flux ipadapter weights and time ranges not working --- py/ipadapter/attention_processor.py | 1 - py/ipadapter/utils.py | 18 ++++-------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/py/ipadapter/attention_processor.py b/py/ipadapter/attention_processor.py index ba68530..35fb468 100644 --- a/py/ipadapter/attention_processor.py +++ b/py/ipadapter/attention_processor.py @@ -4,7 +4,6 @@ import torch import torch.nn as nn import torch.nn.functional as F from einops import rearrange -from diffusers.models.normalization import RMSNorm class RMSNorm(nn.Module): def __init__(self, dim, eps: float, elementwise_affine: bool = True): diff --git a/py/ipadapter/utils.py b/py/ipadapter/utils.py index 805fc6c..06271c0 100644 --- a/py/ipadapter/utils.py +++ b/py/ipadapter/utils.py @@ -10,21 +10,11 @@ def FluxUpdateModules(flux_model, ip_attn_procs, image_emb, is_patched): dsb_count = len(flux_model.diffusion_model.double_blocks) ssb_count = len(flux_model.diffusion_model.single_blocks) for i in range(dsb_count): - if not is_patched: - # initial ipa models with image embeddings - flux_model.diffusion_model.double_blocks[i] = DoubleStreamBlockIPA( - flux_model.diffusion_model.double_blocks[i], ip_attn_procs[f"double_blocks.{i}"], image_emb) - else: - # replace image embeddings with new embeddings - flux_model.diffusion_model.double_blocks[i].image_emb = image_emb + flux_model.diffusion_model.double_blocks[i] = DoubleStreamBlockIPA( + flux_model.diffusion_model.double_blocks[i], ip_attn_procs[f"double_blocks.{i}"], image_emb) for i in range(ssb_count): - if not is_patched: - # initial ipa models with image embeddings - flux_model.diffusion_model.single_blocks[i] = SingleStreamBlockIPA( - flux_model.diffusion_model.single_blocks[i], ip_attn_procs[f"single_blocks.{i}"], image_emb) - else: - # replace image embeddings with new embeddings - flux_model.diffusion_model.single_blocks[i].image_emb = image_emb + flux_model.diffusion_model.single_blocks[i] = SingleStreamBlockIPA( + flux_model.diffusion_model.single_blocks[i], ip_attn_procs[f"single_blocks.{i}"], image_emb) def is_model_pathched(model):