最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【AI繪畫】大魔導(dǎo)書:AI 是如何繪畫的?Stable Diffusion 原理全解(一)

2023-02-02 11:31 作者:秋葉aaaki  | 我要投稿

一. 前言

一直也很想寫這篇文章,但是由于自己一直沒找到應(yīng)該如何定位這系列的文章卻一直擱置了。今天終于下定決心將這個系列作為一個 由淺入深 的科普系文章來做,之后也會以這篇文章作為基礎(chǔ),出相應(yīng)的視頻。

當(dāng)然淺也不是說會有多淺,起碼你得把 webui 玩的順溜了,各種玩意都會玩了再說。

首先這篇文章將會帶領(lǐng)你了解目前 AI繪畫 (特指 Stable Diffusion)是如何大致工作的。俗話說得好,工欲善其事,必先利其器。不理解 AI 是如何工作的又如何能畫出好圖呢?

注:下一句看不懂也沒關(guān)系,以后會慢慢講本篇文章不涉及

之后文章的續(xù)集將會從 TextEncoder部分(Clip),Diffusion部分(U-Net+Scheduler),ImageDecoder部分(VAE)來帶領(lǐng)你全面深入地了解 AI繪畫。這篇文章只涉及到這幾個名詞,并不會講其工作原理。一次講太多也看不明白對吧 哈哈

當(dāng)然,考慮到并非每個人都是計算機相關(guān)專業(yè),這個系列的文章將會 盡可能的減少涉及代碼相關(guān)知識。至于數(shù)學(xué)部分,那就更少了,畢竟我也不是 AI 專業(yè)的,真讓我推那些公式我也不會。

事先說好:webui 支持的功能,不等于 AI 的功能。比如說那堆亂七八糟的加權(quán)、括號、分步渲染啥的,根本就不是 AI 本身支持的,是 webui 單獨添加的功能。等會將會講明白那些都是啥。

先來看看總覽圖吧,我將按照這張圖片開始講??床欢疀]關(guān)系,一點一點講。

二.?一切的開始,敲進(jìn)去的文本。

就先從文生圖開始講起了。敲進(jìn)去的?tag(prompt,也叫提示詞),是如何變成一幅幅圖片的呢?如果你是一個老手,一定會知道最開始的時候 AI 是有 tag 上限的。在你寫 tag 的時候,右上角也會有這個提示。這又是什么呢?

首先我們要知道一件事情,自然語言,也就是平常說的話、單詞什么的是無法被程序理解的。當(dāng)我們用文本生成圖片的時候,程序所做的第一件事情就是將 “人話” 轉(zhuǎn)換為數(shù)字。

這也就是 TextEncoder(文本編碼器)所產(chǎn)生的作用了。而在 stable diffusion 中,一款非常優(yōu)秀的文本編碼器被選中了—— clip。(注:clip 并非只是一個文本編碼器,如果感興趣的可以去自己搜一搜)

在這個文本編碼器里面,會經(jīng)歷兩個步驟。文本首先會經(jīng)過 tokenize 編碼變成數(shù)字,然后再送入 Text?Transformer 得到生成圖片的條件(condition)

使用這個小工具就能看到平常輸入的 tag 變成了什么樣子。經(jīng)過了 tokenizer 的處理,他變成了這樣一串?dāng)?shù)字:

masterpiece, best quality, 1girl ->?12066, 267, 949, 3027, 267, 272, 1611

細(xì)心的人可能看到了,圖中有個 token count,正是這串?dāng)?shù)字的個數(shù)?;氐轿纳鷪D界面,將tag輸進(jìn)去,可以看到也是同樣的數(shù)字。

經(jīng)歷了 tokenizer 之后,就要把這串 token 送入?Text?Transformer?了,來得到一個 條件(condition)。常說的 CLIP Skip 就是在這里跳過了?clip?模型?Text?Transformer?部分的最后兩層。最后得到的這個條件將會指導(dǎo)圖像生成的方向。

再回去想一想最開始的問題:為什么最開始 AI 有詞數(shù)上限?答案是這樣的:Text?Transformer本身是接納 77 個 token 的。去頭去尾,77 - 2 = 75,也就是最開始的這個 “75” 的數(shù)字來源。

