写在最前,参加DataWhale 10月组队学习。
参考资料:
HuggingFace 开源diffusion-models-class

1.扩散模型介绍

2.调用模型生成一张赛博风格的猫咪图片

2.1 安装依赖包

%pip install -qq -U diffusers datasets transformers accelerate ftfy pyarrow==9.0.0

2.2 notebook登录huggingface账号

from huggingface_hub import notebook_loginnotebook_login()

建议创建可写token,后续如果要上传模型的话有write权限
https://huggingface.co/settings/tokens

2.3 配置命令

%%capture!sudo apt -qq install git-lfs!git config --global credential.helper store

这两个命令用于在Jupyter Notebook中运行Shell命令,并将输出捕获(capture)起来,而不直接在Notebook中显示输出。

%%capture是一个Jupyter Notebook的魔法命令(magic command),它会捕获后续单元格中所有命令的标准输出(stdout)和标准错误输出(stderr),并将其保存在一个变量中,以便进一步处理或分析。

!sudo apt -qq install git-lfs用于在Shell中以sudo权限(管理员权限)安装git-lfs(Git Large File Storage)。-qq参数表示安装过程中不显示详细信息。

!git config –global credential.helper store用于在Shell中设置git的全局配置,将认证信息存储在文件中,而不是在内存中。这可以使得git在每次需要认证时都不再询问用户名和密码,而是从文件中读取认证信息。

请注意,sudo命令需要输入密码来确认你有权限进行系统级的安装。在Jupyter Notebook中执行这些命令时,你可能需要手动输入密码。如果你使用的是虚拟环境,你可能不需要使用sudo权限来安装包。请根据你的需求和系统权限进行相应的调整。

2.4 引入依赖

import numpy as npimport torchimport torch.nn.functional as Ffrom matplotlib import pyplot as pltfrom PIL import Image# Mac users may need device = 'mps' (untested)device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

2.5 下载模型

from diffusers import StableDiffusionPipelineimport torchmodel_id = "prompthero/openjourney"pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)pipe = pipe.to("cuda")

2.6 输入提示词出图

prompt = "A cat wearing smart sunglasses, holding a laser, wearing a space suit, cyberpunk style"image = pipe(prompt).images[0]image.save("./cat1.png")image