| # SuperMerger | |
| - Model merge extention for [AUTOMATIC1111's stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui) | |
| - Merge models can be loaded directly for generation without saving | |
| # Recent Update | |
| ãã¹ãŠã®æŽæ°å±¥æŽã¯[ãã¡ã](https://github.com/hako-mikan/sd-webui-supermerger/blob/main/changelog.md)ã«ãããŸãã | |
| All updates can be found [here](https://github.com/hako-mikan/sd-webui-supermerger/blob/main/changelog.md). | |
| ### English / æ¥æ¬èª | |
| English: [](https://github.com/hako-mikan/sd-webui-supermerger/blob/main/README.md) | |
| ## Updates | |
| - æ©èœæŽæ°, ã³ãµã€ã³é¡äŒŒåºŠãçšããæé©å€èšç®æ©èœã匷åããŸãã[詳现](https://github.com/hako-mikan/sd-webui-supermerger/blob/main/calcmode_en.md#cosine) | |
| - æ°æ©èœ, æ°ããããŒãžæ¹åŒtensorãå°å ¥ããŸãã [詳现](https://github.com/hako-mikan/sd-webui-supermerger/blob/main/calcmode_en.md#tensor) | |
| - XYããããã«æ°ãã軞ã¿ã€ãã远å ããŸãã : calcmode,prompt | |
| äžéšLoRAé¢ä¿ã®æ©èœã䜿çšããå Žådiffusers(0.10.2以é),sklearnãå¿ èŠã§ãã | |
| # | |
| # æŠèŠ | |
| ãã®extentionã§ã¯ã¢ãã«ãããŒãžããéãä¿åããã«ç»åçæçšã®ã¢ãã«ãšããŠèªã¿èŸŒãããšãã§ããŸãã | |
| ãããŸã§ããŒãžããã¢ãã«ã¯ãã£ããä¿åããŠæ°ã«å ¥ããªããã°åé€ãããšããããšãå¿ èŠã§ãããããã®extentionã䜿ãããšã§HDDãSSDã®æ¶èãé²ãããšãã§ããŸãã | |
| # åçš®èšå® | |
| ## ããŒãžã¢ãŒã | |
| ### Weight sum | |
| éåžžã®ããŒãžã§ããalphaã䜿çšãããŸããα=0ã®å ŽåModel A, α=1 ã®æmodel Bã«ãªããŸãã | |
| ### Add difference | |
| å·®åããŒãžã§ãã | |
| ### Triple sum | |
| ããŒãžã3ã¢ãã«åæã«è¡ããŸããalpha,betaã䜿çšãããŸããã¢ãã«éžæçªã3ã€ãã£ãã®ã§è¿œå ããæ©èœã§ãããã¡ãããšåãããã§ããMBWã§ã䜿ããŸããããããMBWã®alpha,betaãå ¥åããŠãã ããã | |
| ### sum Twice | |
| Weight sumã2åè¡ããŸããalpha,betaã䜿çšãããŸããMBWã¢ãŒãã§ã䜿ããŸããããããMBWã®alpha,betaãå ¥åããŠãã ããã | |
| ### use MBW | |
| ãã§ãã¯ãããšãããã¯ããšã®ããŒãž(éå±€ããŒãž)ãæå¹ã«ãªããŸããåãããã¯ããšã®æ¯çã¯äžéšã®ã¹ã©ã€ããŒãããªã»ããã§èšå®ããŠãã ããã | |
| ### èšç®ææ³(calcmode) | |
| cosineãéžæãããšãèšå®ãããããŒãžæ¯çãäžå¿ãšããŠãã³ãµã€ã³é¡äŒŒåºŠãçšããæ¯èŒãè¡ããããŒãžã«ãããã¹ããªãããããªæ¯çãèšç®ãããã®æ¯çãçšããŠããŒãžãè¡ããŸãã | |
| 詳ããã¯äžèšãåç §ããŠäžãã(è±èªã§ã) | |
| èæ¡ããã[recoilme](https://github.com/recoilme)æ°ãšãã®ææ³ã玹ä»ãæé©åããŠããã[SwiftIllusion](https://github.com/SwiftIllusion)æ°ã«æè¬ããŸãã | |
| https://github.com/hako-mikan/sd-webui-supermerger/issues/33 | |
| https://github.com/recoilme/losslessmix | |
| ### ä¿å | |
| save metadataãæå¹ã«ãããšããŒãžæ¡ä»¶ãã¡ã¿ããŒã¿ãšããŠåã蟌ããŸããsafetensor圢åŒã®ã¿æå¹ã§ããåã蟌ãŸããæ¡ä»¶ã¯Metadataã¿ãã§ç¢ºèªã§ããŸãã | |
| ## åãã¿ã³ | |
| ### Merge | |
| ããŒãžããåŸãçæçšã¢ãã«ãšããŠèªã¿èŸŒã¿ãŸãã __å·Šäžã®ã¢ãã«æ å ±ãšã¯éãã¢ãã«ãããŒããããŠããããšã«æ³šæããŠãã ããã__ å·Šäžã®ã¢ãã«éžæç»é¢ã§ã¢ãã«ãéžæããªãããšãªã»ãããããŸã | |
| ### Gen | |
| text2imageã¿ãã®èšå®ã§ç»åçæãè¡ããŸã | |
| ### Merge and Gen | |
| ããŒãžããã®ã¡ç»åãçæããŸã | |
| ### Set from ID | |
| ããŒãžãã°ããèšå®ãèªã¿èŸŒã¿ãŸãããã°ã¯ããŒãžãè¡ããããã³ã«æŽæ°ããã1ããå§ãŸãé£çªã®IDãä»äžãããŸããIDãçæãããç»åãPNG infoã«èšèŒããããšãå¯èœã§ãwrite merged model ID toããèšå®ããŠãã ããã-1ã§SetããããšæåŸã«ããŒãžããèšå®ãèªã¿åºããŸããããŒãžãã°ã¯extention/sd-webui-supermerger/mergehistory.csvã«ä¿åãããŸããä»ã¢ããªã§éããç¶æ ã ãšèªã¿åããšã©ãŒãèµ·ããã®ã§æ³šæããŠãã ãããHistoryã¿ãã§é²èŠ§ãæ€çŽ¢ãå¯èœã§ããæ€çŽ¢ã¯åè§ã¹ããŒã¹ã§åºåãããšã§and/oræ€çŽ¢ãå¯èœã§ãã | |
| ## Hires-fix,batch size | |
| Hires-fixãæå¹åã§ããŸããbatch sizeã倿Žã§ããŸããbatch sizeã¯XY plotã§ã¯ç¡å¹åãããŸãã | |
| ## Elemental merge | |
| [ãã¡ã](https://github.com/hako-mikan/sd-webui-supermerger/blob/main/elemental_ja.md)ãåç §ããŠäžããã | |
| ## Sequential XY Merge and Generation | |
| é£ç¶ããŒãžç»åçæãè¡ããŸãããã¹ãŠã®ããŒãžã¢ãŒãã§æå¹ã§ãã | |
| ### alpha,beta | |
| ã¢ã«ãã¡ãããŒã¿ã倿ŽããŸããtensorã¢ãŒãã§ãæå¹ã§ãã | |
| ### alpha and beta | |
| ã¢ã«ãã¡ãããŒã¿ãåæã«å€æŽããŸããã¢ã«ãã¡ãããŒã¿ã®éã¯åè§ã¹ããŒã¹ã§åºåããåèŠçŽ ã¯ã«ã³ãã§åºåã£ãŠãã ãããæ°åã²ãšã€ã®å Žåã¯ã¢ã«ãã¡ããŒã¿å ±ã«åãå€ãå ¥åãããŸããtensorã¢ãŒãã§ãæå¹ã§ãã | |
| äŸ: 0,0.5 0.1,0.3 0.4,0.5 | |
| ### MBW | |
| éå±€ããŒãžãè¡ããŸããæ¹è¡ã§åºåã£ãæ¯çãå ¥åããŠãã ãããããªã»ããã䜿çšå¯èœã§ããã**æ¹è¡ã§åºåã**ããšã«æ³šæãããŠäžãããTriple,Twiceã®å Žåã¯ïŒè¡ã§ïŒã»ããã§å ¥åããŠäžããã奿°è¡ã ãšãšã©ãŒã«ãªããŸãã | |
| ### seed | |
| ã·ãŒãã倿ŽããŸãã-1ãšå ¥åãããšãå察ã®è»žæ¹åã«ã¯åºå®ãããseedã«ãªããŸãã | |
| ### model_A,B,C | |
| ã¢ãã«ã倿ŽããŸããã¢ãã«éžæçªã§éžæãããã¢ãã«ã¯ç¡èŠãããŸãã | |
| ### pinpoint blocks | |
| MBWã«ãããŠç¹å®ã®ãããã¯ã®ã¿ãå€åãããŸããå察ã®è»žã¯alphaãŸãã¯betaãéžãã§ãã ããããããã¯IDãå ¥åãããšããã®ãããã¯ã®ã¿alpha(beta)ãå€ãããŸããä»ã®ã¿ã€ããšåæ§ã«ã«ã³ãã§åºåããŸããã¹ããŒã¹ãŸãã¯ãã€ãã³ã§åºåãããšã§è€æ°ã®ãããã¯ãåæã«å€åãããããšãã§ããŸããæåã«NOTãã€ããããšã§å€å察象ãå転ããŸããNOT IN09-OUT02ãšãããšãIN09-OUT02以å€ãå€åããŸããNOTã¯æåã«å ¥åããªããšå¹æããããŸããã | |
| #### å ¥åäŸ | |
| IN01,OUT10 OUT11, OUT03-OUT06,OUT07-OUT11,NOT M00 OUT03-OUT06 | |
| ãã®å Žå | |
| - 1:IN01ã®ã¿å€å | |
| - 2:OUT10ããã³OUT11ãå€å | |
| - 3:OUT03ããOUT06ãå€å | |
| - 4:OUT07ããOUT11ãå€å | |
| - 5:M00ããã³OUT03ããOUT06以å€ãå€å | |
| ãšãªããŸãã0ã®æã¡å¿ãã«æ³šæããŠãã ããã | |
|  | |
| ãããã¯ID(倧æåã®ã¿æå¹) | |
| BASE,IN00,IN01,IN02,IN03,IN04,IN05,IN06,IN07,IN08,IN09,IN10,IN11,M00,OUT00,OUT01,OUT02,OUT03,OUT04,OUT05,OUT06,OUT07,OUT08,OUT09,OUT10,OUT11 | |
| ### calcmode | |
| èšç®æ¹åŒã倿ŽããŸããé©çšã§ããããŒãžã¢ãŒããšã®å¯Ÿå¿ã«æ³šæããŠäžãããã«ã³ãã§åºåããŸã | |
| ### prompt | |
| ããã³ããã倿Žã§ããŸããtxt2imgã®ããã³ããã¯ç¡èŠãããŸãããã¬ãã£ãããã³ããã¯æå¹ã§ãã | |
| **æ¹è¡ã§åºåã**ããšã«æ³šæãããŠäžããã | |
| ### XYããããã®äºçŽ | |
| Reserve XY plotãã¿ã³ã¯ããããŸãããããå®è¡ããããã¿ã³ãæŒãããšãã®èšå®ã®XYããããã®å®è¡ãäºçŽããŸããäºçŽããXYããããã¯éåžžã®XYãããããçµäºããåŸããReservationã¿ãã®Start XY plotãã¿ã³ãæŒããšå®è¡ãéå§ãããŸããäºçŽã¯XYããããå®è¡æã»æªå®è¡æãã€ã§ãå¯èœã§ããäºçŽäžèЧã¯èªåæŽæ°ãããªãã®ã§ãªããŒããã¿ã³ã䜿çšããŠãã ããããšã©ãŒçºçæã¯ãã®ãããããç Žæ£ããŠæ¬¡ã®äºçŽãå®è¡ããŸãããã¹ãŠã®äºçŽãçµäºãããŸã§ç»åã¯è¡šç€ºãããŸããããFinishedã«ãªã£ããã®ã«ã€ããŠã¯ã°ãªããã®çæã¯çµãã£ãŠããã®ã§ãImage Browserçã§èŠãããšãå¯èœã§ãã | |
| ã|ãã䜿çšããããšã§ä»»æã®å Žæã§äºçŽãžç§»åããããšãå¯èœã§ãã | |
| 0.1,0.2,0.3,0.4,0.5|0.6,0.7,0.8,0.9,1.0ãšãããš | |
| 0.1,0.2,0.3,0.4,0.5 | |
| 0.6,0.7,0.8,0.9,1.0 | |
| ãšãããµãã€ã®äºçŽã«åå²ããå®è¡ãããŸããããã¯èŠçŽ ãå€ãããŠã°ãªããã倧ãããªã£ãŠããŸãå Žåãªã©ã«æå¹ã§ãããã | |
| ### ãã£ãã·ã¥ã«ã€ã㊠| |
| ã¢ãã«ãã¡ã¢ãªäžã«ä¿åããããšã«ããé£ç¶ããŒãžãªã©ãé«éåããããšãã§ããŸãã | |
| ãã£ãã·ã¥ã®èšå®ã¯web-uiã®settingããè¡ã£ãŠãã ããã | |
| ### unloadãã¿ã³ | |
| çŸåšããŒããããŠããã¢ãã«ãæ¶å»ããŸããããã¯kohya-ssã®GUIã䜿çšãããšããªã©GPUã¡ã¢ãªãéæŸãããšãã«äœ¿çšããŸããæ¶å»ãããšç»åã®çæã¯ã§ããŸãããçæããå Žåã«ã¯ã¢ãã«ãéžã³çŽããŠäžããã | |
| ## LoRA | |
| LoRAé¢é£ã®æ©èœã§ããåºæ¬çã«ã¯kohya-ssã®ã¹ã¯ãªãããšåãã§ãããéå±€ããŒãžã«å¯Ÿå¿ããŸããçŸæç¹ã§ã¯V2.Xç³»ã®ããŒãžã«ã¯å¯Ÿå¿ããŠããŸããã | |
| 泚æïŒLyCORISã¯æ§é ãç¹æ®ãªããåç¬ããŒãžã®ã¿ã«å¯Ÿå¿ããŠããŸããåç¬ããŒãžã®æ¯çã¯1,0ã®ã¿äœ¿çšå¯èœã§ããä»ã®å€ãçšãããšsame to Strengthã§ãéå±€LoRAã®çµæãšäžèŽããŸããã | |
| LoConã¯æŽæ°ä»¥å€ã§ããããªãã«äžèŽããŸãã | |
| ### merge to checkpoint | |
| ã¢ãã«ã«LoRAãããŒãžããŸããè€æ°ã®LoRAãåæã«ããŒãžã§ããŸãã | |
| LoRAå1:ããŒãžæ¯ç1:éå±€,LoRAå2:éå±€,ããŒãžæ¯ç2,LoRAå3:ããŒãžæ¯ç3 | |
| ãšå ¥åããŸããLoRAåç¬ã§ã䜿çšå¯èœã§ããã:éå±€ãã®éšåã¯ç¡ããŠãåé¡ãããŸãããæ¯çã¯ãã€ãã¹ãå«ãã©ããªå€ã§ãå ¥åã§ããŸããåèšãïŒã«ãªããªããšãããªããšããå¶çŽããããŸãã(ãã¡ãã倧ãã1ãè¶ãããšç Žç¶»ããŸã)ã | |
| ### Make LoRA | |
| ãµãã€ã®ã¢ãã«ã®å·®åããLoRAãçæããŸãã | |
| demensionãæå®ãããšæå®ãããdimensionã§äœè£œãããŸããç¡æå®ã®å Žåã¯128ã§äœè£œããŸãã | |
| alphaãšbetaã«ãã£ãŠé 忝çã調æŽããããšãã§ããŸãã(alpha x Model_A - beta x Model B)ãalpha, beta = 1ãéåžžã®LoRAäœæãšãªããŸãã | |
| #### google colabäœ¿çšæã®åé¡ | |
| colabã§äœ¿çšããå Žåã«å€ãã®ãšã©ãŒãçºçããããšãå ±åãããŠããŸããããã¯è€æ°ã®åå ã«ãã£ãŠçºçããŠããããã§ãã | |
| ãŸãã¯ã¡ã¢ãªã®åé¡ã§ããã¢ãã«ã¯fp16ã¢ãã«ã䜿çšããããšãæšå¥šããŸãããã«ã¢ãã«ã䜿çšããå Žå8GB以äžã®ã¡ã¢ãªãå¿ èŠã«ãªããŸããããã¯ãã®ã¹ã¯ãªããã䜿çšããéã§ãããŸããã€ã³ã¹ããŒã«ãããŠããdiffusersã®ããŒãžã§ã³ãç°ãªããšãšã©ãŒãçºçããããã§ããversion 0.10.2ã§åäœç¢ºèªãããŠããŸãã | |
| ### merge LoRAs | |
| ã²ãšã€ãŸãã¯è€æ°ã®LoRAå士ãããŒãžããŸããkohya-ssæ°ã®ææ°ã®ã¹ã¯ãªããã䜿çšããŠããã®ã§ãdimensionã®ç°ãªãLoRAåæ°ãããŒãžå¯èœã§ãããdimensionã®å€æã®éã¯LoRAã®åèšç®ãè¡ããããçæãããç»åã倧ããç°ãªãå¯èœæ§ãããããšã«æ³šæããŠãã ããã | |
| calculate dimentionãã¿ã³ã§åLoRAã®æ¬¡å ãèšç®ããŠè¡šç€ºã»ãœãŒãæ©èœãæå¹åããŸããèšç®ã«ã¯ãããšæéãããã£ãŠã50çšåºŠã®LoRAã§ãæ°åç§ããããŸããæ°ããããŒãžãããLoRAã¯ãªã¹ãã«è¡šç€ºãããªãã®ã§ãªããŒããã¿ã³ãæŒããŠãã ãããæ¬¡å ã®åèšç®ã¯è¿œå ãããLoRAã ããèšç®ããŸãã | |
| ### éåžžããŒãžãšsame to Strengthã®éã | |
| same to Strengthãªãã·ã§ã³ã䜿çšããªãå Žåã¯ãkohya-ssæ°ã®äœè£œããã¹ã¯ãªããã®ããŒãžãšåãçµæã«ãªããŸãããã®å Žåãäžå³ã®ããã«Web-uiäžã§LoRAãé©çšããå Žåãšç°ãªãçµæã«ãªããŸããããã¯LoRAãU-netã«çµã¿èŸŒãéã®æ°åŒãé¢ä¿ããŠããŸããkohya-ssæ°ã®ã¹ã¯ãªããã§ã¯æ¯çããã®ãŸãŸæããŠããŸãããé©çšæã®æ°åŒã§ã¯æ¯çãïŒä¹ãããŠããŸããããæ¯çã1以å€ã®æ°å€ã«èšå®ãããšããããã¯ãã€ãã¹ã«èšå®ãããšStrengthïŒé©çšæã®åŒ·åºŠïŒãšç°ãªãçµæãšãªããŸããsame to Strengthãªãã·ã§ã³ã䜿çšãããšãããŒãžæã«ã¯æ¯çã®å¹³æ¹æ ¹ãé§ããããšã§ãé©çšæã«ã¯Strengthãšæ¯çãåãæå³ãæã€ããã«èšç®ããŠããŸãããŸãããã€ãã¹ã广ãåºãããã«ãèšç®ããŠããŸãã远å åŠç¿ãããªãå Žåãªã©ã¯same to Strengthãªãã·ã§ã³ã䜿çšããŠãåé¡ãªããšæããŸãããããŒãžããLoRAã«å¯ŸããŠè¿œå åŠç¿ãããå Žåã¯ã ãã䜿çšããªãæ¹ããããããããŸããã | |
| äžå³ã¯éåžžé©çš/same to Strengthãªãã·ã§ã³/éåžžããŒãžã®åå Žåã®çæç»åã§ããfigmaåãšukiyoE LoRAã®ããŒãžã䜿çšããŠããŸããéåžžããŒãžã®å Žåã¯ãã€ãã¹æ¹åã§ãïŒä¹ãããŠãã©ã¹ã«ãªã£ãŠããããšãåãããŸãã | |
|  | |
| éå±€å¥ããŒãžã«ã€ããŠã¯äžèšãåç §ããŠãã ãã | |
| https://github.com/bbc-mc/sdweb-merge-block-weighted-gui | |
| ãã®ã¹ã¯ãªããã§ã¯web-uiãmbw-mergeãkohya-ssã®ã¹ã¯ãªãããäžéšäœ¿çšããŠããŸã | |