那為什么后來支持更多的 token 了呢?那些括號又是什么呢?留個懸念,下一篇文將詳細(xì)對文本編碼這部分展開~


二. 從亂碼中看出一幅圖

好——現(xiàn)在你已經(jīng)理解了 AI 的第一步了:把人話轉(zhuǎn)成數(shù)字。

那么第二步就該利用這些數(shù)字生成圖片了。

怕你不知道提一句:一張圖片包含的信息是非常非常之多的。一張 512 x 512的圖片就有巨量的數(shù)據(jù):假設(shè)這是一張RGB的圖,有 512 * 512 個像素點。每個像素點由紅綠藍(lán)組成不同顏色,還要乘以3。

讓 AI 算出這堆玩意不太行,實在是太大了,會導(dǎo)致需要巨量消耗。那可怎么辦?倆字:壓縮。上面這張圖中,右上角有仨字:“潛空間”。可以把它簡單理解成壓縮過的圖片數(shù)據(jù)。圖形數(shù)據(jù)的處理全部在這個潛空間內(nèi),這樣處理所需要的數(shù)據(jù)就會小的多得多了!如:512x512的圖片,(3, 512, 512) 實際處理的時候是?(4,64,64)。數(shù)據(jù)量小了很多很多倍

還記得當(dāng)我們生成圖片的時候,是不是有個種子?這里填 -1 就代表隨機生成。

基于這個隨機種子,會生成一張噪聲圖片,每一個隨機種子對應(yīng)一張?zhí)囟ǖ脑肼晥D。噪聲圖就如同下圖最左的樣子。

然后在這里進(jìn)行去噪,就像你死盯著亂碼圖片,看他像什么。而上一步文本編碼器最后的輸出將作為條件,來指導(dǎo)去噪的方向。生成圖片的過程,就是重復(fù)去噪、采樣的過程。

去噪的過程涉及到 U-Net 以及 Scheduler,在以后的專欄中會繼續(xù)介紹他們的細(xì)節(jié)。

平常選的采樣器、步數(shù)、CFG也就是在這里發(fā)揮的作用。


三. 從潛空間變成圖

上一部分說了,潛空間的數(shù)據(jù)是經(jīng)過了壓縮的,不是人能看的正常圖片。所以從潛空間到正常圖片就需要一步轉(zhuǎn)換+擴大,這就是VAE的作用。



四. 總結(jié)

這篇文章大致講了 stable diffusion 的一個籠統(tǒng)的工作原理,并且結(jié)合了平常使用的 webui 調(diào)節(jié)的那些參數(shù),細(xì)致的講了一些他們背后的作用位置。不知道大家能看懂多少呢?沒看懂也沒關(guān)系,點個收藏慢慢看!

由于篇幅原因?qū)嵲谑沁€有非常非常多的內(nèi)容沒有講完。比如 CFG 到底是什么,又影響了哪里?訓(xùn)練的那些模型都作用在了哪里?后續(xù)將會慢慢更新這些內(nèi)容,希望大家給個三連支持一下,免費的贊也行!

想了解更多的內(nèi)容也可以前往下面這個鏈接:

https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

【AI繪畫】大魔導(dǎo)書:AI 是如何繪畫的?Stable Diffusion 原理全解(一)的評論 (共 條)

分享到微博請遵守國家法律
广州市| 广水市| 太保市| 若羌县| 易门县| 神农架林区| 盘山县| 凤城市| 宁强县| 仁布县| 澜沧| 安福县| 崇义县| 梓潼县| 余姚市| 淳安县| 陈巴尔虎旗| 双柏县| 蕉岭县| 永兴县| 镇沅| 汝州市| 盐城市| 宜丰县| 扎鲁特旗| 涪陵区| 花莲县| 砀山县| 浠水县| 栾川县| 宁远县| 定边县| 遂昌县| 堆龙德庆县| 绩溪县| 天峨县| 平安县| 长葛市| 若羌县| 江阴市| 滨州市|