Category: Devops/Tools/AIGC
-
Linux常用CLI命令使用方法介绍
linux作为服务器的常用的系统,其稳定性已经得到较为普遍的认可,在我们开发和系统运维的过程中,经常会用到相关的CLI命令程序(Command Line Interface,因为用linux系统作为服务器,如ubuntu系统,经常会裁剪掉其图形用户窗口的功能,工程师一般都使用过CLI去和系统进行交互)。 第一个向大家介绍的命令为“netstat -tulnp”,netstat是一个网络工具,用以显示当前网络相关的软件和系统网络相关硬件的信息,参数tulnp是个累积的量,t表示显示当前系统所有的tcp sockets(tcp连接),u表示udp连接,n表示显示数字形式的地址和端口,l表示当前监听的端口(一般服务程序启动后会在特定端口监听远程客户端前来访问的连接请求)p代表网络相关的进程。如安装(可以通过sudo apt install mysql-server命令进行安装)并启动(可以通过sudo systemctl start mysql命令进行启动)了mysql服务器后执行命令后会显示mysql进程相关的信息。有时提示需要系统用户才能显示相关信息时,可以在命令前面加上sudo。执行后如下: 如果只想看mysql服务相关的信息,只需执行sudo netstat -tulnp | grep mysql命令,在linux命令中 ‘|’ 可以理解为pipeline模式,前面的命令作为后面命令的输入。而grep在linux中是一个强大的文本搜索匹配工具,可以将满足条件的文本行输出到终端屏幕上。 第二个向大家介绍的命令示例在前面的基础上综合命令awk(过滤提取,和print结合着用,后面$符号后面跟着个数字表示第几列信息),grep以及xargs(将过滤提取的数据作为参数传递给命令行)的使用。比如在你的机器上,docker的本地镜像有点多,或者你想批处理一次性删除满足某些条件的镜像,可以用如下的命令示例来参考: 以上命令的含义为找到含有keyword相关字眼的docker镜像,并且过滤出第三个参数(即为docker镜像的ID),然后将满足这些条件的docker镜像一次批处理进行删除。 这篇文档后面将持续更新,将常用的命令行汇总一下,以备后需查阅。
-
用manim库开发算法动画演示程序
数据结构和算法大都涉及程序的高效执行,算法过程通过良好的算法流程的设计,使得具有较好的时间和空间复杂度。但是这些流程通过文本的代码来表达理解起来比较抽象,如果能够通过动态的可视化过程来演示算法的执行的步骤,对于学习算法的同学,特别是初学者,将会能够对算法的思想的理解更加的具象,对于算法思想的理解的也会更加深入彻底。今天将向大家介绍通过用一些工具和开发库,通过编写动画演示程序来方便对算法的执行流程进行可视化的外在表达。以便于算法程序的教学和理解。 今天向大家介绍通过manim和pygame两个python开发库实现交互式动画展示,以便于教学中可以用算法动态可视化过程来辅以教学过程中讲解,使得算法的讲解过程更加具体生动,可理解性大大增强。很多时候知识的难度是一个方面,如果辅以更加可理解的解释方法和途径,知识的可理解的难度也会大大降低。这里先分享一个自己借助大模型的代码生成功能辅助实现的快速排序演示动画的原型版本(代码还在整理和更新中)。由于生成视频动画需要用到流媒体程序ffmpeg,在windows下需要下载ffmpeg程序包(见参考引文1)然后将其对应的bin目录放到环境变量Path中。执行程序生成动画视频的命令行为: 对应的脚本代码请参考引文2的链接。生成的视频的目录在相对代码为根目录的子目录\media\videos\quick_sort_manim\480p15下面,如果要控制动画的播放进度,可以通过pygame相关程序去播放视频,并且通过鼠标和键盘事件控制播放或暂停(参考引文3的链接)。最后生成的动画效果请参考引文4链接。后续有进一步的心得体会会将持续更新相关文字说明或代码。欢迎读者提供更多的更好的方法和途径来通过动画展示计算机执行算法或特殊功能函数的过程。 References
-
AIGC体验7-Stable Diffusion使用技巧之ControlNet模型的使用2
上篇短文向大家部分的介绍了ControlNet的使用示例,在Stable Diffusion的使用过程中,基础模型对于图像生成的质量的影响是挺关键的。在上篇介绍的短文中,我们使用了v1-5-pruned-emaonly这个模型,而在本文的示例中,我们将选择AnythingV5V3_v5PrtRE这个模型,从使用体验来说,该模型在生成人物方面的性能要明显优于v1-5-pruned-emaonly模型。相关的模型链接可以参考引文。 ControlNet还有更多的用法,读者可以进一步自行去尝试和积累经验,关于提示词的写法等还有不少的trick去在实践中模型和进一步总结,后续有相关的心得再去继续在这里分享。
-
AIGC体验6-Stable Diffusion使用技巧之ControlNet模型的使用1
在文生图的应用中,用户经常会对生成的图形有特殊的要求,如局部重绘,满足边缘或深度条件,模糊变清晰,黑白变彩色,人体特定姿势(pose)等等。这篇短文将向大家介绍基于Stable Diffusion的ControlNet实现图像可控生成的几个示例,更加完整的介绍可以参考相关文献(这篇短文基于stable diffusion 1.5版本,具体可以使用引文3中给出的notebook)。 现有的stable diffusion的基础模型在人物生成上效果不是特别好,这篇短文暂时没有演示可控人物生成的效果,更多的场景会在后面的短文中进一步补充,欢迎大家关注,并提出意见建议。 References
-
AIGC体验5-Stable Diffusion使用技巧之LoRA模型的使用
Stable Diffusion(SD)是开源的文生图大模型,随着相关技术的发展,已经迭代了多个版本(关于版本间不同的特性可以搜索查询,这里以1.5版本为例进行介绍,如和其兼容的lora模型比较多),并且其支持多种可控图像生成技巧,这篇短文将要向大家介绍相关的Stable Diffusion的使用技巧,不足支持欢迎读者提出意见建议并予以补充。 首先我们采用webui的方式使用比较便捷,参考文献1即为我们的Stable Diffusion V2.1版本的webui的jupyter notebook代码链接。具体使用可以在本地或colab里边。这篇短文将介绍SD的一般用法和基于LoRA模型的风格化用法。 一、一般用法:这里没有特别要强调说明的地方,主要是要写好提示词。这里举一个示例,提示词为:Two yellow orioles sing amid the green willows. 效果图为: 二、LoRA模型,lora模型是一种小模型技术,其显著的优点表现在:1、LoRA 通过低秩适应方法在较少的参数增加下微调大模型,资源消耗较少。2、在特定任务或小数据集上快速适应大模型,提升生成质量或特定任务的表现。3、LoRA模型可以作为额外模块加载到现有大模型中,灵活性高。使用LoRA模型的方法如下,1、首先,下载LoRA模型,如参考文献1所示;2、将下载的模型拷贝到lora的模型目录,如/content/stable-diffusion-webui/models/Lora,然后更新webui加载最新加入的lora模型(设置扫描lora模型路径),提示词为:Two yellow orioles sing amid the green willows. SONG DYNASTY FLOWER AND BIRD PAINTING如下图所示。 其中该界面的操作流程为:settings–>additional networks–>Extra paths to scan for LoRA models(设置为/content/stable-diffusion-webui/models/Lora)–>apply settings–>Reload UI。在上面的图中,我们用到了一个LoRA模型,具体可以参考引文1。 下一篇相关文章将介绍ControlNet的相关用法,欢迎读者继续关注,提出问题和意见建议。 References
-
AIGC体验4-midjourney中人物一致性的实现
在一般的电影和短视频中,一般的都存在的多个镜头(storyboard),为了保证镜头切换的时候的人物的一致性,需要文生图模型对此有较好的支持,否则在文生图的自动生成的场景中就会存在着不满足分镜头设计的需求,大模型的可用性就会受到交大影响。 今天向大家介绍midjourney中怎么实现人物一致性,主要通过一个实例向大家做演示介绍。 首先,我们通过提示词生成一个人物的不同角度的4张图片,提示词如下: 根据上述提示词生成的图片效果为: 将图像保存到本地,然后通过工具裁剪成4个小的图片,然后点击下图中左下脚的“+”号按钮在弹出的菜单中选择“上传文件”,将上面裁剪的4个图片上传后,将其链接保存下来(通过点击放大每个图片然后鼠标右键图片上方获取图片链接,供四个链接)。 然后用/prefer option set命令来进行设置风格一致性,具体的指令形如下面截图: 然后,就可以指定以该”littleboy”的option来生成人物一致性的场景了。具体的示例指令为: 最终的效果为: 后面有机会将继续向大家介绍关于图像视频多媒体方面的大模型应用的一些技巧。欢迎感兴趣的读者关注并提出问题一起来商议探讨共同提高。
-
AIGC体验3-用Fliki+大模型制作短视频
前面两篇短文向大家简要介绍了midjourney来进行绘图,今天向大家简要介绍一个支持在线的短视频制作的工具Fliki,不足之处欢迎大家批评指正并予以补充。 Fliki的官网为Fliki – Turn text into videos with AI voices, 其主要是根据故事分镜头来制作短视频,分镜头(storyboard)是影视制作中的术语,大概是一个连续的镜头来描述一个场景(如长镜头,宽镜头,远镜头等)。这方面经验也不是很足,以后有机会再补充相关细节。 首先我们用大模型(ChatGPT,通义千问,文心一言等)生成故事的分镜头脚本描述,也可以自己去描写。这里我们以登鹳雀楼为例,自己写的一个简单的分镜头场景描述来进行说明(暂时没有用到大模型来生成场景描述),用的是通义万象来生活场景图。 基于上述场景文字生成的图片后,我们就可以再Fliki中去生成这首小诗的短视频了,具体方法为下面的截图演示: 有必要对语音进行优化,可以考虑借助第三方语音合成平台生成整个的语音放到common sense的场景中去(最上方)。然后在每个分场景中去掉voiceover的layer。基本设置好后,就可以export然后就download了(注:为了去除水印,需要upgrade成会员) 更多的经验会在后续继续向大家介绍。 References
-
AIGC体验2-midjourney使用配置对生成的图片进行约束和限制
上篇短文主要向大家介绍了midjourney的基本使用,在文生图的时候,有时作者期望有更多的控制条件,比如生成图片的大小和横竖比,生成图片的风格等。 首先可以通过命令/settings进行相关版本,以及模式的设置,输出结果为如下图示,具体关于这些模式的含义可以参考引文,这里不做赘述。 下面主要介绍一个使用一些约束和控制的示例 输出的结果如下图所示 点击“U4”后显示结果为: 加上图片风格和长宽比之后的示例如下: 点击“U4”后显示结果为: 后面将继续介绍相关使用的一些技能点。欢迎读者反馈意见和建议。 Reference
-
AIGC体验1-midjourney的初步使用
midjourney在图片生成方向上有较高的质量,这篇博客简要记录一下其初步的使用方法。欢迎读者给出意见和建议,以及补充相关的说明。 注册后(注册过程忽略),可以建立自己的频道,方法如下几个图示。 然后就可以在对应的服务器里用相关命令生成图片了,这里举个示例,假设提示词为“Bright forest, little bunny Lily in front of home, sunlight shining on the grass”,则生成后的效果如下图所示: 具体后面更多的使用经验将在后续的体验过程中进一步加以记录。 References
-
gitlab服务部署
gitlab是在软件开发过程管理中比较有影响力的开源产品,其基于ruby等实现,而现在一般的部署基本上也是基于docker镜像,因此只需拉取编译好的docker镜像环境,然后采用正确的启动脚本启动,配置一些属性项,就可以部署gitlab服务了。 gitlab服务可以提供几个有代表性的功能:1、代码仓库管理,可以按group,subgroup来组织project,有master,maintainer,developer,reporter等角色,方便比较大的平台和组织中不同小组和个人的仓库访问范围和权限管理。2、管理issue,milestone等,将issue和代码的review以及提交等想结合,管理项目进度,可视化项目完成项和待完成项,以便更合理的管理项目进度;3、支持和其他Devops工具和服务集成,如jekins等,后续如有机会也将进一步学习实践并给与介绍。 下面介绍一下部署步骤,希望能对有关读者有用,如有问题,欢迎大家反馈更正。 下面是启动的脚本示例供参考: 进入docker容器,编辑/etc/gitlab/gitlab.rb文件,然后更新如下的配置项 然后在docker容器里执行如下的两个命令启动服务。 这里将gitlab容器内部的nginx服务关闭,可以通过宿主机上的nginx的反向代理服务(proxy_pass)进行访问。如在宿主机的/etc/nginx/conf.d目录下,建立gitlab.conf文件,里边的配置方式示例如下: 其中上述的ssl_certificate 和ssl_certificate_key 需要在去购买SSL证书,这样就可以启动https协议服务了。然后在宿主机上重新加载配置文件,通过命令nginx -s reload就可以更新nginx服务配置,进而可以访问gitlab服务了。