---
title: "วิธีผสม Model สูตรผสมแบบโดนใจใน Stable Diffusion [Part7]"
url: https://www.thepexcel.com/stable-diffusion-part7/
type: post
date: 2023-04-28
updated: 2025-04-24
author: Sira Ekabut
categories: ["AI Image &amp; Video"]
tags: [stable diffusion, model]
---

# วิธีผสม Model สูตรผสมแบบโดนใจใน Stable Diffusion [Part7]

หากเพื่อนๆ ใช้ Stable Diffusion ทำการ Gen รูปขึ้นมาซักพัก คุณคงรู้ว่าสิ่งหนึ่งที่สำคัญมากๆ ที่จะทำให้ภาพผลลัพธ์ออกมาสวยงามก็คือตัว Model ที่เราเลือกใช้ในการ Generate รูปนั่นเองครับ

 

แม้ว่า[ในตอนที่ 2 ผมจะได้พูดถึงวิธีการโหลด Model ใหม่ๆ](https://www.thepexcel.com/stable-diffusion-part2/) ไปแล้ว แต่มันจะดีกว่ามั้ย ถ้าเราสามารถผสม Model ขึ้นมาใช้เองแบบโดนใจเราสุดๆ ได้? และ**มันอาจจะสามารถใช้เพื่อที่เราจะได้สร้างรูปที่ดูมีความต่างจากงานของคนอื่นได้ด้วยนะ** (อันนี้ดีมากๆ)

 

ซึ่งในบทความนี้ผมจะมาสอนทุกคนทำการผสม Model Checkpoint ขึ้นมาใช้เองกันครับ

 

ขอเตือนก่อนว่า บทความนี้ถูกเขียนในสไลต์ที่ไม่เหมือนกับบทความก่อนๆ ของผมเลย **เพราะมันไม่ได้เป็นการสอนมากนัก แต่เป็นการทดสอบให้ดูซะมากกว่า** และเนื้อหาบางส่วนก็อาจดู Nerd สุดๆ ไปเลย **ดังนั้นจะเหมาะกับคนที่อยากลงลึกด้านผสม Model โดยเฉพาะครับ**

 

## รวมบทความ Stable Diffusion

 

 

## การผสมมีแบบไหนบ้าง?

 

ซึ่งผมจะแนะนำการผสม Model Checkpoint 2 แบบ คือ แบบ Basic ทั่วๆ ไป กับแบบ Merge Block Weight ที่จะเป็นแบบ Advance ครับ **ซึ่งบอกไว้ก่อนเลยว่าถ้าใครจะทำตามก็ต้องการพื้นที่ Harddisk พอสมควรเลย เพราะ Checkpoint 1 ไฟล์ก็ประมาณ 5GB แล้ว หึหึ…**

 

โดยผมจะใช้ Model Checkpoint ตัวอย่าง 2 อัน ที่ต่างกันโดยสิ้นเชิงมาผสมกันนั่นคือ

 
- **ChillOutMix** (Model สาวสมจริง)   
  [https://civitai.com/models/6424/chilloutmix](https://civitai.com/models/6424/chilloutmix)
- **MeinaMix **(Model แนวการ์ตูน) ณ ตอนนี้คือ V9  
  [https://civitai.com/models/7240/meinamix](https://civitai.com/models/7240/meinamix)

 

**หมายเหตุ** : จริงๆ คุณจะเอา Checkpoint ไหนมาผสมกันก็ได้ ยิ่งทดลองยิ่งสนุก!

 

โดยเอาทั้ง 2 Model ไปไว้ใน Folder **stable-diffusion-webui\models\Stable-diffusio**n ให้เรียบร้อยก่อนนะครับ

 

## ผสม Model แบบ Basic

 

สำหรับการผสมแบบ Basic เราจะใช้เครื่องมือที่เรียกว่า** Checkpoint Merger** ที่มีมากับ Automatic1111 อยู่แล้วเลยครับ

 

### ผสมแบบ **Weighted SUM**

 

โดยที่เราจะเลือกแต่ละ Model ขึ้นมาที่ Model A กับ B แล้ว **เลือกอัตราส่วน Multiplier (M)** ที่จะผสมซึ่งมีความหมายดังนี้

 

คือสูตรการผสมคือ A * (1 – M) + B * M   
ดังนั้น **Multiplier ก็คือ มองได้ว่า คือ อัตราส่วนของ B นะไม่ใช่ A**

 
- ใส่ 0 คือไปทาง A 100%
- ใส่ 0.3 คือ ไปทาง A 70% **(อันนี้เห็นชัด)**
- ใส่ 0.5 คือ ผสมอย่างละครึ่ง (50%)
- ใส่ 1 คือ B 100%

 

Interpolation Method ผมเลือกแบบ Weighted Sum ก็คือให้มันเอามารวมแบบเฉลี่ยกัน และบันทึกไฟล์แบบ safetensor

 

แล้วผมจะตั้งชื่อไฟล์แบบนี้คือ ChillOut75MeinaMix25   
แปลว่า มีChillOut75% Meina25%   
ซึ่งเกิดจากการตั้ง ChillOut เป็น Model A โดยมี Multiplier เป็น 0.25 นะครับ

 ![1](https://www.thepexcel.com/wp-content/uploads/2023/04/SD-Part7-001-1024x531.png) 

พอกด Merge แป๊ปเดียวก็จะเสร็จเลย ไม่นานครับ (ไม่ถึง 1 นาที)

 

แล้วผมทำอย่างนี้อีก 2 อัตราส่วน คือ

 
- ChillOut50MeinaMix50 (Multiplier 0.5)
- ChillOut25MeinaMix75 (Multiplier 0.75)

 

พอได้ไฟล์ครบแล้วเราจะมาทดสอบผลของการ Merge Model กันครับว่าออกมาเป็นยังไง

 

#### ทำการทดสอบ

 

ในการทดสอบ เราจะใช้ x/y/z plot มาช่วย โดยเลือกให้เปลี่ยน checkpoint เป็น 5 ตัว คือ Chillout100%(MeinaMix 0%), 75% 50% 25%, 0%(MeinaMix 100%) ตามลำดับ

 

**หมายเหตุ **: ใน x values พยายามอย่ากดขึ้นบรรทัดใหม่นะ ไม่งั้นมันจะเอ๋อ (สร้างรูปเกิน)

 

เช่น ผมใส่แบบนี้

 

```
chilloutmix_NiPrunedFp32Fix.safetensors [fc2511737a],ChillOut75MeinaMix25.safetensors [589c49a4e3],ChillOut50MeinaMix50.safetensors [ab59bbccc8],ChillOut25MeinaMix75.safetensors [49a76cdc3a],meinamix_meinaV9.safetensors [eac6c08a19]
```

 ![2](https://www.thepexcel.com/wp-content/uploads/2023/04/SD-Part7-004.png) 

ในบทความนี้ผมจะใช้ Negative Prompt เหมือนกันทุกครั้ง และเป็นคำกลางๆ ที่ใช้ได้ทั้งภาพสมจริงและภาพการ์ตูน คือ

 

```
(worst quality:2), (low quality:2), (lowres, normal quality:2)
```

 

และจะใช้ Sampling Method ผมใช้ DPM++SDE Karas, Steps 20, CFG 7 และ จะใช้ seed 1234 เท่ากันหมดก่อน เพื่อความ simple

 

และจะเปลี่ยน Prompt และ Model ไปเรื่อยๆ (แต่จะใส่คำกลางๆ เพื่อให้ใช้ได้ทุก Model) เช่น ตอนแรกจะใช้ Prompt นี้

 

```
(best quality:1.4), (ultra highres:1.2), highest quality, highres, 1girl, (beautiful thai girl), (long hair), (in red tank top, jeans),(sit on the sofa)
```

 ![3](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0077-1234-1024x388.jpg) 

ปรากฏว่าภาพออกมา จะเห็นว่าภาพคล่อยๆ เปลี่ยนจากภาพสมจริงของ Chillout100% มาเป็นภาพการ์ตูนของ Meinamix 100% ตามน้ำหนักที่เราใส่ไว้นั่นเอง

 

#### ลองเปลี่ยน Prompt ที่ทำให้ 2 Model ต่างกันมากหน่อย

 

ผมจะพยายามทำให้ภาพทั้ง 2 ฝั่งอาจต่างกันพอสมควร เช่น ท่าทาง มุมกล้อง รายละเอียดฉากหลัง เพื่อที่จะได้เห้นอะไรชัดเจนขึ้นเวลา Merge Model แล้ว

 

โดยที่ผมทำ prompt ไว้ 4 ชุด **แต่ละชุด Save เป็น Styles เอาไว้ก่อน** (กดรูป icon Save ที่ใกล้ๆ ปุ่ม Generate) จะได้เรียกใช้ง่ายๆ

 

Style = S1_BASKETGIRL

 

```
(best quality:1.4), (ultra highres:1.2), highest quality, highres, 1girl, (beautiful thai girl),looking at viewer, (short hair), (in pe uniform), (in basketball stadium:1.1)
```

 

Style = S2_GAMERGIRL

 

```
(best quality:1.4), (ultra highres:1.2), highest quality, highres, 1girl, (beautiful thai girl:1.3),(looking at viewer:1.4), (portrait shot), (ponytail hair), (gaming headphone), (high tech gaming computer:1.3), (RGB, neon color light effect:1.2), (in gaming bed room in background)
```

 

Style = S3_COFFEEGIRL

 

```
(best quality:1.4), (ultra highres:1.2), highest quality, highres, (beautiful thai girl), (as a coffee barista:1.2), (casual cloth, apron:1.1), (in coffee shop:1.3)
```

 

Style = S4_KNIGHTGIRL

 

```
(best quality:1.4), (ultra highres:1.2), highest quality, highres, (beautiful thai girl), (using two hand knight sword:1.4),(in Europe middle age full plate knight armor:1.3), ( in the battle with large group of enemy army:1.4)
```

 

แล้วผมจะใช้ xyzplot เปลี่ยนทั้ง Checkpoint Name และ Style พร้อมกันเลย (Negative เดิม) เพื่อที่จะได้เห็นภาพทุกแบบพร้อมๆ กันง่ายๆ แบบนี้

 ![4](https://www.thepexcel.com/wp-content/uploads/2023/05/SD-part7N2-001.png) 

ซึ่งจะ Gen รูปออกมาได้แบบนี้เลยทีเดียว

 ![5](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0078-1234-921x1024.jpg) 

ก็จะเห็นว่า กรณีที่ผลของทั้ง 2 ฝั่งต่างกันพอสมควร ทั้งมุมกล้องก็ต่าง รายละเอียด accessory ต่างๆ เวลา Merge ระหว่างทาง ผลมันก็สามารถเกิดความแปลกใหม่มากๆ เลย…

 

ดังนั้นแปลว่า Model แต่ละอัน สามารถมีวิธีการตีความ Text Prompt ของเราแตกต่างกัน เช่น จะวาดอะไรบ้าง ตรงไหน แล้ววิธีในการสร้างภาพที่ต่างกันด้วย เช่น จะวาดไสตล์ไหน

 

ทั้งนี้ ถ้าเป็นการ Merge แบบ Basic ก็ง่ายๆ แค่นี้แหละ หลังจากนี้เราก็สามารถเลือกอัตราส่วนที่เราชอบไปใช้ได้เลย **รวมถึงยังสามารถเอาไปผสมกับ Checkpoint อื่นต่อได้อีกเรื่อยๆ ไม่มีที่สิ้นสุดครับ**

 

**แต่ถ้าจะผสม 3 Model แบบ Weighted SUM** เราไม่สามารถเลือก Model A, B, C แล้วผสมพร้อมกันด้วยเครื่องมือปกติได้ เพราะ Weighted SUM จะใช้สูตร A * (1 – M) + B * M ซึ่งไม่เกี่ยวกับ C เลย  
  
ส่วนถ้าใช้ C จะเป็นกรณี Add Difference ซึ่งอันนั้นทำงานอีกแบบนึง คือ A + (B – C) * M

 

### ผสมแบบ Add Difference

 

การผสมอันนี้ถึงจะมีการใช้ Model C นะ โดยผมใส่ Model C เป็น Model การ์ตูนอันนี้ [https://civitai.com/models/4468/counterfeit-v30](https://civitai.com/models/4468/counterfeit-v30)

 

ลองไล่ตามนี้

 

ChillOut | Meina | Counterfeit | M0.25 | M0.50 | M0.75 | M1.00

 

ภาพที่ได้ออกมาแบบนี้ (ขอ Censor หน่อยนะ ผสมแล้วมันโป๊เฉยเลย 555)

 ![6](https://www.thepexcel.com/wp-content/uploads/2023/05/adddiff-1024x845.jpg) 

ซึ่งผลของการใช้ Add Difference ค่อนข้างทำความเข้าใจยาก แต่ตามหลักแล้วคือ หากว่า Model B กับ C ต่างกันตรงไหน แล้ว Add ความต่างนั้นเข้าไปใน A ครับ

 

### สรุปแบบ Basic

 

ซึ่งถ้าสังเกตจะเห็นว่าการผสม Model แบบ **Weighted Sum** (Basic) มันก็จะเอา **Model A กับ B มาผสมๆ กันในภาพรวม**ตามอัตราส่วนหรือน้ำหนักที่กำหนด แบบที่ควบคุมเฉพาะบางเรื่องไม่ได้

 

แต่จะใช้แบบ Add Difference ก็ควบคุมได้ยากอยู่ดี…

 

แต่ถ้าเราอยากจะกำหนดแบบเจาะจงว่าอยากเอาอะไรของ Model A มาผสมกับอะไรของ Model B อันนี้ต้องผสมแบบ Advance แล้ว ถ้าสนใจก็อ่านต่อได้เลย!

 

## ผสม Model แบบ Advance

 

สำหรับการผสมแบบ Advance เราจะใช้ Extension **Merge Block Weighted** [https://github.com/bbc-mc/sdweb-merge-block-weighted-gui](https://github.com/bbc-mc/sdweb-merge-block-weighted-gui) มาช่วย ซึ่งมันมีความสามารถในการผสม Model แบบกำหนดได้อย่างละเอียดเลยว่า ส่วนผสม Block ไหนจะใช้ของ Model ตัวไหน ซึ่งจะมีประโยชน์คือ **สามารถพลิกแพลงให้เกิดภาพผลลัพธ์ที่ Merge ปกติทำไม่ได้ (หรือยาก)** เช่น ทำให้โครงสร้างของรูปมาจาก Model A แต่ว่ารายละเอียดวิธีวาดมาจาก Model B เป็นต้น

 

หมายเหตุ : จริงๆ มี Extension อีกตัว คือ SuperMerger ( [https://github.com/hako-mikan/sd-webui-supermerger.git](https://github.com/hako-mikan/sd-webui-supermerger.git )) ซึ่งตัวนี้จะปรับแต่งได้เยอะมาก แต่ผมกลัวคนอ่านจะงง ขอเอาตัว Weight ปกติให้ดูก่อนนะ ไว้ตอนต่อๆ ไปจะเล่น Super Merger ให้ดูอีกที

 

บอกก่อนว่าสำหรับการผสมแบบ Merge Block นี้ผมเองก็ยังไม่ได้รู้อะไรลึกมาก แต่จะขอ “อาสาช่วยทำการทดสอบ” ลองผสม Model แล้ว Gen ออกมาให้ดูหลายๆ แบบ แล้วให้เพื่อนๆ ช่วยกันสังเกตแล้วกันว่ามันทำงานยังไงกันแน่ ถ้าใครได้ข้อสรุปอะไรดีก็ฝากบอกด้วยนะ

 

ก่อนอื่นให้ไปลง Extension ให้เรียบร้อยก่อน แล้วจะมี Tab **Merge Block Weighted** โผล่ขึ้นมา

 

แต่มันจะมีอะไรให้เลือกเยอะแยะไปหมดเลย อย่าเพิ่งตกใจ เราจะค่อยๆ มาทำความเข้าใจกระบวนการ Gen รูปกันให้ละเอียดขึ้นก่อน

 

### ทบทวนกระบวนการ Gen รูปในเชิงเทคนิค

 

ภาพนี้สรุปกระบวนการ Gen รูปของ Stable Diffusion ไว้ดีมาก

 ![7](https://www.thepexcel.com/wp-content/uploads/2023/05/stable-diffusion-unet-steps-1024x549.png)
*https://jalammar.github.io/illustrated-stable-diffusion/*
 ![8](https://www.thepexcel.com/wp-content/uploads/2023/05/stable-diffusion-denoising-steps-latents-1024x536.png)
*https://jalammar.github.io/illustrated-stable-diffusion/*
 

เราจะพบว่ากระบวนการที่เปลี่ยน Noise ให้เป็นรูปนั้น จะค่อยๆ เปลี่ยนทีละ Step และในแต่ละ Step ก็จะมีสิ่งที่เรียกว่า U-Net ในการช่วยเปลี่ยนรูปที่มี Noise ให้เป็นรูปที่สมบูรณ์ (Noise น้อยลง) มากขึ้นเรื่อยๆ

 

**ซึ่ง U-Net แต่ละตัว** นั้นมีโครงสร้างประมาณนี้ (ซึ่งตามโครงสร้างแล้ว**มันเหมือนรูปตัว U **ก็เลยเรียกว่า U-Net ไง)

 ![9](https://www.thepexcel.com/wp-content/uploads/2023/05/unet.png)
*รูปจาก https://brunch.co.kr/@advisor/43*
 

#### อะไร คือ In-Out??

 

ก่อนอื่น เจ้า In-Out พวกนี้คือส่วนหนึ่งของสิ่งที่เรียกว่า **U-Net **(ผู้สร้างรูป)

 

โดยอยากให้ลองดูภาพนี้ก่อนว่า In-Out แต่ละตัว ความหมายคร่าวๆ หมายถึงอะไร?

 

ถ้าไล่จากซ้ายไปขวา

 
- **ช่วง In** คือ การพยายามบีบอัด (Down Sampling) ให้ภาพอยู่ในรูปแบบที่เล็กลง (ตรงกลาง) นั่นคือมันพยายามเก็บข้อมูลจากรูปใน Step ก่อนหน้า
- **Middle (M00)** คือ ข้อมูลที่ถูกเก็บไว้จนอยู่ในขนาดที่เล็กที่สุด
- **ช่วง Out **ทำการแปลงรูปขึ้นมาใหม่จนใหญ่และละเอียดขึ้น (Up Sampling) ในตอนหลัง ซึ่งมองได้ว่าขั้นตอน Out มีหน้าที่หลักในการสร้างรูปขึ้นมานั่นเอง

 

สิ่งสำคัญคือ **Step การทำงานมันวิ่งจากซ้ายไปขวาแล้วผ่านทุก Block** นั่นคือ   
Block IN00 -> IN01 -> IN02 -> … -> IN11 -> M00 -> OUT00 -> OUT01 -> OUT11

 ![10](https://www.thepexcel.com/wp-content/uploads/2023/04/kCHMxCE-1024x793.png)
*ภาพจาก [https://rentry.org/BlockMergeExplained](https://rentry.org/BlockMergeExplained)*
 

**ถ้าเรา Gen ภาพ 20 Steps แปลว่า มันผ่าน U-Net แบบนี้ 20 รอบ** แต่ละรอบจะค่อยๆ มี Noise น้อยลงเรื่อยๆ นั่นเอง

 

### อะไรคือ Base Alpha

 

**Base_Alpha** คือตัวตัดสินใจว่าจะใช้ Text Encoder ของ Model ไหน โดยที่**มันคล้ายๆ กับเป็นคนแปลข้อมูล**จาก Text Prompt, Tag ต่างๆ แล้วไปอธิบายให้กับนักวาด (U-Net) อีกที

 
- 0 = ใช้ Model A 100%
- 1 = ใช้ Model B 100%
- ถ้าใส่เป็นอัตราส่วน ก็จะใช้ text encoder ผสมกัน (ผมลอง 0.5 ให้ดู)

 

ซึ่งในทางเทคนิค ข้อความใน Text Prompt จะถูกแปลงเป็น Text Embedding แล้วเอามาใช้ในการเหนี่ยวนำ Noise ที่เกิดขึ้น (เรียกว่าใส่ Attention เข้าไป) เพื่อให้มันสร้างรูปที่ตรงกับ prompt ที่เราสั่งอีกที คล้ายๆ แบบนี้

 ![11](https://www.thepexcel.com/wp-content/uploads/2023/05/unet-with-text-steps-v2-1024x462.png)
*https://jalammar.github.io/illustrated-stable-diffusion/*
 

เอาล่ะ พอเข้าใจภาพรวมแล้ว เรามาลองทำสอบกันว่าถ้าเปลี่ยน Base Alpha (Text Encoder) จะเกิดอะไรขึ้น?

 

ก่อนอื่น ผมจะลองผสม ChillOut กับ Meina แบบ 50:50 นั่นคือไม่ปรับ in-out เลย ให้มันเป็น 0.5 ทั้งหมด (กด Clear Values ได้)

 

และเลือก Base Alpha เป็น 0, 0.5 และ 1 ดูก่อนว่าผลเป็นยังไง (ในรูปเลือก 0)

 ![12](https://www.thepexcel.com/wp-content/uploads/2023/04/SD-Part7-005-1024x484.png) 

จากนั้น ลองผสมเพิ่มแบบให้ base alpha ตรงข้ามกับตัวปกติ ซึ่งเราเลือก Preset ได้นะ ไม่ต้องไปเลื่อน in-put เอง

 
- ผสม Model A กับ B แต่ให้มาทาง A100% (preset = All_A) แต่ Base Alphaเป็น 1 (กลับทิศ)
- ผสม Model A กับ B แต่ให้มาทาง B100% (preset = All_B) แต่ Base Alphaเป็น 0 (กลับทิศ)

 ![13](https://www.thepexcel.com/wp-content/uploads/2023/04/SD-Part7-006-1024x368.png) 

ลองใช้ xyz plot แบบนี้ คือลองทั้ง base alpha 0 กับ 1 สลับกันไป

 

```
chilloutmix_NiPrunedFp32Fix.safetensors [fc2511737a],ChillOut100MeinaMix0Alpha1.safetensors [8f99e17e7a],ChillOut50MeinaMix50Alpha0.safetensors [625d2d6c2e],ChillOut50MeinaMix50Alpha05.safetensors [9b6fa7bf57], ChillOut50MeinaMix50Alpha1.safetensors [589ccfafc8],ChillOut0MeinaMix100Alpha0.safetensors [afeb25b6f7],meinamix_meinaV9.safetensors [eac6c08a19]
```

 

เอามา Gen รูป จะได้แบบนี้

 ![14](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0079-1234-1024x845.jpg) 

ซึ่งเอาตามตรง ผมก็ยังไม่เข้าใจ effect ของ base alpha มากนัก แต่ที่เห็น คือ

 
- การใช้ base alpha 0.5 และทุกอย่างทั้ง in และ out เป็น 0.5 หมด จะได้ผลเหมือนกับ Basic Merge ที่ weight 0.5
- การเลือกเอาทาง Model ซักอัน 100% แต่เอา base alpha จากอีก Model นึง ก็ได้ผลลัพธ์ที่เปลี่ยนไปเช่นกัน
- ดังนั้นแค่ base alpha ที่เปลี่ยนไปก็มีผลต่อรูปที่ออกมาแล้ว ก็เป็นเรื่องที่น่าทดลองเล่นดูนะครับ (หลายๆ อันก็ออกมาน่าสนใจมาก)

 

### ลองปรับ IN-Out แบบละเอียด

 

ที่นี้ความหมายของแต่ละ block นั้นคืออะไร? ก็มีคนพยายามจะทำการทดสอบและทำความเข้าใจ ซึ่งเค้าก็บอกกันว่ามันประมาณนี้

 ![15](https://www.thepexcel.com/wp-content/uploads/2023/05/ME160BD6_o-1024x456.png)
*จาก [https://rentry.co/Merge_Block_Weight_-china-_v1_Beta](https://rentry.co/Merge_Block_Weight_-china-_v1_Beta)*
 ![16](https://www.thepexcel.com/wp-content/uploads/2023/05/ME160CG1_o-1024x320.png) 

ซึ่งจะเป็นจริงรึเปล่า ผมจะลองทดสอบให้ดูด้วยว่าผล (ในกรณีของผม) เป็นยังไงครับ

 

### ลองใช้ Preset ที่มีอยู่แล้ว

 

แม้จะบอกว่าปรับละเอียด แต่เราสามารถจะเลือกใช้ Preset ที่มีมาให้ได้ครับ [ความหมายของ Preset แต่ละตัวดูได้ที่นี่](https://rentry.org/BlockMergeExplained)(สีน้ำเงิน =Model A , สีแดง =Model B)

 

ผมขอลองนำเสนอ ตัวที่เรียกว่า กับ WRAP16 ให้ดูครับ

 

#### WRAP16

 ![17](https://www.thepexcel.com/wp-content/uploads/2023/04/wrap16.png) 

สมมติผมเลือก **Preset Wrap16** แล้วใส่ A=ChillOut, B=MeinaxMix, Base alpha เป็น 0 ด้วยจะได้แบบนี้ (ผมตั้งชื่อ model ว่า ChillOutMeinaMixWrap16_Alpha0 )

 ![18](https://www.thepexcel.com/wp-content/uploads/2023/05/Part7-new-004-1024x360.png) 

พอเลือก Preset Wrap16 แล้ว Slider จะเปลี่ยนโดยอัตโนมัติ ตามรูป diagram ข้างบน (ผมเอามาแปะให้ดูจะได้ชัดๆ)

 ![19](https://www.thepexcel.com/wp-content/uploads/2023/05/Part7-new-005-1024x482.png) 

##### ถ้าเราเลือก **WRAP16** แบบนี้ แล้วลองเปลี่ยน base alpha ให้ดูทั้ง 0, 0.5,1

 

โดยเปลี่ยน checkpoint แบบนี้

 

```
chilloutmix_NiPrunedFp32Fix.safetensors [fc2511737a],ChillOutMeinaMixWrap16Alpha0.safetensors [245b5ab42e],ChillOutMeinaMixWrap16Alpha05.safetensors [c17d50da91],ChillOutMeinaMixWrap16Alpha1.safetensors [107b4c09c6],meinamix_meinaV9.safetensors [eac6c08a19]
```

 

ผลที่ได้เป็นแบบนี้ คือจะเห็นว่าแทบจะสลับ Composition กับรายละเอียดวิธีวาดภาพกันเลย (แต่รูป Gamer ไม่เห็นผลเท่าไหร่)

 ![20](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0080-1234-921x1024.jpg) 

##### ทดสอบ Rev_SmoothStep*2

 

คราวนี้ ผมลองใช้ Rev_SmoothStep*2 ว่าถ้าเป็นรูปแบบคล้ายกัน แต่มีการไล่ Weight ระหว่างทางด้วยผลจะเป็นแบบไหน?

 ![21](https://www.thepexcel.com/wp-content/uploads/2023/04/revsmoothx2.png) ![22](https://www.thepexcel.com/wp-content/uploads/2023/05/Part7-new-006-1024x482.png) 

จะได้ผลแบบนี้ ซึ่งผมมองว่ามีการผสมผสานบางอย่างกันมากขึ้น

 ![23](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0081-1234-921x1024.jpg) 

จะเห็นว่า พอใช้ preset ที่มีการไล่ weight** ภาพมันจะดูผสมผสานระหว่าง 2 model มากขึ้น** เช่นในเคสที่เป็นภาพสมจริง + anime ผสมกันก็จะดูเป็น 2.5D มากขึ้น ถ้าใครชอบแบบนี้ก็น่าจะเล่นพวก preset ที่มีการไล่ weight ครับ

 

### ทำการทดลองปรับ In-Out ทีละส่วน

 

**หากเราปรับ In Out หลายเรื่องพร้อมกันมากเกินไป เราก็จะไม่เข้าใจว่าจริงๆ แล้วแต่ละอันมันทำอะไรกันแน่**… ดังนั้นเราจะมาลองค่อยๆ ปรับทีละน้อยๆ ลงหน่อย ซึ่งมันมีทั้งหมด 25 block (ฝั่งละ 12×2 ฝั่ง + กลางอีก 1) **ดังนั้นผมจะปรับทีละ 4 block** แล้วกัน เพื่อที่จะได้ทำความเข้าใจได้มากขึ้น (ใครขยันจะลองทำทีละ Block เลยก็ได้นะ…)

 

ซึ่งเราจะทดลองให้ทุก Parameter เป็น 0 ให้หมด (คือเป็น A 100%) แล้วค่อยๆ ปรับทีละส่วนเป็น B 100% **โดยที่ผมจะใช้ base alpha เป็น 0.5 แล้วกัน จะได้ไม่ต้อง Gen เยอะมากจนเกินไป** (เพราะมันจะดูกลางๆ ระหว่าง 0 กับ 1) เอาล่ะ เริ่ม!

 

#### ปรับช่วงปลายทั้งสองข้างของ U-Net IN 00-03 และ OUT 08-11 เป็น B 100%

 

ผมมีลองใส่ M00 ไปด้วยอีกอัน ดูว่ามีผลหรือไม่ เรียงดังนี้

 

ChillOut | IN 00-03 | Out 08-11 |   
IN 00-03 และ Out 08-11 | IN 00-03 และ M00 และ Out 08-11 | MeinaMix

 ![24](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0082-1234-1024x970.jpg) 

**สรุปความเห็น**

 

เท่าที่ดูแล้ว โดยรวม ค่าช่วงปลายทั้งสองข้างของ U-Net (IN 00-03 และ OUT 08-11) ไม่เกี่ยวกับ Composition แน่นอน เพราะถึงแม้จะปรับเป็น B แล้ว ภาพยังค่อนข้าง Compose เหมือน Model A อยู่จริงๆ  
  
ดังนั้นที่มีคนบอกว่าช่วงปลายทั้งสองข้างของ U-Net นี้มันเกี่ยวกับราบละเอียดของภาพก็น่าจะมีความถูกต้องอยู่

 

#### ปรับช่วง IN 04-07 และ OUT 04-07 เป็น B 100%

 

ChillOut | IN 04-07 | Out 04-07 |   
IN 04-07 และ Out 04-07 | IN 04-07 และ M00 และ Out 04-07 | MeinaMix

 

#### กรณี Base Alpha เป็น 0

 ![25](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0090-1234-1024x970.jpg) 

##### กรณี Base Alpha เป็น 0.5

 ![26](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0083-1234-1024x970.jpg) 

##### กรณี Base Alpha เป็น 1

 ![27](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0091-1234-1024x970.jpg) 

#### ปรับช่วง IN 08-11 และ OUT 00-03 เป็น B 100%

 

มันก็คือส่วนกลับของ Wrap16 นั่นเองครับ มาลองกัน

 

ChillOut | IN 08-11 | Out 00-03 |   
IN 08-11 และ Out 00-03 | IN 08-11 และ M00 และ Out 00-03 | MeinaMix

 

##### กรณี Base Alpha เป็น 0

 ![28](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0092-1234-1024x970.jpg) 

##### กรณี Base Alpha เป็น 0.5

 ![29](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0084-1234-1024x970.jpg) 

#### แบบพิสดาร : กลุ่ม SmoothStep/3

 

ลองใช้ Preset = SmoothStep/3 และ Reverese Smooth Step/3 ดูครับ

  ![30](https://www.thepexcel.com/wp-content/uploads/2023/05/smoothstepdiv3.png) ![31](https://www.thepexcel.com/wp-content/uploads/2023/05/revsmoothstepdiv3.png)  

ChillOut | SmoothStep/3 | Reverse SmoothStep/3 | MeinaMix

 ![32](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0088-1234-761x1024.jpg) 

#### แบบพิสดาร : กลุ่ม True Cubic Hermite

 

ใช้ Preset = True Cubic Hermite และ True Reverse Cubic Hermite

  ![33](https://www.thepexcel.com/wp-content/uploads/2023/05/true-cubic-herm.png) ![34](https://www.thepexcel.com/wp-content/uploads/2023/05/true-rev-cubic-herm.png)  

ChillOut | True Cubic Hermite | True Reverse Cubic Hermite | MeinaMix

 ![35](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0089-1234-761x1024.jpg) 

#### ปรับช่วง OUT ทั้งหมด เป็น B 100%

 

คราวนี้เรามาทดสอบ IN เป็น A แต่ Out ทั้งแถบเป็น B กันบ้าง

  ![36](https://www.thepexcel.com/wp-content/uploads/2023/05/ou12.png) ![37](https://www.thepexcel.com/wp-content/uploads/2023/05/out12_5-1.png)  

ซึ่งจะคล้ายกับ Preset OUT12 กับ OUT12_5 แต่ผมจะทำให้ M00 เป็น B100% เพิ่มอีกอัน

 

##### กรณี Base Alpha เป็น 0

 ![38](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0086-1234-921x1024.jpg) 

##### กรณี Base Alpha เป็น 0.5

 ![39](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0085-1234-921x1024.jpg) 

##### กรณี Base Alpha เป็น 1

 ![40](https://www.thepexcel.com/wp-content/uploads/2023/05/xyz_grid-0087-1234-921x1024.jpg) 

### ข้อสรุปแบบ Block Merge

 

เป็นการสรุปจากการสังเกต (จะมาเพิ่มเรื่อยๆ ถ้าผมได้ข้อสรุปที่ค่อนข้างชัดเจน เพื่อนๆ ก็ช่วยสังเกต ช่วยทดสอบ แล้วมาบอกกันได้นะ ^^)

 
- **IN เลขเยอะ** เช่น IN08-11 เกี่ยวข้องกับ Composition โดยรวม
- **Out ช่วงกลาง** เช่น Out04-07 เกี่ยวข้องกับการวาด subject หลัก เช่นตัวละคร

 

## Resources

 
- [https://rentry.org/BlockMergeExplained](https://rentry.org/BlockMergeExplained)
- [https://rentry.co/Merge_Block_Weight_-china-_v1_Beta](https://rentry.co/Merge_Block_Weight_-china-_v1_Beta)
- [https://jalammar.github.io/illustrated-stable-diffusion/](https://jalammar.github.io/illustrated-stable-diffusion/)

---

_Source: [https://www.thepexcel.com/stable-diffusion-part7/](https://www.thepexcel.com/stable-diffusion-part7/)_
