{ "cells": [ { "cell_type": "markdown", "metadata": { "execution": { "iopub.execute_input": "2022-10-27T03:28:46.042713Z", "iopub.status.busy": "2022-10-27T03:28:46.041900Z", "iopub.status.idle": "2022-10-27T03:28:46.056473Z", "shell.execute_reply": "2022-10-27T03:28:46.055255Z", "shell.execute_reply.started": "2022-10-27T03:28:46.042679Z" }, "tags": [] }, "source": [ "# 想定制自己的文图生成模型吗?想画什么画什么\n", "\n", "**文图生成有多火,已经不用介绍了。今天主要来分享如何定制自己的文图生成模型,只需要几张图片,即可定制开发自己想要的文图生成模型哦。有问题的话,文末有交流群,欢迎加入!**\n", "\n", "文图生成任务要求模型根据所提供的描述性文本生成一张与之相对应的图片。这极大地释放了AI的想象力,也激发了人类的创意,给视觉内容创作者、文字内容创作者和大众用户带来了方便。用户可以生成多样化创意图片,并从中汲取创意灵感,打破创意瓶颈,从而可以进行创作出更优质的作品。\n", "\n", "## 感谢 @风飏 开发者开发的UI界面!\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 一、Fork项目,进入 Notebook!\n", "\n", "点击“运行一下”后,再点击“启动环境\",选择合适的GPU后即可进入项目。 AI Studio每天自动**赠送 8 小时**的GPU算力,显存更大的GPU能够生成尺寸更大的图片哦。\n", "
\n", " \n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 二、运行下面的代码,并且重启内核!\n", "\n", "进入之后,点击下边的框里左上角的“点击运行”按钮(或者点进下面的框内用快捷键 Ctrl + Enter)。\n", "\n", "**提示**:下面安装环境的代码,只需要在你**第一次进入本项目**时运行!\n", "\n", "等到显示“加载完毕, 请重启内核”后,请重启内核。\n", "
\n", " \n", "\n", "
\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2023-01-12T14:35:14.706990Z", "iopub.status.busy": "2023-01-12T14:35:14.706668Z", "iopub.status.idle": "2023-01-12T14:35:19.300615Z", "shell.execute_reply": "2023-01-12T14:35:19.299887Z", "shell.execute_reply.started": "2023-01-12T14:35:14.706966Z" }, "scrolled": true, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "加载完毕, 请重启内核\r\n" ] } ], "source": [ "from IPython.display import clear_output\n", "from ui.utils import diffusers_auto_update\n", "diffusers_auto_update()\n", "clear_output() # 清理很长的内容\n", "print('加载完毕, 请重启内核')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# 三、运行下面的代码快速体验\n", "> 最后一步,点击左上角的“点击运行”后,就会自动运行下面的代码,等几秒加载模型就可以玩耍啦~ **以后每次进来这个项目,就可以直接从这里开始运行啦~**\n", "\n", "**下面推荐了部分二次元模型,想要了解更多的模型可以 [点开这里的链接](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/ppdiffusers#ppdiffusers%E6%A8%A1%E5%9E%8B%E6%94%AF%E6%8C%81%E7%9A%84%E6%9D%83%E9%87%8D)!**\n", "\n", "| ppdiffusers支持的模型名称 | huggingface对应的模型地址 | Tips备注 |\n", "| ---------------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------------- |\n", "| **Linaqruf/anything-v3.0** (推荐!) | https://huggingface.co/Linaqruf/anything-v3.0 | 二次元模型! |\n", "| **hakurei/waifu-diffusion-v1-3** (推荐!) | https://huggingface.co/hakurei/waifu-diffusion | Waifu v1-3的模型,主要适合画二次元图像!(对比v1-2更好!) |\n", "| **MoososCap/NOVEL-MODEL** (推荐!)| https://huggingface.co/MoososCap/NOVEL-MODEL | 二次元模型! |\n", "| **Baitian/momocha** (推荐!) | 无 | 二次元模型! |\n", "| **Baitian/momoco** (推荐!) | 无 | 二次元模型! |\n", "| **hequanshaguo/monoko-e** (推荐!) | 无 | 二次元模型! |\n", "\n", "> Tips:\n", "!!!🔥 删除原有的模型名称后,我们可以手动输入新的模型名称时会出现智能提示!例如:我输入了any,他会自动提示出 Linaqruf/anything-v3.0 和 ruisi/anything。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.0 在线转换 ckpt 或者 safetensors 权重\n", "我们可以使用下面的**UI**,在线转换**pytorch**的**ckpt权重**,当前仅支持**SD-V1**的权重进行转换!" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2023-02-18T05:48:23.313309Z", "iopub.status.busy": "2023-02-18T05:48:23.312544Z", "iopub.status.idle": "2023-02-18T05:48:23.324141Z", "shell.execute_reply": "2023-02-18T05:48:23.323413Z", "shell.execute_reply.started": "2023-02-18T05:48:23.313249Z" }, "scrolled": true, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a1e71a804ae548cd8095dd4596ba69e5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Box(children=(Box(children=(Text(value='', description='ckpt或safetensors模型文件位置', description_tooltip='你要转换的模型位…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ui import gui_convert # 点开始可能没反应,多等一会就好了,千万别多点\n", "display(gui_convert.gui)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.1 文生图UI使用\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2023-02-18T05:49:03.271708Z", "iopub.status.busy": "2023-02-18T05:49:03.271128Z", "iopub.status.idle": "2023-02-18T05:49:03.299380Z", "shell.execute_reply": "2023-02-18T05:49:03.298796Z", "shell.execute_reply.started": "2023-02-18T05:49:03.271665Z" }, "scrolled": true, "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f6990bc9e654499ca46aa3c0e379e9fd", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Box(children=(HTML(value='