更新,2024年8月:实验性DreamBooth API已不可用。请查看FLUX.1微调博文以获取效果更佳的替代方案。
更新,2023年8月:已为最新版Stable Diffusion SDXL添加微调支持。下述DreamBooth API仍可使用,但使用SDXL可在更高分辨率下获得更好效果。请查看SDXL微调博文入门,或继续阅读使用旧版DreamBooth API。
DreamBooth在生成式AI领域备受关注。它是一种针对特定对象或风格训练Stable Diffusion的方法,可创建能生成这些对象或风格的个性化模型版本。仅需三张图像即可训练模型,训练过程耗时不到半小时。
值得注意的是,DreamBooth可用于人物训练,因此可以制作能生成自身图像的Stable Diffusion版本。
利用DreamBooth,人们已开发出一些出色的产品,如Avatar AI和ProfilePicture.AI。
现在,也可以使用DreamBooth创建自己的项目。已构建一个API,允许在云端训练DreamBooth模型并运行预测。
只需三张训练图像,耗时约20分钟(取决于使用的迭代次数)。训练一个模型大约花费2.50美元。
首先,获取API令牌并在终端中设置:
export REPLICATE_API_TOKEN=…接下来,将训练数据收集到名为data/的目录中(JPEG格式),并压缩:
zip -r data.zip data将此zip文件放在可通过HTTP访问的位置。可使用文件上传API。运行以下三个命令:
RESPONSE=$(curl -X POST -H "Authorization: Bearer $REPLICATE_API_TOKEN" https://dreambooth-api-experimental.replicate.com/v1/upload/data.zip)
curl -X PUT -H "Content-Type: application/zip" --upload-file data.zip "$(jq -r ".upload_url" <<< "$RESPONSE")"
SERVING_URL=$(jq -r ".serving_url" <<< $RESPONSE)然后,启动训练任务:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $REPLICATE_API_TOKEN" \
-d '{
"input": {
"instance_prompt": "a photo of a cjw person",
"class_prompt": "a photo of a person",
"instance_data": "'"$SERVING_URL"'",
"max_train_steps": 2000
},
"model": "yourusername/yourmodel",
"trainer_version": "cd3f925f7ab21afaef7d45224790eedbb837eeac40d22e8fefe015489ab644aa",
"webhook_completed": "https://example.com/dreambooth-webhook"
}' \
https://dreambooth-api-experimental.replicate.com/v1/trainings需要设置的参数:
a [标识符] [类别名词],其中标识符应使用罕见标记。为获得最佳效果,使用包含三个Unicode字符且无空格的标识符。a [类别名词]。用于生成类似训练数据的其他图像以避免过拟合。用户名/模型名。如果模型不存在,系统会自动创建。API响应返回对象:
{
"id": "rrr4z55ocneqzikepnug6xezpe",
"input": {
"instance_prompt": "photo of a cjw person",
"class_prompt": "photo of a person",
"instance_data": "https://replicate.delivery/pbxt/HoUeWsrtTTCJEpKGdLKqIYTfo8nbUTSNs565MkGxEstjfwKt/data.zip",
"max_train_steps": 2000
},
"model": "yourusername/yourmodel",
"status": "starting",
"trainer_version": "cd3f925f7ab21afaef7d45224790eedbb837eeac40d22e8fefe015489ab644aa",
"webhook_completed": "https://example.com/dreambooth-webhook"
}可通过调用GET /v1/trainings/<id>获取训练任务状态:
curl -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
https://dreambooth-api-experimental.replicate.com/v1/trainings/rrr4z55ocneqzikepnug6xezpe训练成功完成后,模型会被推送到Replicate平台。
可以像Replicate上的任何其他模型一样,通过网站或API运行模型。
要通过API运行模型,首先需要获取版本ID。然后进行API调用:
curl -X POST \
-H "Authorization: Bearer $REPLICATE_API_TOKEN" \
-d '{
"input": {
"prompt": "painting of cjw by andy warhol",
},
"version": "8abccf52e7cba9f6e82317253f4a3549082e966db5584e92c808ece132037776",
}' \
https://api.replicate.com/v1/predictions或使用Python:
import replicate
replicate.run(
"yourusername/yourmodel:8abccf52e7cba9f6e82317253f4a3549082e966db5584e92c808ece132037776",
input={"prompt": "painting of cjw by andy warhol"},
)默认情况下,DreamBooth训练Stable Diffusion 1.5模型。该模型通常更适合DreamBooth,因为包含更多不同风格。
可通过trainer_version选项选择不同版本。支持的版本:
cd3f925f7ab21afaef7d45224790eedbb837eeac40d22e8fefe015489ab644aa9c41656f8ae2e3d2af4c1b46913d7467cd891f2c1c5f3d97f1142e876e63ed7ad5e058608f43886b9620a8fbb1501853b8cbae4f45c857a014011c86ee614ffbFINISHED原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。