10行代码搭建属于你自己的中文AI作画师——Gradio + 太乙中文Diffusion模型实战

最佳AI作画师火遍全球,其效果和想象力直逼人类艺术家,但是基本上都是英文的AI作画师居多。今天笔者介绍一下如何通过十行代码搭建属于你自己的中文AI作画师。在此之前,笔者容啰嗦一下,简单介绍一下AI作画师的原理。

深度生成模型

目前主流的深度生成式模型目前有三种:

  • 1.变分自编码VAE : 采用的是先编码,引入高斯噪音,再进行解码,并希望解码器的输出和目标样本的分布越相近越好。


    VAE
  • 2.对抗生成模型GAN : 采用的是先编码,再进行解码,并引入一个判别器去判断解码生成器生成的样本是否符合目标分布。


    GAN
  • 扩散模型Diffusion:通过扩散步骤,将目标分布的样本扩散到一个高斯分布,然后采用逆扩散将一个高斯随机噪声还原到目标分布。


    Diffusion

而其中Diffusion模型是再数学上有着比较深的学问,笔者还不甚了解。这里就不过多介绍,这里说明一点,目前上述三类型生成模型当中,Diffusion模型的生成效果最好,也是目前市面上很多效果很惊人的的AI作画师的底层算法。

stable diffusion

stable diffusion 是一种 conditional Diffusion模型,从下方模型架构图可以简单的看到,其主要是在逆扩散 生成图片的过程中 加入 文本 特征,引导逆扩散的生成的过程,生成你想要的图片。

stable diffusion

Gradio

Gradio 号称3行代码就可以搭建一个AI模型的demo,这是的AI算法工程师可以极其方便的通过web网页分享自己的模,供别人使用。这是其官网地址https://gradio.app/。笔者使用了一下,确实只需要很少的代码就能搭建了一个AI模型的demo,省去了大量的后端以及前端代码编写。

太乙中文stable-diffusion 图片生成模型

太乙中文 stable-diffusion 图片生成模型是IDEA-CCNL组织开源的一个太乙多模态模型簇中的一个,主要是将stable-diffusion模型中文化,让大家可以用中文进行AI作画。太乙其实还有中文CLIP模型 ,笔者也曾写过太乙CLIP实战教程。 IDEA-CCNL组织开源了很多封神宇宙得预训练模型,非常的强大,造福了大批我们这种GPU-poor 玩家。其中太乙中文stable-diffusion效果如下,看起来画的还是很逼真。

太乙的效果

AI作画师demo实战部分

    1. 首先通过你需要安装两个python 包:diffusers ,gradio。我们需要difusers去加载太乙中文stable-diffusion 图片生成模型,然后进行图片生成。
    1. 去huggface网站中下载太乙中文stable-diffusion 图片生成模型,链接如下, https://huggingface.co/IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1
      或者直接运行下方命令进行模型下载。

git lfs install
git clone https://huggingface.co/IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1

    1. 将模型放到项目目录下,然后编写Artists.py代码


      项目目录

Artists.py代码的内容如下:其实就是采用gradio 的Intereface 将 加载了太乙中文stable-diffusion 图片生成模型 的 DiffusionPipeline 直接服务化。

from diffusers import DiffusionPipeline
import gradio as gr

pipeline = DiffusionPipeline.from_pretrained("./Taiyi-Stable-Diffusion-1B-Chinese-v0.1")


def generate(text, steps):
    image = pipeline(text,
                     num_inference_steps=steps,
                     guidance_scale=7.5).images[0]
    return image


if __name__ == '__main__':

    demo = gr.Interface(title="太乙中文 stable diffusion 模型",
                        css="",
                        fn=generate,
                        inputs=[gr.Textbox(lines=3, placeholder="输入你想生成的图片描述", label="prompt"), gr.Slider(0, 100)],
                        outputs=[gr.outputs.Image(label="图片")])

    demo.launch()

运行代码会在本地 http://127.0.0.1:7860/ 上起一个web服务


后台日志
  • 4.服务的UI如下图所示:一个文本输入框;一个step的输入Slider,step设置的越大耗时越长,图片效果越好。一个图片输出框。输入你想生成的图片描述, 这里笔者输入参数的是:
    prompt :一行白鹭上青天; step:20 。
    意思是: 随机采样后采用diffusion 模型逆扩散20步生成 符合 一行白鹭上青天语义的图片。
    CPU机器上扩散20个step,大约耗时5分钟生成结果图,当然如果采用GPU速度会更快。最终结果图片如下:三只白鹭站在河畔的树下,虽然不是100%符合输入描述,但是图片的意境和质量确实不错。
AI作画师web服务

结语

最终我们通过差不多10行代码(如果不换行的化,哈哈哈),就搭建了一个中文AI作画师的demo,不需要GPU也可作画,非常的方便。目前diffusion 生成的图片效果越来越好,而且,学术界在正在不断研究diffusion 的变种去生成图片,视频,文章,甚至分子结构,蛋白质等。感觉深度生成模型继GAN之后又迎来了一次大的突破,而且diffusion在数学上有着比较完备的原理,这也最有数学性的一个深度模型。不得感叹一句:数学才是硬道理。

引用

https://huggingface.co/IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1
https://mp.weixin.qq.com/s/f9Q7hee9cWIwtKwC5V9Y8w
https://gradio.app/
https://arxiv.org/abs/2112.10752

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容