Datawhale X 魔搭 AI夏令营-AIGC文生图方向 Task02

1.AI生图的能力&局限:

如果我说这是一张AI生成的图片,你能相信吗?

然而幸运又不幸的是它确实是AI生成的。

很难想象在短短几年内,AI生图的能力已经像指数爆炸一样增长。一年前,AI还因为拙劣的画“手”能力被看轻,也因为当时这个情况,产生了很多解决这个问题的相关技术,如:给图片里的人手打上标记,像把手掌、拇指、食指啥的,都给清楚地标出来;

正是这种发现问题——解决问题的精神,才让现在的AI生图能力飞速提高。

目前大部分的模型,已经具备了去除 “AI味” 的能力,且可能存在容易误导他人的情况,这时候我们想辨别可能需要非常仔细地——

  • 观察图片的细节。仔细检查人物的面部特征,尤其是眼睛和嘴巴

  • 检查光线和阴影。分析图片中的光源是否一致,阴影的方向是否与光源相符,是否存在不自然的光线或阴影

  • 分析像素。放大图片,寻找是否有模糊或像素化的部分。

  • 注意背景。检查背景中是否有不协调的元素,比如物体边缘是否平滑,背景中是否有不自然的重复模式。

而这些细节上的AI特性,也就是我们需要解决的问题!

2.精读baseline——从零入门AI生图:

本次的任务主要在于利用通义千问来解释之前的AI生图代码,不仅通义可以概括代码大致功能,也可以对每句进行细致的解释:

你是一个优秀的python开发工程师,现在我们需要你帮我们分析这个代码的主体框架,你需要把代码按照工作流分成几部分,用中文回答我的问题。{代码部分}

安装和卸载依赖包
  • 使用 !pip 命令来安装或卸载 Python 包。包括:simple-aesthetics-predictor, data-juicer, peft, lightning, pandas, torchvision, 和 DiffSynth-Studio 的安装。
  • 卸载 pytorch-lightning(使用 -y 自动确认卸载)

加载数据集

  • 使用 ModelScope 的 MsDataset 类加载名为 AI-ModelScope/lowres_anime 的数据集,并指定子集名称为 default 和分割为 train,缓存目录设置为 /mnt/workspace/kolors/data

数据预处理

  • 将数据集中的图像转换为 RGB 模式,并保存到指定目录。
  • 创建包含图像路径和文本描述的元数据文件 metadata.jsonl
  • 编写并保存 data_juicer_config.yaml 配置文件,用于后续的数据过滤和处理
  • 使用 Data-Juicer 进行数据处理
  • 使用 dj-process 命令根据配置文件对数据进行过滤和处理,生成 result.jsonl 文件。

数据整理与训练

  • 读取 result.jsonl 文件中的数据,并将其转换为 Pandas DataFrame,然后保存为 CSV 文件,并且将图片保存到./data/lora_dataset_processed/train文件夹下。
  • 下载模型download_models(["Kolors", "SDXL-vae-fp16-fix"])
  • 在前面模型的基础上,执行Lora微调训练
  • 加载微调后的模型

图像生成

  • 设置正向提示词,反向提示词,执行次数,图片尺寸
  • 设置随机种子,控制图片是否可以重复生成,并将图像保存为 .jpg 文件。

合并图像

  • 最后,将生成的多个图像合并成一个大图像,并调整大小。

整个流程涵盖了从数据加载、预处理、特征提取、模型预测到图像生成等多个方面。每一部分都有其特定的功能,共同构成了一个完整的二次元图像处理和生成的工作流。

值得注意的是,在向通义进行询问的时候,也像AI生图一样加入了Prompt,经过我多次尝试,在像诸如此类的gpt询问时,承诺给他咨询费,会给出更好的回答😀

3.实战演练一一基于话剧的连环画制作

这一部分在于运用通义来帮助我们生成上一次任务中繁琐的Prompt,引申到其他领域,利用已有的模型来帮助我们标注数据集,从而训练其他的模型,也是同样的道理。

下面是通义的回答:

可以看到通义不仅很好地完成了任务,并且给出的prompt加入了背景、神情等更详细的细节。 

 根据上一次任务的流程进行图片生成,如下,明显可以发现通义生成的提示词比我上一次的效果更好!

4.更多的选择一一浅尝scepter webui:

最后一步的任务核心在于利用scepter webui进行微调

魔搭体验网址:https://www.modelscope.cn/studios/iic/scepter_studio

目前只开放了模型管理与推理两个功能,也可以前往该项目的Github仓库本地部署体验完整功能。github地址:https://github.com/modelscope/scepter

5.个人尝试——Stable Diffusion的使用:

在学习的过程中,我了解到Stable Diffusion(以下简称SD)是一种潜在扩散模型(Latent Diffusion Model),能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务,也是目前非常主流的开源AI绘画平台。

由于本人显卡算力不够😅,于是我利用autodl算力云进行云平台部署,可以理解是租用了别人的显卡!(当然租用肯定是要钱滴,但是价格很便宜,根据显卡算力而定)

租用实例,选择社区镜像中的stable-diffusion-webui:

租用成功后如下所示:

其实跟Task01中的阿里云和魔搭的实例差不多,打开JupyterLab, 按照说明依次进行:

  • 启动和重启 webui 点上方工具栏中的「重启并运行所有单元格」。出现 http://0.0.0.0:6006 这个字样就算成功了。可以去 autodl 控制台打开「自定义服务」了
  • 首次启动需要下载基本的模型,请稍等几分钟
  • 镜像在 A5000, 3090, 3080 上测试没问题
  • 模型路径:/root/autodl-tmp/models 里的对应目录下
    • 建议通过预置的「模型下载」插件直接下载 civitai 模型会比较快
    • 也可以自己上传模型到上述目录
  • 数据盘空间不够,可以考虑删除 /root/autodl-tmp/models/controlnet_annotator 目录,里面都是预处理器
  • 插件只默认开启了部分,有需要可以自行去开启并重启即可

最后成功打开页面如下:

可以选择别人微调后的模型:

可以去Civitai Models | Discover Free Stable Diffusion Models下载更多的模型,可以得到很好的效果,比如下面这些:

可以在这里选择提示词,其他就跟在魔搭社区的操作一样啦:

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值