Task2学习链接
1. 利用AI通义千问进行代码阅读和理解
通义tongyi.ai_你的全能AI助手 (aliyun.com)
可以直接将代码粘贴来询问AI任何有关的问题,这里推荐要求其给出简要的回答之后再追问想要的细节。
- 数据加载与预处理:从ModelScope获取数据集,并进行初步处理。
- 数据清洗:使用Data-Juicer对数据进行清洗,去除不符合要求的数据项。
- 特征提取:利用CLIP模型计算图像与文本的匹配程度。
- 图像生成:基于文本描述使用Stable Diffusion生成图像。
- 结果可视化:将生成的图像合并展示。
2. 基于话剧的连环画制作
之前我们已经进行了数据处理和模型训练,现在我们只需要加载模型然后修改相应的prompt即可生成新的图像。这里可以使用通义千问对想要的图像prompt进行加工,之后运行生成即可。
下面是推荐的场景提示词
在实际操作中发现水墨画比较影响画风,而且没有水墨画这个prompt模型可能会将古风理解成欧洲古代风格,如图
修改加上水墨画后理解的就是中式古风了
这里我参考了一些关于美学评分的内容,链接和代码如下:
Datawhale AI夏令营第四期魔搭- AIGC文生图方向 task01笔记_datawhale ai夏令营第四期魔搭-aigc文生图方向task1笔记-CSDN博客
import torch, os
from PIL import Image
from transformers import CLIPProcessor
from aesthetics_predictor import AestheticsPredictorV2Linear
from modelscope import snapshot_download
model_id = snapshot_download('AI-ModelScope/aesthetics-predictor-v2-sac-logos-ava1-l14-linearMSE', cache_dir="models/")
predictor = AestheticsPredictorV2Linear.from_pretrained(model_id)
processor = CLIPProcessor.from_pretrained(model_id)
device = "cuda"
predictor = predictor.to(device)
def get_aesthetics_score(image):
inputs = processor(images=image, return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
outputs = predictor(**inputs)
prediction = outputs.logits
return prediction.tolist()[0][0]
def evaluate(folder):
scores = []
for file_name in os.listdir(folder):
if os.path.isfile(os.path.join(folder, file_name)):
image = Image.open(os.path.join(folder, file_name))
scores.append(get_aesthetics_score(image))
if len(scores) == 0:
return 0
else:
return sum(scores) / len(scores)
score = evaluate("./images")
print(score)
这里的images是存储所有图片的文件夹其他的不需要修改,直接放在代码最后即可
最后生成的美学评分如下,加入水墨画tag之后美学评分也有小幅上升
未加入“水墨画”
加入“水墨画”
结语
这次是对已训练的文生图片模型的使用,可以看出其强大功能,对多种画风和多种人物景观的实现能力。当然,这样的模型也带来新的问题:如何编写提示词prompt使得模型输出的图片与设计者的初衷相吻合。