玩AI绘画(SD),自己电脑配置不够?今天给大家介绍一下如何baipiao在线版AI绘画StableDiffusion。
Kaggle 是世界上最大的数据科学社区,拥有强大的工具和资源,可帮助您实现数据科学目标。(每周可以免费使用30个小时)。
文末有更多相关AI资源。
文章较长,可阅读原文享F受更佳阅读体验,以及获取更多AI相关资源
AI绘画StableDiffusion:免费使用笔记分享(Kaggle版)
一、快速上手
1、注册账号(Kaggle)
不过多介绍:https://www.kaggle.com/
2、复制并编辑代码
打开如下链接,复制并编辑后,创建你自己的代码
https://www.kaggle.com/code/xinsiac/zh-stable-diffusion-webui-kaggle
3、配置代码:GPU
进入你的代码(上一步点击按钮后会跳转入你的代码页面),进行GPU配置,StableDiffusion需要GPU的算力,Kaggle的CPU算力很弱很弱
步骤如下:
1.点开NoteBook Options选项
2.验证手机,开启GPU选项
这里不过多介绍。
3.开启成功后,如下图介绍
4、运行服务
配置好后就可以运行代码,生成一个AI绘画服务StableDiffusion
步骤如下:
1、启动虚拟机(远程电脑),注意:每周三十小时的GPU使用时间
2.启动代码
注意:代码执行过程中,如果看到红色的警告不用太担心,只要代码没停止执行,就继续等等,直到看到输出链接
3.复制链接,在浏览器中打开:
二、进阶操作
1、模型下载
默认的代码下载的模型只有两个,当你想用一下其他模型的时候,应该怎么做呢?
方式一、手动下载
操作方式麻烦,高手随意,小白绕行,直接参考方法二
参考下面代码分析
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/57618 -d /kaggle/working/stable-diffusion-webui/models/Stable-diffusion -o Counterfeit-V3.safetensors
##########
#更换上面??这句代码里的链接和输出的文件名,贴会Kaggle里或者直接在Kaggle里修改,再执行代码即可下载模型
获取模型下载链接的方式,这里以 civitai.com为例
建议不要下载太多模型,只有20GB空间,所以我把不需要的ControlNet模型,都注释了下载代码,不让它下载,减少空间占用
如何下载 Lora 和 VEA
与更换模型的原理类似,除了修改下载链接和输出文件名,还要修改模型存放位置
# Lora
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/32988 -d /kaggle/working/stable-diffusion-webui/models/Lora -o blindbox_v1_mix.safetensors
# VAE
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/gemasai/vae-ft-mse-840000-ema-pruned/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt -d /kaggle/working/stable-diffusion-webui/models/VAE -o vae-ft-mse-840000-ema-pruned.ckpt
方式二、插件下载
代码下载太复杂?来试试civitai 的SD插件
-
插件安装
默认代码已经给安装了,如果没有请自己检查。
检查一下,代码里有没有安装这个civitai浏览插件,可以通过ctrl + F,打开查找框,输入civitai,快速查找相关代码:https://github.com/camenduru/sd-civitai-browser /kaggle/working/stable-diffusion-webui/extensions/sd-civitai-browser
-
模型下载
在运行的StableDiffusionWebUI中,切换到civitAi选项卡
-
刷新并读取模型
到这里模型下载已经完成了
-
AI绘画和HuggingFace数据同步
生成的图想直接存放在云端,就需要这一步的操作。
方式一:手动配置
操作方式繁琐,高手随意,小白直接用方式二
-
注册HuggingFace账号
这里不过多介绍
-
创建数据集DataSet
创建Dataset,来存储配置文件Config(我创建了两个一个公开的用来存储配置文件,一个私有的存储生成图的压缩文件)
-
生成Access Tokens
作用就是配置Kaggle 代码可以自动上传文件到HuggingFace。
-
配置token到Kaggle里
复制token到txt文件
然后就可以看到token文件
将文件路径写到代码里
用途:用于代码上传文件到HuggingFace时调取使用token
#####################################################################
# 同步配置
# 使用huggingface保存和载入webui配置文件
huggingface_use = True
zip_output=True
huggingface_token_file = '/kaggle/input/hgtoken/huggingfacetoken.text'
huggiingface_repo_id = 'MSa/sd-output-images'
huggiingface_config_repo_id = 'MSa/sd-config'
# 将会同步的文件
config_files = [
'ui-config.json',
'config.json',
# 'styles.csv'
]
#功能函数
from pathlib import Path
from huggingface_hub import HfApi, login
# config 上传
def hugface_upload_config(huggingface_token_file, config_files, repo_id):
if Path(huggingface_token_file).exists():
with open(huggingface_token_file, encoding="utf-8") as nkfile:
hugToken = nkfile.readline()
if hugToken != '':
# 使用您的 Hugging Face 访问令牌登录
login(token=hugToken)
# 实例化 HfApi 类
api = HfApi()
print("HfApi 类已实例化")
%cd /kaggle/working/stable-diffusion-webui
# 使用 upload_file() 函数上传文件
print("开始上传文件...")
for config_file in config_files:
if Path(config_file).exists():
response = api.upload_file(
path_or_fileobj=config_file,
path_in_repo=config_file,
repo_id=repo_id,
repo_type="dataset"
)
print("文件上传完成")
print(f"响应: {response}")
else:
print(f'Error: File {config_file} does not exist')
else:
print(f'Error: File {huggingface_token_file} does not exist')
注意事项:
方式二、插件配置
方式一手动操作太复杂?那就使用HuggingFace 的SD插件的方式吧!
-
插件安装
确保代码里有下载HuggingFace 的SD插件
## Kaggle下载HuggingFace 的SD插件的代码
!git clone https://github.com/camenduru/stable-diffusion-webui-huggingface /kaggle/working/stable-diffusion-webui/extensions/stable-diffusion-webui-huggingface
-
HuggingFace选项卡
插件安装成功后,StableDiffusion WebUI 里会有HuggingFace选项卡
-
获得Kaggle 输出文件夹路径的方法
# 其实Kaggle的文件夹路径都是相对固定的(如果你没做修改的话),可以直接用下面?这个路径
/kaggle/working/stable-diffusion-webui/outputs
-
在HuggingFace创建Dataset
-
复制HuggingFace的Dataset路径
-
生成HuggingFace的写入token
复制token,然后粘贴到插件的token输入框里
推送到HuggingFace的效果
-
如何导出导入代码
导出代码
如果担心Kaggle封禁项目代码,大家可以下载自己的代码备份
新建项目,导入代码
有了代码文件,可以新建项目,再导入代码,这样,你就获得一个新的StableDiffusion项目了(配置文件会是旧的,因为是保存在HuggingFace上,不过只要不同步,就是新的配置文件)
获得一个新的项目
完整的代码文件
我用夸克网盘分享了「zh-stable-diffusion-webui-kaggle.ipynb」,点击链接即可保存。
链接:https://pan.quark.cn/s/6224b8372bbf
更多资源:
阅读原文获取更多AI相关资料及免费学习资源下载,更方便阅读:AI绘画StableDiffusion:免费使用笔记分享(Kaggle版)