Fix flux ipadapter weights and time ranges not working
This commit is contained in:
@@ -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):
|
||||
|
||||
+4
-14
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user