一、前言

为了参加圣诞创意大赛,拖着阳过的病体,在咳嗽的间隔时间变长之后,发个帖子沾点节日气氛。前段时间参加了大模型训练营,趁着热度,刷一下AIGC的氛围。

二、创意名

因为生病了,所以就懒,官方给的提纲我就不改了。其实没什么创意,就是用 AltDiffusion生成一张图啦,当然prompt是我指定——“圣诞节快乐,程序员们”。

三、效果展示

圣诞节快乐,程序员们!-LMLPHP
原本,我们是用诗词作为prompt配画的,我也没有改参数,就看看AI如何用组图祝我们圣诞快乐吧。看看效果,感觉一般般,人物很不清晰。我猜AI不太理解程序员这个词语,最后一张图很诡异。

四、实现步骤

因为之前在并行超算上已经部署了代码,所以我的步骤就是提交作业,运行代码,在终止作业。

我想说的就是,不管你是怎么开始的,一定记得终止!因为每一次运行都是计费的,不终止作业的后果你懂的~~

如果大家从头开始的话,步骤应该是:
1、注册超算平台,登陆
2、选择Jupyter应用,启动应用
3、提交作业,获取运行环境
4、打开SSH应用,把模型下载到本地
pip install git+https://github.com/FlagAI-Open/FlagAI
5、建立conda环境FlagAI,激活环境
6、运行代码(可以在项目的example里找一个代码试一下)

五、编码实现

今天做的事情很简单,就是单纯的文生图,FlagAI项目的example里也有。

// 这个其实就是在example的基础上修改的代码

import torch
import os
from flagai.auto_model.auto_loader import AutoLoader
from flagai.model.predictor.predictor import Predictor
import random

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
prompt = "圣诞节快乐,程序员们"

loader = AutoLoader(task_name="text2img", 
                    model_name="AltDiffusion-m9",
                    model_dir="./checkpoints")

model = loader.get_model()
model.eval()
model.to(device)
predictor = Predictor(model)
predictor.predict_generate_images(prompt,seed= 999)

其实seed本来可以是随机的,但是其实随机的结果也是一个数,我就主观随机指定一个数啦,大家如果用的话,可以用random函数。model_dir是下载的模型地址有关,根据自己的情况修改。

运行结果的图片并不会直接出现在console里,运行成功的结果就像下面的截图所示。
圣诞节快乐,程序员们!-LMLPHP

图片会在一个AltDiffusionOutput文件夹里,这是一个程序自动生成的文件夹,下面会有自增编号的图片。

题外话:并行的环境配置其实挺复杂的,不能说用户友好。但是可以看出,功能分区什么的还是做的比较细,感觉像是微服务架构。有兴趣的同学们可以去试一下。注册之后送200元,我的感觉是可以作为了解超算运行的体验券,学习的话,也是可以发挥一点作用的。

12-28 10:46