CivArchive
    ← All articles
    Published November 21, 2025by Crody

    Crody's Model Merge Guide v2.0 // Team-C

    7.3K views37 reactions12 comments on CivitAI88 collected
    mergetoolmodelresource guidesdxl

    Crody's Model Merge Guide v2.0

    日本語: https://note.com/crody/n/nbfea35657c4e

    Hi this is Crody from Team-C: creator of Nova Series and co-programmer of Chattiori Model Merger (CMM) and Universal Model Merge Scripter (MMS)

    In this article, I'll write down how to merge checkpoints and create your own model from What ?to Professional

    I'll use Illustrious / NoobAI as the mainstream of the merge principle but you can use these methods on other systems as well (SD1.5, SDXL base models, Flux)

    The code parts inside of Beginner to Professional is the MMS Plan Script Templates
    Fell free to use them


    0. What ?

    0-1. What is Model Merge ?

    Model Merge (Especially Checkpoint Merge) is one of the way to create checkpoint (not LoRA) by blending and extending

    For merging, you don't have to get great GPU, you don't have to gather notorious images to get the desired look

    Instead, what you need is several checkpoints and any kind of CPU

    0-2. Pre-requirement

    0-3. Aria2 Installation

    Windows

    🧩 Step 1: Download aria2

    1. Go to the official aria2 releases page on GitHub:
      👉 https://github.com/aria2/aria2/releases

    2. Scroll down to find the latest release.

    3. Download the Windows prebuilt binary — a file named something like:
      aria2-x.x.x-win-64bit-build1.zip


    🗂 Step 2: Extract the archive

    1. Once downloaded, right-click the ZIP file and choose “Extract All…”.

    2. Extract it to a folder such as:

      C:\Program Files\aria2
      

      or anywhere else you prefer.


    ⚙️ Step 3: Add aria2 to PATH

    1. Open the Start Menu, search for “Environment Variables”, and select
      “Edit the system environment variables.”

    2. In the System Properties window, click “Environment Variables…”.

    3. Under “System variables,” find and select Path, then click Edit.

    4. Click New, and add the path to the folder where you extracted aria2, e.g.:

      C:\Program Files\aria2
      
    5. Click OK on all dialogs to save and close.


    🧪 Step 4: Test the installation

    1. Open Command Prompt (cmd) or PowerShell.

    2. Type:

      aria2c --version
      
    3. If aria2 is installed correctly, you’ll see version information like:

      aria2 version 1.37.0

    macOS

    🍎 Step 1: Install Homebrew (if not already installed)

    Homebrew is the easiest way to install aria2 on macOS.
    To check if you already have it, open Terminal and type:

    brew -v
    

    If it prints a version, you can skip to Step 2.
    Otherwise, install Homebrew with:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

    When the installation finishes, follow any instructions shown (for example, to add Homebrew to your PATH).


    ⚙️ Step 2: Install aria2

    Once Homebrew is ready, simply run:

    brew install aria2
    

    This will automatically download and install the latest version of aria2.


    🧪 Step 3: Verify the installation

    After installation completes, check that aria2 works:

    aria2c --version
    

    If everything is set up correctly, you should see something like:

    aria2 version 1.37.0

    Linux

    Ubuntu / Debian / Linux Mint

    These distributions use APT.

    Step 1: Update package lists

    sudo apt update
    

    Step 2: Install aria2

    sudo apt install aria2
    

    Step 3: Verify

    aria2c --version
    

    Fedora / RHEL / CentOS Stream

    These use DNF.

    Step 1: Install aria2

    sudo dnf install aria2
    

    Step 2: Verify

    aria2c --version
    

    Arch Linux / Manjaro

    These use pacman.

    Step 1: Install aria2

    sudo pacman -S aria2
    

    Step 2: Verify

    aria2c --version
    

    openSUSE

    Step 1: Install aria2

    sudo zypper install aria2
    

    Step 2: Verify

    aria2c --version

    0-4. How to use / execute the merge

    Most of the steps are written in Kaggle Guide
    Check it out HERE

    For the documentation of MMS Planned Text, I'll write them on the latter steps

    Additionally, you need to input this path:

    • Workspace Path: Path to place every instances you'll need for the merge (empty folder)

    After putting the desired informations, click on Save As .ipynb and create the file

    To execute the merge:

    1. Open the .ipynb file via VSCode (If you saw the pop ups regarding installation, please install them)

    2. Select newest Python as the Kernel

    3. Execute first block (Dependencies, comment out the aria2 parts)

    4. Execute the block that has the Title you named

    5. (Optional) Upload the checkpoint to huggingface using next block

    6. (If you have GPU) Test the model using next 2 blocks

    For t2i testing, you can see the setups on the Kaggle Guide


    1. Beginner

    In this part, I'll write down basic merge principles
    This includes model installations, deleting and some basic merge methods you need to know for MMS planning

    1-1. Install Model

    +ModelName, model_link
    
    # If the model is LoRA
    +LoRAName, lora_link, %LR

    Specify the name of the model on ModelName (LoRAName)
    eg.)
    MA (short of modelA)

    The link to the model page on model_link (lora_link) the link can be either direct model download link or model page link
    eg.)
    both
    https://civitai.com/models/376130?modelVersionId=2392184
    and
    https://civitai.com/api/download/models/2392184?type=Model&format=SafeTensor&size=pruned&fp=fp16
    Can be used as model_link

    1-2. Delete Model

    -ModelName

    Put - before the ModelName (LoRAName) will delete the model
    This allows to save the space for the storage

    1-3. Weighted Sum

    CM A + B alpha Result

    Blend A and B with the alpha as the ratio of blending and save it as Result
    Higher the alpha is, stronger the B gets

    You can use float between 0 - 1 for the alpha
    In addition, you can use Block Weight Ratio (2-1) for the alpha as well

    For the Result name (which applies to the latter methods as well), using _ before the name automatically appends TEMP to the name

    eg.)

    CM MA + MB 0.3 Result

    1-4. Add Difference

    CM A + B - C alpha Result

    Add the difference between B and C with the strength of alpha ratio then save it as Result

    You can use float between 0 - 1 for the alpha
    In addition, you can use Block Weight Ratio (2-1) for the alpha as well

    eg.)

    CM MA + MB - MC 0.6 Result

    1-5. Sum Twice / Triple Sum

    CM A + B +S C alpha beta Result # Sum Twice
    
    CM A + B +T C alpha beta Result # Triple Sum

    Both methods blends 3 models into one and save it into Result

    Difference between 2 methods is the calculation of the ratio

    On Sum Twice, merge A and B using alpha as ratio, and then merge the resulted model and C using beta as ratio
    This means Sum Twice is the exact same thing as doing Weighted Sum 2 times

    On the other hand, Triple Sum is A:B:C = 1-(alpha + beta):alpha:beta, so it's straight up doing the blend of 3

    You can use float between 0 - 1 for both alpha and beta
    In addition, you can use Block Weight Ratio (2-1) for them as well

    eg.)

    CM MA + MB +S MC 0.3 0.2 Result

    2. Intermediate

    In this part, I'll explain some useful methods that enhances your creations

    2-1. Block Weight Ratio

    "BASE,IN00,IN01,IN02...,IN08,M00,OUT00,OUT01...,OUT08"

    Block Weight Ratio is the type of ratio of the merge which allows you to separate the effect to the very part you want

    Explanations for each blocks are written on 3-1 so for now, just take this as advanced ratio usage

    eg.)

    CM MA + MB "0,0,0.3,0.2,0.2,0.3,0.3,0.4,0.3,0.3,0,0.4,0.3,0.3,0.5,0.4,0.4,0.6,0.2,0.2" Result

    2-2. LoRA Bake

    LB Checkpoint LoRA1:alpha,LoRA2:beta,... Result

    Bake LoRA / several LoRAs into checkpoint and save it as Result

    You can only use floats as the ratios (alpha, beta, ...)
    The strength of them are same thing as using them on t2i so I don't recommend using too much strength on them

    eg.)

    LB MA LA:0.3,LB:0.2,LC:0.5 Result

    2-3. DARE Merge

    CM A +D B alpha beta(droprate) Result

    DARE (Drop And REscale) Merge allows you to merge models with same structure, different base models

    For example, both Illustrious models and Pony models are SDXL structure but they are different base models

    This method also allows you to merge VPred and EPS models as well
    This is how I apply Illustrious v2.0-stable into NoobAI EPS v1.1

    You can use float between 0 - 0.5 for both alpha and beta
    In addition, you can use Block Weight Ratio (2-1) for the alpha but not for the beta
    I highly recommend using floats below 0.5 for all of these values
    And for the beta, I'd recommend using 0.1 if you want to just extend the feature, 0.3 if you want to get the look as well

    In addition, using @s seed_num after the Result allows you to set the seed for the droprate into the desired seed_num

    eg.)

    CM MA +D MB "0.5,0,0.3,0.2,0.2,0.3,0.3,0.4,0.3,0.3,0.3,0.4,0.3,0.3,0.2,0.2,0.3,0.3,0.2,0.2" 0.2 Result @s 1234567

    2-4. Swap component

    CM A #S B alpha(components) Result

    This allows you to swap desired components in the A into B and save it as Result

    Components you can use:

    • unet : part where most of model's look is included

    • clip : CLIP, which is the part where encodes the prompt

    • clip-l: One of SDXL and Flux's CLIP which is the part where encodes the tokenized prompt (danbooru tags or any other kind of tags are integrated here)

    • clip-g: One of SDXL and Flux's CLIP which is the part where encodes the general words (normal sentences rather than tags)

    eg.)

    CM MA #S MB "clip-l" Result

    2-5. CLIP XOR

    CM A #X B Result

    CLIP XOR allows to extend the CLIP by XOR calculation (A + B - A&B)

    I use this to extend the knowledge which A isn't trained on using B

    eg.)

    CM MA #X MB Result

    2-6. XDARE

    CM A +D B alpha beta(droprate) Result @mode XDARE

    Combination of DARE and CLIPXOR, this allows to extend the knowledge between different base models as well

    The rest of usages are same as DARE

    eg.)

    CM MA +D MB "0.3,0,0.2,0.3,0.3,0.2,0.2,0.3,0.2,0.2,0.3,0.2,0.2,0.3,0.3,0.2,0.2,0.3,0.2,0.2" 0.2 Result @mode XDARE @s 1234567


    3. Professional

    In this part, I'll explain the rest complex part of the merging
    Knowing these will give you the perfect control over model merging

    3-1. Block Weight Placing

    This part documents all of the block weights from my researches for SDXL

    I don't know about Flux's block so I cannot give any of great informations about it

    Below is SDXL's blocks

    Overall analysis:
    BASE : text encoder
    IN00 - IN05 : handles anatomy and details
    IN06 - IN08 : handles tone and poses
    MID00 : over all similarity
    OUT00 - OUT03 : handles shape of face and body
    OUT04 - OUT08 : handles textures

    • BASE: CLIP, text encoder part which should be either 0 or 1 for methods except DARE and XDARE: those 2 methods needs it to be between 0.1 to 0.5

    • IN00: UNet's input part which also has the informations of fingers, contrast and outlines. For most of cases, this needs to be either 0 or 1 in order to avoid finger errors (cases like Nova Furry for example needs to have finger uniqueness so I set some of IN00 values for the merge into 0.3)

    • IN01: Mainly for background and depth of view

    • IN02 and IN03: Anatomy details, hair and clothing

    • IN04 and IN05: Textures, anatomy and NSFW parts

    • IN06: Clothing and posing

    • IN07: Pose structures

    • IN08: Anatomy base

    • M00: Handles overall likeness of the style. This has the exact same principle as BASE has: 0 or 1 for most methods

    • OUT00: Torso, age and accesories

    • OUT01: Upper body and shading

    • OUT02: Body curves and shading

    • OUT03: Eyes and skin colors

    • OUT04: Face shape and overall textures

    • OUT05: Nose, ears and overall textures

    • OUT06: Mouth and smooth lights

    • OUT07: Overall colors and rough draw lines

    • OUT08: UNet's output part which also has the informations of colors and drawing lines

    3-2. Fine Tuning

    @fine "Detail1,Detail2,Detail3,Contrast,Brightness,Red,Green,Blue"

    Fine tuning allows you to change the look of the checkpoint according desired values

    Document: https://github.com/hako-mikan/sd-webui-supermerger?tab=readme-ov-file#adjust

    Note: Don't use this feature too much
    While this allows to adjust the look, this also makes some noises if you put the strength too much

    eg.)

    CM MA + MB 0.3 Result @fine "0,0.1,0.2,0.2,0.3,5,-2,0"

    3-3. LoRA Block Weight Merge

    This part isn't actual merge method: it's more like technique to get better at LoRA handling

    Combining LoRA Bake and Block Weight Merge, this allows you to adjust the LoRA influences for the parts

    eg.)

    LB MA LA:0.3 RA
    -LA
    
    LB MA LB:0.4 RB
    -LB
    
    CM MA + RA +S RB "0,0,1,0.3,0.3,0.2,0.2,0.2,0,0,0,0.2,0.1,0.1,0,0,0,0,0.2,0.2" "0,0,0,0.2,0.2,0.3,0.3,0.5,0.4,0.4,0,0.3,0.3,0.2,0.3,0.3,0.4,0.4,0,0" Result


    4. Example

    The following example is what I used for Nova Orange XL - IL v13.0

    Some elements are different in order to protect exact recipe but 90% of the merge is exact same to the actual one

    Credits:

    +N12, https://civitai.com/models/967405?modelVersionId=2235952
    +NR3, https://civitai.com/models/967405?modelVersionId=2350462
    +NF, https://civitai.com/models/503815?modelVersionId=2395247
    
    CM N12 + NR3 +S NF "0,0,0.3,0.35,0.4,0.3,0.3,0.3,0.3,0.3,0,0.3,0.2,0.2,0.1,0.2,0.2,0.3,0.3,0.3" "0,0,0.3,0.4,0.4,0.3,0.3,0.4,0.3,0.3,0,0.3,0.2,0.2,0.2,0.3,0.3,0.2,0.2,0.2" _A
    -N12
    
    CM _A #S NR "clip-l,clip-g" _B
    -_A
    -NR
    
    CM _B +D NF "0.3,0,0.2,0.3,0.3,0.2,0.2,0.3,0.2,0.2,0.2,0.2,0.2,0.2,0.3,0.3,0.2,0.2,0.3,0.3" 0.2 _C @mode XDARE @s 9815782
    -_B
    -NF
    
    +N5, https://civitai.com/models/967405?modelVersionId=1296896
    
    CM _C + N5 "0,0,0,0,0,0,0.2,0.2,0.2,0.1,0,0.6,0.4,0.4,0.4,0.2,0.2,0.3,0,0" _D
    -_B
    -N5
    
    +I2, https://civitai.com/models/1489531?modelVersionId=1684946
    
    CM _D +D I2 "0.5,0,0.3,0.3,0.4,0.45,0.45,0.5,0.5,0.4,0.5,0.4,0.3,0.3,0.3,0.45,0.45,0.45,0.45,0.45" 0.2 _E @mode XDARE @s 7496716
    -I2
    
    +BB, https://civitai.com/models/839053, %LR
    
    LB _E BB:0.6 _F
    -BB
    -_E
    
    CM _F + _D "0,0,0.2,0.3,0.3,0.2,0.2,0.3,0.2,0.2,0,0.6,0.5,0.5,0.6,0.4,0.4,0.3,0.3,0.3" _G
    -_F
    -_D
    
    +LN, https://civitai.com/models/1715577?modelVersionId=2420498
    
    CM _G +D LN "0.3,0,0.2,0.35,0.4,0.3,0.3,0.3,0.3,0.3,0.2,0.3,0.2,0.2,0.1,0.2,0.2,0.3,0.3,0.3" 0.2 _H @mode XDARE @s 85618763
    -LN
    -_G
    
    +DC, https://civitai.com/models/2037836?modelVersionId=2421107
    
    CM _H + DC "0,0,0.3,0.3,0.3,0.2,0.2,0,0,0,0,0,0,0,0,0,0,0,0.3,0.3" NovaOrangeV13

    5. Conclusion

    Now you mastered all of the information you need to know to make your own model using merges

    I hope this will help you achieve your masterpiece!