首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【AI】用 GPT 帮小兔子画肖像

【AI】用 GPT 帮小兔子画肖像

作者头像
sidiot
发布于 2023-08-30 15:00:37
发布于 2023-08-30 15:00:37
4890
举报
文章被收录于专栏:技术大杂烩技术大杂烩

​

前言

这不兔年到了,薅薅兔毛;

继帮小兔子完成了 作一首诗词,写一篇文章 之后,小兔子又有新的想法了;

小兔子说,新年到了,她想要一张自画像,但是她自己又画不来,拜托博主用 GPT 帮她画一个;

人美心善的博主当然是欣然答应了;

训练

准备一批训练集和一批验证集作为预训练的数据集,对两个数据集的图文对进行相似性打分,筛选 score 大于0.2的作为最终的预训练数据集;

初始化 text encoder,先只训练 text encoder,以便保留原始模型的生成能力且实现中文概念的对齐;

最终在一百万的图文对上训练了一个 epoch;

应用

1、导入对应的包:

代码语言:javascript
复制
from diffusers import StableDiffusionPipeline

TIPS

要注意 transform 和 torch 的版本,因为新旧版本有所改动,会出现版本不兼容的情况,要么就是修改源码,省力点的就直接将这两个包更新到最新; 博主这里的版本更新变动如下:

  • transform : 4.17.0 -> 4.25.1
  • torch : 1.6.0 -> 1.13.0

2、初始化:

代码语言:javascript
复制
pipe = StableDiffusionPipeline.from_pretrained(check_point).to("cuda")

3、得到结果:

代码语言:javascript
复制
prompt = '兔子,新年,油画'
img = pipe(prompt, ...).images[0]  

解决问题


cannot import name 'EntryNotFoundError' from 'huggingface_hub.utils'

这个报错可以从字面进行理解,就是说没有 utils 中没有 EntryNotFoundError,直接进入源码进行查看:

代码语言:javascript
复制
...

from huggingface_hub.utils import EntryNotFoundError, RepositoryNotFoundError, RevisionNotFoundError

...

except RepositoryNotFoundError:
    raise EnvironmentError(
        f"{pretrained_model_name_or_path} is not a local folder and is not a valid model identifier"
        " listed on 'https://huggingface.co/models'\nIf this is a private repository, make sure to pass a"
        " token having permission to this repo with `use_auth_token` or log in with `huggingface-cli"
        " login`."
    )
except RevisionNotFoundError:
    raise EnvironmentError(
        f"{revision} is not a valid git identifier (branch name, tag name or commit id) that exists for"
        " this model name. Check the model page at"
        f" 'https://huggingface.co/{pretrained_model_name_or_path}' for available revisions."
    )
except EntryNotFoundError:
    raise EnvironmentError(
        f"{pretrained_model_name_or_path} does not appear to have a file named {cls.config_name}."
    )

发现只用在了 抛出异常 这块代码里,因此博主一开始就直接将这一段注释掉了,结果还有下一个报错;


cannot import name 'ModelOutput' from 'transformers.utils'

这个报错就属于是新旧版本的变动了,直接查看官方文档;

博主原先的 transformers 版本是 4.17.0,ModelOutput 是在 transformers.file_utils 里面的,如下图所示:

而在最新的 transformers 版本 4.25.1 中,ModelOutput 是在 transformers.utils 里的,因此才引起的这个报错;

当然可能在前面几个版本就已经改动了,这里博主只看了最新版本的官方文档;


module 'torch.nn' has no attribute 'SiLU'

这个也是因为版本问题造成的;

博主之前的 torch 版本是 1.6.0,可以看到官方文档 torch.nn 中并没有 SiLU:

但是下个版本 1.7.0 就有了,不过博主最后还是更新到了 1.13.0 版本:

后记

以上就是 【AI】用 GPT 帮小兔子画肖像 的全部内容了。

希望本篇博文对大家有所帮助!

📝 上篇精讲:【AI】用 GPT 帮小兔子写文章 💖 我是 𝓼𝓲𝓭𝓲𝓸𝓽,期待你的关注; 👍 创作不易,请多多支持; 🔥 系列专栏:AI NLP

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 前言
  • 训练
  • 应用
  • 解决问题
  • 后记
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档