├── .github └── workflows │ └── build_page.yml ├── CNAME ├── _config.yml ├── a ├── close-up.png ├── cowboy_shot.png ├── dutch_angle.png ├── from_above.png ├── from_behind.png ├── from_side.png ├── pov.png └── upside-down.png ├── action ├── armpit_peek.png ├── fox_shadow_puppet.png ├── hands_on_own_knees.png ├── holding_eyewear.png ├── holding_strap.png ├── knees_to_chest.png ├── reaching.png └── shushing.png ├── assets └── css │ └── style.scss ├── face ├── a.png ├── glaring.png ├── no_mouth.png ├── sanpaku.png ├── solid_circle_eyes.png ├── streaming_tears.png ├── tsundere.png └── turn_pale.png ├── fuku ├── alice.png ├── business_suit.png ├── dougi.png ├── fur-trimmed_dress.png ├── gothic.png ├── halter_dress.png ├── kindergarten_uniform.png ├── meiji_schoolgirl_uniform.png └── print_dress.png ├── merge ├── e.jpg └── h.jpg ├── nya ├── boxing.png ├── vegetable.png └── wholesale.png ├── readme.md └── 快.py /.github/workflows/build_page.yml: -------------------------------------------------------------------------------- 1 | name: nyanya 2 | on: 3 | push: 4 | branches: [ "slave" ] 5 | workflow_dispatch: 6 | 7 | jobs: 8 | pg: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | with: 13 | token: ${{ secrets.TOKEN }} 14 | - name: Set up Python 3.11 15 | uses: actions/setup-python@v5 16 | with: 17 | python-version: 3.11 18 | - name: Install dependencies 19 | run: python -m pip install opencv-python==4.9.0.80 pillow==10.3.0 20 | - run: | 21 | git config user.name "github-actions[bot]" 22 | git config user.email "41898282+github-actions[bot]@users.noreply.github.com" 23 | git checkout -b pg 24 | python 快.py 25 | git add . 26 | git commit -m "好!" 27 | git push --set-upstream --force origin pg 28 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | c.librian.net -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: ' ' 2 | name: null 3 | -------------------------------------------------------------------------------- /a/close-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/close-up.png -------------------------------------------------------------------------------- /a/cowboy_shot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/cowboy_shot.png -------------------------------------------------------------------------------- /a/dutch_angle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/dutch_angle.png -------------------------------------------------------------------------------- /a/from_above.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/from_above.png -------------------------------------------------------------------------------- /a/from_behind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/from_behind.png -------------------------------------------------------------------------------- /a/from_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/from_side.png -------------------------------------------------------------------------------- /a/pov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/pov.png -------------------------------------------------------------------------------- /a/upside-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/a/upside-down.png -------------------------------------------------------------------------------- /action/armpit_peek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/armpit_peek.png -------------------------------------------------------------------------------- /action/fox_shadow_puppet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/fox_shadow_puppet.png -------------------------------------------------------------------------------- /action/hands_on_own_knees.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/hands_on_own_knees.png -------------------------------------------------------------------------------- /action/holding_eyewear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/holding_eyewear.png -------------------------------------------------------------------------------- /action/holding_strap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/holding_strap.png -------------------------------------------------------------------------------- /action/knees_to_chest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/knees_to_chest.png -------------------------------------------------------------------------------- /action/reaching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/reaching.png -------------------------------------------------------------------------------- /action/shushing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/action/shushing.png -------------------------------------------------------------------------------- /assets/css/style.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import "{{ site.theme }}"; 5 | 6 | th { 7 | width: 12.5%; 8 | } 9 | 10 | td img { 11 | transform: scale(1.06); 12 | } 13 | -------------------------------------------------------------------------------- /face/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/a.png -------------------------------------------------------------------------------- /face/glaring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/glaring.png -------------------------------------------------------------------------------- /face/no_mouth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/no_mouth.png -------------------------------------------------------------------------------- /face/sanpaku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/sanpaku.png -------------------------------------------------------------------------------- /face/solid_circle_eyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/solid_circle_eyes.png -------------------------------------------------------------------------------- /face/streaming_tears.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/streaming_tears.png -------------------------------------------------------------------------------- /face/tsundere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/tsundere.png -------------------------------------------------------------------------------- /face/turn_pale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/face/turn_pale.png -------------------------------------------------------------------------------- /fuku/alice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/alice.png -------------------------------------------------------------------------------- /fuku/business_suit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/business_suit.png -------------------------------------------------------------------------------- /fuku/dougi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/dougi.png -------------------------------------------------------------------------------- /fuku/fur-trimmed_dress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/fur-trimmed_dress.png -------------------------------------------------------------------------------- /fuku/gothic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/gothic.png -------------------------------------------------------------------------------- /fuku/halter_dress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/halter_dress.png -------------------------------------------------------------------------------- /fuku/kindergarten_uniform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/kindergarten_uniform.png -------------------------------------------------------------------------------- /fuku/meiji_schoolgirl_uniform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/meiji_schoolgirl_uniform.png -------------------------------------------------------------------------------- /fuku/print_dress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/fuku/print_dress.png -------------------------------------------------------------------------------- /merge/e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/merge/e.jpg -------------------------------------------------------------------------------- /merge/h.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/merge/h.jpg -------------------------------------------------------------------------------- /nya/boxing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/nya/boxing.png -------------------------------------------------------------------------------- /nya/vegetable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/nya/vegetable.png -------------------------------------------------------------------------------- /nya/wholesale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RimoChan/ConfusionXL/35c9d71cc34b0440693dc79bb090a7da6a7f09dd/nya/wholesale.png -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # ConfusionXL V2.0 - 世界上最好的2次元模型 2 | 3 | 你在画图的时候有遇到过这样的问题吗? 4 | 5 | - 模型不认识你的标签,比如想摆1个罕见的姿势,但是模型怎么也摆不对? 6 | 7 | - 图片的标签数变多时,模型顾此失彼,改了表情之后发型又错了? 8 | 9 | - 哪些模型要加哪些negative prompt很难记?还有prompt怎么排序? 10 | 11 | 好在聪明的莉沫酱训练了1个最好的模型,能帮你快速解决这些问题! 12 | 13 | 14 | ## 概述 15 | 16 | ![](merge/e.jpg) 17 | 18 | ConfusionXL是世界上最好的2次元模型,它好在: 19 | 20 | - 在标签prompts上具有非常高的准确度。 21 | 22 | - 当标签数很多时,也能正确地应用每个标签到画面中。 23 | 24 | - 不需要额外的prompts,就能生成高质量的插画。 25 | 26 | 27 | ## 下载地址 28 | 29 | Github的LFS超过1G居然要收钱,所以我就把模型传到Civitai了,下载的链接在这里: 30 | 31 | 32 | ## 模型效果 33 | 34 | 35 | 36 | 我们先做1个约定。 37 | 38 | 很多人做demo的时候,喜欢生成很多图片,然后挑1张最好的拿出来展示,结果用户下载回去试1下就发现,啊,根本就不是demo里那个样子。 39 | 40 | 所以,接下来所有的图片我都只生成1次,出bad case了也留着,大家也可以看base case究竟是些什么样的。 41 | 42 | 具体来说是这样,固定seed=1,然后同1行里,所有的生成参数都保持1致。 43 | 44 | 为了节省大家的流量,我把生成的图片都转成webp了。不过我发现很难把PNG info打到webp里,所以我用奇怪的法术把它们编译到了HTML里,大家可以在对着下面的图片右键点「检查元素」来查看完整的生成参数。 45 | 46 | 右边的模特是闪耀世界的爱丽丝,prompts是这些: 47 | 48 | ``` 49 | 1girl, blonde hair, twintails, blue dress, white apron, 50 | smile, closed mouth, 51 | tachi-e, fullbody, white background, 52 | Alice in glitterworld 53 | ``` 54 | 55 | 下面的各种样例就都用爱丽丝来表示啦,这样可以看出标签比较正交,不相关的标签不会互相干扰。 56 | 57 | 注意,这里没有角色LORA,然后你不认识闪耀世界的爱丽丝也是正常的,因为这是我随便打的,也没有叫这个名字的游戏。 58 | 59 | 好,接下来我们让爱丽丝先来摆各种动作吧。 60 | 61 | 62 | ### 动作 63 | 64 | 普通的站、坐、走路之类的标签对这个模型太简单了,反正都能画,所以我们跳过,从难的开始! 65 | 66 | 为了防止我专门挑效果好的标签做样子,我就直接从[标签超市](https://tags.novelai.dev)的分类中,选1些罕见的标签,规则是固定从使用次数低于5k的标签开始,往下数8个标签 (不过会跳过NSFW和不适合1个人用的标签),这些就是要测的内容。 67 | 68 | 生成结果是这样—— 69 | 70 | | 伸手触及 (reaching) | 拿着眼镜 (holding eyewear) | 狐狸手势 (fox shadow puppet) | 微微露出腋窝 (armpit peek) | 膝盖顶到胸部 (knees to chest) | 嘘手势 (shushing) | 手拉着吊带 (holding strap) | 双手放在自己的膝盖上 (hands on own knees) | 71 | |---:|---:|---:|---:|---:|---:|---:|---:| 72 | | ![](action/reaching.png) | ![](action/holding_eyewear.png) | ![](action/fox_shadow_puppet.png) | ![](action/armpit_peek.png) | ![](action/knees_to_chest.png) | ![](action/shushing.png) | ![](action/holding_strap.png) | ![](action/hands_on_own_knees.png) 73 | | 画对了 | 画对了,不过眼镜的腿歪了 | 画对了,不过多了耳朵 | 露太多了吧 | 画对了 | 画对了 | 画对了 | 画对了,不过手崩了 | 74 | 75 | 除了armpit peek以外剩下7个都画对了。 76 | 77 | 78 | ### 面部 79 | 80 | 同样我们也从5k使用数开始,往下数8个标签,生成结果是这样—— 81 | 82 | | 三白眼 (sanpaku) | 脸色苍白 (turn pale) | 实心圆眼睛 (solid circle eyes) | 怒视 (glaring) | 没画出嘴 (no mouth) | 愤怒 (>:() | 流泪 (streaming tears) | 傲娇 (tsundere) | 83 | |---:|---:|---:|---:|---:|---:|---:|---:| 84 | | ![](face/sanpaku.png) | ![](face/turn_pale.png) | ![](face/solid_circle_eyes.png) | ![](face/glaring.png) | ![](face/no_mouth.png) | ![](face/a.png) | ![](face/streaming_tears.png) | ![](face/tsundere.png) | 85 | | 没画出来 | 画对了 | 画对了 | 画对了 | 画对了,但眼睛怎么也没了 | 画对了,还有表情就叫这个不是我打错 | 画对了 | 画对了 | 86 | 87 | 其实按顺序中间应该还有yellow sclera、crazy eyes,结果也是对的,但是感觉这2个标签有点吓人就不放了。 88 | 89 | 除了sanpaku以外剩下7个都画对了,这个我感觉主要是因为tokenizer比较不适应日语的音译词。 90 | 91 | 还有傲娇那张真不错,嘿嘿嘿,爱丽丝可爱捏。 92 | 93 | 94 | ### 构图视角 95 | 96 | 构图视角其实没有几个低于5k的标签,所以我只好从头选了5个,因为是头部标签所以效果都很好,效果是这样—— 97 | 98 | | 七分身镜头 (cowboy shot) | 背影 (from behind) | 角色的侧面 (from side) | 德式倾斜镜头 (dutch angle) | 主观视角 (pov) | 俯视镜头 (from above) | 特写镜头 (close-up) | 倒挂的 (upside-down) | 99 | |---:|---:|---:|---:|---:|---:|---:|---:| 100 | | ![](a/cowboy_shot.png) | ![](a/from_behind.png) | ![](a/from_side.png) | ![](a/dutch_angle.png) | ![](a/pov.png) | ![](a/from_above.png) | ![](a/close-up.png) | ![](a/upside-down.png) | 101 | | 画对了 | 画对了 | 画对了 | 画对了 | 画对了 | 画对了 | 画对了 | 画对了 | 102 | 103 | 唔呣,全都画对了。 104 | 105 | 106 | ### 换衣服 107 | 108 | 衣服的种类比较多,这里我们就不按衣服和裤子分开来挑了,等下笛卡尔积非常多看不完。 109 | 110 | 直接从套装分类里挑标签,从5k开始往下数8个,生成结果是这样—— 111 | 112 | | 武道服 (dougi) | 绕颈裙 (halter dress) | 毛边连衣裙 (fur-trimmed dress) | 职场制服 (business suit) | 印花裙子 (print dress) | 幼儿园制服 (kindergarten uniform) | 明治年间女学生制服 (meiji schoolgirl uniform) | 哥特风格 (gothic) | 113 | |---:|---:|---:|---:|---:|---:|---:|---:| 114 | | ![](fuku/dougi.png) | ![](fuku/halter_dress.png) | ![](fuku/fur-trimmed_dress.png) | ![](fuku/business_suit.png) | ![](fuku/print_dress.png) | ![](fuku/kindergarten_uniform.png) | ![](fuku/meiji_schoolgirl_uniform.png) | ![](fuku/gothic.png) | 115 | | 武道服是这样的吗,感觉没有很像 | 画对了 | 画对了 | 画对了 | 画对了 | 画对了,不过怎么变小了 | 是女学生制服,但不是明治吧 | 画对了 | 116 | 117 | 8张里面画对了6张,不过错误的那2个确实有难度。武道服和明治制服就算问我,我也不知道是什么东西…… 118 | 119 | 120 | ### 角色生成 121 | 122 | SDXL模型很多都可以不用LORA,直接用名字生成1些角色。 123 | 124 | 尽管我没有特意去优化这个能力,不过最后实际测下来效果居然还满好的。 125 | 126 | 127 | 选了100多个命中率最高的角色,拼了1张全家(?)福。它们生成时的prompt全都是`1girl, 角色名, upper body, white background, looking at viewer`。 128 | 129 | ![](merge/h.jpg) 130 | 131 | 132 | ### 1些生成实际场景的样例 133 | 134 | 接下来我们来看看,假如我心里设想了1个场景,用ConfusionXL把它还原出来,究竟能达到多少的还原度。 135 | 136 | 这个部分作为测试其实不太可靠,更像是娱乐啦。因为我没法证明我不是专门挑效果好的出来贴进文档里,至于效果怎么样也没有对错之分,只能大家自己看了之后自己觉得有趣就好。 137 | 138 | 这些样例1次生成就成功的话其实不太可能,所以我过程中有微调过几次prompt,比如换各种表情换到满意之类的。不过还是要遵守1下原则,就固定seed=1,其他参数都尽量保持不变。 139 | 140 | | 爱丽丝和老板在办公室里打架 | 敢和爱丽丝对线,你的妈是批发的? | 你不是说你的鸡会打篮球吗? | 141 | |---:|---:|---:| 142 | | ![](nya/boxing.png) | ![](nya/wholesale.png) | ![](nya/vegetable.png) | 143 | 144 | 145 | - 第1张,老板和爱丽丝打架。 146 | - 其实prompt里有office suit,我想看老板穿西装打拳击的,结果画出来这个紧身西装,嗯……比起老板更像是水电工。 147 | - 还有老板你怎么不带拳套啊,这样不是会受伤的吗! 148 | - 原本prompt是写的fighting,不过fighting这个词好像模型不是很理解,画出来像跳舞,就改成boxing了。 149 | - 第2张,你的妈是批发的。 150 | - laptop很容易画崩,经常少了键盘之类的,后来想到可以加上table,放在桌子上就好很多了。 151 | - 话说后面的人是谁啊(笑),围裙难道不是穿反了吗…… 152 | - 第3张,打篮球。 153 | - 1开始其实只是想画穿这套衣服打篮球的,又想到可以加上鸡的元素,于是就变成了这个样子。 154 | - 也想过让爱丽丝指着鸡,说「你会不会打啊」,不过加上pointing之后,好像变成了指着画面外的某个人,感觉也不错,就这样保存了。 155 | 156 | 157 | ## 指标 158 | 159 | 测指标的仓库是这个: (其实也是我写的) 160 | 161 | 具体的指标计算方式和详细的指标,感兴趣的话可以点到里面去看看,这里就只说结论,是这样—— 162 | 163 | 标签准确度,相比ACG模型的平均值提升37%,并且在各个方向均有8%~151%的提升。 164 | 165 | 这个比例随着prompts的数量上升,在32标签时提升56%,高于所有典型模型的准确度。 166 | 167 | 各个方向的情况是这样,数值为准确度: 168 | 169 | | | CXL2.0 | 平均值 | 偏差 | 170 | |:-----------|---------:|---------:|:---------| 171 | | 艺术破格 | 0.353 | 0.141 | +150.35% | 172 | | 人物 | 0.846 | 0.608 | +39.14% | 173 | | 人文景观 | 0.947 | 0.859 | +10.24% | 174 | | 构图 | 0.689 | 0.455 | +51.43% | 175 | | 物品 | 0.94 | 0.791 | +18.84% | 176 | | 自然景观 | 0.982 | 0.905 | +8.51% | 177 | | 限制级 | 0.679 | 0.367 | +85.01% | 178 | | 总体 | 0.829 | 0.603 | +37.48% | 179 | 180 | 181 | ## 训练 182 | 183 | 这个模型其实严格来说不是「训练」出来的,它其实是1个超参数优化的融合模型。 184 | 185 | 原理是这样的,有2个假设: 186 | 187 | - 合并模型的权重不会引入额外的过拟合。 188 | 189 | - 在符合语义方面表现得更好的模型在其他方面也能表现得更好。 190 | 191 | 嘛,直觉上是这样,第1个假设应该是对的,第2个……我不好说。要是问我为什么我就回答「有人托梦给我」。 192 | 193 | 总之,这样1来,我们只要对于每个层,选择它是由哪几个模型的该层以什么样的权重融合,然后在所有权重参数的空间里做搜索,最终让准确度最高就可以了。 194 | 195 | 代码和比较完整的训练过程解释在这里,有兴趣的话可以看1下: 196 | 197 | 198 | ## Q&A 199 | 200 | - 为什么是Confusion? 201 | 202 | 因为做的时候玩了太多游戏王。 203 | 204 | - 优化目标和测试指标的数据集是同分布的,会不会导致指标虚高? 205 | 206 | 嘛,多多少少会有。 207 | 208 | - 为什么这个模型是世界上最好的?别的模型有切换画风之类的功能耶? 209 | 210 | 就类似于世界第1的公主殿下。 211 | 212 | - 为什么上面的Q&A看起来很像谜语? 213 | 214 | 这样就不会有别人问我问题了。 215 | 216 | 217 | ## 结束 218 | 219 | 就这样,大家88,我要回去给爱丽丝换衣服了! 220 | -------------------------------------------------------------------------------- /快.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | import cv2 4 | from pathlib import Path 5 | from PIL import Image 6 | 7 | 8 | d = {} 9 | 10 | 11 | for i in [*Path('.').glob('**/*.jpg'), *Path('.').glob('**/*.png')]: 12 | img = cv2.imread(str(i)) 13 | if max(img.shape) > 2000: 14 | r = 2000 / max(img.shape) 15 | img = cv2.resize(img, [int(img.shape[1]*r), int(img.shape[0] * r)], interpolation=cv2.INTER_AREA) 16 | for q in range(80, 20, -10): 17 | cv2.imwrite(str(i.with_suffix('.webp')), img, [cv2.IMWRITE_WEBP_QUALITY, q]) 18 | if i.with_suffix('.webp').stat().st_size < 512 * 1024: 19 | break 20 | d[str(i).replace('\\', '/')] = Image.open(i).info 21 | 22 | 23 | def repl(x): 24 | name = x.groupdict()['name'] 25 | parameters = d[name].get('parameters', '') 26 | return f'![{repr(parameters)}]({Path(name).with_suffix(".webp")})' 27 | 28 | with open('readme.md', encoding='utf8') as f: 29 | s = f.read() 30 | s = re.sub(r'!\[.*?\]\((?P.+?\.((png)|(jpg)))\)', repl, s) 31 | 32 | s = s.replace('fuku/alice.png', 'fuku/alice.webp') # 这个不是markdown格式,手动改1下 33 | 34 | with open('readme.md', 'w', encoding='utf8') as f: 35 | f.write(s) 36 | --------------------------------------------------------------------------------