Task2是Task1代码的精讲,俗话说得好,授人以鱼不如授人以渔~代码的详细解读,可以帮我们理解大模型的代码编写原理,说不定之后自己可以开发出一款AI应用(梦想还是要有的!)
第一部分,从整体拆分Task1代码
我们编写代码,是使用Python,而Python本身是不含任何系统库,需要安装所需的系统才行。这一步,就是我在运行task1代码时,出错了好几次的地方(so sad)
第二步,是加载动漫图像数据集,因为这次的文生图,数据集是基于二次元大数据,所以最终生成的图片都是二次元风格的,如果想要生成别的风格的图片,需要找寻或自己生成数据集。预处理是指,将数据集中的图像,处理成RGB模式(即美术中的三原色,对应三个颜色的不同数值。)
第三步,前面加载的系统库,通过系统库,对数据进行清洗与过滤,具体过程后面笔记细讲。
第四步和第五步,模型微调及加载微调后的模型。
第六步,输入提示词,图片大小的要求,执行次数,最终生成图像!
本次使用通义千问来解读代码
第二部分:代码解读
使用通义千问,给出提示词:“你是一个优秀的python开发工程师,现在我们需要你帮我们分析这个代码的主体框架,你需要把代码按照工作流分成几部分,用中文回答我的问题。{输入所有代码}
”
输出分析结果,与老师的分析结果一样:
那么同样,我们可以通过通义千问,得到代码的详细解读。在此就不在一一展示。
第三部分:利用通义千问生成所需图片的提示词
eg. 洞房花烛夜的少妇形象。
给通义千问的提示词:“”
而我的提示词整理如下:
图片编号 场景描述 正向提示词 反向提示词 生成图片问题 图片1 女主是一个古代主母,洞房花烛夜 古风,工笔画,一个身穿红色华丽嫁衣的女子,坐在装饰精美的洞房内,洞房花烛夜,羞涩低头微笑,上半身特写,手中轻握红盖头。 丑陋、变形、嘈杂、模糊、低对比度 并没有低头微笑,而是直视前方微笑 图片2 管家面无表情的阻止女主进入院子 古风,淡墨画,一个身着青衫的中年男子,正面姿势对着我们,站在院门口,面无表情地伸手阻拦状,全身站立姿势,院子内树木葱郁。 丑陋、变形、嘈杂、模糊、低对比度,背面姿势、侧面姿势 就是不生成正面姿势的图片,就是给我背面或者侧面姿势! 图片3 管家恭谨的和老爷说话 古风,细致线条勾勒,一个身着青衫的中年男子,低头恭敬地与一位身穿锦袍的轻年男性者对话,青年男性端坐于太师椅上看不清面容,室内摆放着精致的家具,两人处于室内,上半身特写。 丑陋、变形、嘈杂、模糊、低对比度,色情擦边 希望生成重点是管家,但青年才是重点…… 图片4 管家威严的吩咐仆役们做事 古风,水墨渲染,一个身着青色明制服饰的中年男子,站在院子里,威严地向一群仆役下达指令,仆役们围绕着男子,院子宽阔,周围有亭台楼阁,管家全身站立姿势。 丑陋、变形、嘈杂、模糊、低对比度,和仆役背对背,扭曲的手指,多余的手指 服装不对 图片5 管家被你抓住把柄,非常生气 古风,工笔画,一个身着青色明代服饰的中年挽发男子,满脸怒容,手指紧握,似乎被人抓住了把柄,与另一位明代服饰的年轻女性对峙,背景为一处幽静的庭院,管家全身站立姿势。仅两个人物。 丑陋、变形、嘈杂、模糊、低对比度、非古代人物 马马虎虎,但微调不出我想要的感觉 图片6 管家不情愿地给了你钥匙 古风,细腻工笔,一个身着青衫的中年挽发男子,面露不悦之色,勉强地将一把铜制钥匙递给另一位古装长袍的女性,两人站在一处幽静的走廊下,管家上半身特写。 丑陋、变形、嘈杂、模糊、低对比度 这张暂无问题 图片7 管家带人追赶女主 古风,动感线条,一个身着青色明代服饰的中年男子,愤怒地带领数名仆役快速追赶前方逃跑的女子,女子身穿蓝色长裙,场景为园林小径,众人全身奔跑姿势。 丑陋、变形、嘈杂、模糊、低对比度 死活不生成前方被追赶的女性形象…… 图片8 管家看着起火的地宅邸,崩溃 古风,细腻工笔,一个身着明代服饰的中年挽发男子,站在熊熊燃烧的大宅前,神情绝望,双手掩面哭泣,背景是烈火冲天的场景,管家全身站立姿势,背部弯曲。 丑陋、变形、嘈杂、模糊、低对比度 那么大个“双手掩面呢”???好不容易服饰对了,双手掩面再也没有了!!!生成的图片质量,说实话,不是很符合我的预想,特别是我需要的人物站位和文生图的人物站位,总是有很大差异。好不容易一个点搞定了,另外的如发型服饰等又出问题了。
生成的图片按顺序:
总结
文章总结:本文围绕“Task1代码精讲”展开,旨在通过深入解析代码,帮助读者理解大模型代码编写的原理,并为未来开发AI应用奠定基础。文章主要分为三个部分:**第一部分:Task1代码的整体拆分**
1. 强调了Python环境配置中的注意事项,尤其是安装必需的系统库。
2. 介绍了加载二次元动漫图像数据集的过程,包括数据的预处理,即将图像转化为RGB模式。
3. 概述了数据清洗与过滤的步骤,虽然具体过程未在文中详述。
4. 提及了模型的微调和加载微调模型的重要性。
5. 说明了通过输入提示词、设定图片大小与执行次数,最终生成目标图像的全流程。
**第二部分:代码解读**
- 采用通义千问AI工具对代码进行分析,将其按照工作流分为几个部分,并通过该工具获取了代码的详细解读,帮助理解代码结构与逻辑。
**第三部分:利用通义千问生成所需图片的提示词构建**
- 通过具体例子详细展示了如何针对不同场景构建提示词,包括正向提示词(描述图像内容)、反向提示词(避免不希望出现的元素)及具体的生成图片要求。
- 提供了多组图片编号、场景描述、提示词的表格示例,展示了不同情境下如何精细控制图像生成的内容与风格。
- 论文中也提到了利用特定提示词生成图像后,发现结果不完全符合预期的问题,主要体现在人物站位、发型服饰等方面,虽然通过精细化的提示词设定有所缓解,但整体生成效果仍需进一步优化。
最终,文章反映了在使用AI生成图像过程中,通过细致入微的提示词设置和理解代码原理的重要性,同时也为提升生成结果质量指出了思路。