我正在参与「兔了个兔」构思投稿大赛,详情请看:「兔了个兔」构思投稿大赛
前语
这不兔年到了,薅薅兔毛;
继帮小兔子完成了 作一首诗词,写一篇文章 之后,小兔子又有新的主意了;
小兔子说,新年到了,她想要一张自画像,可是她自己又画不来,拜托博主用 GPT 帮她画一个;
人美心善的博主当然是怅然答应了;
练习
预备一批练习集和一批验证集作为预练习的数据集,对两个数据集的图文对进行相似性打分,挑选 score 大于0.2的作为终究的预练习数据集;
初始化 text encoder,先只练习 text encoder,以便保存原始模型的生成才能且完成中文概念的对齐;
终究在一百万的图文对上练习了一个 epoch;
使用
1、导入对应的包:
from diffusers import StableDiffusionPipeline
TIPS
要注意 transform 和 torch 的版别,由于新旧版别有所改动,会出现版别不兼容的情况,要么便是修改源码,省力点的就直接将这两个包更新到最新;
博主这儿的版别更新变动如下:
- transform : 4.17.0 -> 4.25.1
- torch : 1.6.0 -> 1.13.0
2、初始化:
pipe = StableDiffusionPipeline.from_pretrained(check_point).to("cuda")
3、得到成果:
prompt = '兔子,新年,油画'
img = pipe(prompt, ...).images[0]
解决问题
cannot import name 'EntryNotFoundError' from 'huggingface_hub.utils'
这个报错可以从字面进行了解,便是说没有 utils
中没有 EntryNotFoundError
,直接进入源码进行查看:
...
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】用 GPT 帮小兔子写文章
- 【AI】用 GPT 帮小兔子画肖像
上篇精讲:【AI】用 GPT 帮小兔子写文章
我是,期待你的关注;
创造不易,请多多支撑;
系列专栏:AI NLP