如何將自己做的網(wǎng)站發(fā)布鄭州網(wǎng)站建設(shè)推廣有限公司
FLUX.1 是 Black Forest Labs 今年夏天發(fā)布的文本轉(zhuǎn)圖像模型系列。FLUX.1 模型為開源圖像生成模型樹立了新標(biāo)準(zhǔn):它們可以生成逼真的手、清晰的文本,甚至可以生成搞笑表情包這樣異常困難的任務(wù)。
現(xiàn)在,你可以使用 Ostris 的 Replicate 上的?AI Toolkit?對(duì) FLUX.1 [dev] 進(jìn)行微調(diào)。
如果你知道這一切意味著什么,并且已經(jīng)準(zhǔn)備好使用你的數(shù)據(jù)集進(jìn)行嘗試,你可以跳到代碼部分。否則,以下是它的含義以及你應(yīng)該關(guān)注的原因:
左圖:使用基本 FLUX.1 模型生成。右圖:與模型 fofr/flux-bad-70s-food 相同的提示和種子?
NSDT工具推薦:?Three.js AI紋理開發(fā)包?-?YOLO合成數(shù)據(jù)生成器?-?GLTF/GLB在線編輯?-?3D模型格式在線轉(zhuǎn)換?-?可編程3D場(chǎng)景編輯器?-?REVIT導(dǎo)出3D模型插件?-?3D模型語義搜索引擎?-?AI模型在線查看?-?Three.js虛擬軸心開發(fā)包?-?3D模型在線減面?-?STL模型在線切割
1、什么是微調(diào)?
這些大型圖像生成模型(如 FLUX.1 和 Stable Diffusion)在一堆添加了噪聲的圖像上進(jìn)行訓(xùn)練,并學(xué)習(xí)“添加噪聲”的反向功能。令人驚訝的是,這竟然是“創(chuàng)建圖像”。
他們?cè)趺粗酪獎(jiǎng)?chuàng)建哪幅圖像?他們以 CLIP 和 T5 等轉(zhuǎn)換器模型為基礎(chǔ),這些模型本身經(jīng)過大量圖像-標(biāo)題對(duì)的訓(xùn)練。這些是語言到圖像的編碼器:它們學(xué)習(xí)將圖像及其標(biāo)題映射到高維空間中的相同形狀。當(dāng)您向他們發(fā)送文本提示時(shí),例如“公園里讀報(bào)紙的松鼠”,他們可以將其映射到網(wǎng)格中的像素模式。對(duì)于編碼器來說,圖片和標(biāo)題是同一回事。
圖像生成過程如下所示:獲取一些輸入像素,將它們稍微遠(yuǎn)離噪聲并移向文本輸入創(chuàng)建的模式,然后重復(fù),直到達(dá)到正確的步數(shù)。
反過來,微調(diào)過程會(huì)從數(shù)據(jù)集中獲取每個(gè)圖像/標(biāo)題對(duì),并稍微更新內(nèi)部映射。你可以通過這種方式教模型任何東西,只要它可以通過圖像-標(biāo)題對(duì)來表示:角色、設(shè)置、媒介、風(fēng)格、流派。在訓(xùn)練過程中,模型將學(xué)會(huì)將你的概念與特定的文本字符串關(guān)聯(lián)起來。將此字符串包含在提示中以激活該關(guān)聯(lián)。
例如,假設(shè)你想針對(duì)漫畫超級(jí)英雄微調(diào)模型。你將收集一些角色圖像作為數(shù)據(jù)集。一個(gè)全面的批次:不同的設(shè)置、服裝、燈光,甚至不同的藝術(shù)風(fēng)格。這樣,模型就會(huì)明白它正在學(xué)習(xí)的是這個(gè)人,而不是任何其他偶然的細(xì)節(jié)。
選擇一個(gè)簡(jiǎn)短、不常見的單詞或短語作為觸發(fā)器:一些不會(huì)與其他概念或微調(diào)沖突的獨(dú)特的東西。你可以選擇“70 年代的糟糕食物”或“JELLOMOLD”之類的東西。訓(xùn)練您的模型?,F(xiàn)在,當(dāng)你提示“在舊金山的派對(duì)上拍攝 70 年代的糟糕食物”時(shí),你的模型將調(diào)用你的特定概念。就這么簡(jiǎn)單。
拍幾張你的寵物或你最喜歡的室內(nèi)植物的照片,讓我們開始吧。
左圖:使用基本 FLUX.1 模型生成。右圖:使用模型 fofr/flux-bad-70s-food 的相同提示和種子
2、如何微調(diào) FLUX.1
n你只需在網(wǎng)絡(luò)上或通過 API 上傳一些圖像,即可在 Replicate 上微調(diào) FLUX.1。
如果你不熟悉 Replicate,我們可以輕松地將 AI 作為 API 運(yùn)行。你不必尋找強(qiáng)大的 GPU,不必處理環(huán)境和容器,也不必?fù)?dān)心擴(kuò)展。可以使用普通 API 編寫普通代碼,只需為你使用的內(nèi)容付費(fèi)。
2.1 準(zhǔn)備訓(xùn)練數(shù)據(jù)
要開始微調(diào),你需要一組代表想要教給模型的概念的圖像。這些圖像應(yīng)該足夠多樣化,以涵蓋概念的不同方面。例如,如果你正在對(duì)特定角色進(jìn)行微調(diào),請(qǐng)包括各種設(shè)置、姿勢(shì)和燈光下的圖像。
以下是一些指導(dǎo)原則:
- 使用 12-20 張圖像以獲得最佳效果
- 盡可能使用大圖像
- 使用 JPEG 或 PNG 格式
- 或者,為每個(gè)具有相同名稱的圖像創(chuàng)建一個(gè)相應(yīng)的 .txt 文件,其中包含標(biāo)題
獲得圖像(和可選標(biāo)題)后,將它們壓縮成一個(gè)文件。
2.2 在網(wǎng)絡(luò)上創(chuàng)建訓(xùn)練
要開始在網(wǎng)絡(luò)上進(jìn)行訓(xùn)練過程,請(qǐng)?jiān)?Replicate 上導(dǎo)航到?Ostris 的 FLUX.1 [dev] 訓(xùn)練器。
首先,選擇一個(gè)模型作為目標(biāo),或者通過在模型選擇器字段中鍵入名稱來創(chuàng)建一個(gè)新模型。
接下來,將包含訓(xùn)練數(shù)據(jù)的 zip 文件作為?input_images
?上傳,然后設(shè)置訓(xùn)練參數(shù)。
trigger_word
?指的是你正在訓(xùn)練的對(duì)象、風(fēng)格或概念。選擇一個(gè)不是真實(shí)單詞的字符串,例如 TOK 或與正在訓(xùn)練的內(nèi)容相關(guān)的內(nèi)容,例如 CYBRPNK。你指定的觸發(fā)詞將在訓(xùn)練期間與所有圖像相關(guān)聯(lián)。然后,當(dāng)你運(yùn)行經(jīng)過微調(diào)的模型時(shí),可以在提示中包含觸發(fā)詞以激活你的概念。
對(duì)于步驟,一個(gè)好的起點(diǎn)是 1000。
將?learning_rate
、?batch_size
?和?resolution
?保留為默認(rèn)值。除非你想提供自己的字幕,否則請(qǐng)保持自動(dòng)字幕啟用。
如果你想在 Hugging Face 上保存自己的模型,請(qǐng)輸入你的 Hugging Face 令牌并設(shè)置存儲(chǔ)庫 ID。
填寫完表格后,單擊“創(chuàng)建訓(xùn)練”以開始微調(diào)過程。
2.3 通過 API 創(chuàng)建訓(xùn)練
或者,你可以使用 API 從自己的代碼創(chuàng)建訓(xùn)練。
確保已在環(huán)境中設(shè)置了 REPLICATE_API_TOKEN。在你的帳戶設(shè)置中找到它。
export REPLICATE_API_TOKEN=r8_***************************
創(chuàng)建一個(gè)新模型,作為微調(diào)權(quán)重的目標(biāo)。一旦流程完成,你的訓(xùn)練模型將駐留在此位置。
import replicatemodel = replicate.models.create(owner="yourusername",name="flux-your-model-name",visibility="public", # or "private" if you preferhardware="gpu-t4", # Replicate will override this for fine-tuned modelsdescription="A fine-tuned FLUX.1 model"
)print(f"Model created: {model.name}")
print(f"Model URL: https://replicate.com/{model.owner}/{model.name}")
現(xiàn)在你有了模型,請(qǐng)通過創(chuàng)建新的訓(xùn)練運(yùn)行來開始訓(xùn)練過程。你需要提供輸入圖像、步數(shù)以及任何其他所需參數(shù)。
# Now use this model as the destination for your training
training = replicate.trainings.create(version="ostris/flux-dev-lora-trainer:4ffd32160efd92e956d39c5338a9b8fbafca58e03f791f6d8011f3e20e8ea6fa",input={"input_images": open("/path/to/your/local/training-images.zip", "rb"),"steps": 1000,"hf_token": "YOUR_HUGGING_FACE_TOKEN", # optional"hf_repo_id": "YOUR_HUGGING_FACE_REPO_ID", # optional},destination=f"{model.owner}/{model.name}"
)print(f"Training started: {training.status}")
print(f"Training URL: https://replicate.com/p/{training.id}")
請(qǐng)注意,此時(shí)為模型選擇哪種硬件并不重要,因?yàn)槲覀儗⑺?FLUX.1 微調(diào)路由到 H100。訓(xùn)練這么多步驟通常需要 20-30 分鐘,費(fèi)用不到 2 美元。
2.4 使用訓(xùn)練好的模型
訓(xùn)練完成后,可以像使用任何其他模型一樣直接在 Replicate 上使用訓(xùn)練好的模型。
你可以在 Web 上運(yùn)行它:
- 轉(zhuǎn)到 Replicate 上的模型頁面(例如 ?
https://replicate.com/yourusername/flux-your-model-name
)。 - 對(duì)于提示輸入,請(qǐng)包含觸發(fā)詞(例如“70 年代的糟糕食物”)以激活你的微調(diào)概念。
- 根據(jù)需要調(diào)整任何其他輸入。
- 單擊“運(yùn)行”以生成你的圖像。
或者,使用 API。例如,使用 Python 客戶端:
import replicateoutput = replicate.run("yourusername/flux-your-model-name:version_id",input={"prompt": "A portrait photo of a space station, bad 70s food","num_inference_steps": 28,"guidance_scale": 7.5,"model": "dev",****}
)print(f"Generated image URL: {output}")
將 ?yourusername/flux-your-model-name:version_id
?替換為你的實(shí)際模型詳細(xì)信息。
你可以在模型頁面的“API”選項(xiàng)卡上找到有關(guān)使用 API 運(yùn)行它的更多信息。
3、使用 FLUX.1 [schnell] 實(shí)現(xiàn)更快的生成
你可以將 FLUX.1 [dev] LoRA 與較小的 FLUX.1 [schnell] 模型一起使用,以更快、更便宜地生成圖像。只需在生成時(shí)將模型參數(shù)從 dev 更改為 schnell,并將 num_inference_steps 降低到 4 等小值即可。
請(qǐng)注意,輸出仍將受 FLUX.1 [dev] 的非商業(yè)許可。
3.1 示例和用例
查看我們的示例庫以獲取靈感。你可以看到其他人如何微調(diào) FLUX.1 來創(chuàng)建不同的風(fēng)格、角色、永無止境的可愛動(dòng)物游行等等。
基本 FLUX.1 模型輸出:
左圖:使用基本 FLUX.1 模型生成。右圖:使用 fofr/flux-bad-70s-food 模型的相同提示和種子
3.2 許可和商業(yè)使用
如果你使用 FLUX.1 模型及其微調(diào)在 Replicate 上生成圖像,則可以將這些圖像用于商業(yè)用途。
如果你從 Replicate 下載權(quán)重并在自己的計(jì)算機(jī)上生成圖像,則不能將這些圖像用于商業(yè)用途。
原文鏈接:FLUX.1微調(diào)指南 - BimAnt