Hello World

css-display-flex各种居中对齐,强迫症的福音

先看页面效果

html+css:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
...
    <style>
        div.main{
            margin-left: 2%; width :96%;
            .title{
                width: 100%;display: flex;justify-content: space-between;
                align-items: center;padding: 10px 0;line-height: 16px;
                span{
                    font-size: 16px;color: #333;width: 200px; text-align: left;
                }
                >div{/*右侧单号、箭头*/
                    display: inline-flex;justify-content: right;align-items: center;width: 100px;
                    span{
                        font-size: 14px;color: #999;
                    }
                    img{
                        width: 14px; height: 14px; margin-right: -2px;/*修正png图的框框*/
                    }
                }
            }
            .content{
                width: 100%;
                .order{
                    background-color: #fff;border-radius: 5px;display: flex;
                    justify-content: space-between;align-items: center; margin: 10px 0;    
                    >img{/*商品图*/
                        width: 80px;height: 80px; border: 1px solid blue;
                        border-radius: 5px; margin: 10px;
                    }
                    >div{/*商品图右侧详情*/
                        display: inline-flex;flex-direction: column;
                        justify-content: space-between;align-items: center;
                        height: 80px;margin-right: 10px;
                        >div{/*单号、时间*/
                            display: flex; font-size: 16px;line-height: 16px;
                            span{
                                display:block;font-size: 16px;
                                color: #333;width: 200px;
                                text-align: left;width: 100%;
                            }
                            >span:last-child{/*时间*/
                                font-size: 11px;color: #999;text-align: right;
                            }
                        }
                        >span{/*商品名*/
                            display:inline-block;font-size: 18px;
                            color: #333;font-weight: 900;
                            text-align: left;width: 100%;
                        }
                        >span:last-child{/*规格*/
                            font-size: 11px;color: #999;
                            line-height: 12px;margin-top: -20px;/*拉进商品名与规格*/
                        }
 
                    }
                }
            }
        }
    </style>
    <div class="main">
        <div class="title">
            <span>近期订单</span>
            <div>
                <span>查看全部订单</span>
                <img src="arrow_right_small.png">
            </div>
        </div>
        <div class="content">
            <div class="order">
                <img src="IMG_1101.JPG">
                <div>
                    <div>        
                        <span>订单号: 123456789</span>
                        <span>2024-07-23 10:01:31</span>
                    </div>
                    <span>5090系列散热格窗............</span>
                    <span>红色、水冷款</span>
                </div>
 
            </div>
...

——-
over~~
后记:
记得上小学时,某日,学校请来村里老木匠,做桌椅。木匠逐个做好各种课桌的部件:桌子腿、桌面、桌洞底板,然后一个个部件拼接起来,再在接口处敲几个木削进去,一张桌子完工。老师盯着这一切,跟我们说:看到了吧,老师傅做东西就是有谱,每个部件都刚刚好,一个人轻松组装;这要是不靠谱的小年轻木匠,三五个人辅助也也不见的能拼到一起,而且拼出来桌子可能还桌腿不平摇摇晃晃
每次写页面、css,脑子里想的都是几个人辅助一起拼桌子的画面…虽然前有firebug、后有chrome的开发工具,各种页面布局,也是要反复测试才能勉强完成设计图的目标。当然,大部分时候都不能完全实现效果图,最后就彻底改成position: absolute,各种算坐标,绝对定位~~给人感觉就是:虽然呈现在眼前的貌似是一张桌子,但后面其实是各种钉子、角铁钉住、甚至胶带粘在一起的 O(∩_∩)O哈哈~
近期写小程序,再次开始搞css,发现display:flex“弹性盒模型”真的很好用,这里记个布局范式,便于以后查阅

AIGC 业界杂谈

AI谱曲与舞蹈

本文介绍两个好玩的AI工具,都是今年上半年新推出的,都是国外的的网站,趁现在不用魔法就能白嫖,有兴趣的可以试试:
第一个是AI作曲网站,suno.com,这是我用它谱的曲子,歌词是用chatgpt写的,大家可以听听效果
春之歌 >>
操作不复杂,只要在create页面,上传歌词、设定曲风就可以了
第二个是AI合成舞蹈,viggle.ai,这个用起来相对复杂一些,要选择一个舞蹈动作模版,再选一张四肢清晰的正脸照片,就可以了。这是它的官方宣传视频,

需要注意的是,一定要选正脸照片,否则AI可以能给换张脸^_^;一定要选四肢清晰的照片,不能是穿裙子之类的衣服,否则AI区分不出四肢,出来动作会很奇怪
——over
转载请注明出处: 昆仑的山头

日志 点点滴滴

如何给你的视频增加章节进度条

先说明一下,这篇文章讲的不是如何用代码实现mp4播放器的使用,而是讲在使用“剪映”编辑视频时,如何加入章节提示,并让其跟随视频播放进度向前走,类似下图这样

简单来说,分如下四步,我们结合剪映里的时间线来讲解:
1. 可动进度条:增加一个白场素材,拖到屏幕底端,设置合适的高度;给白场增加一个“线性蒙版”,旋转-90度、视频开始x=-960、结尾x=960,也就是撑到屏幕两端;加关键帧,使其可以显示出播放进度;降低不透明度,和源视频更贴合
2. 背景色:增加一个宽度和白场一样宽的文本框,加空格撑满;文本框“背景”里面加一个背景色,移到白场下面、降低不透明度
3. 章节分割线:增加文本框,增加“|”,调整大小、拖到章节分割位置;复制粘贴到各个段落分割位置
4. 章节说明文字:增加文本框,填写段落名称,拖到对应位置

