feature: support sdxl (#431)

- adds support for (SDXL)[https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0]
  - adds sliced encoding/decoding to refiners sdxl pipeline
  - doesn't support inpainting, controlnets
- monkeypatches self_attention_guidance to use sliced attention
- adds a bunch of model weight translation utilities and weightmaps
- add [opendalle 1.1](https://huggingface.co/dataautogpt3/OpenDalleV1.1)
- change default model to opendalle
- fix: better handle special characters in path inputs on command line
**todo**
- add tests
pull/433/head
Bryce Drennan 5 months ago committed by GitHub
parent fb7cff3684
commit 42a045e8e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,22 +11,27 @@
- ✅ make cli run faster again
- ✅ add tests for cli commands
- ✅ add type checker
- ✅ add interface for loading diffusers weights
- ✅ SDXL support
- sdxl inpainting
- t2i adapters
- embedding inputs
- only output the main image unless some flag is set
- allow selection of output video format
- chain multiple operations together imggen => videogen
- https://github.com/pallets/click/tree/main/examples/imagepipe
- add interface for loading diffusers weights
- https://huggingface.co/playgroundai/playground-v2-1024px-aesthetic
- make sure terminal output on windows doesn't suck
- add method to show cache size
- add method to clear model cache
- add method to clear cached items not recently used (does diffusers have one?)
- create actual documentation
- SDXL Support
#### Investigate
- textdiffusers https://jingyechen.github.io/textdiffuser2/
- Scalecrafter https://yingqinghe.github.io/scalecrafter/
- Fast diffusion with LCM Lora https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/tree/main
- 3d diffusion https://huggingface.co/stabilityai/stable-zero123

@ -191,14 +191,15 @@ def imagine(
precision
), fix_torch_nn_layer_norm(), fix_torch_group_norm():
for i, prompt in enumerate(prompts):
concrete_prompt = prompt.make_concrete_copy()
logger.info(
f"🖼 Generating {i + 1}/{num_prompts}: {prompt.prompt_description()}"
f"🖼 Generating {i + 1}/{num_prompts}: {concrete_prompt.prompt_description()}"
)
for attempt in range(unsafe_retry_count + 1):
if attempt > 0 and isinstance(prompt.seed, int):
prompt.seed += 100_000_000 + attempt
if attempt > 0 and isinstance(concrete_prompt.seed, int):
concrete_prompt.seed += 100_000_000 + attempt
result = generate_single_image(
prompt,
concrete_prompt,
debug_img_callback=debug_img_callback,
progress_img_callback=progress_img_callback,
progress_img_interval_steps=progress_img_interval_steps,

@ -1,10 +1,10 @@
"""Functions for generating refined images"""
import logging
from typing import List, Optional
from imaginairy.config import CONTROL_CONFIG_SHORTCUTS
from imaginairy.schema import ControlInput, ImaginePrompt, MaskMode, WeightedPrompt
from imaginairy.schema import ControlInput, ImaginePrompt, MaskMode
from imaginairy.utils import clear_gpu_cache
logger = logging.getLogger(__name__)
@ -96,14 +96,6 @@ def generate_single_image(
) as lc:
sd.set_tile_mode(prompt.tile_mode)
clip_text_embedding = _calc_conditioning(
positive_prompts=prompt.prompts,
negative_prompts=prompt.negative_prompt,
positive_conditioning=prompt.conditioning,
text_encoder=sd.clip_text_encoder,
)
clip_text_embedding = clip_text_embedding.to(device=sd.device, dtype=sd.dtype)
result_images: dict[str, torch.Tensor | None | Image.Image] = {}
progress_latents: list[torch.Tensor] = []
first_step = 0
@ -151,7 +143,7 @@ def generate_single_image(
max_width=prompt.width,
)
init_image_t = pillow_img_to_torch_image(init_image)
init_image_t = init_image_t.to(device=sd.device, dtype=sd.dtype)
init_image_t = init_image_t.to(device=sd.lda.device, dtype=sd.lda.dtype)
init_latent = sd.lda.encode(init_image_t)
shape = list(init_latent.shape)
@ -233,12 +225,15 @@ def generate_single_image(
log_img(comp_img_orig, "comp_image")
log_img(comp_image, "comp_image_upscaled")
comp_image_t = pillow_img_to_torch_image(comp_image)
comp_image_t = comp_image_t.to(sd.device, dtype=sd.dtype)
comp_image_t = comp_image_t.to(sd.lda.device, dtype=sd.lda.dtype)
init_latent = sd.lda.encode(comp_image_t)
compose_control_inputs: list[ControlInput] = [
ControlInput(mode="details", image=comp_image, strength=1),
]
compose_control_inputs: list[ControlInput]
if prompt.model_weights.architecture.primary_alias == "sdxl":
compose_control_inputs = []
else:
compose_control_inputs = [
ControlInput(mode="details", image=comp_image, strength=1),
]
for control_input in compose_control_inputs:
(
controlnet,
@ -255,8 +250,10 @@ def generate_single_image(
controlnets.append((controlnet, control_image_t))
for controlnet, control_image_t in controlnets:
msg = f"Injecting controlnet {controlnet.name}. setting to device: {sd.unet.device}, dtype: {sd.unet.dtype}"
print(msg)
controlnet.set_controlnet_condition(
control_image_t.to(device=sd.device, dtype=sd.dtype)
control_image_t.to(device=sd.unet.device, dtype=sd.unet.dtype)
)
controlnet.inject()
if prompt.solver_type.lower() == SolverName.DPMPP:
@ -275,6 +272,12 @@ def generate_single_image(
mask=ImageOps.invert(mask_image),
latents_size=shape[-2:],
)
sd.target_image_latents = sd.target_image_latents.to(
dtype=sd.unet.dtype, device=sd.unet.device
)
sd.mask_latents = sd.mask_latents.to(
dtype=sd.unet.dtype, device=sd.unet.device
)
if init_latent is not None:
noise_step = noise_step if noise_step is not None else first_step
@ -285,30 +288,37 @@ def generate_single_image(
x=init_latent, noise=noise, step=sd.steps[noise_step]
)
x = noised_latent
x = x.to(device=sd.device, dtype=sd.dtype)
text_conditioning_kwargs = sd.calculate_text_conditioning_kwargs(
positive_prompts=prompt.prompts,
negative_prompts=prompt.negative_prompt,
positive_conditioning_override=prompt.conditioning,
)
# if "cuda" in str(sd.lda.device):
# sd.lda.to("cpu")
for k, v in text_conditioning_kwargs.items():
text_conditioning_kwargs[k] = v.to(
device=sd.unet.device, dtype=sd.unet.dtype
)
x = noised_latent
x = x.to(device=sd.unet.device, dtype=sd.unet.dtype)
clear_gpu_cache()
# print(f"moving unet to {sd.device}")
# sd.unet.to(device=sd.device, dtype=sd.dtype)
for step in tqdm(sd.steps[first_step:], bar_format=" {l_bar}{bar}{r_bar}"):
log_latent(x, "noisy_latent")
x = sd(
x,
step=step,
clip_text_embedding=clip_text_embedding,
condition_scale=prompt.prompt_strength,
**text_conditioning_kwargs,
)
sd.unet.set_context(context="self_attention_map", value={})
clear_gpu_cache()
logger.debug("Decoding image")
if x.device != sd.lda.device:
sd.lda.to(x.device)
clear_gpu_cache()
gen_img = sd.lda.decode_latents(x)
gen_img = sd.lda.decode_latents(x.to(dtype=sd.lda.dtype))
if mask_image_orig and init_image:
result_images["pre-reconstitution"] = gen_img
@ -391,56 +401,6 @@ def generate_single_image(
return result
def _prompts_to_embeddings(prompts, text_encoder):
import torch
if not prompts:
prompts = [WeightedPrompt(text="")]
total_weight = sum(wp.weight for wp in prompts)
if str(text_encoder.device) == "cpu":
text_encoder = text_encoder.to(dtype=torch.float32)
conditioning = sum(
text_encoder(wp.text) * (wp.weight / total_weight) for wp in prompts
)
return conditioning
def _calc_conditioning(
positive_prompts: Optional[List[WeightedPrompt]],
negative_prompts: Optional[List[WeightedPrompt]],
positive_conditioning,
text_encoder,
):
import torch
from imaginairy.utils.log_utils import log_conditioning
# need to expand if doing batches
neutral_conditioning = _prompts_to_embeddings(negative_prompts, text_encoder)
log_conditioning(neutral_conditioning, "neutral conditioning")
if positive_conditioning is None:
positive_conditioning = _prompts_to_embeddings(positive_prompts, text_encoder)
log_conditioning(positive_conditioning, "positive conditioning")
clip_text_embedding = torch.cat(
tensors=(neutral_conditioning, positive_conditioning), dim=0
)
return clip_text_embedding
def clear_gpu_cache():
import gc
import torch
gc.collect()
if torch.cuda.is_available():
torch.cuda.empty_cache()
def prep_control_input(
control_input: ControlInput, sd, init_image_t, fit_width, fit_height
):
@ -521,7 +481,9 @@ def prep_control_input(
target=sd.unet,
weights_location=control_config.weights_location,
)
controlnet.set_scale(control_input.strength)
control_image_t = control_image_t.to(device=sd.unet.device, dtype=sd.unet.dtype)
return controlnet, control_image_t, control_image_disp

@ -101,10 +101,10 @@ def _imagine_cmd(
from imaginairy.utils import glob_expand_paths
num_prexpaned_init_images = len(init_images)
num_prexpanded_init_images = len(init_images)
init_images = glob_expand_paths(init_images)
if len(init_images) < num_prexpaned_init_images:
if len(init_images) < num_prexpanded_init_images:
msg = f"Could not find any images matching the glob pattern(s) {init_image}. Are you sure the file(s) exists?"
raise ValueError(msg)

@ -4,7 +4,6 @@ from dataclasses import dataclass
from typing import Any, List
DEFAULT_MODEL_WEIGHTS = "sd15"
DEFAULT_MODEL_ARCHITECTURE = "sd15"
DEFAULT_SOLVER = "ddim"
DEFAULT_NEGATIVE_PROMPT = (
@ -25,6 +24,11 @@ class ModelArchitecture:
defaults: dict[str, Any]
config_path: str | None = None
@property
def primary_alias(self):
if self.aliases:
return self.aliases[0]
MODEL_ARCHITECTURES = [
ModelArchitecture(
@ -52,7 +56,7 @@ MODEL_ARCHITECTURES = [
name="Stable Diffusion XL",
aliases=["sdxl", "sd-xl"],
output_modality="image",
defaults={"size": "512"},
defaults={"size": "1024"},
),
ModelArchitecture(
name="Stable Video Diffusion",
@ -110,7 +114,7 @@ class ModelWeightsConfig:
if isinstance(self.architecture, str):
self.architecture = MODEL_ARCHITECTURE_LOOKUP[self.architecture]
if not isinstance(self.architecture, ModelArchitecture):
msg = f"You must specify an architecture {self.architecture}"
msg = f"zYou must specify an architecture {self.architecture}"
raise ValueError(msg) # noqa
@ -164,6 +168,27 @@ MODEL_WEIGHT_CONFIGS = [
weights_location="https://huggingface.co/nitrosocke/redshift-diffusion/tree/80837fe18df05807861ab91c3bad3693c9342e4c/",
defaults={"negative_prompt": DEFAULT_NEGATIVE_PROMPT},
),
# SDXL Weights
ModelWeightsConfig(
name="Stable Diffusion XL",
aliases=MODEL_ARCHITECTURE_LOOKUP["sdxl"].aliases,
architecture=MODEL_ARCHITECTURE_LOOKUP["sdxl"],
defaults={
"negative_prompt": DEFAULT_NEGATIVE_PROMPT,
"composition_strength": 0.6,
},
weights_location="https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/462165984030d82259a11f4367a4eed129e94a7b/",
),
ModelWeightsConfig(
name="OpenDalle V1.1",
aliases=["opendalle11", "odv11", "opendalle11", "opendalle", "od"],
architecture=MODEL_ARCHITECTURE_LOOKUP["sdxl"],
defaults={
"negative_prompt": DEFAULT_NEGATIVE_PROMPT,
"composition_strength": 0.6,
},
weights_location="https://huggingface.co/dataautogpt3/OpenDalleV1.1/tree/33dc6acd722cd7a956bf676011609e41665d4c4e/",
),
# Video Weights
ModelWeightsConfig(
name="Stable Video Diffusion",

@ -3,26 +3,32 @@
import logging
import math
from functools import lru_cache
from typing import Literal
from typing import List, Literal
import torch
from refiners.fluxion.layers.attentions import ScaledDotProductAttention
from refiners.fluxion.layers.chain import ChainError
from refiners.foundationals.latent_diffusion import (
SD1ControlnetAdapter,
SD1UNet,
StableDiffusion_1 as RefinerStableDiffusion_1,
StableDiffusion_1_Inpainting as RefinerStableDiffusion_1_Inpainting,
from refiners.foundationals.latent_diffusion.self_attention_guidance import (
SelfAttentionMap,
)
from refiners.foundationals.latent_diffusion.stable_diffusion_1.controlnet import (
Controlnet,
SD1ControlnetAdapter,
)
from refiners.foundationals.latent_diffusion.stable_diffusion_1.model import (
SD1Autoencoder,
SD1UNet,
StableDiffusion_1 as RefinerStableDiffusion_1,
StableDiffusion_1_Inpainting as RefinerStableDiffusion_1_Inpainting,
)
from refiners.foundationals.latent_diffusion.stable_diffusion_xl.model import (
SDXLAutoencoder,
StableDiffusion_XL as RefinerStableDiffusion_XL,
)
from torch import Tensor, nn
from torch.nn import functional as F
from imaginairy.schema import WeightedPrompt
from imaginairy.utils.feather_tile import rebuild_image, tile_image
from imaginairy.weight_management.conversion import cast_weights
@ -77,7 +83,124 @@ class TileModeMixin(nn.Module):
class StableDiffusion_1(TileModeMixin, RefinerStableDiffusion_1):
pass
def calculate_text_conditioning_kwargs(
self,
positive_prompts: List[WeightedPrompt],
negative_prompts: List[WeightedPrompt],
positive_conditioning_override: Tensor | None = None,
):
import torch
from imaginairy.utils.log_utils import log_conditioning
neutral_conditioning = self.prompts_to_embeddings(negative_prompts)
log_conditioning(neutral_conditioning, "neutral conditioning")
if positive_conditioning_override is None:
positive_conditioning = self.prompts_to_embeddings(positive_prompts)
else:
positive_conditioning = positive_conditioning_override
log_conditioning(positive_conditioning, "positive conditioning")
clip_text_embedding = torch.cat(
tensors=(neutral_conditioning, positive_conditioning), dim=0
)
return {"clip_text_embedding": clip_text_embedding}
def prompts_to_embeddings(self, prompts: List[WeightedPrompt]) -> Tensor:
import torch
total_weight = sum(wp.weight for wp in prompts)
if str(self.clip_text_encoder.device) == "cpu":
self.clip_text_encoder = self.clip_text_encoder.to(dtype=torch.float32)
conditioning = sum(
self.clip_text_encoder(wp.text) * (wp.weight / total_weight)
for wp in prompts
)
return conditioning
class StableDiffusion_XL(TileModeMixin, RefinerStableDiffusion_XL):
def forward( # type: ignore
self,
x: Tensor,
step: int,
*,
clip_text_embedding: Tensor,
pooled_text_embedding: Tensor,
time_ids: Tensor | None = None,
condition_scale: float = 5.0,
**kwargs: Tensor,
) -> Tensor:
time_ids = time_ids or self.default_time_ids
return super().forward(
x=x,
step=step,
clip_text_embedding=clip_text_embedding,
pooled_text_embedding=pooled_text_embedding,
time_ids=time_ids,
condition_scale=condition_scale,
**kwargs,
)
def calculate_text_conditioning_kwargs(
self,
positive_prompts: List[WeightedPrompt],
negative_prompts: List[WeightedPrompt],
positive_conditioning_override: Tensor | None = None,
):
import torch
from imaginairy.utils.log_utils import log_conditioning
(
neutral_clip_text_embedding,
neutral_pooled_text_embedding,
) = self.prompts_to_embeddings(negative_prompts)
log_conditioning(neutral_clip_text_embedding, "neutral_clip_text_embedding")
log_conditioning(neutral_pooled_text_embedding, "neutral_pooled_text_embedding")
(
positive_clip_text_embedding,
positive_pooled_text_embedding,
) = self.prompts_to_embeddings(positive_prompts)
log_conditioning(positive_clip_text_embedding, "positive_clip_text_embedding")
log_conditioning(
positive_pooled_text_embedding, "positive_pooled_text_embedding"
)
return {
"clip_text_embedding": torch.cat(
tensors=(neutral_clip_text_embedding, positive_clip_text_embedding),
dim=0,
),
"pooled_text_embedding": torch.cat(
tensors=(neutral_pooled_text_embedding, positive_pooled_text_embedding),
dim=0,
),
}
def prompts_to_embeddings(
self, prompts: List[WeightedPrompt]
) -> tuple[Tensor, Tensor]:
import torch
total_weight = sum(wp.weight for wp in prompts)
if str(self.clip_text_encoder.device) == "cpu":
self.clip_text_encoder = self.clip_text_encoder.to(dtype=torch.float32)
embeddings = [self.clip_text_encoder(wp.text) for wp in prompts]
clip_text_embedding = (
sum(emb[0] * wp.weight for emb, wp in zip(embeddings, prompts))
/ total_weight
)
pooled_text_embedding = (
sum(emb[1] * wp.weight for emb, wp in zip(embeddings, prompts))
/ total_weight
)
return clip_text_embedding, pooled_text_embedding # type: ignore
class StableDiffusion_1_Inpainting(TileModeMixin, RefinerStableDiffusion_1_Inpainting):
@ -116,10 +239,47 @@ class StableDiffusion_1_Inpainting(TileModeMixin, RefinerStableDiffusion_1_Inpai
return sag.scale * (noise - degraded_noise)
def calculate_text_conditioning_kwargs(
self,
positive_prompts: List[WeightedPrompt],
negative_prompts: List[WeightedPrompt],
positive_conditioning_override: Tensor | None = None,
):
import torch
from imaginairy.utils.log_utils import log_conditioning
neutral_conditioning = self.prompts_to_embeddings(negative_prompts)
log_conditioning(neutral_conditioning, "neutral conditioning")
if positive_conditioning_override is None:
positive_conditioning = self.prompts_to_embeddings(positive_prompts)
else:
positive_conditioning = positive_conditioning_override
log_conditioning(positive_conditioning, "positive conditioning")
clip_text_embedding = torch.cat(
tensors=(neutral_conditioning, positive_conditioning), dim=0
)
return {"clip_text_embedding": clip_text_embedding}
def prompts_to_embeddings(self, prompts: List[WeightedPrompt]) -> Tensor:
import torch
class SD1AutoencoderSliced(SD1Autoencoder):
total_weight = sum(wp.weight for wp in prompts)
if str(self.clip_text_encoder.device) == "cpu":
self.clip_text_encoder = self.clip_text_encoder.to(dtype=torch.float32)
conditioning = sum(
self.clip_text_encoder(wp.text) * (wp.weight / total_weight)
for wp in prompts
)
return conditioning
class SlicedEncoderMixin(nn.Module):
max_chunk_size = 2048
min_chunk_size = 64
min_chunk_size = 32
def encode(self, x: Tensor) -> Tensor:
return self.sliced_encode(x)
@ -133,12 +293,12 @@ class SD1AutoencoderSliced(SD1Autoencoder):
[1, 4, math.floor(h / 8), math.floor(w / 8)], device=x.device
)
overlap_pct = 0.5
encoder = self[0] # type: ignore
for x_img in x.split(1):
chunks = tile_image(
x_img, tile_size=chunk_size, overlap_percent=overlap_pct
)
encoded_chunks = [super(SD1Autoencoder, self).encode(ic) for ic in chunks]
encoded_chunks = [encoder(ic) * self.encoder_scale for ic in chunks]
final_tensor = rebuild_image(
encoded_chunks,
@ -157,9 +317,10 @@ class SD1AutoencoderSliced(SD1Autoencoder):
except ChainError as e:
if "OutOfMemoryError" not in str(e):
raise
self.__class__.max_chunk_size = (
int(math.sqrt(x.shape[2] * x.shape[3])) // 2
)
new_size = int(math.sqrt(x.shape[2] * x.shape[3])) // 2
# make sure it's an even number
new_size = new_size - (new_size % 2)
self.__class__.max_chunk_size = new_size
logger.info(
f"Ran out of memory. Trying tiled decode with chunk size {self.__class__.max_chunk_size}"
)
@ -170,6 +331,8 @@ class SD1AutoencoderSliced(SD1Autoencoder):
if "OutOfMemoryError" not in str(e):
raise
self.__class__.max_chunk_size = self.max_chunk_size // 2
# make sure it's an even number
self.__class__.max_chunk_size -= self.__class__.max_chunk_size % 2
self.__class__.max_chunk_size = max(
self.__class__.max_chunk_size, self.__class__.min_chunk_size
)
@ -179,7 +342,7 @@ class SD1AutoencoderSliced(SD1Autoencoder):
raise RuntimeError("Could not decode image")
def decode_all_at_once(self, x: Tensor) -> Tensor:
decoder = self[1]
decoder = self[1] # type: ignore
x = decoder(x / self.encoder_scale)
return x
@ -213,6 +376,14 @@ class SD1AutoencoderSliced(SD1Autoencoder):
return final_tensor
class SD1AutoencoderSliced(SlicedEncoderMixin, SD1Autoencoder):
pass
class SDXLAutoencoderSliced(SlicedEncoderMixin, SDXLAutoencoder):
pass
def add_sliced_attention_to_scaled_dot_product_attention(cls):
"""
Patch refiners ScaledDotProductAttention so that it uses sliced attention
@ -281,6 +452,9 @@ def monkeypatch_sd1controlnetadapter():
device=target.device,
dtype=target.dtype,
)
print(
f"controlnet: {name} loaded to device {target.device} and type {target.dtype}"
)
self._controlnet: list[Controlnet] = [ # type: ignore
controlnet
@ -295,7 +469,55 @@ def monkeypatch_sd1controlnetadapter():
monkeypatch_sd1controlnetadapter()
@lru_cache(maxsize=4)
@lru_cache
def monkeypatch_self_attention_guidance():
def new_compute_attention_scores(
self, query: Tensor, key: Tensor, value: Tensor, slice_size=2048
) -> Tensor:
query, key = self.split_to_multi_head(query), self.split_to_multi_head(key)
batch_size, num_heads, num_queries, dim = query.shape
output = torch.zeros(
batch_size,
num_heads,
num_queries,
num_queries,
device=query.device,
dtype=query.dtype,
)
for start_idx in range(0, num_queries, slice_size):
end_idx = min(start_idx + slice_size, num_queries)
sliced_query = query[:, :, start_idx:end_idx, :]
attention_slice = sliced_query @ key.permute(0, 1, 3, 2)
attention_slice = attention_slice / math.sqrt(dim)
output_slice = torch.softmax(input=attention_slice, dim=-1)
output[:, :, start_idx:end_idx, :] = output_slice
return output
def compute_attention_scores_logged(
self, query: Tensor, key: Tensor, value: Tensor
) -> Tensor:
print(f"query.shape: {query.shape}")
print(f"key.shape: {key.shape}")
query, key = self.split_to_multi_head(query), self.split_to_multi_head(key)
print(f"mh query.shape: {query.shape}")
print(f"mh key.shape: {key.shape}")
_, _, _, dim = query.shape
attention = query @ key.permute(0, 1, 3, 2)
attention = attention / math.sqrt(dim)
print(f"attention shape: {attention.shape}")
result = torch.softmax(input=attention, dim=-1)
print(f"result.shape: {result.shape}")
return result
SelfAttentionMap.compute_attention_scores = new_compute_attention_scores
monkeypatch_self_attention_guidance()
@lru_cache(maxsize=1)
def get_controlnet(name, weights_location, device, dtype):
from imaginairy.utils.model_manager import load_state_dict

@ -299,7 +299,7 @@ class ImaginePrompt(BaseModel, protected_namespaces=()):
caption_text: str = Field(
"", description="text to be overlaid on the image", validate_default=True
)
composition_strength: float = Field(default=0.5, ge=0, le=1, validate_default=True)
composition_strength: float = Field(ge=0, le=1, validate_default=True)
inpaint_method: InpaintMethod = "finetune"
def __init__(
@ -454,6 +454,23 @@ class ImaginePrompt(BaseModel, protected_namespaces=()):
raise ValueError("conditioning must be a torch.Tensor") # noqa
return v
@model_validator(mode="before")
@classmethod
def set_default_composition_strength(cls, data: Any) -> Any:
if not isinstance(data, dict):
return data
comp_strength = data.get("composition_strength")
default_comp_strength = 0.5
if comp_strength is None:
model_weights = data.get("model_weights")
if isinstance(model_weights, config.ModelWeightsConfig):
default_comp_strength = model_weights.defaults.get(
"composition_strength", default_comp_strength
)
data["composition_strength"] = default_comp_strength
return data
# @field_validator("init_image", "mask_image", mode="after")
# def handle_images(cls, v):
# if isinstance(v, str):

@ -89,7 +89,7 @@ def platform_appropriate_autocast(precision="autocast", enabled=True):
# https://github.com/pytorch/pytorch/issues/55374
# https://github.com/invoke-ai/InvokeAI/pull/518
if precision == "autocast" and get_device() in ("cuda",):
if precision == "autocast" and get_device() in ("cuda",) and False:
with autocast(get_device(), enabled=enabled):
yield
else:
@ -235,7 +235,11 @@ def glob_expand_paths(paths):
if p.startswith("http"):
expanded_paths.append(p)
else:
expanded_paths.extend(glob.glob(os.path.expanduser(p)))
p = os.path.expanduser(p)
if os.path.exists(p) and os.path.isfile(p):
expanded_paths.append(p)
else:
expanded_paths.extend(glob.glob(os.path.expanduser(p)))
return expanded_paths
@ -320,3 +324,13 @@ def get_nested_attribute(obj, attribute_path, depth=None, return_key=False):
def prompt_normalized(prompt, length=130):
return re.sub(r"[^a-zA-Z0-9.,\[\]-]+", "_", prompt)[:length]
def clear_gpu_cache():
import gc
import torch
gc.collect()
if torch.cuda.is_available():
torch.cuda.empty_cache()

@ -117,13 +117,7 @@ def add_tiles(tiles, base_img, tile_coords, tile_size, overlap):
f_ovlp[1] = 0
t = 0
(
column,
row,
) = (
0,
0,
)
(column, row) = (0, 0)
for y in tile_coords[0]:
for x in tile_coords[1]:
@ -151,7 +145,10 @@ def add_tiles(tiles, base_img, tile_coords, tile_size, overlap):
if f_ovlp[1] > 0:
c_overlap[3] = f_ovlp[1] # Change left overlap
# print(f"mask_tile: tile.shape={tiles[t].shape}, overlap={c_overlap}, side={mask_sides} col={column}, row={row}")
# print(f"num-tiles={len(tiles)} t={t}")
# print(
# f"mask_tile: tile.shape={tiles[t].shape}, overlap={c_overlap}, side={mask_sides} col={column}, row={row}"
# )
tile = mask_tile(tiles[t], c_overlap, std_overlap=overlap, side=mask_sides)
# torch_img_to_pillow_img(tile).show()

@ -122,8 +122,6 @@ class ImageLoggingContext:
)
def log_latents(self, latents, description):
from imaginairy.utils.img_utils import model_latents_to_pillow_imgs
if "predicted_latent" in description:
if self.progress_latent_callback is not None:
self.progress_latent_callback(latents)
@ -148,11 +146,18 @@ class ImageLoggingContext:
except TypeError:
shape_str = str(latents.shape)
description = f"{description}-{shape_str}"
for img in model_latents_to_pillow_imgs(latents):
for latent in latents:
self.image_count += 1
latent = latent.unsqueeze(0)
img = latent_to_raw_image(latent)
self.debug_img_callback(
img, description, self.image_count, self.step_count, self.prompt
)
# for img in model_latents_to_pillow_imgs(latents):
# self.image_count += 1
# self.debug_img_callback(
# img, description, self.image_count, self.step_count, self.prompt
# )
def log_img(self, img, description):
if not self.debug_img_callback:
@ -329,3 +334,39 @@ def suppress_annoying_logs_and_warnings():
disable_transformers_custom_logging()
disable_pytorch_lighting_custom_logging()
disable_common_warnings()
def latent_to_raw_image(tensor):
"""
Converts a tensor of size (1, 4, x, y) into a PIL image of size (x*4, y*4).
Args:
tensor (numpy.ndarray): A tensor of size (1, 4, x, y).
Returns:
PIL.Image: An image representing the tensor.
"""
from PIL import Image
if tensor.ndim != 4 or tensor.shape[0] != 1:
msg = f"Tensor must be of shape (1, c, x, y). got shape: {tensor.shape}"
raise ValueError(msg)
_, c, x, y = tensor.shape
full_image = Image.new("L", (x, y * c))
# Process each channel
for i in range(c):
# Extract the channel
channel = tensor[0, i, :, :]
# Normalize and convert to an image
channel_image = Image.fromarray(
(channel / channel.max() * 255).cpu().numpy().astype("uint8")
)
# Paste the channel image into the full image
full_image.paste(channel_image, (0, i * y))
return full_image

@ -16,17 +16,19 @@ from huggingface_hub import (
try_to_load_from_cache,
)
from omegaconf import OmegaConf
from refiners.foundationals.latent_diffusion import SD1UNet
from refiners.foundationals.latent_diffusion import DoubleTextEncoder, SD1UNet, SDXLUNet
from refiners.foundationals.latent_diffusion.model import LatentDiffusionModel
from safetensors.torch import load_file
from imaginairy import config as iconfig
from imaginairy.config import IMAGE_WEIGHTS_SHORT_NAMES, ModelArchitecture
from imaginairy.modules import attention
from imaginairy.utils import get_device, instantiate_from_config
from imaginairy.modules.refiners_sd import SDXLAutoencoderSliced, StableDiffusion_XL
from imaginairy.utils import clear_gpu_cache, get_device, instantiate_from_config
from imaginairy.utils.model_cache import memory_managed_model
from imaginairy.utils.named_resolutions import normalize_image_size
from imaginairy.utils.paths import PKG_ROOT
from imaginairy.weight_management import translators
logger = logging.getLogger(__name__)
@ -37,20 +39,6 @@ class HuggingFaceAuthorizationError(RuntimeError):
pass
def load_tensors(tensorfile, map_location=None):
if tensorfile == "empty":
# used for testing
return {}
if tensorfile.endswith((".ckpt", ".pth", ".bin")):
return torch.load(tensorfile, map_location=map_location)
if tensorfile.endswith(".safetensors"):
return load_file(tensorfile, device=map_location)
return load_file(tensorfile, device=map_location)
# raise ValueError(f"Unknown tensorfile type: {tensorfile}")
def load_state_dict(weights_location, half_mode=False, device=None):
if device is None:
device = get_device()
@ -233,8 +221,10 @@ def get_diffusion_model_refiners(
dtype=None,
) -> LatentDiffusionModel:
"""Load a diffusion model."""
return _get_diffusion_model_refiners(
weights_location=weights_config.weights_location,
architecture_alias=weights_config.architecture.primary_alias,
for_inpainting=for_inpainting,
dtype=dtype,
)
@ -265,6 +255,40 @@ def normalize_diffusers_repo_url(url: str) -> str:
@lru_cache(maxsize=1)
def _get_diffusion_model_refiners(
weights_location: str,
architecture_alias: str,
for_inpainting: bool = False,
device=None,
dtype=torch.float16,
) -> LatentDiffusionModel:
"""
Load a diffusion model.
Weights location may also be shortcut name, e.g. "SD-1.5"
"""
global MOST_RECENTLY_LOADED_MODEL
_get_diffusion_model_refiners.cache_clear()
clear_gpu_cache()
architecture = iconfig.MODEL_ARCHITECTURE_LOOKUP[architecture_alias]
if architecture.primary_alias in ("sd15", "sd15inpaint"):
sd = _get_sd15_diffusion_model_refiners(
weights_location=weights_location,
for_inpainting=for_inpainting,
device=device,
dtype=dtype,
)
elif architecture.primary_alias == "sdxl":
sd = load_sdxl_pipeline(base_url=weights_location, device=device)
else:
msg = f"Invalid architecture {architecture.primary_alias}"
raise ValueError(msg)
MOST_RECENTLY_LOADED_MODEL = sd
return sd
def _get_sd15_diffusion_model_refiners(
weights_location: str,
for_inpainting: bool = False,
device=None,
@ -281,15 +305,13 @@ def _get_diffusion_model_refiners(
StableDiffusion_1_Inpainting,
)
global MOST_RECENTLY_LOADED_MODEL
device = device or get_device()
if is_diffusers_repo_url(weights_location):
(
vae_weights,
unet_weights,
text_encoder_weights,
) = load_stable_diffusion_diffusers_weights(weights_location)
) = load_sd15_diffusers_weights(weights_location)
else:
(
vae_weights,
@ -299,10 +321,10 @@ def _get_diffusion_model_refiners(
StableDiffusionCls: type[LatentDiffusionModel]
if for_inpainting:
unet = SD1UNet(in_channels=9)
unet = SD1UNet(in_channels=9, device=device, dtype=dtype)
StableDiffusionCls = StableDiffusion_1_Inpainting
else:
unet = SD1UNet(in_channels=4)
unet = SD1UNet(in_channels=4, device=device, dtype=dtype)
StableDiffusionCls = StableDiffusion_1
logger.debug(f"Using class {StableDiffusionCls.__name__}")
@ -320,8 +342,6 @@ def _get_diffusion_model_refiners(
logger.debug(f"'{weights_location}' Loaded")
MOST_RECENTLY_LOADED_MODEL = sd
sd.set_self_attention_guidance(enable=True)
return sd
@ -559,7 +579,7 @@ def extract_huggingface_repo_commit_file_from_url(url):
return repo, commit_hash, filepath
def download_diffusers_weights(base_url, sub, filename=None):
def download_diffusers_weights(base_url, sub, filename=None, prefer_fp16=True):
if filename is None:
# select which weights to download. prefer fp16 safetensors
data = parse_diffusers_repo_url(base_url)
@ -567,7 +587,7 @@ def download_diffusers_weights(base_url, sub, filename=None):
filepaths = fs.ls(
f"{data['author']}/{data['repo']}/{sub}", revision=data["ref"], detail=False
)
filepath = choose_diffusers_weights(filepaths)
filepath = choose_diffusers_weights(filepaths, prefer_fp16=prefer_fp16)
if not filepath:
msg = f"Could not find any weights in {base_url}/{sub}"
raise ValueError(msg)
@ -577,22 +597,26 @@ def download_diffusers_weights(base_url, sub, filename=None):
return new_path
def choose_diffusers_weights(filenames):
def choose_diffusers_weights(filenames, prefer_fp16=True):
extension_priority = (".safetensors", ".bin", ".pth", ".pt")
# filter out any files that don't have a valid extension
filenames = [f for f in filenames if any(f.endswith(e) for e in extension_priority)]
filenames_and_extension = [(f, os.path.splitext(f)[1]) for f in filenames]
# sort by priority
filenames_and_extension.sort(
key=lambda x: ("fp16" not in x[0], extension_priority.index(x[1]))
)
if prefer_fp16:
filenames_and_extension.sort(
key=lambda x: ("fp16" not in x[0], extension_priority.index(x[1]))
)
else:
filenames_and_extension.sort(
key=lambda x: ("fp16" in x[0], extension_priority.index(x[1]))
)
if filenames_and_extension:
return filenames_and_extension[0][0]
return None
@lru_cache
def load_stable_diffusion_diffusers_weights(base_url: str, device=None):
def load_sd15_diffusers_weights(base_url: str, device=None):
from imaginairy.utils import get_device
from imaginairy.weight_management.conversion import cast_weights
from imaginairy.weight_management.utils import (
@ -639,6 +663,76 @@ def load_stable_diffusion_diffusers_weights(base_url: str, device=None):
return vae_weights, unet_weights, text_encoder_weights
def load_sdxl_diffusers_weights(base_url: str, device=None, dtype=torch.float16):
from imaginairy.utils import get_device
device = device or get_device()
base_url = normalize_diffusers_repo_url(base_url)
translator = translators.diffusers_autoencoder_kl_to_refiners_translator()
vae_weights_path = download_diffusers_weights(
base_url=base_url, sub="vae", prefer_fp16=False
)
print(vae_weights_path)
vae_weights = translator.load_and_translate_weights(
source_path=vae_weights_path,
device="cpu",
)
lda = SDXLAutoencoderSliced(device="cpu", dtype=dtype)
lda.load_state_dict(vae_weights)
del vae_weights
translator = translators.diffusers_unet_sdxl_to_refiners_translator()
unet_weights_path = download_diffusers_weights(base_url=base_url, sub="unet")
print(unet_weights_path)
unet_weights = translator.load_and_translate_weights(
source_path=unet_weights_path,
device="cpu",
)
unet = SDXLUNet(device="cpu", dtype=dtype, in_channels=4)
unet.load_state_dict(unet_weights)
del unet_weights
text_encoder_1_path = download_diffusers_weights(
base_url=base_url, sub="text_encoder"
)
text_encoder_2_path = download_diffusers_weights(
base_url=base_url, sub="text_encoder_2"
)
print(text_encoder_1_path)
print(text_encoder_2_path)
text_encoder_weights = (
translators.DoubleTextEncoderTranslator().load_and_translate_weights(
text_encoder_l_weights_path=text_encoder_1_path,
text_encoder_g_weights_path=text_encoder_2_path,
device="cpu",
)
)
text_encoder = DoubleTextEncoder(device="cpu", dtype=dtype)
text_encoder.load_state_dict(text_encoder_weights)
del text_encoder_weights
lda = lda.to(device=device)
unet = unet.to(device=device)
text_encoder = text_encoder.to(device=device)
sd = StableDiffusion_XL(
device=device, dtype=dtype, lda=lda, unet=unet, clip_text_encoder=text_encoder
)
sd.lda.to(device=device, dtype=torch.float32)
return sd
def load_sdxl_pipeline(base_url, device=None):
logger.info(f"Loading SDXL weights from {base_url}")
device = device or get_device()
sd = load_sdxl_diffusers_weights(base_url, device=device)
sd.set_self_attention_guidance(enable=True)
return sd
def open_weights(filepath, device=None):
from imaginairy.utils import get_device
@ -664,6 +758,20 @@ def open_weights(filepath, device=None):
return state_dict
def load_tensors(tensorfile, map_location=None):
if tensorfile == "empty":
# used for testing
return {}
if tensorfile.endswith((".ckpt", ".pth", ".bin")):
return torch.load(tensorfile, map_location=map_location)
if tensorfile.endswith(".safetensors"):
return load_file(tensorfile, device=map_location)
return load_file(tensorfile, device=map_location)
# raise ValueError(f"Unknown tensorfile type: {tensorfile}")
def load_stable_diffusion_compvis_weights(weights_url):
from imaginairy.utils import get_device
from imaginairy.weight_management.conversion import cast_weights

@ -97,7 +97,7 @@ def load_state_dict_conversion_maps() -> dict[str, dict]:
conversion_maps = {}
from importlib.resources import files
for file in files("imaginairy").joinpath("weight_conversion/maps").iterdir():
for file in files("imaginairy").joinpath("weight_management/weight_maps").iterdir():
if file.is_file() and file.suffix == ".json": # type: ignore
conversion_maps[file.name] = json.loads(file.read_text())
return conversion_maps
@ -117,3 +117,23 @@ def cast_weights(
dest_format=dest_format,
)
return weight_map.cast_weights(source_weights)
def render_fstring(fstring, variables):
"""
Render a string formatted like an f-string using the provided variables.
DANGER: This is a security risk if the fstring is user-provided.
Args:
fstring (str): The template string with placeholders for variables.
variables (dict): A dictionary containing the variables to be used in the f-string.
Returns:
str: The rendered string with variables substituted.
"""
# Use locals().update to add the variables to the local scope
locals().update(variables)
# Evaluate the f-string using eval with an f-string formatted string
return eval(f'f"""{fstring}"""')

@ -0,0 +1,206 @@
import logging
import re
from dataclasses import asdict, dataclass, field
from typing import Dict
import torch
from refiners.fluxion import load_from_safetensors
from torch import device as Device
logger = logging.getLogger(__name__)
TensorDict = Dict[str, torch.Tensor]
@dataclass
class WeightTranslationMap:
name_map: dict[str, str | None] = field(default_factory=dict)
regex_map: dict[str, str | None] = field(default_factory=dict)
ignore_prefixes: list[str] = field(default_factory=list)
source_aliases: dict[str, str] = field(default_factory=dict)
reshapes: dict[str, tuple[int, ...]] = field(default_factory=dict)
def load_and_translate_weights(
self, source_path: str, device: Device | str = "cpu"
) -> TensorDict:
extension = source_path.split(".")[-1]
if extension in ["pth", "pt", "bin"]:
source_weights = torch.load(source_path, map_location="cpu")
elif extension in ["safetensors"]:
source_weights = load_from_safetensors(source_path, device=device)
else:
msg = f"Unsupported extension {extension}"
raise ValueError(msg)
return self.translate_weights(source_weights)
def translate_weights(self, source_weights: TensorDict) -> TensorDict:
return translate_weights(source_weights=source_weights, weight_map=self)
def add_regex_replacer(self, find_pattern: str, replace_pattern: str):
orig_size = len(self.name_map)
# see which keys of name_map
find_pattern_c = re.compile(find_pattern)
matched_keys = [k for k in self.name_map if find_pattern_c.match(k)]
# print(f"Pattern {find_pattern} matched {len(matched_keys)} keys")
for k in matched_keys:
match = find_pattern_c.match(k)
if not match:
continue
data = match.groupdict()
new_k = render_fstring(replace_pattern, data)
expected_k = self.name_map[k]
assert new_k == expected_k
# print(f"Replacing {k} with {new_k}")
del self.name_map[k]
self.regex_map[find_pattern] = replace_pattern
print(
f"Adding pattern reduced name_map from {orig_size} to {len(self.name_map)}"
)
def save(self, path):
import json
import os
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w") as f:
json.dump(asdict(self), f, indent=4)
@classmethod
def load(cls, path):
import json
with open(path) as f:
d = json.load(f)
return cls(**d)
def translate_weights(
source_weights: TensorDict, weight_map: WeightTranslationMap
) -> TensorDict:
new_state_dict: TensorDict = {}
# print(f"Translating {len(source_weights)} weights")
# print(f"Using {len(weight_map.name_map)} name mappings")
# print(source_weights.keys())
source_weights = flatten_dict(source_weights)
for source_key in list(source_weights.keys()):
source_key = weight_map.source_aliases.get(source_key, source_key)
try:
target_key = weight_map.name_map[source_key]
# print(f"Found {source_prefix} -> {target_prefix}")
except KeyError:
continue
if target_key is None:
# mapped to None means we ignore it
source_weights.pop(source_key)
else:
# print(f"Adding {target_key}")
new_state_dict[target_key] = source_weights.pop(source_key)
for source_key in list(source_weights.keys()):
try:
source_prefix, suffix = source_key.rsplit(sep=".", maxsplit=1)
except ValueError:
# no dots
continue
# print(f"Checking {source_prefix} {suffix}")
source_prefix = weight_map.source_aliases.get(source_prefix, source_prefix)
try:
target_prefix = weight_map.name_map[source_prefix]
# print(f"Found {source_prefix} -> {target_prefix}")
except KeyError:
continue
if target_prefix is None:
# mapped to None means we ignore it
source_weights.pop(source_key)
continue
else:
target_key = ".".join([target_prefix, suffix])
# print(f"Adding {target_key}")
new_state_dict[target_key] = source_weights.pop(source_key)
for source_key in list(source_weights.keys()):
try:
source_prefix, suffix = source_key.rsplit(sep=".", maxsplit=1)
except ValueError:
# no dots
continue
for pattern, replace_pattern in weight_map.regex_map.items():
match = re.match(pattern, source_prefix)
if match:
match_data = match.groupdict()
new_k = render_fstring(replace_pattern, match_data)
new_k = ".".join([new_k, suffix])
new_state_dict[new_k] = source_weights.pop(source_key)
if source_weights:
msg = f"Unmapped keys: {list(source_weights.keys())}"
print(msg)
for k in source_weights:
if isinstance(source_weights[k], torch.Tensor):
print(f" {k}: {source_weights[k].shape}")
else:
print(f" {k}: {repr(source_weights[k])[:100]}")
if weight_map.reshapes:
for key, new_shape in weight_map.reshapes.items():
if key in new_state_dict:
new_state_dict[key] = new_state_dict[key].reshape(new_shape)
return new_state_dict
def flatten_dict(d, sep="."):
"""
Flattens a nested dictionary into a dictionary with dot-separated keys.
This function removes items from the original dictionary as they are added to the new one.
The function uses an iterative approach instead of recursion.
Parameters:
d (dict): The dictionary to flatten.
sep (str): The separator to use between keys.
Returns:
dict: A flattened dictionary.
"""
flat_dict = {}
stack = [("", d)]
while stack:
parent_key, current_dict = stack.pop()
keys = list(current_dict.keys()) # Create a list of keys to avoid RuntimeError
for k in keys:
new_key = f"{parent_key}{sep}{k}" if parent_key else k
if isinstance(current_dict[k], dict):
stack.append((new_key, current_dict[k]))
else:
flat_dict[new_key] = current_dict.pop(k)
return flat_dict
def render_fstring(fstring, variables):
"""
Render a string formatted like an f-string using the provided variables.
DANGER: This is a security risk if the fstring is user-provided.
Args:
fstring (str): The template string with placeholders for variables.
variables (dict): A dictionary containing the variables to be used in the f-string.
Returns:
str: The rendered string with variables substituted.
"""
# Use locals().update to add the variables to the local scope
locals().update(variables)
# Evaluate the f-string using eval with an f-string formatted string
return eval(f'f"""{fstring}"""')

@ -0,0 +1,115 @@
import os
from functools import lru_cache
from torch import device as Device
from imaginairy.weight_management.translation import TensorDict, WeightTranslationMap
_current_folder = os.path.dirname(os.path.abspath(__file__))
weight_map_folder = os.path.join(_current_folder, "weight_maps")
@lru_cache
def _weight_map(map_name: str) -> WeightTranslationMap:
map_path = os.path.join(weight_map_folder, f"{map_name}.weightmap.json")
return WeightTranslationMap.load(map_path)
def transformers_text_encoder_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Transformers-ClipTextEncoder")
def transformers_image_encoder_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Transformers-ClipImageEncoder-SD21")
def diffusers_autoencoder_kl_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-AutoencoderKL-SD")
def diffusers_unet_sd15_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-UNet-SD15")
def diffusers_unet_sdxl_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-UNet-SDXL")
def informative_drawings_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("InformativeDrawings")
def diffusers_controlnet_sd15_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-Controlnet-SD15")
def diffusers_ip_adapter_sd15_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-IPAdapter-SD15")
def diffusers_ip_adapter_sdxl_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-IPAdapter-SDXL")
def diffusers_ip_adapter_plus_sd15_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-IPAdapterPlus-SD15")
def diffusers_ip_adapter_plus_sdxl_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-IPAdapterPlus-SDXL")
def diffusers_t2i_adapter_sd15_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-T2IAdapter-SD15")
def diffusers_t2i_adapter_sdxl_to_refiners_translator() -> WeightTranslationMap:
return _weight_map("Diffusers-T2IAdapter-SDXL")
class DoubleTextEncoderTranslator:
def __init__(self):
self.translator = transformers_text_encoder_to_refiners_translator()
def load_and_translate_weights(
self,
text_encoder_l_weights_path: str,
text_encoder_g_weights_path: str,
device: Device | str = "cpu",
) -> TensorDict:
text_encoder_l_weights = self.translator.load_and_translate_weights(
text_encoder_l_weights_path, device=device
)
text_encoder_g_weights = self.translator.load_and_translate_weights(
text_encoder_g_weights_path, device=device
)
return self.translate_weights(text_encoder_l_weights, text_encoder_g_weights)
def translate_weights(
self, text_encoder_l_weights: TensorDict, text_encoder_g_weights: TensorDict
) -> TensorDict:
new_sd: TensorDict = {}
for k in list(text_encoder_l_weights.keys()):
if k.startswith("TransformerLayer_12"):
text_encoder_l_weights.pop(k)
elif k.startswith("LayerNorm"):
text_encoder_l_weights.pop(k)
else:
new_key = f"Parallel.CLIPTextEncoderL.{k}"
new_sd[new_key] = text_encoder_l_weights.pop(k)
new_sd[
"Parallel.TextEncoderWithPooling.Parallel.Chain.Linear.weight"
] = text_encoder_g_weights.pop("Linear.weight")
for k in list(text_encoder_g_weights.keys()):
if k.startswith("TransformerLayer_32"):
new_key = f"Parallel.TextEncoderWithPooling.Parallel.Chain.CLIPTextEncoderG.TransformerLayer{k[19:]}"
elif k.startswith("LayerNorm"):
new_key = f"Parallel.TextEncoderWithPooling.Parallel.Chain.CLIPTextEncoderG.{k}"
else:
new_key = f"Parallel.TextEncoderWithPooling.CLIPTextEncoderG.{k}"
new_sd[new_key] = text_encoder_g_weights.pop(k)
return new_sd

@ -4,7 +4,7 @@ import os.path
_base_dir = os.path.dirname(os.path.realpath(__file__))
WEIGHT_MAPS_PATH = os.path.join(_base_dir, "maps")
WEIGHT_MAPS_PATH = os.path.join(_base_dir, "weight_maps")
WEIGHT_INFO_PATH = os.path.join(_base_dir, "weight_info")

@ -0,0 +1,174 @@
{
"name_map": {
"encoder.conv_in": "Encoder.Conv2d",
"encoder.down_blocks.0.resnets.0.norm1": "Encoder.Chain_1.Chain_1.Resnet_1.Chain.GroupNorm_1",
"encoder.down_blocks.0.resnets.0.norm2": "Encoder.Chain_1.Chain_1.Resnet_1.Chain.GroupNorm_2",
"encoder.down_blocks.0.resnets.1.norm1": "Encoder.Chain_1.Chain_1.Resnet_2.Chain.GroupNorm_1",
"encoder.down_blocks.0.resnets.1.norm2": "Encoder.Chain_1.Chain_1.Resnet_2.Chain.GroupNorm_2",
"encoder.down_blocks.1.resnets.0.norm1": "Encoder.Chain_1.Chain_2.Resnet_1.Chain.GroupNorm_1",
"decoder.up_blocks.3.resnets.0.norm2": "Decoder.Chain_1.Chain_5.Resnet_1.Chain.GroupNorm_2",
"decoder.up_blocks.3.resnets.1.norm1": "Decoder.Chain_1.Chain_5.Resnet_2.Chain.GroupNorm_1",
"decoder.up_blocks.3.resnets.1.norm2": "Decoder.Chain_1.Chain_5.Resnet_2.Chain.GroupNorm_2",
"decoder.up_blocks.3.resnets.2.norm1": "Decoder.Chain_1.Chain_5.Resnet_3.Chain.GroupNorm_1",
"decoder.up_blocks.3.resnets.2.norm2": "Decoder.Chain_1.Chain_5.Resnet_3.Chain.GroupNorm_2",
"decoder.conv_norm_out": "Decoder.Chain_2.GroupNorm",
"encoder.down_blocks.0.resnets.0.conv1": "Encoder.Chain_1.Chain_1.Resnet_1.Chain.Conv2d_1",
"encoder.down_blocks.0.resnets.0.conv2": "Encoder.Chain_1.Chain_1.Resnet_1.Chain.Conv2d_2",
"encoder.down_blocks.0.resnets.1.conv1": "Encoder.Chain_1.Chain_1.Resnet_2.Chain.Conv2d_1",
"encoder.down_blocks.0.resnets.1.conv2": "Encoder.Chain_1.Chain_1.Resnet_2.Chain.Conv2d_2",
"encoder.down_blocks.0.downsamplers.0.conv": "Encoder.Chain_1.Chain_1.Downsample.Conv2d",
"decoder.up_blocks.3.resnets.0.conv2": "Decoder.Chain_1.Chain_5.Resnet_1.Chain.Conv2d_2",
"decoder.up_blocks.3.resnets.1.conv1": "Decoder.Chain_1.Chain_5.Resnet_2.Chain.Conv2d_1",
"decoder.up_blocks.3.resnets.1.conv2": "Decoder.Chain_1.Chain_5.Resnet_2.Chain.Conv2d_2",
"decoder.up_blocks.3.resnets.2.conv1": "Decoder.Chain_1.Chain_5.Resnet_3.Chain.Conv2d_1",
"decoder.up_blocks.3.resnets.2.conv2": "Decoder.Chain_1.Chain_5.Resnet_3.Chain.Conv2d_2",
"encoder.down_blocks.1.resnets.0.conv1": "Encoder.Chain_1.Chain_2.Resnet_1.Chain.Conv2d_1",
"encoder.down_blocks.1.resnets.0.norm2": "Encoder.Chain_1.Chain_2.Resnet_1.Chain.GroupNorm_2",
"encoder.down_blocks.1.resnets.1.norm1": "Encoder.Chain_1.Chain_2.Resnet_2.Chain.GroupNorm_1",
"encoder.down_blocks.1.resnets.1.norm2": "Encoder.Chain_1.Chain_2.Resnet_2.Chain.GroupNorm_2",
"encoder.down_blocks.2.resnets.0.norm1": "Encoder.Chain_1.Chain_3.Resnet_1.Chain.GroupNorm_1",
"decoder.up_blocks.2.resnets.0.norm2": "Decoder.Chain_1.Chain_4.Resnet_1.Chain.GroupNorm_2",
"decoder.up_blocks.2.resnets.1.norm1": "Decoder.Chain_1.Chain_4.Resnet_2.Chain.GroupNorm_1",
"decoder.up_blocks.2.resnets.1.norm2": "Decoder.Chain_1.Chain_4.Resnet_2.Chain.GroupNorm_2",
"decoder.up_blocks.2.resnets.2.norm1": "Decoder.Chain_1.Chain_4.Resnet_3.Chain.GroupNorm_1",
"decoder.up_blocks.2.resnets.2.norm2": "Decoder.Chain_1.Chain_4.Resnet_3.Chain.GroupNorm_2",
"decoder.up_blocks.3.resnets.0.norm1": "Decoder.Chain_1.Chain_5.Resnet_1.Chain.GroupNorm_1",
"encoder.down_blocks.1.resnets.0.conv2": "Encoder.Chain_1.Chain_2.Resnet_1.Chain.Conv2d_2",
"encoder.down_blocks.1.resnets.1.conv1": "Encoder.Chain_1.Chain_2.Resnet_2.Chain.Conv2d_1",
"encoder.down_blocks.1.resnets.1.conv2": "Encoder.Chain_1.Chain_2.Resnet_2.Chain.Conv2d_2",
"encoder.down_blocks.1.downsamplers.0.conv": "Encoder.Chain_1.Chain_2.Downsample.Conv2d",
"decoder.up_blocks.2.resnets.0.conv2": "Decoder.Chain_1.Chain_4.Resnet_1.Chain.Conv2d_2",
"decoder.up_blocks.2.resnets.1.conv1": "Decoder.Chain_1.Chain_4.Resnet_2.Chain.Conv2d_1",
"decoder.up_blocks.2.resnets.1.conv2": "Decoder.Chain_1.Chain_4.Resnet_2.Chain.Conv2d_2",
"decoder.up_blocks.2.resnets.2.conv1": "Decoder.Chain_1.Chain_4.Resnet_3.Chain.Conv2d_1",
"decoder.up_blocks.2.resnets.2.conv2": "Decoder.Chain_1.Chain_4.Resnet_3.Chain.Conv2d_2",
"decoder.up_blocks.2.upsamplers.0.conv": "Decoder.Chain_1.Chain_4.Upsample.Conv2d",
"encoder.down_blocks.1.resnets.0.conv_shortcut": "Encoder.Chain_1.Chain_2.Resnet_1.Conv2d",
"encoder.down_blocks.2.resnets.0.conv1": "Encoder.Chain_1.Chain_3.Resnet_1.Chain.Conv2d_1",
"encoder.down_blocks.2.resnets.0.norm2": "Encoder.Chain_1.Chain_3.Resnet_1.Chain.GroupNorm_2",
"encoder.down_blocks.2.resnets.1.norm1": "Encoder.Chain_1.Chain_3.Resnet_2.Chain.GroupNorm_1",
"encoder.down_blocks.2.resnets.1.norm2": "Encoder.Chain_1.Chain_3.Resnet_2.Chain.GroupNorm_2",
"encoder.down_blocks.3.resnets.0.norm1": "Encoder.Chain_1.Chain_4.Resnet_1.Chain.GroupNorm_1",
"encoder.down_blocks.3.resnets.0.norm2": "Encoder.Chain_1.Chain_4.Resnet_1.Chain.GroupNorm_2",
"encoder.down_blocks.3.resnets.1.norm1": "Encoder.Chain_1.Chain_4.Resnet_2.Chain.GroupNorm_1",
"encoder.down_blocks.3.resnets.1.norm2": "Encoder.Chain_1.Chain_4.Resnet_2.Chain.GroupNorm_2",
"encoder.mid_block.resnets.0.norm1": "Encoder.Chain_1.Chain_5.Resnet_1.Chain.GroupNorm_1",
"encoder.mid_block.resnets.0.norm2": "Encoder.Chain_1.Chain_5.Resnet_1.Chain.GroupNorm_2",
"encoder.mid_block.attentions.0.group_norm": "Encoder.Chain_1.Chain_5.Residual.GroupNorm",
"encoder.mid_block.resnets.1.norm1": "Encoder.Chain_1.Chain_5.Resnet_2.Chain.GroupNorm_1",
"encoder.mid_block.resnets.1.norm2": "Encoder.Chain_1.Chain_5.Resnet_2.Chain.GroupNorm_2",
"encoder.conv_norm_out": "Encoder.Chain_2.GroupNorm",
"decoder.mid_block.resnets.0.norm1": "Decoder.Chain_1.Chain_1.Resnet_1.Chain.GroupNorm_1",
"decoder.mid_block.resnets.0.norm2": "Decoder.Chain_1.Chain_1.Resnet_1.Chain.GroupNorm_2",
"decoder.mid_block.attentions.0.group_norm": "Decoder.Chain_1.Chain_1.Residual.GroupNorm",
"decoder.mid_block.resnets.1.norm1": "Decoder.Chain_1.Chain_1.Resnet_2.Chain.GroupNorm_1",
"decoder.mid_block.resnets.1.norm2": "Decoder.Chain_1.Chain_1.Resnet_2.Chain.GroupNorm_2",
"decoder.up_blocks.0.resnets.0.norm1": "Decoder.Chain_1.Chain_2.Resnet_1.Chain.GroupNorm_1",
"decoder.up_blocks.0.resnets.0.norm2": "Decoder.Chain_1.Chain_2.Resnet_1.Chain.GroupNorm_2",
"decoder.up_blocks.0.resnets.1.norm1": "Decoder.Chain_1.Chain_2.Resnet_2.Chain.GroupNorm_1",
"decoder.up_blocks.0.resnets.1.norm2": "Decoder.Chain_1.Chain_2.Resnet_2.Chain.GroupNorm_2",
"decoder.up_blocks.0.resnets.2.norm1": "Decoder.Chain_1.Chain_2.Resnet_3.Chain.GroupNorm_1",
"decoder.up_blocks.0.resnets.2.norm2": "Decoder.Chain_1.Chain_2.Resnet_3.Chain.GroupNorm_2",
"decoder.up_blocks.1.resnets.0.norm1": "Decoder.Chain_1.Chain_3.Resnet_1.Chain.GroupNorm_1",
"decoder.up_blocks.1.resnets.0.norm2": "Decoder.Chain_1.Chain_3.Resnet_1.Chain.GroupNorm_2",
"decoder.up_blocks.1.resnets.1.norm1": "Decoder.Chain_1.Chain_3.Resnet_2.Chain.GroupNorm_1",
"decoder.up_blocks.1.resnets.1.norm2": "Decoder.Chain_1.Chain_3.Resnet_2.Chain.GroupNorm_2",
"decoder.up_blocks.1.resnets.2.norm1": "Decoder.Chain_1.Chain_3.Resnet_3.Chain.GroupNorm_1",
"decoder.up_blocks.1.resnets.2.norm2": "Decoder.Chain_1.Chain_3.Resnet_3.Chain.GroupNorm_2",
"decoder.up_blocks.2.resnets.0.norm1": "Decoder.Chain_1.Chain_4.Resnet_1.Chain.GroupNorm_1",
"encoder.down_blocks.2.resnets.0.conv2": "Encoder.Chain_1.Chain_3.Resnet_1.Chain.Conv2d_2",
"encoder.down_blocks.2.resnets.1.conv1": "Encoder.Chain_1.Chain_3.Resnet_2.Chain.Conv2d_1",
"encoder.down_blocks.2.resnets.1.conv2": "Encoder.Chain_1.Chain_3.Resnet_2.Chain.Conv2d_2",
"encoder.down_blocks.2.downsamplers.0.conv": "Encoder.Chain_1.Chain_3.Downsample.Conv2d",
"encoder.down_blocks.3.resnets.0.conv1": "Encoder.Chain_1.Chain_4.Resnet_1.Chain.Conv2d_1",
"encoder.down_blocks.3.resnets.0.conv2": "Encoder.Chain_1.Chain_4.Resnet_1.Chain.Conv2d_2",
"encoder.down_blocks.3.resnets.1.conv1": "Encoder.Chain_1.Chain_4.Resnet_2.Chain.Conv2d_1",
"encoder.down_blocks.3.resnets.1.conv2": "Encoder.Chain_1.Chain_4.Resnet_2.Chain.Conv2d_2",
"encoder.mid_block.resnets.0.conv1": "Encoder.Chain_1.Chain_5.Resnet_1.Chain.Conv2d_1",
"encoder.mid_block.resnets.0.conv2": "Encoder.Chain_1.Chain_5.Resnet_1.Chain.Conv2d_2",
"encoder.mid_block.resnets.1.conv1": "Encoder.Chain_1.Chain_5.Resnet_2.Chain.Conv2d_1",
"encoder.mid_block.resnets.1.conv2": "Encoder.Chain_1.Chain_5.Resnet_2.Chain.Conv2d_2",
"decoder.mid_block.resnets.0.conv1": "Decoder.Chain_1.Chain_1.Resnet_1.Chain.Conv2d_1",
"decoder.mid_block.resnets.0.conv2": "Decoder.Chain_1.Chain_1.Resnet_1.Chain.Conv2d_2",
"decoder.mid_block.resnets.1.conv1": "Decoder.Chain_1.Chain_1.Resnet_2.Chain.Conv2d_1",
"decoder.mid_block.resnets.1.conv2": "Decoder.Chain_1.Chain_1.Resnet_2.Chain.Conv2d_2",
"decoder.up_blocks.0.resnets.0.conv1": "Decoder.Chain_1.Chain_2.Resnet_1.Chain.Conv2d_1",
"decoder.up_blocks.0.resnets.0.conv2": "Decoder.Chain_1.Chain_2.Resnet_1.Chain.Conv2d_2",
"decoder.up_blocks.0.resnets.1.conv1": "Decoder.Chain_1.Chain_2.Resnet_2.Chain.Conv2d_1",
"decoder.up_blocks.0.resnets.1.conv2": "Decoder.Chain_1.Chain_2.Resnet_2.Chain.Conv2d_2",
"decoder.up_blocks.0.resnets.2.conv1": "Decoder.Chain_1.Chain_2.Resnet_3.Chain.Conv2d_1",
"decoder.up_blocks.0.resnets.2.conv2": "Decoder.Chain_1.Chain_2.Resnet_3.Chain.Conv2d_2",
"decoder.up_blocks.0.upsamplers.0.conv": "Decoder.Chain_1.Chain_2.Upsample.Conv2d",
"decoder.up_blocks.1.resnets.0.conv1": "Decoder.Chain_1.Chain_3.Resnet_1.Chain.Conv2d_1",
"decoder.up_blocks.1.resnets.0.conv2": "Decoder.Chain_1.Chain_3.Resnet_1.Chain.Conv2d_2",
"decoder.up_blocks.1.resnets.1.conv1": "Decoder.Chain_1.Chain_3.Resnet_2.Chain.Conv2d_1",
"decoder.up_blocks.1.resnets.1.conv2": "Decoder.Chain_1.Chain_3.Resnet_2.Chain.Conv2d_2",
"decoder.up_blocks.1.resnets.2.conv1": "Decoder.Chain_1.Chain_3.Resnet_3.Chain.Conv2d_1",
"decoder.up_blocks.1.resnets.2.conv2": "Decoder.Chain_1.Chain_3.Resnet_3.Chain.Conv2d_2",
"decoder.up_blocks.1.upsamplers.0.conv": "Decoder.Chain_1.Chain_3.Upsample.Conv2d",
"encoder.down_blocks.2.resnets.0.conv_shortcut": "Encoder.Chain_1.Chain_3.Resnet_1.Conv2d",
"encoder.mid_block.attentions.0.to_q": "Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Distribute.Linear_1",
"encoder.mid_block.attentions.0.to_k": "Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Distribute.Linear_2",
"encoder.mid_block.attentions.0.to_v": "Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Distribute.Linear_3",
"encoder.mid_block.attentions.0.to_out.0": "Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Linear",
"decoder.mid_block.attentions.0.to_q": "Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Distribute.Linear_1",
"decoder.mid_block.attentions.0.to_k": "Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Distribute.Linear_2",
"decoder.mid_block.attentions.0.to_v": "Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Distribute.Linear_3",
"decoder.mid_block.attentions.0.to_out.0": "Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Linear",
"encoder.conv_out": "Encoder.Chain_2.Conv2d",
"quant_conv": "Encoder.Chain_3.Conv2d",
"post_quant_conv": "Decoder.Conv2d_1",
"decoder.conv_in": "Decoder.Conv2d_2",
"decoder.up_blocks.2.resnets.0.conv1": "Decoder.Chain_1.Chain_4.Resnet_1.Chain.Conv2d_1",
"decoder.up_blocks.2.resnets.0.conv_shortcut": "Decoder.Chain_1.Chain_4.Resnet_1.Conv2d",
"decoder.up_blocks.3.resnets.0.conv1": "Decoder.Chain_1.Chain_5.Resnet_1.Chain.Conv2d_1",
"decoder.up_blocks.3.resnets.0.conv_shortcut": "Decoder.Chain_1.Chain_5.Resnet_1.Conv2d",
"decoder.conv_out": "Decoder.Chain_2.Conv2d"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {
"encoder.mid_block.attentions.0.value": "encoder.mid_block.attentions.0.to_v",
"decoder.mid_block.attentions.0.value": "decoder.mid_block.attentions.0.to_v",
"decoder.mid_block.attentions.0.proj_attn": "decoder.mid_block.attentions.0.to_out.0",
"encoder.mid_block.attentions.0.proj_attn": "encoder.mid_block.attentions.0.to_out.0",
"encoder.mid_block.attentions.0.key": "encoder.mid_block.attentions.0.to_k",
"decoder.mid_block.attentions.0.key": "decoder.mid_block.attentions.0.to_k",
"decoder.mid_block.attentions.0.query": "decoder.mid_block.attentions.0.to_q",
"encoder.mid_block.attentions.0.query": "encoder.mid_block.attentions.0.to_q"
},
"reshapes": {
"Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Distribute.Linear_1.weight": [
512,
512
],
"Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Distribute.Linear_2.weight": [
512,
512
],
"Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Distribute.Linear_3.weight": [
512,
512
],
"Encoder.Chain_1.Chain_5.Residual.SelfAttention2d.Linear.weight": [
512,
512
],
"Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Distribute.Linear_1.weight": [
512,
512
],
"Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Distribute.Linear_2.weight": [
512,
512
],
"Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Distribute.Linear_3.weight": [
512,
512
],
"Decoder.Chain_1.Chain_1.Residual.SelfAttention2d.Linear.weight": [
512,
512
]
}
}

@ -0,0 +1,199 @@
{
"name_map": {
"time_embedding.linear_1": "TimestepEncoder.RangeEncoder.Linear_1",
"time_embedding.linear_2": "TimestepEncoder.RangeEncoder.Linear_2",
"down_blocks.2.resnets.0.time_emb_proj": "DownBlocks.Chain_8.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.2.resnets.1.time_emb_proj": "DownBlocks.Chain_9.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.3.resnets.0.time_emb_proj": "DownBlocks.Chain_11.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.3.resnets.1.time_emb_proj": "DownBlocks.Chain_12.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"mid_block.resnets.0.time_emb_proj": "MiddleBlock.ResidualBlock_1.Chain.RangeAdapter2d.Chain.Linear",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_out.0": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_out.0": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"mid_block.resnets.1.time_emb_proj": "MiddleBlock.ResidualBlock_2.Chain.RangeAdapter2d.Chain.Linear",
"conv_in": "DownBlocks.Chain_1.Conv2d",
"controlnet_cond_embedding.conv_in": "DownBlocks.Chain_1.Residual.ConditionEncoder.Chain_1.Conv2d",
"controlnet_cond_embedding.blocks.0": "DownBlocks.Chain_1.Residual.ConditionEncoder.Chain_2.Conv2d_1",
"controlnet_cond_embedding.blocks.1": "DownBlocks.Chain_1.Residual.ConditionEncoder.Chain_2.Conv2d_2",
"controlnet_cond_embedding.blocks.2": "DownBlocks.Chain_1.Residual.ConditionEncoder.Chain_3.Conv2d_1",
"controlnet_cond_embedding.blocks.3": "DownBlocks.Chain_1.Residual.ConditionEncoder.Chain_3.Conv2d_2",
"controlnet_cond_embedding.blocks.4": "DownBlocks.Chain_1.Residual.ConditionEncoder.Chain_4.Conv2d_1",
"controlnet_cond_embedding.blocks.5": "DownBlocks.Chain_1.Residual.ConditionEncoder.Chain_4.Conv2d_2",
"controlnet_cond_embedding.conv_out": "DownBlocks.Chain_1.Residual.ConditionEncoder.Conv2d",
"down_blocks.0.resnets.0.norm1": "DownBlocks.Chain_2.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.0.resnets.0.norm2": "DownBlocks.Chain_2.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.0.attentions.0.norm": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.0.resnets.1.norm1": "DownBlocks.Chain_3.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.0.resnets.1.norm2": "DownBlocks.Chain_3.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.0.attentions.1.norm": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.1.resnets.0.norm1": "DownBlocks.Chain_5.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.0.resnets.0.conv1": "DownBlocks.Chain_2.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.0.resnets.0.conv2": "DownBlocks.Chain_2.ResidualBlock.Chain.Conv2d",
"down_blocks.0.resnets.1.conv1": "DownBlocks.Chain_3.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.0.resnets.1.conv2": "DownBlocks.Chain_3.ResidualBlock.Chain.Conv2d",
"down_blocks.0.downsamplers.0.conv": "DownBlocks.Chain_4.Downsample.Conv2d",
"down_blocks.0.resnets.0.time_emb_proj": "DownBlocks.Chain_2.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.0.attentions.0.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.0.resnets.1.time_emb_proj": "DownBlocks.Chain_3.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.0.attentions.1.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"controlnet_down_blocks.0": "DownBlocks.Chain_1.Passthrough.Conv2d",
"down_blocks.0.attentions.0.proj_in": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.0.attentions.0.proj_out": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_3.Conv2d",
"controlnet_down_blocks.1": "DownBlocks.Chain_2.Passthrough.Conv2d",
"down_blocks.0.attentions.1.proj_in": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.0.attentions.1.proj_out": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_3.Conv2d",
"controlnet_down_blocks.2": "DownBlocks.Chain_3.Passthrough.Conv2d",
"controlnet_down_blocks.3": "DownBlocks.Chain_4.Passthrough.Conv2d",
"down_blocks.0.attentions.0.transformer_blocks.0.norm1": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.0.attentions.0.transformer_blocks.0.norm2": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.0.attentions.0.transformer_blocks.0.norm3": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.0.attentions.1.transformer_blocks.0.norm1": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.0.attentions.1.transformer_blocks.0.norm2": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.0.attentions.1.transformer_blocks.0.norm3": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.0.attentions.0.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.0.attentions.1.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.1.resnets.0.conv1": "DownBlocks.Chain_5.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.1.resnets.0.time_emb_proj": "DownBlocks.Chain_5.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.1.resnets.1.time_emb_proj": "DownBlocks.Chain_6.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.1.resnets.0.norm2": "DownBlocks.Chain_5.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.1.attentions.0.norm": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.1.resnets.1.norm1": "DownBlocks.Chain_6.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.1.resnets.1.norm2": "DownBlocks.Chain_6.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.1.attentions.1.norm": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.2.resnets.0.norm1": "DownBlocks.Chain_8.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.1.resnets.0.conv2": "DownBlocks.Chain_5.ResidualBlock.Chain.Conv2d",
"down_blocks.1.resnets.1.conv1": "DownBlocks.Chain_6.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.1.resnets.1.conv2": "DownBlocks.Chain_6.ResidualBlock.Chain.Conv2d",
"down_blocks.1.downsamplers.0.conv": "DownBlocks.Chain_7.Downsample.Conv2d",
"down_blocks.1.resnets.0.conv_shortcut": "DownBlocks.Chain_5.ResidualBlock.Conv2d",
"down_blocks.1.attentions.0.proj_in": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.1.attentions.0.proj_out": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_3.Conv2d",
"controlnet_down_blocks.4": "DownBlocks.Chain_5.Passthrough.Conv2d",
"down_blocks.1.attentions.1.proj_in": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.1.attentions.1.proj_out": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_3.Conv2d",
"controlnet_down_blocks.5": "DownBlocks.Chain_6.Passthrough.Conv2d",
"controlnet_down_blocks.6": "DownBlocks.Chain_7.Passthrough.Conv2d",
"down_blocks.1.attentions.0.transformer_blocks.0.norm1": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.1.attentions.0.transformer_blocks.0.norm2": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.1.attentions.0.transformer_blocks.0.norm3": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.1.attentions.1.transformer_blocks.0.norm1": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.1.attentions.1.transformer_blocks.0.norm2": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.1.attentions.1.transformer_blocks.0.norm3": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.1.attentions.0.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.1.attentions.1.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.1.attentions.0.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.1.attentions.1.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.2.resnets.0.conv1": "DownBlocks.Chain_8.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.2.resnets.0.norm2": "DownBlocks.Chain_8.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.2.attentions.0.norm": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.2.resnets.1.norm1": "DownBlocks.Chain_9.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.2.resnets.1.norm2": "DownBlocks.Chain_9.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.2.attentions.1.norm": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.3.resnets.0.norm1": "DownBlocks.Chain_11.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.3.resnets.0.norm2": "DownBlocks.Chain_11.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.3.resnets.1.norm1": "DownBlocks.Chain_12.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.3.resnets.1.norm2": "DownBlocks.Chain_12.ResidualBlock.Chain.GroupNorm_2",
"mid_block.resnets.0.norm1": "MiddleBlock.ResidualBlock_1.Chain.GroupNorm_1",
"mid_block.resnets.0.norm2": "MiddleBlock.ResidualBlock_1.Chain.GroupNorm_2",
"mid_block.attentions.0.norm": "MiddleBlock.CLIPLCrossAttention.Chain_1.GroupNorm",
"mid_block.resnets.1.norm1": "MiddleBlock.ResidualBlock_2.Chain.GroupNorm_1",
"mid_block.resnets.1.norm2": "MiddleBlock.ResidualBlock_2.Chain.GroupNorm_2",
"down_blocks.2.resnets.0.conv2": "DownBlocks.Chain_8.ResidualBlock.Chain.Conv2d",
"down_blocks.2.resnets.1.conv1": "DownBlocks.Chain_9.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.2.resnets.1.conv2": "DownBlocks.Chain_9.ResidualBlock.Chain.Conv2d",
"down_blocks.2.downsamplers.0.conv": "DownBlocks.Chain_10.Downsample.Conv2d",
"down_blocks.3.resnets.0.conv1": "DownBlocks.Chain_11.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.3.resnets.0.conv2": "DownBlocks.Chain_11.ResidualBlock.Chain.Conv2d",
"down_blocks.3.resnets.1.conv1": "DownBlocks.Chain_12.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.3.resnets.1.conv2": "DownBlocks.Chain_12.ResidualBlock.Chain.Conv2d",
"mid_block.resnets.0.conv1": "MiddleBlock.ResidualBlock_1.Chain.RangeAdapter2d.Conv2d",
"mid_block.resnets.0.conv2": "MiddleBlock.ResidualBlock_1.Chain.Conv2d",
"mid_block.resnets.1.conv1": "MiddleBlock.ResidualBlock_2.Chain.RangeAdapter2d.Conv2d",
"mid_block.resnets.1.conv2": "MiddleBlock.ResidualBlock_2.Chain.Conv2d",
"down_blocks.2.resnets.0.conv_shortcut": "DownBlocks.Chain_8.ResidualBlock.Conv2d",
"down_blocks.2.attentions.0.proj_in": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.2.attentions.0.proj_out": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_3.Conv2d",
"controlnet_down_blocks.7": "DownBlocks.Chain_8.Passthrough.Conv2d",
"down_blocks.2.attentions.1.proj_in": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.2.attentions.1.proj_out": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_3.Conv2d",
"controlnet_down_blocks.8": "DownBlocks.Chain_9.Passthrough.Conv2d",
"controlnet_down_blocks.9": "DownBlocks.Chain_10.Passthrough.Conv2d",
"controlnet_down_blocks.10": "DownBlocks.Chain_11.Passthrough.Conv2d",
"controlnet_down_blocks.11": "DownBlocks.Chain_12.Passthrough.Conv2d",
"mid_block.attentions.0.proj_in": "MiddleBlock.CLIPLCrossAttention.Chain_1.Conv2d",
"mid_block.attentions.0.proj_out": "MiddleBlock.CLIPLCrossAttention.Chain_3.Conv2d",
"controlnet_mid_block": "MiddleBlock.Passthrough.Conv2d",
"down_blocks.2.attentions.0.transformer_blocks.0.norm1": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.2.attentions.0.transformer_blocks.0.norm2": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.2.attentions.0.transformer_blocks.0.norm3": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.2.attentions.1.transformer_blocks.0.norm1": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.2.attentions.1.transformer_blocks.0.norm2": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.2.attentions.1.transformer_blocks.0.norm3": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"mid_block.attentions.0.transformer_blocks.0.norm1": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"mid_block.attentions.0.transformer_blocks.0.norm2": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"mid_block.attentions.0.transformer_blocks.0.norm3": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_q": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_k": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_v": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_q": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_k": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_v": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.2.attentions.0.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.2.attentions.1.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"mid_block.attentions.0.transformer_blocks.0.ff.net.0.proj": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.2.attentions.0.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.2.attentions.1.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"mid_block.attentions.0.transformer_blocks.0.ff.net.2": "MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -0,0 +1,44 @@
{
"name_map": {
"image_proj.proj.weight": "image_proj.Linear.weight",
"image_proj.proj.bias": "image_proj.Linear.bias",
"image_proj.norm.weight": "image_proj.LayerNorm.weight",
"image_proj.norm.bias": "image_proj.LayerNorm.bias",
"ip_adapter.1.to_k_ip.weight": "ip_adapter.000.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.1.to_v_ip.weight": "ip_adapter.000.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.3.to_k_ip.weight": "ip_adapter.001.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.3.to_v_ip.weight": "ip_adapter.001.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.5.to_k_ip.weight": "ip_adapter.002.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.5.to_v_ip.weight": "ip_adapter.002.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.7.to_k_ip.weight": "ip_adapter.003.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.7.to_v_ip.weight": "ip_adapter.003.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.9.to_k_ip.weight": "ip_adapter.004.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.9.to_v_ip.weight": "ip_adapter.004.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.11.to_k_ip.weight": "ip_adapter.005.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.11.to_v_ip.weight": "ip_adapter.005.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.31.to_k_ip.weight": "ip_adapter.006.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.31.to_v_ip.weight": "ip_adapter.006.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.13.to_k_ip.weight": "ip_adapter.007.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.13.to_v_ip.weight": "ip_adapter.007.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.15.to_k_ip.weight": "ip_adapter.008.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.15.to_v_ip.weight": "ip_adapter.008.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.17.to_k_ip.weight": "ip_adapter.009.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.17.to_v_ip.weight": "ip_adapter.009.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.19.to_k_ip.weight": "ip_adapter.010.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.19.to_v_ip.weight": "ip_adapter.010.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.21.to_k_ip.weight": "ip_adapter.011.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.21.to_v_ip.weight": "ip_adapter.011.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.23.to_k_ip.weight": "ip_adapter.012.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.23.to_v_ip.weight": "ip_adapter.012.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.25.to_k_ip.weight": "ip_adapter.013.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.25.to_v_ip.weight": "ip_adapter.013.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.27.to_k_ip.weight": "ip_adapter.014.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.27.to_v_ip.weight": "ip_adapter.014.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.29.to_k_ip.weight": "ip_adapter.015.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.29.to_v_ip.weight": "ip_adapter.015.Distribute.Parallel_2.Chain_2.Linear.weight"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -0,0 +1,152 @@
{
"name_map": {
"image_proj.proj.weight": "image_proj.Linear.weight",
"image_proj.proj.bias": "image_proj.Linear.bias",
"image_proj.norm.weight": "image_proj.LayerNorm.weight",
"image_proj.norm.bias": "image_proj.LayerNorm.bias",
"ip_adapter.1.to_k_ip.weight": "ip_adapter.000.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.1.to_v_ip.weight": "ip_adapter.000.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.3.to_k_ip.weight": "ip_adapter.001.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.3.to_v_ip.weight": "ip_adapter.001.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.5.to_k_ip.weight": "ip_adapter.002.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.5.to_v_ip.weight": "ip_adapter.002.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.7.to_k_ip.weight": "ip_adapter.003.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.7.to_v_ip.weight": "ip_adapter.003.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.9.to_k_ip.weight": "ip_adapter.004.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.9.to_v_ip.weight": "ip_adapter.004.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.11.to_k_ip.weight": "ip_adapter.005.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.11.to_v_ip.weight": "ip_adapter.005.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.13.to_k_ip.weight": "ip_adapter.006.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.13.to_v_ip.weight": "ip_adapter.006.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.15.to_k_ip.weight": "ip_adapter.007.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.15.to_v_ip.weight": "ip_adapter.007.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.17.to_k_ip.weight": "ip_adapter.008.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.17.to_v_ip.weight": "ip_adapter.008.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.19.to_k_ip.weight": "ip_adapter.009.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.19.to_v_ip.weight": "ip_adapter.009.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.21.to_k_ip.weight": "ip_adapter.010.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.21.to_v_ip.weight": "ip_adapter.010.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.23.to_k_ip.weight": "ip_adapter.011.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.23.to_v_ip.weight": "ip_adapter.011.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.25.to_k_ip.weight": "ip_adapter.012.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.25.to_v_ip.weight": "ip_adapter.012.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.27.to_k_ip.weight": "ip_adapter.013.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.27.to_v_ip.weight": "ip_adapter.013.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.29.to_k_ip.weight": "ip_adapter.014.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.29.to_v_ip.weight": "ip_adapter.014.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.31.to_k_ip.weight": "ip_adapter.015.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.31.to_v_ip.weight": "ip_adapter.015.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.33.to_k_ip.weight": "ip_adapter.016.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.33.to_v_ip.weight": "ip_adapter.016.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.35.to_k_ip.weight": "ip_adapter.017.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.35.to_v_ip.weight": "ip_adapter.017.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.37.to_k_ip.weight": "ip_adapter.018.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.37.to_v_ip.weight": "ip_adapter.018.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.39.to_k_ip.weight": "ip_adapter.019.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.39.to_v_ip.weight": "ip_adapter.019.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.41.to_k_ip.weight": "ip_adapter.020.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.41.to_v_ip.weight": "ip_adapter.020.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.43.to_k_ip.weight": "ip_adapter.021.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.43.to_v_ip.weight": "ip_adapter.021.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.45.to_k_ip.weight": "ip_adapter.022.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.45.to_v_ip.weight": "ip_adapter.022.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.47.to_k_ip.weight": "ip_adapter.023.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.47.to_v_ip.weight": "ip_adapter.023.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.121.to_k_ip.weight": "ip_adapter.024.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.121.to_v_ip.weight": "ip_adapter.024.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.123.to_k_ip.weight": "ip_adapter.025.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.123.to_v_ip.weight": "ip_adapter.025.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.125.to_k_ip.weight": "ip_adapter.026.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.125.to_v_ip.weight": "ip_adapter.026.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.127.to_k_ip.weight": "ip_adapter.027.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.127.to_v_ip.weight": "ip_adapter.027.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.129.to_k_ip.weight": "ip_adapter.028.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.129.to_v_ip.weight": "ip_adapter.028.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.131.to_k_ip.weight": "ip_adapter.029.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.131.to_v_ip.weight": "ip_adapter.029.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.133.to_k_ip.weight": "ip_adapter.030.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.133.to_v_ip.weight": "ip_adapter.030.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.135.to_k_ip.weight": "ip_adapter.031.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.135.to_v_ip.weight": "ip_adapter.031.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.137.to_k_ip.weight": "ip_adapter.032.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.137.to_v_ip.weight": "ip_adapter.032.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.139.to_k_ip.weight": "ip_adapter.033.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.139.to_v_ip.weight": "ip_adapter.033.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.49.to_k_ip.weight": "ip_adapter.034.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.49.to_v_ip.weight": "ip_adapter.034.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.51.to_k_ip.weight": "ip_adapter.035.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.51.to_v_ip.weight": "ip_adapter.035.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.53.to_k_ip.weight": "ip_adapter.036.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.53.to_v_ip.weight": "ip_adapter.036.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.55.to_k_ip.weight": "ip_adapter.037.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.55.to_v_ip.weight": "ip_adapter.037.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.57.to_k_ip.weight": "ip_adapter.038.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.57.to_v_ip.weight": "ip_adapter.038.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.59.to_k_ip.weight": "ip_adapter.039.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.59.to_v_ip.weight": "ip_adapter.039.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.61.to_k_ip.weight": "ip_adapter.040.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.61.to_v_ip.weight": "ip_adapter.040.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.63.to_k_ip.weight": "ip_adapter.041.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.63.to_v_ip.weight": "ip_adapter.041.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.65.to_k_ip.weight": "ip_adapter.042.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.65.to_v_ip.weight": "ip_adapter.042.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.67.to_k_ip.weight": "ip_adapter.043.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.67.to_v_ip.weight": "ip_adapter.043.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.69.to_k_ip.weight": "ip_adapter.044.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.69.to_v_ip.weight": "ip_adapter.044.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.71.to_k_ip.weight": "ip_adapter.045.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.71.to_v_ip.weight": "ip_adapter.045.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.73.to_k_ip.weight": "ip_adapter.046.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.73.to_v_ip.weight": "ip_adapter.046.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.75.to_k_ip.weight": "ip_adapter.047.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.75.to_v_ip.weight": "ip_adapter.047.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.77.to_k_ip.weight": "ip_adapter.048.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.77.to_v_ip.weight": "ip_adapter.048.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.79.to_k_ip.weight": "ip_adapter.049.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.79.to_v_ip.weight": "ip_adapter.049.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.81.to_k_ip.weight": "ip_adapter.050.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.81.to_v_ip.weight": "ip_adapter.050.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.83.to_k_ip.weight": "ip_adapter.051.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.83.to_v_ip.weight": "ip_adapter.051.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.85.to_k_ip.weight": "ip_adapter.052.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.85.to_v_ip.weight": "ip_adapter.052.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.87.to_k_ip.weight": "ip_adapter.053.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.87.to_v_ip.weight": "ip_adapter.053.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.89.to_k_ip.weight": "ip_adapter.054.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.89.to_v_ip.weight": "ip_adapter.054.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.91.to_k_ip.weight": "ip_adapter.055.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.91.to_v_ip.weight": "ip_adapter.055.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.93.to_k_ip.weight": "ip_adapter.056.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.93.to_v_ip.weight": "ip_adapter.056.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.95.to_k_ip.weight": "ip_adapter.057.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.95.to_v_ip.weight": "ip_adapter.057.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.97.to_k_ip.weight": "ip_adapter.058.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.97.to_v_ip.weight": "ip_adapter.058.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.99.to_k_ip.weight": "ip_adapter.059.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.99.to_v_ip.weight": "ip_adapter.059.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.101.to_k_ip.weight": "ip_adapter.060.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.101.to_v_ip.weight": "ip_adapter.060.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.103.to_k_ip.weight": "ip_adapter.061.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.103.to_v_ip.weight": "ip_adapter.061.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.105.to_k_ip.weight": "ip_adapter.062.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.105.to_v_ip.weight": "ip_adapter.062.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.107.to_k_ip.weight": "ip_adapter.063.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.107.to_v_ip.weight": "ip_adapter.063.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.109.to_k_ip.weight": "ip_adapter.064.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.109.to_v_ip.weight": "ip_adapter.064.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.111.to_k_ip.weight": "ip_adapter.065.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.111.to_v_ip.weight": "ip_adapter.065.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.113.to_k_ip.weight": "ip_adapter.066.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.113.to_v_ip.weight": "ip_adapter.066.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.115.to_k_ip.weight": "ip_adapter.067.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.115.to_v_ip.weight": "ip_adapter.067.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.117.to_k_ip.weight": "ip_adapter.068.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.117.to_v_ip.weight": "ip_adapter.068.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.119.to_k_ip.weight": "ip_adapter.069.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.119.to_v_ip.weight": "ip_adapter.069.Distribute.Parallel_2.Chain_2.Linear.weight"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -0,0 +1,96 @@
{
"name_map": {
"image_proj.latents": "image_proj.LatentsToken.Parameter.weight",
"image_proj.proj_in.weight": "image_proj.Linear_1.weight",
"image_proj.proj_in.bias": "image_proj.Linear_1.bias",
"image_proj.proj_out.weight": "image_proj.Linear_2.weight",
"image_proj.proj_out.bias": "image_proj.Linear_2.bias",
"image_proj.norm_out.weight": "image_proj.LayerNorm.weight",
"image_proj.norm_out.bias": "image_proj.LayerNorm.bias",
"image_proj.layers.0.0.norm1.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.0.0.norm1.bias": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.0.0.norm2.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.0.0.norm2.bias": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.0.0.to_q.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.0.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.0.0.to_out.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.0.1.0.weight": "image_proj.Transformer.TransformerLayer_1.Residual_2.LayerNorm.weight",
"image_proj.layers.0.1.0.bias": "image_proj.Transformer.TransformerLayer_1.Residual_2.LayerNorm.bias",
"image_proj.layers.0.1.1.weight": "image_proj.Transformer.TransformerLayer_1.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.0.1.3.weight": "image_proj.Transformer.TransformerLayer_1.Residual_2.FeedForward.Linear_2.weight",
"image_proj.layers.1.0.norm1.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.1.0.norm1.bias": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.1.0.norm2.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.1.0.norm2.bias": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.1.0.to_q.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.1.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.1.0.to_out.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.1.1.0.weight": "image_proj.Transformer.TransformerLayer_2.Residual_2.LayerNorm.weight",
"image_proj.layers.1.1.0.bias": "image_proj.Transformer.TransformerLayer_2.Residual_2.LayerNorm.bias",
"image_proj.layers.1.1.1.weight": "image_proj.Transformer.TransformerLayer_2.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.1.1.3.weight": "image_proj.Transformer.TransformerLayer_2.Residual_2.FeedForward.Linear_2.weight",
"image_proj.layers.2.0.norm1.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.2.0.norm1.bias": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.2.0.norm2.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.2.0.norm2.bias": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.2.0.to_q.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.2.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.2.0.to_out.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.2.1.0.weight": "image_proj.Transformer.TransformerLayer_3.Residual_2.LayerNorm.weight",
"image_proj.layers.2.1.0.bias": "image_proj.Transformer.TransformerLayer_3.Residual_2.LayerNorm.bias",
"image_proj.layers.2.1.1.weight": "image_proj.Transformer.TransformerLayer_3.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.2.1.3.weight": "image_proj.Transformer.TransformerLayer_3.Residual_2.FeedForward.Linear_2.weight",
"image_proj.layers.3.0.norm1.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.3.0.norm1.bias": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.3.0.norm2.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.3.0.norm2.bias": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.3.0.to_q.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.3.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.3.0.to_out.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.3.1.0.weight": "image_proj.Transformer.TransformerLayer_4.Residual_2.LayerNorm.weight",
"image_proj.layers.3.1.0.bias": "image_proj.Transformer.TransformerLayer_4.Residual_2.LayerNorm.bias",
"image_proj.layers.3.1.1.weight": "image_proj.Transformer.TransformerLayer_4.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.3.1.3.weight": "image_proj.Transformer.TransformerLayer_4.Residual_2.FeedForward.Linear_2.weight",
"ip_adapter.1.to_k_ip.weight": "ip_adapter.000.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.1.to_v_ip.weight": "ip_adapter.000.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.3.to_k_ip.weight": "ip_adapter.001.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.3.to_v_ip.weight": "ip_adapter.001.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.5.to_k_ip.weight": "ip_adapter.002.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.5.to_v_ip.weight": "ip_adapter.002.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.7.to_k_ip.weight": "ip_adapter.003.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.7.to_v_ip.weight": "ip_adapter.003.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.9.to_k_ip.weight": "ip_adapter.004.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.9.to_v_ip.weight": "ip_adapter.004.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.11.to_k_ip.weight": "ip_adapter.005.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.11.to_v_ip.weight": "ip_adapter.005.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.31.to_k_ip.weight": "ip_adapter.006.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.31.to_v_ip.weight": "ip_adapter.006.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.13.to_k_ip.weight": "ip_adapter.007.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.13.to_v_ip.weight": "ip_adapter.007.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.15.to_k_ip.weight": "ip_adapter.008.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.15.to_v_ip.weight": "ip_adapter.008.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.17.to_k_ip.weight": "ip_adapter.009.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.17.to_v_ip.weight": "ip_adapter.009.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.19.to_k_ip.weight": "ip_adapter.010.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.19.to_v_ip.weight": "ip_adapter.010.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.21.to_k_ip.weight": "ip_adapter.011.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.21.to_v_ip.weight": "ip_adapter.011.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.23.to_k_ip.weight": "ip_adapter.012.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.23.to_v_ip.weight": "ip_adapter.012.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.25.to_k_ip.weight": "ip_adapter.013.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.25.to_v_ip.weight": "ip_adapter.013.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.27.to_k_ip.weight": "ip_adapter.014.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.27.to_v_ip.weight": "ip_adapter.014.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.29.to_k_ip.weight": "ip_adapter.015.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.29.to_v_ip.weight": "ip_adapter.015.Distribute.Parallel_2.Chain_2.Linear.weight"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {
"image_proj.LatentsToken.Parameter.weight": [
16,
768
]
}
}

@ -0,0 +1,204 @@
{
"name_map": {
"image_proj.latents": "image_proj.LatentsToken.Parameter.weight",
"image_proj.proj_in.weight": "image_proj.Linear_1.weight",
"image_proj.proj_in.bias": "image_proj.Linear_1.bias",
"image_proj.proj_out.weight": "image_proj.Linear_2.weight",
"image_proj.proj_out.bias": "image_proj.Linear_2.bias",
"image_proj.norm_out.weight": "image_proj.LayerNorm.weight",
"image_proj.norm_out.bias": "image_proj.LayerNorm.bias",
"image_proj.layers.0.0.norm1.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.0.0.norm1.bias": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.0.0.norm2.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.0.0.norm2.bias": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.0.0.to_q.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.0.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.0.0.to_out.weight": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.0.1.0.weight": "image_proj.Transformer.TransformerLayer_1.Residual_2.LayerNorm.weight",
"image_proj.layers.0.1.0.bias": "image_proj.Transformer.TransformerLayer_1.Residual_2.LayerNorm.bias",
"image_proj.layers.0.1.1.weight": "image_proj.Transformer.TransformerLayer_1.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.0.1.3.weight": "image_proj.Transformer.TransformerLayer_1.Residual_2.FeedForward.Linear_2.weight",
"image_proj.layers.1.0.norm1.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.1.0.norm1.bias": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.1.0.norm2.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.1.0.norm2.bias": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.1.0.to_q.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.1.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.1.0.to_out.weight": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.1.1.0.weight": "image_proj.Transformer.TransformerLayer_2.Residual_2.LayerNorm.weight",
"image_proj.layers.1.1.0.bias": "image_proj.Transformer.TransformerLayer_2.Residual_2.LayerNorm.bias",
"image_proj.layers.1.1.1.weight": "image_proj.Transformer.TransformerLayer_2.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.1.1.3.weight": "image_proj.Transformer.TransformerLayer_2.Residual_2.FeedForward.Linear_2.weight",
"image_proj.layers.2.0.norm1.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.2.0.norm1.bias": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.2.0.norm2.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.2.0.norm2.bias": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.2.0.to_q.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.2.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.2.0.to_out.weight": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.2.1.0.weight": "image_proj.Transformer.TransformerLayer_3.Residual_2.LayerNorm.weight",
"image_proj.layers.2.1.0.bias": "image_proj.Transformer.TransformerLayer_3.Residual_2.LayerNorm.bias",
"image_proj.layers.2.1.1.weight": "image_proj.Transformer.TransformerLayer_3.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.2.1.3.weight": "image_proj.Transformer.TransformerLayer_3.Residual_2.FeedForward.Linear_2.weight",
"image_proj.layers.3.0.norm1.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.weight",
"image_proj.layers.3.0.norm1.bias": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_1.bias",
"image_proj.layers.3.0.norm2.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.weight",
"image_proj.layers.3.0.norm2.bias": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_2.bias",
"image_proj.layers.3.0.to_q.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear.weight",
"image_proj.layers.3.0.to_kv.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear.weight",
"image_proj.layers.3.0.to_out.weight": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Linear.weight",
"image_proj.layers.3.1.0.weight": "image_proj.Transformer.TransformerLayer_4.Residual_2.LayerNorm.weight",
"image_proj.layers.3.1.0.bias": "image_proj.Transformer.TransformerLayer_4.Residual_2.LayerNorm.bias",
"image_proj.layers.3.1.1.weight": "image_proj.Transformer.TransformerLayer_4.Residual_2.FeedForward.Linear_1.weight",
"image_proj.layers.3.1.3.weight": "image_proj.Transformer.TransformerLayer_4.Residual_2.FeedForward.Linear_2.weight",
"ip_adapter.1.to_k_ip.weight": "ip_adapter.000.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.1.to_v_ip.weight": "ip_adapter.000.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.3.to_k_ip.weight": "ip_adapter.001.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.3.to_v_ip.weight": "ip_adapter.001.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.5.to_k_ip.weight": "ip_adapter.002.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.5.to_v_ip.weight": "ip_adapter.002.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.7.to_k_ip.weight": "ip_adapter.003.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.7.to_v_ip.weight": "ip_adapter.003.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.9.to_k_ip.weight": "ip_adapter.004.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.9.to_v_ip.weight": "ip_adapter.004.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.11.to_k_ip.weight": "ip_adapter.005.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.11.to_v_ip.weight": "ip_adapter.005.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.13.to_k_ip.weight": "ip_adapter.006.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.13.to_v_ip.weight": "ip_adapter.006.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.15.to_k_ip.weight": "ip_adapter.007.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.15.to_v_ip.weight": "ip_adapter.007.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.17.to_k_ip.weight": "ip_adapter.008.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.17.to_v_ip.weight": "ip_adapter.008.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.19.to_k_ip.weight": "ip_adapter.009.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.19.to_v_ip.weight": "ip_adapter.009.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.21.to_k_ip.weight": "ip_adapter.010.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.21.to_v_ip.weight": "ip_adapter.010.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.23.to_k_ip.weight": "ip_adapter.011.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.23.to_v_ip.weight": "ip_adapter.011.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.25.to_k_ip.weight": "ip_adapter.012.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.25.to_v_ip.weight": "ip_adapter.012.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.27.to_k_ip.weight": "ip_adapter.013.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.27.to_v_ip.weight": "ip_adapter.013.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.29.to_k_ip.weight": "ip_adapter.014.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.29.to_v_ip.weight": "ip_adapter.014.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.31.to_k_ip.weight": "ip_adapter.015.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.31.to_v_ip.weight": "ip_adapter.015.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.33.to_k_ip.weight": "ip_adapter.016.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.33.to_v_ip.weight": "ip_adapter.016.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.35.to_k_ip.weight": "ip_adapter.017.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.35.to_v_ip.weight": "ip_adapter.017.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.37.to_k_ip.weight": "ip_adapter.018.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.37.to_v_ip.weight": "ip_adapter.018.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.39.to_k_ip.weight": "ip_adapter.019.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.39.to_v_ip.weight": "ip_adapter.019.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.41.to_k_ip.weight": "ip_adapter.020.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.41.to_v_ip.weight": "ip_adapter.020.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.43.to_k_ip.weight": "ip_adapter.021.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.43.to_v_ip.weight": "ip_adapter.021.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.45.to_k_ip.weight": "ip_adapter.022.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.45.to_v_ip.weight": "ip_adapter.022.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.47.to_k_ip.weight": "ip_adapter.023.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.47.to_v_ip.weight": "ip_adapter.023.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.121.to_k_ip.weight": "ip_adapter.024.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.121.to_v_ip.weight": "ip_adapter.024.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.123.to_k_ip.weight": "ip_adapter.025.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.123.to_v_ip.weight": "ip_adapter.025.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.125.to_k_ip.weight": "ip_adapter.026.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.125.to_v_ip.weight": "ip_adapter.026.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.127.to_k_ip.weight": "ip_adapter.027.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.127.to_v_ip.weight": "ip_adapter.027.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.129.to_k_ip.weight": "ip_adapter.028.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.129.to_v_ip.weight": "ip_adapter.028.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.131.to_k_ip.weight": "ip_adapter.029.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.131.to_v_ip.weight": "ip_adapter.029.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.133.to_k_ip.weight": "ip_adapter.030.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.133.to_v_ip.weight": "ip_adapter.030.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.135.to_k_ip.weight": "ip_adapter.031.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.135.to_v_ip.weight": "ip_adapter.031.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.137.to_k_ip.weight": "ip_adapter.032.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.137.to_v_ip.weight": "ip_adapter.032.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.139.to_k_ip.weight": "ip_adapter.033.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.139.to_v_ip.weight": "ip_adapter.033.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.49.to_k_ip.weight": "ip_adapter.034.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.49.to_v_ip.weight": "ip_adapter.034.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.51.to_k_ip.weight": "ip_adapter.035.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.51.to_v_ip.weight": "ip_adapter.035.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.53.to_k_ip.weight": "ip_adapter.036.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.53.to_v_ip.weight": "ip_adapter.036.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.55.to_k_ip.weight": "ip_adapter.037.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.55.to_v_ip.weight": "ip_adapter.037.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.57.to_k_ip.weight": "ip_adapter.038.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.57.to_v_ip.weight": "ip_adapter.038.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.59.to_k_ip.weight": "ip_adapter.039.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.59.to_v_ip.weight": "ip_adapter.039.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.61.to_k_ip.weight": "ip_adapter.040.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.61.to_v_ip.weight": "ip_adapter.040.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.63.to_k_ip.weight": "ip_adapter.041.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.63.to_v_ip.weight": "ip_adapter.041.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.65.to_k_ip.weight": "ip_adapter.042.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.65.to_v_ip.weight": "ip_adapter.042.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.67.to_k_ip.weight": "ip_adapter.043.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.67.to_v_ip.weight": "ip_adapter.043.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.69.to_k_ip.weight": "ip_adapter.044.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.69.to_v_ip.weight": "ip_adapter.044.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.71.to_k_ip.weight": "ip_adapter.045.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.71.to_v_ip.weight": "ip_adapter.045.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.73.to_k_ip.weight": "ip_adapter.046.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.73.to_v_ip.weight": "ip_adapter.046.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.75.to_k_ip.weight": "ip_adapter.047.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.75.to_v_ip.weight": "ip_adapter.047.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.77.to_k_ip.weight": "ip_adapter.048.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.77.to_v_ip.weight": "ip_adapter.048.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.79.to_k_ip.weight": "ip_adapter.049.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.79.to_v_ip.weight": "ip_adapter.049.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.81.to_k_ip.weight": "ip_adapter.050.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.81.to_v_ip.weight": "ip_adapter.050.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.83.to_k_ip.weight": "ip_adapter.051.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.83.to_v_ip.weight": "ip_adapter.051.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.85.to_k_ip.weight": "ip_adapter.052.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.85.to_v_ip.weight": "ip_adapter.052.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.87.to_k_ip.weight": "ip_adapter.053.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.87.to_v_ip.weight": "ip_adapter.053.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.89.to_k_ip.weight": "ip_adapter.054.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.89.to_v_ip.weight": "ip_adapter.054.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.91.to_k_ip.weight": "ip_adapter.055.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.91.to_v_ip.weight": "ip_adapter.055.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.93.to_k_ip.weight": "ip_adapter.056.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.93.to_v_ip.weight": "ip_adapter.056.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.95.to_k_ip.weight": "ip_adapter.057.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.95.to_v_ip.weight": "ip_adapter.057.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.97.to_k_ip.weight": "ip_adapter.058.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.97.to_v_ip.weight": "ip_adapter.058.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.99.to_k_ip.weight": "ip_adapter.059.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.99.to_v_ip.weight": "ip_adapter.059.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.101.to_k_ip.weight": "ip_adapter.060.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.101.to_v_ip.weight": "ip_adapter.060.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.103.to_k_ip.weight": "ip_adapter.061.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.103.to_v_ip.weight": "ip_adapter.061.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.105.to_k_ip.weight": "ip_adapter.062.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.105.to_v_ip.weight": "ip_adapter.062.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.107.to_k_ip.weight": "ip_adapter.063.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.107.to_v_ip.weight": "ip_adapter.063.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.109.to_k_ip.weight": "ip_adapter.064.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.109.to_v_ip.weight": "ip_adapter.064.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.111.to_k_ip.weight": "ip_adapter.065.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.111.to_v_ip.weight": "ip_adapter.065.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.113.to_k_ip.weight": "ip_adapter.066.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.113.to_v_ip.weight": "ip_adapter.066.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.115.to_k_ip.weight": "ip_adapter.067.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.115.to_v_ip.weight": "ip_adapter.067.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.117.to_k_ip.weight": "ip_adapter.068.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.117.to_v_ip.weight": "ip_adapter.068.Distribute.Parallel_2.Chain_2.Linear.weight",
"ip_adapter.119.to_k_ip.weight": "ip_adapter.069.Distribute.Parallel_1.Chain_2.Linear.weight",
"ip_adapter.119.to_v_ip.weight": "ip_adapter.069.Distribute.Parallel_2.Chain_2.Linear.weight"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {
"image_proj.LatentsToken.Parameter.weight": [
16,
1280
]
}
}

@ -0,0 +1,30 @@
{
"name_map": {
"adapter.conv_in": "Conv2d",
"adapter.body.0.resnets.0.block1": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.0.resnets.1.block1": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.0.resnets.0.block2": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.0.resnets.1.block2": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2",
"adapter.body.1.downsample": "StatefulResidualBlocks_2.ResidualBlocks.Downsample2d",
"adapter.body.2.downsample": "StatefulResidualBlocks_3.ResidualBlocks.Downsample2d",
"adapter.body.3.downsample": "StatefulResidualBlocks_4.ResidualBlocks.Downsample2d",
"adapter.body.1.in_conv": "StatefulResidualBlocks_2.ResidualBlocks.Conv2d",
"adapter.body.1.resnets.0.block1": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.1.resnets.1.block1": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.1.resnets.0.block2": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.1.resnets.1.block2": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2",
"adapter.body.2.in_conv": "StatefulResidualBlocks_3.ResidualBlocks.Conv2d",
"adapter.body.2.resnets.0.block1": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.2.resnets.1.block1": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.3.resnets.0.block1": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.3.resnets.1.block1": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.2.resnets.0.block2": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.2.resnets.1.block2": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2",
"adapter.body.3.resnets.0.block2": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.3.resnets.1.block2": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -0,0 +1,28 @@
{
"name_map": {
"adapter.conv_in": "Conv2d",
"adapter.body.0.resnets.0.block1": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.0.resnets.1.block1": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.0.resnets.0.block2": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.0.resnets.1.block2": "StatefulResidualBlocks_1.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2",
"adapter.body.1.in_conv": "StatefulResidualBlocks_2.ResidualBlocks.Conv2d",
"adapter.body.1.resnets.0.block1": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.1.resnets.1.block1": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.1.resnets.0.block2": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.1.resnets.1.block2": "StatefulResidualBlocks_2.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2",
"adapter.body.2.downsample": "StatefulResidualBlocks_3.ResidualBlocks.Downsample2d",
"adapter.body.2.in_conv": "StatefulResidualBlocks_3.ResidualBlocks.Conv2d",
"adapter.body.2.resnets.0.block1": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.2.resnets.1.block1": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.3.resnets.0.block1": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_1",
"adapter.body.3.resnets.1.block1": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_1",
"adapter.body.2.resnets.0.block2": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.2.resnets.1.block2": "StatefulResidualBlocks_3.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2",
"adapter.body.3.resnets.0.block2": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_1.Conv2d_2",
"adapter.body.3.resnets.1.block2": "StatefulResidualBlocks_4.ResidualBlocks.Chain.ResidualBlock_2.Conv2d_2"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -0,0 +1,399 @@
{
"name_map": {
"time_embedding.linear_1": "TimestepEncoder.RangeEncoder.Linear_1",
"time_embedding.linear_2": "TimestepEncoder.RangeEncoder.Linear_2",
"down_blocks.2.resnets.0.time_emb_proj": "DownBlocks.Chain_8.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.2.resnets.1.time_emb_proj": "DownBlocks.Chain_9.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.3.resnets.0.time_emb_proj": "DownBlocks.Chain_11.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.3.resnets.1.time_emb_proj": "DownBlocks.Chain_12.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"mid_block.resnets.0.time_emb_proj": "Sum.MiddleBlock.ResidualBlock_1.Chain.RangeAdapter2d.Chain.Linear",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_out.0": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_out.0": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"mid_block.resnets.1.time_emb_proj": "Sum.MiddleBlock.ResidualBlock_2.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.0.resnets.0.time_emb_proj": "UpBlocks.Chain_1.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.0.resnets.1.time_emb_proj": "UpBlocks.Chain_2.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.0.resnets.2.time_emb_proj": "UpBlocks.Chain_3.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.1.resnets.0.time_emb_proj": "UpBlocks.Chain_4.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.1.attentions.0.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.1.attentions.0.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.1.resnets.1.time_emb_proj": "UpBlocks.Chain_5.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.1.attentions.1.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.1.attentions.1.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.1.resnets.2.time_emb_proj": "UpBlocks.Chain_6.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.1.attentions.2.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.1.attentions.2.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"conv_in": "DownBlocks.Chain_1.Conv2d",
"down_blocks.0.resnets.0.norm1": "DownBlocks.Chain_2.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.0.resnets.0.norm2": "DownBlocks.Chain_2.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.0.attentions.0.norm": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.0.resnets.1.norm1": "DownBlocks.Chain_3.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.0.resnets.1.norm2": "DownBlocks.Chain_3.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.0.attentions.1.norm": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.1.resnets.0.norm1": "DownBlocks.Chain_5.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.3.resnets.0.norm2": "UpBlocks.Chain_10.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.3.attentions.0.norm": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.3.resnets.1.norm2": "UpBlocks.Chain_11.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.3.attentions.1.norm": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.3.resnets.2.norm2": "UpBlocks.Chain_12.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.3.attentions.2.norm": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_1.GroupNorm",
"conv_norm_out": "Chain.GroupNorm",
"down_blocks.0.resnets.0.conv1": "DownBlocks.Chain_2.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.0.resnets.0.conv2": "DownBlocks.Chain_2.ResidualBlock.Chain.Conv2d",
"down_blocks.0.resnets.1.conv1": "DownBlocks.Chain_3.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.0.resnets.1.conv2": "DownBlocks.Chain_3.ResidualBlock.Chain.Conv2d",
"down_blocks.0.downsamplers.0.conv": "DownBlocks.Chain_4.Downsample.Conv2d",
"up_blocks.3.resnets.0.conv2": "UpBlocks.Chain_10.ResidualBlock.Chain.Conv2d",
"up_blocks.3.resnets.1.conv2": "UpBlocks.Chain_11.ResidualBlock.Chain.Conv2d",
"up_blocks.3.resnets.2.conv2": "UpBlocks.Chain_12.ResidualBlock.Chain.Conv2d",
"down_blocks.0.resnets.0.time_emb_proj": "DownBlocks.Chain_2.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.0.attentions.0.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.0.resnets.1.time_emb_proj": "DownBlocks.Chain_3.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.0.attentions.1.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.3.resnets.0.time_emb_proj": "UpBlocks.Chain_10.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.3.attentions.0.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.3.resnets.1.time_emb_proj": "UpBlocks.Chain_11.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.3.attentions.1.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.3.resnets.2.time_emb_proj": "UpBlocks.Chain_12.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.3.attentions.2.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.0.attentions.0.proj_in": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.0.attentions.0.proj_out": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_3.Conv2d",
"down_blocks.0.attentions.1.proj_in": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.0.attentions.1.proj_out": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.3.attentions.0.proj_in": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.3.attentions.0.proj_out": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.3.attentions.1.proj_in": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.3.attentions.1.proj_out": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.3.attentions.2.proj_in": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.3.attentions.2.proj_out": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_3.Conv2d",
"down_blocks.0.attentions.0.transformer_blocks.0.norm1": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.0.attentions.0.transformer_blocks.0.norm2": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.0.attentions.0.transformer_blocks.0.norm3": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.0.attentions.1.transformer_blocks.0.norm1": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.0.attentions.1.transformer_blocks.0.norm2": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.0.attentions.1.transformer_blocks.0.norm3": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.3.attentions.0.transformer_blocks.0.norm1": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.3.attentions.0.transformer_blocks.0.norm2": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.3.attentions.0.transformer_blocks.0.norm3": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.3.attentions.1.transformer_blocks.0.norm1": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.3.attentions.1.transformer_blocks.0.norm2": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.3.attentions.1.transformer_blocks.0.norm3": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.3.attentions.2.transformer_blocks.0.norm1": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.3.attentions.2.transformer_blocks.0.norm2": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.3.attentions.2.transformer_blocks.0.norm3": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.3.attentions.0.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.3.attentions.0.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.3.attentions.0.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.3.attentions.0.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.3.attentions.1.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.3.attentions.1.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.3.attentions.1.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.3.attentions.1.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.3.attentions.2.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.3.attentions.2.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.3.attentions.2.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.3.attentions.2.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.0.attentions.0.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.0.attentions.1.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.3.attentions.0.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.3.attentions.0.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.3.attentions.1.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.3.attentions.1.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.3.attentions.2.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.3.attentions.2.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.0.attentions.0.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.0.attentions.1.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.3.attentions.0.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.3.attentions.0.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.3.attentions.1.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.3.attentions.1.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.3.attentions.2.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.3.attentions.2.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.0.attentions.0.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_2.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.0.attentions.1.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_3.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.3.attentions.0.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_10.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.3.attentions.1.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_11.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.3.attentions.2.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_12.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.1.resnets.0.conv1": "DownBlocks.Chain_5.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.1.resnets.0.time_emb_proj": "DownBlocks.Chain_5.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.1.resnets.1.time_emb_proj": "DownBlocks.Chain_6.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.2.resnets.0.time_emb_proj": "UpBlocks.Chain_7.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.2.resnets.1.time_emb_proj": "UpBlocks.Chain_8.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"up_blocks.2.resnets.2.time_emb_proj": "UpBlocks.Chain_9.ResidualBlock.Chain.RangeAdapter2d.Chain.Linear",
"down_blocks.1.resnets.0.norm2": "DownBlocks.Chain_5.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.1.attentions.0.norm": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.1.resnets.1.norm1": "DownBlocks.Chain_6.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.1.resnets.1.norm2": "DownBlocks.Chain_6.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.1.attentions.1.norm": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.2.resnets.0.norm1": "DownBlocks.Chain_8.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.2.resnets.0.norm2": "UpBlocks.Chain_7.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.2.attentions.0.norm": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.2.resnets.1.norm2": "UpBlocks.Chain_8.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.2.attentions.1.norm": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.2.resnets.2.norm2": "UpBlocks.Chain_9.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.2.attentions.2.norm": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.3.resnets.1.norm1": "UpBlocks.Chain_11.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.3.resnets.2.norm1": "UpBlocks.Chain_12.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.1.resnets.0.conv2": "DownBlocks.Chain_5.ResidualBlock.Chain.Conv2d",
"down_blocks.1.resnets.1.conv1": "DownBlocks.Chain_6.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.1.resnets.1.conv2": "DownBlocks.Chain_6.ResidualBlock.Chain.Conv2d",
"down_blocks.1.downsamplers.0.conv": "DownBlocks.Chain_7.Downsample.Conv2d",
"up_blocks.2.resnets.0.conv2": "UpBlocks.Chain_7.ResidualBlock.Chain.Conv2d",
"up_blocks.2.resnets.1.conv2": "UpBlocks.Chain_8.ResidualBlock.Chain.Conv2d",
"up_blocks.2.resnets.2.conv2": "UpBlocks.Chain_9.ResidualBlock.Chain.Conv2d",
"up_blocks.2.upsamplers.0.conv": "UpBlocks.Chain_9.Upsample.Conv2d",
"down_blocks.1.resnets.0.conv_shortcut": "DownBlocks.Chain_5.ResidualBlock.Conv2d",
"down_blocks.1.attentions.0.proj_in": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.1.attentions.0.proj_out": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_3.Conv2d",
"down_blocks.1.attentions.1.proj_in": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.1.attentions.1.proj_out": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.2.attentions.0.proj_in": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.2.attentions.0.proj_out": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.2.attentions.1.proj_in": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.2.attentions.1.proj_out": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.2.attentions.2.proj_in": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.2.attentions.2.proj_out": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_3.Conv2d",
"down_blocks.1.attentions.0.transformer_blocks.0.norm1": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.1.attentions.0.transformer_blocks.0.norm2": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.1.attentions.0.transformer_blocks.0.norm3": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.1.attentions.1.transformer_blocks.0.norm1": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.1.attentions.1.transformer_blocks.0.norm2": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.1.attentions.1.transformer_blocks.0.norm3": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.2.attentions.0.transformer_blocks.0.norm1": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.2.attentions.0.transformer_blocks.0.norm2": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.2.attentions.0.transformer_blocks.0.norm3": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.2.attentions.1.transformer_blocks.0.norm1": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.2.attentions.1.transformer_blocks.0.norm2": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.2.attentions.1.transformer_blocks.0.norm3": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.2.attentions.2.transformer_blocks.0.norm1": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.2.attentions.2.transformer_blocks.0.norm2": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.2.attentions.2.transformer_blocks.0.norm3": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.2.attentions.0.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.2.attentions.0.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.2.attentions.0.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.2.attentions.0.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.2.attentions.1.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.2.attentions.1.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.2.attentions.1.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.2.attentions.1.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.2.attentions.2.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.2.attentions.2.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.2.attentions.2.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.2.attentions.2.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.1.attentions.0.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.1.attentions.1.transformer_blocks.0.attn1.to_out.0": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_out.0": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.2.attentions.0.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.2.attentions.0.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.2.attentions.1.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.2.attentions.1.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"up_blocks.2.attentions.2.transformer_blocks.0.attn1.to_out.0": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Linear",
"up_blocks.2.attentions.2.transformer_blocks.0.attn2.to_out.0": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Linear",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.1.attentions.0.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.1.attentions.1.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.2.attentions.0.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.2.attentions.0.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.2.attentions.1.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.2.attentions.1.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.2.attentions.2.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.2.attentions.2.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.1.attentions.0.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.1.attentions.1.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.2.attentions.0.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.2.attentions.1.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.2.attentions.2.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.1.attentions.0.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.1.attentions.1.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.2.attentions.0.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_7.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.2.attentions.1.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.2.attentions.2.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.2.resnets.0.conv1": "DownBlocks.Chain_8.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.2.resnets.0.norm2": "DownBlocks.Chain_8.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.2.attentions.0.norm": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.2.resnets.1.norm1": "DownBlocks.Chain_9.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.2.resnets.1.norm2": "DownBlocks.Chain_9.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.2.attentions.1.norm": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_1.GroupNorm",
"down_blocks.3.resnets.0.norm1": "DownBlocks.Chain_11.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.3.resnets.0.norm2": "DownBlocks.Chain_11.ResidualBlock.Chain.GroupNorm_2",
"down_blocks.3.resnets.1.norm1": "DownBlocks.Chain_12.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.3.resnets.1.norm2": "DownBlocks.Chain_12.ResidualBlock.Chain.GroupNorm_2",
"mid_block.resnets.0.norm1": "Sum.MiddleBlock.ResidualBlock_1.Chain.GroupNorm_1",
"mid_block.resnets.0.norm2": "Sum.MiddleBlock.ResidualBlock_1.Chain.GroupNorm_2",
"mid_block.attentions.0.norm": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_1.GroupNorm",
"mid_block.resnets.1.norm1": "Sum.MiddleBlock.ResidualBlock_2.Chain.GroupNorm_1",
"mid_block.resnets.1.norm2": "Sum.MiddleBlock.ResidualBlock_2.Chain.GroupNorm_2",
"up_blocks.0.resnets.0.norm2": "UpBlocks.Chain_1.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.0.resnets.1.norm2": "UpBlocks.Chain_2.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.0.resnets.2.norm2": "UpBlocks.Chain_3.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.1.resnets.0.norm2": "UpBlocks.Chain_4.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.1.attentions.0.norm": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.1.resnets.1.norm2": "UpBlocks.Chain_5.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.1.attentions.1.norm": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.1.resnets.2.norm2": "UpBlocks.Chain_6.ResidualBlock.Chain.GroupNorm_2",
"up_blocks.1.attentions.2.norm": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_1.GroupNorm",
"up_blocks.2.resnets.1.norm1": "UpBlocks.Chain_8.ResidualBlock.Chain.GroupNorm_1",
"down_blocks.2.resnets.0.conv2": "DownBlocks.Chain_8.ResidualBlock.Chain.Conv2d",
"down_blocks.2.resnets.1.conv1": "DownBlocks.Chain_9.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.2.resnets.1.conv2": "DownBlocks.Chain_9.ResidualBlock.Chain.Conv2d",
"down_blocks.2.downsamplers.0.conv": "DownBlocks.Chain_10.Downsample.Conv2d",
"down_blocks.3.resnets.0.conv1": "DownBlocks.Chain_11.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.3.resnets.0.conv2": "DownBlocks.Chain_11.ResidualBlock.Chain.Conv2d",
"down_blocks.3.resnets.1.conv1": "DownBlocks.Chain_12.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"down_blocks.3.resnets.1.conv2": "DownBlocks.Chain_12.ResidualBlock.Chain.Conv2d",
"mid_block.resnets.0.conv1": "Sum.MiddleBlock.ResidualBlock_1.Chain.RangeAdapter2d.Conv2d",
"mid_block.resnets.0.conv2": "Sum.MiddleBlock.ResidualBlock_1.Chain.Conv2d",
"mid_block.resnets.1.conv1": "Sum.MiddleBlock.ResidualBlock_2.Chain.RangeAdapter2d.Conv2d",
"mid_block.resnets.1.conv2": "Sum.MiddleBlock.ResidualBlock_2.Chain.Conv2d",
"up_blocks.0.resnets.0.conv2": "UpBlocks.Chain_1.ResidualBlock.Chain.Conv2d",
"up_blocks.0.resnets.1.conv2": "UpBlocks.Chain_2.ResidualBlock.Chain.Conv2d",
"up_blocks.0.resnets.2.conv2": "UpBlocks.Chain_3.ResidualBlock.Chain.Conv2d",
"up_blocks.0.upsamplers.0.conv": "UpBlocks.Chain_3.Upsample.Conv2d",
"up_blocks.1.resnets.0.conv2": "UpBlocks.Chain_4.ResidualBlock.Chain.Conv2d",
"up_blocks.1.resnets.1.conv2": "UpBlocks.Chain_5.ResidualBlock.Chain.Conv2d",
"up_blocks.1.resnets.2.conv2": "UpBlocks.Chain_6.ResidualBlock.Chain.Conv2d",
"up_blocks.1.upsamplers.0.conv": "UpBlocks.Chain_6.Upsample.Conv2d",
"down_blocks.2.resnets.0.conv_shortcut": "DownBlocks.Chain_8.ResidualBlock.Conv2d",
"down_blocks.2.attentions.0.proj_in": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.2.attentions.0.proj_out": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_3.Conv2d",
"down_blocks.2.attentions.1.proj_in": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_1.Conv2d",
"down_blocks.2.attentions.1.proj_out": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_3.Conv2d",
"mid_block.attentions.0.proj_in": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_1.Conv2d",
"mid_block.attentions.0.proj_out": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.1.attentions.0.proj_in": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.1.attentions.0.proj_out": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.1.attentions.1.proj_in": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.1.attentions.1.proj_out": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_3.Conv2d",
"up_blocks.1.attentions.2.proj_in": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_1.Conv2d",
"up_blocks.1.attentions.2.proj_out": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_3.Conv2d",
"down_blocks.2.attentions.0.transformer_blocks.0.norm1": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.2.attentions.0.transformer_blocks.0.norm2": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.2.attentions.0.transformer_blocks.0.norm3": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.2.attentions.1.transformer_blocks.0.norm1": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"down_blocks.2.attentions.1.transformer_blocks.0.norm2": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"down_blocks.2.attentions.1.transformer_blocks.0.norm3": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"mid_block.attentions.0.transformer_blocks.0.norm1": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"mid_block.attentions.0.transformer_blocks.0.norm2": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"mid_block.attentions.0.transformer_blocks.0.norm3": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.1.attentions.0.transformer_blocks.0.norm1": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.1.attentions.0.transformer_blocks.0.norm2": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.1.attentions.0.transformer_blocks.0.norm3": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.1.attentions.1.transformer_blocks.0.norm1": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.1.attentions.1.transformer_blocks.0.norm2": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.1.attentions.1.transformer_blocks.0.norm3": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"up_blocks.1.attentions.2.transformer_blocks.0.norm1": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.LayerNorm",
"up_blocks.1.attentions.2.transformer_blocks.0.norm2": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.LayerNorm",
"up_blocks.1.attentions.2.transformer_blocks.0.norm3": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.LayerNorm",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.2.attentions.0.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_q": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_k": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"down_blocks.2.attentions.1.transformer_blocks.0.attn1.to_v": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_q": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_q": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_k": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"mid_block.attentions.0.transformer_blocks.0.attn1.to_v": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_q": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.1.attentions.0.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.1.attentions.0.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.1.attentions.0.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.1.attentions.0.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.1.attentions.1.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.1.attentions.1.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.1.attentions.1.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.1.attentions.1.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"up_blocks.1.attentions.2.transformer_blocks.0.attn1.to_q": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_1",
"up_blocks.1.attentions.2.transformer_blocks.0.attn1.to_k": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_2",
"up_blocks.1.attentions.2.transformer_blocks.0.attn1.to_v": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_1.SelfAttention.Distribute.Linear_3",
"up_blocks.1.attentions.2.transformer_blocks.0.attn2.to_q": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_1",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.2.attentions.0.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_k": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"down_blocks.2.attentions.1.transformer_blocks.0.attn2.to_v": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_k": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"mid_block.attentions.0.transformer_blocks.0.attn2.to_v": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.1.attentions.0.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.1.attentions.0.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.1.attentions.1.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.1.attentions.1.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"up_blocks.1.attentions.2.transformer_blocks.0.attn2.to_k": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_2",
"up_blocks.1.attentions.2.transformer_blocks.0.attn2.to_v": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_2.Attention.Distribute.Linear_3",
"down_blocks.2.attentions.0.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.2.attentions.1.transformer_blocks.0.ff.net.0.proj": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"mid_block.attentions.0.transformer_blocks.0.ff.net.0.proj": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.1.attentions.0.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.1.attentions.1.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"up_blocks.1.attentions.2.transformer_blocks.0.ff.net.0.proj": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_1",
"down_blocks.2.attentions.0.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_8.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"down_blocks.2.attentions.1.transformer_blocks.0.ff.net.2": "DownBlocks.Chain_9.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"mid_block.attentions.0.transformer_blocks.0.ff.net.2": "Sum.MiddleBlock.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.1.attentions.0.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_4.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.1.attentions.1.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_5.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.1.attentions.2.transformer_blocks.0.ff.net.2": "UpBlocks.Chain_6.CLIPLCrossAttention.Chain_2.CrossAttentionBlock.Residual_3.Linear_2",
"up_blocks.0.resnets.0.norm1": "UpBlocks.Chain_1.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.0.resnets.1.norm1": "UpBlocks.Chain_2.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.0.resnets.2.norm1": "UpBlocks.Chain_3.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.1.resnets.0.norm1": "UpBlocks.Chain_4.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.1.resnets.1.norm1": "UpBlocks.Chain_5.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.0.resnets.0.conv1": "UpBlocks.Chain_1.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.0.resnets.1.conv1": "UpBlocks.Chain_2.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.0.resnets.2.conv1": "UpBlocks.Chain_3.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.1.resnets.0.conv1": "UpBlocks.Chain_4.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.1.resnets.1.conv1": "UpBlocks.Chain_5.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.0.resnets.0.conv_shortcut": "UpBlocks.Chain_1.ResidualBlock.Conv2d",
"up_blocks.0.resnets.1.conv_shortcut": "UpBlocks.Chain_2.ResidualBlock.Conv2d",
"up_blocks.0.resnets.2.conv_shortcut": "UpBlocks.Chain_3.ResidualBlock.Conv2d",
"up_blocks.1.resnets.0.conv_shortcut": "UpBlocks.Chain_4.ResidualBlock.Conv2d",
"up_blocks.1.resnets.1.conv_shortcut": "UpBlocks.Chain_5.ResidualBlock.Conv2d",
"up_blocks.1.resnets.2.norm1": "UpBlocks.Chain_6.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.2.resnets.0.norm1": "UpBlocks.Chain_7.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.1.resnets.2.conv1": "UpBlocks.Chain_6.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.1.resnets.2.conv_shortcut": "UpBlocks.Chain_6.ResidualBlock.Conv2d",
"up_blocks.2.resnets.0.conv1": "UpBlocks.Chain_7.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.2.resnets.0.conv_shortcut": "UpBlocks.Chain_7.ResidualBlock.Conv2d",
"up_blocks.2.resnets.1.conv1": "UpBlocks.Chain_8.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.2.resnets.1.conv_shortcut": "UpBlocks.Chain_8.ResidualBlock.Conv2d",
"up_blocks.2.resnets.2.norm1": "UpBlocks.Chain_9.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.3.resnets.0.norm1": "UpBlocks.Chain_10.ResidualBlock.Chain.GroupNorm_1",
"up_blocks.2.resnets.2.conv1": "UpBlocks.Chain_9.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.2.resnets.2.conv_shortcut": "UpBlocks.Chain_9.ResidualBlock.Conv2d",
"up_blocks.3.resnets.0.conv1": "UpBlocks.Chain_10.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.3.resnets.0.conv_shortcut": "UpBlocks.Chain_10.ResidualBlock.Conv2d",
"up_blocks.3.resnets.1.conv1": "UpBlocks.Chain_11.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.3.resnets.2.conv1": "UpBlocks.Chain_12.ResidualBlock.Chain.RangeAdapter2d.Conv2d",
"up_blocks.3.resnets.1.conv_shortcut": "UpBlocks.Chain_11.ResidualBlock.Conv2d",
"up_blocks.3.resnets.2.conv_shortcut": "UpBlocks.Chain_12.ResidualBlock.Conv2d",
"conv_out": "Chain.Conv2d"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -0,0 +1,20 @@
{
"name_map": {
"model0.1": "Chain_1.Conv2d",
"model1.0": "Chain_2.Conv2d",
"model1.3": "Chain_3.Conv2d",
"model2.0.conv_block.1": "Residual_1.Conv2d_1",
"model2.0.conv_block.5": "Residual_1.Conv2d_2",
"model2.1.conv_block.1": "Residual_2.Conv2d_1",
"model2.1.conv_block.5": "Residual_2.Conv2d_2",
"model2.2.conv_block.1": "Residual_3.Conv2d_1",
"model2.2.conv_block.5": "Residual_3.Conv2d_2",
"model3.0": "Chain_4.ConvTranspose2d",
"model3.3": "Chain_5.ConvTranspose2d",
"model4.1": "Chain_6.Conv2d"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -0,0 +1,275 @@
{
"name_map": {
"vision_model.embeddings.patch_embedding": "ViTEmbeddings.Concatenate.Chain.PatchEncoder.Conv2d",
"vision_model.embeddings.position_embedding": "ViTEmbeddings.Residual.PositionalEncoder.Embedding",
"vision_model.embeddings.class_embedding": "ViTEmbeddings.Concatenate.ClassToken.Parameter.weight",
"vision_model.pre_layrnorm": "LayerNorm_1",
"vision_model.encoder.layers.0.layer_norm1": "Chain.TransformerLayer_1.Residual_1.LayerNorm",
"vision_model.encoder.layers.0.layer_norm2": "Chain.TransformerLayer_1.Residual_2.LayerNorm",
"vision_model.encoder.layers.1.layer_norm1": "Chain.TransformerLayer_2.Residual_1.LayerNorm",
"vision_model.encoder.layers.1.layer_norm2": "Chain.TransformerLayer_2.Residual_2.LayerNorm",
"vision_model.encoder.layers.2.layer_norm1": "Chain.TransformerLayer_3.Residual_1.LayerNorm",
"vision_model.encoder.layers.2.layer_norm2": "Chain.TransformerLayer_3.Residual_2.LayerNorm",
"vision_model.encoder.layers.3.layer_norm1": "Chain.TransformerLayer_4.Residual_1.LayerNorm",
"vision_model.encoder.layers.3.layer_norm2": "Chain.TransformerLayer_4.Residual_2.LayerNorm",
"vision_model.encoder.layers.4.layer_norm1": "Chain.TransformerLayer_5.Residual_1.LayerNorm",
"vision_model.encoder.layers.4.layer_norm2": "Chain.TransformerLayer_5.Residual_2.LayerNorm",
"vision_model.encoder.layers.5.layer_norm1": "Chain.TransformerLayer_6.Residual_1.LayerNorm",
"vision_model.encoder.layers.5.layer_norm2": "Chain.TransformerLayer_6.Residual_2.LayerNorm",
"vision_model.encoder.layers.6.layer_norm1": "Chain.TransformerLayer_7.Residual_1.LayerNorm",
"vision_model.encoder.layers.6.layer_norm2": "Chain.TransformerLayer_7.Residual_2.LayerNorm",
"vision_model.encoder.layers.7.layer_norm1": "Chain.TransformerLayer_8.Residual_1.LayerNorm",
"vision_model.encoder.layers.7.layer_norm2": "Chain.TransformerLayer_8.Residual_2.LayerNorm",
"vision_model.encoder.layers.8.layer_norm1": "Chain.TransformerLayer_9.Residual_1.LayerNorm",
"vision_model.encoder.layers.8.layer_norm2": "Chain.TransformerLayer_9.Residual_2.LayerNorm",
"vision_model.encoder.layers.9.layer_norm1": "Chain.TransformerLayer_10.Residual_1.LayerNorm",
"vision_model.encoder.layers.9.layer_norm2": "Chain.TransformerLayer_10.Residual_2.LayerNorm",
"vision_model.encoder.layers.10.layer_norm1": "Chain.TransformerLayer_11.Residual_1.LayerNorm",
"vision_model.encoder.layers.10.layer_norm2": "Chain.TransformerLayer_11.Residual_2.LayerNorm",
"vision_model.encoder.layers.11.layer_norm1": "Chain.TransformerLayer_12.Residual_1.LayerNorm",
"vision_model.encoder.layers.11.layer_norm2": "Chain.TransformerLayer_12.Residual_2.LayerNorm",
"vision_model.encoder.layers.12.layer_norm1": "Chain.TransformerLayer_13.Residual_1.LayerNorm",
"vision_model.encoder.layers.12.layer_norm2": "Chain.TransformerLayer_13.Residual_2.LayerNorm",
"vision_model.encoder.layers.13.layer_norm1": "Chain.TransformerLayer_14.Residual_1.LayerNorm",
"vision_model.encoder.layers.13.layer_norm2": "Chain.TransformerLayer_14.Residual_2.LayerNorm",
"vision_model.encoder.layers.14.layer_norm1": "Chain.TransformerLayer_15.Residual_1.LayerNorm",
"vision_model.encoder.layers.14.layer_norm2": "Chain.TransformerLayer_15.Residual_2.LayerNorm",
"vision_model.encoder.layers.15.layer_norm1": "Chain.TransformerLayer_16.Residual_1.LayerNorm",
"vision_model.encoder.layers.15.layer_norm2": "Chain.TransformerLayer_16.Residual_2.LayerNorm",
"vision_model.encoder.layers.16.layer_norm1": "Chain.TransformerLayer_17.Residual_1.LayerNorm",
"vision_model.encoder.layers.16.layer_norm2": "Chain.TransformerLayer_17.Residual_2.LayerNorm",
"vision_model.encoder.layers.17.layer_norm1": "Chain.TransformerLayer_18.Residual_1.LayerNorm",
"vision_model.encoder.layers.17.layer_norm2": "Chain.TransformerLayer_18.Residual_2.LayerNorm",
"vision_model.encoder.layers.18.layer_norm1": "Chain.TransformerLayer_19.Residual_1.LayerNorm",
"vision_model.encoder.layers.18.layer_norm2": "Chain.TransformerLayer_19.Residual_2.LayerNorm",
"vision_model.encoder.layers.19.layer_norm1": "Chain.TransformerLayer_20.Residual_1.LayerNorm",
"vision_model.encoder.layers.19.layer_norm2": "Chain.TransformerLayer_20.Residual_2.LayerNorm",
"vision_model.encoder.layers.20.layer_norm1": "Chain.TransformerLayer_21.Residual_1.LayerNorm",
"vision_model.encoder.layers.20.layer_norm2": "Chain.TransformerLayer_21.Residual_2.LayerNorm",
"vision_model.encoder.layers.21.layer_norm1": "Chain.TransformerLayer_22.Residual_1.LayerNorm",
"vision_model.encoder.layers.21.layer_norm2": "Chain.TransformerLayer_22.Residual_2.LayerNorm",
"vision_model.encoder.layers.22.layer_norm1": "Chain.TransformerLayer_23.Residual_1.LayerNorm",
"vision_model.encoder.layers.22.layer_norm2": "Chain.TransformerLayer_23.Residual_2.LayerNorm",
"vision_model.encoder.layers.23.layer_norm1": "Chain.TransformerLayer_24.Residual_1.LayerNorm",
"vision_model.encoder.layers.23.layer_norm2": "Chain.TransformerLayer_24.Residual_2.LayerNorm",
"vision_model.encoder.layers.24.layer_norm1": "Chain.TransformerLayer_25.Residual_1.LayerNorm",
"vision_model.encoder.layers.24.layer_norm2": "Chain.TransformerLayer_25.Residual_2.LayerNorm",
"vision_model.encoder.layers.25.layer_norm1": "Chain.TransformerLayer_26.Residual_1.LayerNorm",
"vision_model.encoder.layers.25.layer_norm2": "Chain.TransformerLayer_26.Residual_2.LayerNorm",
"vision_model.encoder.layers.26.layer_norm1": "Chain.TransformerLayer_27.Residual_1.LayerNorm",
"vision_model.encoder.layers.26.layer_norm2": "Chain.TransformerLayer_27.Residual_2.LayerNorm",
"vision_model.encoder.layers.27.layer_norm1": "Chain.TransformerLayer_28.Residual_1.LayerNorm",
"vision_model.encoder.layers.27.layer_norm2": "Chain.TransformerLayer_28.Residual_2.LayerNorm",
"vision_model.encoder.layers.28.layer_norm1": "Chain.TransformerLayer_29.Residual_1.LayerNorm",
"vision_model.encoder.layers.28.layer_norm2": "Chain.TransformerLayer_29.Residual_2.LayerNorm",
"vision_model.encoder.layers.29.layer_norm1": "Chain.TransformerLayer_30.Residual_1.LayerNorm",
"vision_model.encoder.layers.29.layer_norm2": "Chain.TransformerLayer_30.Residual_2.LayerNorm",
"vision_model.encoder.layers.30.layer_norm1": "Chain.TransformerLayer_31.Residual_1.LayerNorm",
"vision_model.encoder.layers.30.layer_norm2": "Chain.TransformerLayer_31.Residual_2.LayerNorm",
"vision_model.encoder.layers.31.layer_norm1": "Chain.TransformerLayer_32.Residual_1.LayerNorm",
"vision_model.encoder.layers.31.layer_norm2": "Chain.TransformerLayer_32.Residual_2.LayerNorm",
"vision_model.post_layernorm": "LayerNorm_2",
"vision_model.encoder.layers.0.self_attn.q_proj": "Chain.TransformerLayer_1.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.0.self_attn.k_proj": "Chain.TransformerLayer_1.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.0.self_attn.v_proj": "Chain.TransformerLayer_1.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.0.self_attn.out_proj": "Chain.TransformerLayer_1.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.1.self_attn.q_proj": "Chain.TransformerLayer_2.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.1.self_attn.k_proj": "Chain.TransformerLayer_2.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.1.self_attn.v_proj": "Chain.TransformerLayer_2.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.1.self_attn.out_proj": "Chain.TransformerLayer_2.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.2.self_attn.q_proj": "Chain.TransformerLayer_3.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.2.self_attn.k_proj": "Chain.TransformerLayer_3.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.2.self_attn.v_proj": "Chain.TransformerLayer_3.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.2.self_attn.out_proj": "Chain.TransformerLayer_3.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.3.self_attn.q_proj": "Chain.TransformerLayer_4.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.3.self_attn.k_proj": "Chain.TransformerLayer_4.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.3.self_attn.v_proj": "Chain.TransformerLayer_4.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.3.self_attn.out_proj": "Chain.TransformerLayer_4.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.4.self_attn.q_proj": "Chain.TransformerLayer_5.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.4.self_attn.k_proj": "Chain.TransformerLayer_5.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.4.self_attn.v_proj": "Chain.TransformerLayer_5.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.4.self_attn.out_proj": "Chain.TransformerLayer_5.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.5.self_attn.q_proj": "Chain.TransformerLayer_6.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.5.self_attn.k_proj": "Chain.TransformerLayer_6.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.5.self_attn.v_proj": "Chain.TransformerLayer_6.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.5.self_attn.out_proj": "Chain.TransformerLayer_6.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.6.self_attn.q_proj": "Chain.TransformerLayer_7.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.6.self_attn.k_proj": "Chain.TransformerLayer_7.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.6.self_attn.v_proj": "Chain.TransformerLayer_7.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.6.self_attn.out_proj": "Chain.TransformerLayer_7.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.7.self_attn.q_proj": "Chain.TransformerLayer_8.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.7.self_attn.k_proj": "Chain.TransformerLayer_8.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.7.self_attn.v_proj": "Chain.TransformerLayer_8.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.7.self_attn.out_proj": "Chain.TransformerLayer_8.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.8.self_attn.q_proj": "Chain.TransformerLayer_9.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.8.self_attn.k_proj": "Chain.TransformerLayer_9.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.8.self_attn.v_proj": "Chain.TransformerLayer_9.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.8.self_attn.out_proj": "Chain.TransformerLayer_9.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.9.self_attn.q_proj": "Chain.TransformerLayer_10.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.9.self_attn.k_proj": "Chain.TransformerLayer_10.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.9.self_attn.v_proj": "Chain.TransformerLayer_10.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.9.self_attn.out_proj": "Chain.TransformerLayer_10.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.10.self_attn.q_proj": "Chain.TransformerLayer_11.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.10.self_attn.k_proj": "Chain.TransformerLayer_11.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.10.self_attn.v_proj": "Chain.TransformerLayer_11.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.10.self_attn.out_proj": "Chain.TransformerLayer_11.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.11.self_attn.q_proj": "Chain.TransformerLayer_12.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.11.self_attn.k_proj": "Chain.TransformerLayer_12.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.11.self_attn.v_proj": "Chain.TransformerLayer_12.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.11.self_attn.out_proj": "Chain.TransformerLayer_12.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.12.self_attn.q_proj": "Chain.TransformerLayer_13.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.12.self_attn.k_proj": "Chain.TransformerLayer_13.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.12.self_attn.v_proj": "Chain.TransformerLayer_13.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.12.self_attn.out_proj": "Chain.TransformerLayer_13.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.13.self_attn.q_proj": "Chain.TransformerLayer_14.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.13.self_attn.k_proj": "Chain.TransformerLayer_14.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.13.self_attn.v_proj": "Chain.TransformerLayer_14.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.13.self_attn.out_proj": "Chain.TransformerLayer_14.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.14.self_attn.q_proj": "Chain.TransformerLayer_15.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.14.self_attn.k_proj": "Chain.TransformerLayer_15.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.14.self_attn.v_proj": "Chain.TransformerLayer_15.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.14.self_attn.out_proj": "Chain.TransformerLayer_15.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.15.self_attn.q_proj": "Chain.TransformerLayer_16.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.15.self_attn.k_proj": "Chain.TransformerLayer_16.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.15.self_attn.v_proj": "Chain.TransformerLayer_16.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.15.self_attn.out_proj": "Chain.TransformerLayer_16.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.16.self_attn.q_proj": "Chain.TransformerLayer_17.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.16.self_attn.k_proj": "Chain.TransformerLayer_17.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.16.self_attn.v_proj": "Chain.TransformerLayer_17.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.16.self_attn.out_proj": "Chain.TransformerLayer_17.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.17.self_attn.q_proj": "Chain.TransformerLayer_18.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.17.self_attn.k_proj": "Chain.TransformerLayer_18.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.17.self_attn.v_proj": "Chain.TransformerLayer_18.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.17.self_attn.out_proj": "Chain.TransformerLayer_18.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.18.self_attn.q_proj": "Chain.TransformerLayer_19.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.18.self_attn.k_proj": "Chain.TransformerLayer_19.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.18.self_attn.v_proj": "Chain.TransformerLayer_19.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.18.self_attn.out_proj": "Chain.TransformerLayer_19.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.19.self_attn.q_proj": "Chain.TransformerLayer_20.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.19.self_attn.k_proj": "Chain.TransformerLayer_20.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.19.self_attn.v_proj": "Chain.TransformerLayer_20.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.19.self_attn.out_proj": "Chain.TransformerLayer_20.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.20.self_attn.q_proj": "Chain.TransformerLayer_21.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.20.self_attn.k_proj": "Chain.TransformerLayer_21.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.20.self_attn.v_proj": "Chain.TransformerLayer_21.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.20.self_attn.out_proj": "Chain.TransformerLayer_21.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.21.self_attn.q_proj": "Chain.TransformerLayer_22.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.21.self_attn.k_proj": "Chain.TransformerLayer_22.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.21.self_attn.v_proj": "Chain.TransformerLayer_22.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.21.self_attn.out_proj": "Chain.TransformerLayer_22.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.22.self_attn.q_proj": "Chain.TransformerLayer_23.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.22.self_attn.k_proj": "Chain.TransformerLayer_23.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.22.self_attn.v_proj": "Chain.TransformerLayer_23.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.22.self_attn.out_proj": "Chain.TransformerLayer_23.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.23.self_attn.q_proj": "Chain.TransformerLayer_24.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.23.self_attn.k_proj": "Chain.TransformerLayer_24.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.23.self_attn.v_proj": "Chain.TransformerLayer_24.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.23.self_attn.out_proj": "Chain.TransformerLayer_24.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.24.self_attn.q_proj": "Chain.TransformerLayer_25.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.24.self_attn.k_proj": "Chain.TransformerLayer_25.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.24.self_attn.v_proj": "Chain.TransformerLayer_25.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.24.self_attn.out_proj": "Chain.TransformerLayer_25.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.25.self_attn.q_proj": "Chain.TransformerLayer_26.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.25.self_attn.k_proj": "Chain.TransformerLayer_26.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.25.self_attn.v_proj": "Chain.TransformerLayer_26.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.25.self_attn.out_proj": "Chain.TransformerLayer_26.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.26.self_attn.q_proj": "Chain.TransformerLayer_27.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.26.self_attn.k_proj": "Chain.TransformerLayer_27.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.26.self_attn.v_proj": "Chain.TransformerLayer_27.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.26.self_attn.out_proj": "Chain.TransformerLayer_27.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.27.self_attn.q_proj": "Chain.TransformerLayer_28.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.27.self_attn.k_proj": "Chain.TransformerLayer_28.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.27.self_attn.v_proj": "Chain.TransformerLayer_28.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.27.self_attn.out_proj": "Chain.TransformerLayer_28.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.28.self_attn.q_proj": "Chain.TransformerLayer_29.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.28.self_attn.k_proj": "Chain.TransformerLayer_29.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.28.self_attn.v_proj": "Chain.TransformerLayer_29.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.28.self_attn.out_proj": "Chain.TransformerLayer_29.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.29.self_attn.q_proj": "Chain.TransformerLayer_30.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.29.self_attn.k_proj": "Chain.TransformerLayer_30.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.29.self_attn.v_proj": "Chain.TransformerLayer_30.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.29.self_attn.out_proj": "Chain.TransformerLayer_30.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.30.self_attn.q_proj": "Chain.TransformerLayer_31.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.30.self_attn.k_proj": "Chain.TransformerLayer_31.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.30.self_attn.v_proj": "Chain.TransformerLayer_31.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.30.self_attn.out_proj": "Chain.TransformerLayer_31.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.31.self_attn.q_proj": "Chain.TransformerLayer_32.Residual_1.SelfAttention.Distribute.Linear_1",
"vision_model.encoder.layers.31.self_attn.k_proj": "Chain.TransformerLayer_32.Residual_1.SelfAttention.Distribute.Linear_2",
"vision_model.encoder.layers.31.self_attn.v_proj": "Chain.TransformerLayer_32.Residual_1.SelfAttention.Distribute.Linear_3",
"vision_model.encoder.layers.31.self_attn.out_proj": "Chain.TransformerLayer_32.Residual_1.SelfAttention.Linear",
"vision_model.encoder.layers.0.mlp.fc1": "Chain.TransformerLayer_1.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.1.mlp.fc1": "Chain.TransformerLayer_2.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.2.mlp.fc1": "Chain.TransformerLayer_3.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.3.mlp.fc1": "Chain.TransformerLayer_4.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.4.mlp.fc1": "Chain.TransformerLayer_5.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.5.mlp.fc1": "Chain.TransformerLayer_6.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.6.mlp.fc1": "Chain.TransformerLayer_7.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.7.mlp.fc1": "Chain.TransformerLayer_8.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.8.mlp.fc1": "Chain.TransformerLayer_9.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.9.mlp.fc1": "Chain.TransformerLayer_10.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.10.mlp.fc1": "Chain.TransformerLayer_11.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.11.mlp.fc1": "Chain.TransformerLayer_12.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.12.mlp.fc1": "Chain.TransformerLayer_13.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.13.mlp.fc1": "Chain.TransformerLayer_14.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.14.mlp.fc1": "Chain.TransformerLayer_15.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.15.mlp.fc1": "Chain.TransformerLayer_16.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.16.mlp.fc1": "Chain.TransformerLayer_17.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.17.mlp.fc1": "Chain.TransformerLayer_18.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.18.mlp.fc1": "Chain.TransformerLayer_19.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.19.mlp.fc1": "Chain.TransformerLayer_20.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.20.mlp.fc1": "Chain.TransformerLayer_21.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.21.mlp.fc1": "Chain.TransformerLayer_22.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.22.mlp.fc1": "Chain.TransformerLayer_23.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.23.mlp.fc1": "Chain.TransformerLayer_24.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.24.mlp.fc1": "Chain.TransformerLayer_25.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.25.mlp.fc1": "Chain.TransformerLayer_26.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.26.mlp.fc1": "Chain.TransformerLayer_27.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.27.mlp.fc1": "Chain.TransformerLayer_28.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.28.mlp.fc1": "Chain.TransformerLayer_29.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.29.mlp.fc1": "Chain.TransformerLayer_30.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.30.mlp.fc1": "Chain.TransformerLayer_31.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.31.mlp.fc1": "Chain.TransformerLayer_32.Residual_2.FeedForward.Linear_1",
"vision_model.encoder.layers.0.mlp.fc2": "Chain.TransformerLayer_1.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.1.mlp.fc2": "Chain.TransformerLayer_2.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.2.mlp.fc2": "Chain.TransformerLayer_3.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.3.mlp.fc2": "Chain.TransformerLayer_4.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.4.mlp.fc2": "Chain.TransformerLayer_5.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.5.mlp.fc2": "Chain.TransformerLayer_6.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.6.mlp.fc2": "Chain.TransformerLayer_7.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.7.mlp.fc2": "Chain.TransformerLayer_8.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.8.mlp.fc2": "Chain.TransformerLayer_9.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.9.mlp.fc2": "Chain.TransformerLayer_10.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.10.mlp.fc2": "Chain.TransformerLayer_11.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.11.mlp.fc2": "Chain.TransformerLayer_12.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.12.mlp.fc2": "Chain.TransformerLayer_13.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.13.mlp.fc2": "Chain.TransformerLayer_14.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.14.mlp.fc2": "Chain.TransformerLayer_15.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.15.mlp.fc2": "Chain.TransformerLayer_16.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.16.mlp.fc2": "Chain.TransformerLayer_17.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.17.mlp.fc2": "Chain.TransformerLayer_18.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.18.mlp.fc2": "Chain.TransformerLayer_19.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.19.mlp.fc2": "Chain.TransformerLayer_20.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.20.mlp.fc2": "Chain.TransformerLayer_21.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.21.mlp.fc2": "Chain.TransformerLayer_22.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.22.mlp.fc2": "Chain.TransformerLayer_23.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.23.mlp.fc2": "Chain.TransformerLayer_24.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.24.mlp.fc2": "Chain.TransformerLayer_25.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.25.mlp.fc2": "Chain.TransformerLayer_26.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.26.mlp.fc2": "Chain.TransformerLayer_27.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.27.mlp.fc2": "Chain.TransformerLayer_28.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.28.mlp.fc2": "Chain.TransformerLayer_29.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.29.mlp.fc2": "Chain.TransformerLayer_30.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.30.mlp.fc2": "Chain.TransformerLayer_31.Residual_2.FeedForward.Linear_2",
"vision_model.encoder.layers.31.mlp.fc2": "Chain.TransformerLayer_32.Residual_2.FeedForward.Linear_2",
"visual_projection": "Linear"
},
"regex_map": {},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {
"ViTEmbeddings.Concatenate.ClassToken.Parameter.weight": [
1,
1280
]
}
}

@ -0,0 +1,19 @@
{
"name_map": {
"text_model.embeddings.token_embedding": "Sum.TokenEncoder",
"text_model.embeddings.position_embedding": "Sum.PositionalEncoder.Embedding",
"text_model.final_layer_norm": "LayerNorm",
"text_projection": "Linear"
},
"regex_map": {
"text_model\\.encoder\\.layers\\.(?P<layer>\\d+)\\.layer_norm(?P<norm>\\d+)": "TransformerLayer_{int(layer) + 1}.Residual_{norm}.LayerNorm",
"text_model\\.encoder\\.layers\\.(?P<layer_number>\\d+)\\.self_attn\\.q_proj": "TransformerLayer_{int(layer_number) + 1}.Residual_1.SelfAttention.Distribute.Linear_1",
"text_model\\.encoder\\.layers\\.(?P<layer_number>\\d+)\\.self_attn\\.k_proj": "TransformerLayer_{int(layer_number) + 1}.Residual_1.SelfAttention.Distribute.Linear_2",
"text_model\\.encoder\\.layers\\.(?P<layer_number>\\d+)\\.self_attn\\.v_proj": "TransformerLayer_{int(layer_number) + 1}.Residual_1.SelfAttention.Distribute.Linear_3",
"text_model\\.encoder\\.layers\\.(?P<layer_number>\\d+)\\.self_attn\\.out_proj": "TransformerLayer_{int(layer_number) + 1}.Residual_1.SelfAttention.Linear",
"text_model\\.encoder\\.layers\\.(?P<layer_number>\\d+)\\.mlp\\.fc(?P<fc_num>\\d+)": "TransformerLayer_{int(layer_number) + 1}.Residual_2.FeedForward.Linear_{fc_num}"
},
"ignore_prefixes": [],
"source_aliases": {},
"reshapes": {}
}

@ -38,6 +38,40 @@ tests/test_api.py::test_inpainting_bench
tests/test_api.py::test_large_image
tests/test_api.py::test_model_versions[SD-1.5]
tests/test_api.py::test_tile_mode
tests/test_api/test_generate.py::test_cliptext_inpainting_pearl_doctor
tests/test_api/test_generate.py::test_controlnet[canny]
tests/test_api/test_generate.py::test_controlnet[colorize]
tests/test_api/test_generate.py::test_controlnet[depth]
tests/test_api/test_generate.py::test_controlnet[details]
tests/test_api/test_generate.py::test_controlnet[edit]
tests/test_api/test_generate.py::test_controlnet[hed]
tests/test_api/test_generate.py::test_controlnet[inpaint]
tests/test_api/test_generate.py::test_controlnet[normal]
tests/test_api/test_generate.py::test_controlnet[openpose]
tests/test_api/test_generate.py::test_controlnet[qrcode]
tests/test_api/test_generate.py::test_controlnet[shuffle]
tests/test_api/test_generate.py::test_imagine[ddim]
tests/test_api/test_generate.py::test_imagine[dpmpp]
tests/test_api/test_generate.py::test_img2img_beach_to_sunset[ddim]
tests/test_api/test_generate.py::test_img2img_beach_to_sunset[dpmpp]
tests/test_api/test_generate.py::test_img2img_low_noise[ddim]
tests/test_api/test_generate.py::test_img2img_low_noise[dpmpp]
tests/test_api/test_generate.py::test_img_to_file
tests/test_api/test_generate.py::test_img_to_img_from_url_cats[ddim]
tests/test_api/test_generate.py::test_img_to_img_from_url_cats[dpmpp]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-0.05]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-0.2]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-0]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-1]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-0.05]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-0.2]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-0]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-1]
tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold_repeat
tests/test_api/test_generate.py::test_inpainting_bench
tests/test_api/test_generate.py::test_large_image
tests/test_api/test_generate.py::test_model_versions[SD-1.5]
tests/test_api/test_generate.py::test_tile_mode
tests/test_cli/test_cmds.py::test_colorize_cmd
tests/test_cli/test_cmds.py::test_describe_cmd
tests/test_cli/test_cmds.py::test_edit_cmd
@ -53,6 +87,7 @@ tests/test_enhancers/test_describe_image_blip.py::test_describe_picture
tests/test_enhancers/test_describe_image_clip.py::test_clip_text_comparison
tests/test_enhancers/test_face_restoration_codeformer.py::test_fix_faces
tests/test_enhancers/test_upscale_realesrgan.py::test_upscale_textured_image
tests/test_modules/diffusion/test_model.py::test_nonlinearity
tests/test_outpaint.py::test_outpainting_outpaint
tests/test_safety.py::test_is_nsfw
tests/test_utils/test_model_cache.py::test_cache_ordering

1 tests/img_processors/test_control_modes.py::test_control_images[depth-create_depth_map]
38 tests/test_api.py::test_large_image
39 tests/test_api.py::test_model_versions[SD-1.5]
40 tests/test_api.py::test_tile_mode
41 tests/test_api/test_generate.py::test_cliptext_inpainting_pearl_doctor
42 tests/test_api/test_generate.py::test_controlnet[canny]
43 tests/test_api/test_generate.py::test_controlnet[colorize]
44 tests/test_api/test_generate.py::test_controlnet[depth]
45 tests/test_api/test_generate.py::test_controlnet[details]
46 tests/test_api/test_generate.py::test_controlnet[edit]
47 tests/test_api/test_generate.py::test_controlnet[hed]
48 tests/test_api/test_generate.py::test_controlnet[inpaint]
49 tests/test_api/test_generate.py::test_controlnet[normal]
50 tests/test_api/test_generate.py::test_controlnet[openpose]
51 tests/test_api/test_generate.py::test_controlnet[qrcode]
52 tests/test_api/test_generate.py::test_controlnet[shuffle]
53 tests/test_api/test_generate.py::test_imagine[ddim]
54 tests/test_api/test_generate.py::test_imagine[dpmpp]
55 tests/test_api/test_generate.py::test_img2img_beach_to_sunset[ddim]
56 tests/test_api/test_generate.py::test_img2img_beach_to_sunset[dpmpp]
57 tests/test_api/test_generate.py::test_img2img_low_noise[ddim]
58 tests/test_api/test_generate.py::test_img2img_low_noise[dpmpp]
59 tests/test_api/test_generate.py::test_img_to_file
60 tests/test_api/test_generate.py::test_img_to_img_from_url_cats[ddim]
61 tests/test_api/test_generate.py::test_img_to_img_from_url_cats[dpmpp]
62 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-0.05]
63 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-0.2]
64 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-0]
65 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[ddim-1]
66 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-0.05]
67 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-0.2]
68 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-0]
69 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold[dpmpp-1]
70 tests/test_api/test_generate.py::test_img_to_img_fruit_2_gold_repeat
71 tests/test_api/test_generate.py::test_inpainting_bench
72 tests/test_api/test_generate.py::test_large_image
73 tests/test_api/test_generate.py::test_model_versions[SD-1.5]
74 tests/test_api/test_generate.py::test_tile_mode
75 tests/test_cli/test_cmds.py::test_colorize_cmd
76 tests/test_cli/test_cmds.py::test_describe_cmd
77 tests/test_cli/test_cmds.py::test_edit_cmd
87 tests/test_enhancers/test_describe_image_clip.py::test_clip_text_comparison
88 tests/test_enhancers/test_face_restoration_codeformer.py::test_fix_faces
89 tests/test_enhancers/test_upscale_realesrgan.py::test_upscale_textured_image
90 tests/test_modules/diffusion/test_model.py::test_nonlinearity
91 tests/test_outpaint.py::test_outpainting_outpaint
92 tests/test_safety.py::test_is_nsfw
93 tests/test_utils/test_model_cache.py::test_cache_ordering

@ -7,9 +7,8 @@ from imaginairy.img_processors.control_modes import CONTROL_MODES
from imaginairy.schema import ControlInput, ImaginePrompt, LazyLoadingImage, MaskMode
from imaginairy.utils import get_device
from imaginairy.utils.img_utils import pillow_fit_image_within
from . import TESTS_FOLDER
from .utils import assert_image_similar_to_expectation
from tests import TESTS_FOLDER
from tests.utils import assert_image_similar_to_expectation
def test_imagine(solver_type, filename_base_for_outputs):

@ -63,6 +63,8 @@ async def test_list_models():
"openjourney-v4",
"modern-disney",
"redshift-diffusion",
"sdxl",
"opendalle11",
}
model_ids = {m["id"] for m in response.json()}
assert model_ids == expected_model_ids

@ -0,0 +1,2 @@
def test_sdxl_vae():
pass

@ -11,9 +11,6 @@ def test_resolved_paths():
"""Test that the resolved model path is correct."""
model_weights_config = resolve_model_weights_config(config.DEFAULT_MODEL_WEIGHTS)
assert config.DEFAULT_MODEL_WEIGHTS.lower() in model_weights_config.aliases
assert (
config.DEFAULT_MODEL_ARCHITECTURE in model_weights_config.architecture.aliases
)
model_weights_config = resolve_model_weights_config(
model_weights="foo.ckpt",

Loading…
Cancel
Save