ok,就是这样
(参考自B站:https://www.bilibili.com/video/BV1Gu4y1U7RM/?p=1&vd_source=87ddd0d31e13cad4e2c834825408fd9b)
——over
转载请注明出处: 昆仑的山头

AIGC

使用GPT-SoVITS克隆声音

GPT-SoVITS是一个集模型训练、声音合成于一体的开源AI声音处理项目,项目地址:https://github.com/RVC-Boss/GPT-SoVITS,感兴趣的可以照项目主页readme里的安装方法安装。这个安装难度不高,比较麻烦的python版本的匹配,可以通过conda为其单独开安装一个python版本:conda create –name py39 python=3.9
项目安装完以后,需要到项目目录内看一下是否自动下载了模型(包括models和Weights),模型地址见readme。我这边实际测试,windows版本自动安装了模型,但mac版本的就没有自动安装模型,需要手动下载、再按要求放入指定目录
GPT-SoVITS的使用分简单和复杂两种办法,简单方法是使用项目自带模型。具体做法是,启动webui后,选择“1-GPT-SoCITS-TTS”-“1c-推理”,然后点选项目的“是否开启TTS推理WebUI”,待自动打开新页面后,选择系统的GPT模型和SoVITS模型,上传准备好的参考音频、输入参考音频文本内容,参考音频需要控制在3~10秒;然后输入要合成的文体,点击“合成语音”,但是这种合成出来效果并不好,而且容易出错,大家可以感受一下
示例音频
文本:“小草偷偷地从土地里钻出来,嫩嫩的,绿绿的。园子里,田野里,瞧去,一大片一大片满是的。坐着,躺着,打两个滚,踢几脚球,赛几趟跑,捉几回迷藏。风轻悄悄的,草软绵绵的”
合成音频
更推荐的做法,是自己训练模型,也不算复杂,首先,要先找一段3~5分钟尽量感觉干净无噪声、无背景音乐的人声音频,然后按如下步骤操作:
1. 使用“前置数据集获取工具”,在“0b-语音切分工具”内,选择音频输入输出路径后,点击“开启语音切割”,将语音切割成多个小段
2. 将上一步的分段语音输出路径,拷贝到下面的“0c-中文批量离线ASR工具”内,点击“开启离线批量ASR”,将语音自动识别为文字文本

3. 使用“0c-语音文本校对标注工具”,点击“开启打标webUI”,在新页面内校对语音文本(嫌webui不好用,可以自己找到上一步生成的opt文件,然后用自己习惯的文本编辑器修改)

4. 切换到“1-GPT-SoVITS-TTS”选项卡,在第一行输入你想要的模型名称
5. 在“1A-训练集格式化工具”内,输入切分音频.list路径,和打标opt文件路径,点击最下方“一键三连”,开始格式化进程,输出内容会放在项目路径下logs目录内


6. 切换到“1B-微调训练”,依次“开启SoVITS训练”和“开启GTP训练”,开始训练模型。这一步看电脑配置,配置低或者CPU运行的话,会很慢
模型训练完成后,重复本文开始的步骤:切换到“1C-推理”,点击“开启webui”,点击“刷新模型路径”,找到自己训练的GTP和SoVITS模型,再试一下刚才的语音,感觉音色好了不少:
但董佳耀的语音太冲,所以重新用更舒缓的语音训练了一个模型,效果还不错:
舒缓语音参考音频
舒缓语音训练结果:
——over
转载请注明出处: 昆仑的山头
———-
一周后补充:
“鄙视小帅、理解小帅、曾经小帅”
比较了GPT-SoVITS,和其他渠道的音频合成效果,最终还是选择了自己曾经鄙视的“解说小帅”,理由很简单:清晰! O(∩_∩)O哈哈~

AIGC

玩转StableDiffusion.10——老照片放大、上色

今天来说一个StableDiffusion的实用技术:老照片放大上色。StableDiffusion里有不少功能都能对图片做放大,但是对比下来,针对不同的照片类型,效果还是差异很大的,这里就介绍一种对小尺寸、但相对清晰的黑白照片的处理过程。分两步,先放大、再上色。
第一步,进入“后期处理”选项卡(有些版本也翻译成“附加功能”),按下图所示做设置、对图片做放大

如果放大效果不理想,可以调整放大算法多尝试几次。关于各种放大算法的差异,可以参阅这篇知乎文章:https://zhuanlan.zhihu.com/p/672717691
第二部,将放大后的图片导入到图生图,然后按如下方式,使用ControlNet的控制类型:Recolor
因为要上色,所以这里重绘幅度设置较大。来看一下处理前后的对比

除了上面提到的图片给放大的方法,针对模糊、褪色的老照片,还可以综合采用ControlNet的其他类型,以及脚本里的“Ultimate SD upscale”,尝试对照片做处理。手头有多年前用手机隔着相框拍的黑白旧照片,模糊、还有麻点,等我找到了修复这种照片的方法,会再写一篇blog o(* ̄︶ ̄*)o
对了,补充一下Recolor模型的下载地址:https://huggingface.co/lllyasviel/sd_control_collection/blob/main/ioclab_sd15_recolor.safetensors
——over
转载请注明出处: 昆仑的山头