元峰AI笔记 · AI绘画与视频

在 Replicate 中微调 Flux 炼 Lora

<title用 Flux 画 AI 写真照,逼真到朋友以为我要结婚了</title

用 Flux 画 AI 写真照,逼真到朋友以为我要结婚了

Hello,大家好,我是元峰。

好像最近大家都不怎么聊 SD 了,都一股脑转战到 Flux 这边了。Flux,这也许是目前最牛的开源 AI 画图工具了吧,尤其画人脸,非常逼真。以前那些开源绘图模型,比如大名鼎鼎的 SD,在这方面都得甘拜下风。

最爽的是,使用 Flux,我们只需要用浏览器就能搞定,不用高配置的电脑,也不用写那些看起来就头疼的代码。

今天我们就带大家玩玩,如何在 Flux 中训练 Lora,做自己的 AI 写真,而且效果绝对让你惊掉下巴。

我刚刚试了一下,把手机里的一堆自拍照片丢给 AI。大概 20分钟之后,我就看到各种各样脑洞大开的图片被画出来了,全是我自己当主角,简直不要太带感!

图片展示了一位穿着黑色西装、白色衬衫和黑色领结的男子,背景为红色。该图片位于介绍在Flux中训练Lora制作AI写真内容的文档中,是作者试用Flux将手机自拍照片丢给AI后生成的图片之一,展示了AI生成的逼真写真效果,与上下文提到的“全是我自己当主角,简直不要太带感”相呼应,体现了AI写真逼真的特点。

最经典的就是张 AI 写真图,发给朋友看,他张口就问:“你要结婚了吗?“ 愣是没发现是 AI 画的,hhh。🥲

接下来,我就手把手教你怎么微调训练 Flux,让它给你画出专属于你的 AI 图片。保证又好玩,又简单,而且绝对让你兴奋得跳起来!

对了,要是你还不太了解Flux是啥,没关系,我给你推荐之前写的这篇文章:

在开始之前,你需要:

  • 至少 10 张被训练者的清晰照片
  • Replicate 帐户
  • 训练 AI 模型的付款方式(国外信用卡💳,只需 2 美元)

如果你已经准备好这些了,下面我们就开始吧。

图片展示的是MetaFong平台界面。左侧有导航栏,包括Dashboard、Models、Predictions等选项。右侧显示“Welcome to Replicate!”,提示按步骤操作以充分利用体验。下方有“Set up billing”和“Run AI with an API”两个步骤,其中“Run a model”按钮被红色框突出显示。右侧还列出“Recently viewed models”下的多个模型选项,如ostris - flux-dev-lora-trainer等,下方有“Your usage so far this month has a total cost of $2.92. View your invoices.”字样。

在 Replicate 中微调 Flux 炼 Lora

第 1 步:准备训练图像

微调 Flux 的第一步是准备训练图像,收集至少 10 张自己的照片。

  • 这些图像应清晰地显示脸部,针对不同的角度和照明条件,为 Flux 提供多种可供学习的内容。
  • 它们可以是 WebP、JPG 和 PNG 格式
  • 使用高清图像,最好至少为 1024x1024 或更高分辨率(如果可能)
  • 文件名和纵横比并不重要

图片展示了用于在Replicate中微调Flux炼Lora的训练图像。共有13张图像,包括不同角度、照明条件下的男性正面、侧面等照片,还有在不同场合(如活动、会议)的场景照。这些图像清晰显示脸部,且格式为WebP、JPG或PNG,分辨率至少为1024x1024。图片与上下文紧密相关,直观呈现了用于训练的图像类型和样例,强调了图像多样化对结果的积极影响。

请记住,你的图像在角度和照明方面越多样化,你的结果就越好。但是,使用更多图像将导致训练时间更长。

收集完图像后,将它们放入 zip 文件中(无需密码),可以随意命名 zip 文件。

第 2 步:选择一个独特的触发词

当提示微调图像模型时,在生成图像时在文本提示中使用唯一的“触发词”作为标识符非常重要。

例如,你不应该使用“人”或“狗”等通用词。相反,可以使用你的名字(例如“metafeng”)作为触发词。

以下是选择触发词时需要考虑的一些事项:

  • 它应该是独特的,例如MY_UNIQ_TRGGR ,但没有任何长度限制。
  • 它不应该是任何语言中现有的单词,例如dogcyberpunk
  • 它不应该是TOK ,因为如果你想将它们结合起来,它会与其他微调发生冲突。
  • 大小写并不重要,但大写字母可以帮助在视觉上区分触发词与文本提示的其余部分。

现在请保留你的触发词是独一无二的,一旦你训练了模型,后面都会使用它。

第 3 步:训练通量图像模型

现在是重要的部分:训练模型。打开你的 Replicate 帐户,然后在“探索”选项卡下找到“flux-dev-lora-trainer.”

图片展示的是Replicate平台“探索”选项卡下的模型列表界面。左侧有“Featured models”板块,呈现多个模型缩略图及名称。右侧是搜索框,输入“flux-dev-lora - trainer”后,显示相关模型,其中“optify / flux - dev - lora - trainer”被红色框突出显示。该图片与上下文紧密相关,上下文提到在“探索”选项卡下找到“flux - dev - lora - trainer”,此图直观呈现了找到该模型的操作结果。

在“创建训练”部分中,设置模型目标。你可以使用现有模型或创建新模型。

图片展示的是在Replicate中创建训练模型的界面。上方标题为“Create training”,说明使用下方表单可轻松训练ostris/flux-dev-lora-trainer模型,创建后会跳转至训练详情页,可监控训练进度并下载权重及运行训练模型。界面有Form、Python、Node.js选项卡,当前选中Form。下方“Destination”字段提示选择模型,下方有“Select a model”下拉框,以及“jimclydegm / Search models...”输入框,还有“Create new model”按钮。

在此示例中,让我们创建一个名为“metafeng-flux”的新模型,用我自己的照片进行训练。确保将可见性设置为“私有”,避免其他用户访问。

图片展示的是在Replicate中创建训练时的界面。上方提示创建训练的简单方式,创建后会跳转至训练详情页。下方有Form、Python、Node.js选项卡,当前选中Form。关键信息是红色警告框内显示“你需要设置付款方式来运行此模型”,下方有Destination字段,已选择“metafeng / metafeng-flux”作为模型名称,还有Public和Private选项。此图与上下文紧密相关,上下文提到在输入图像部分上传包含训练图像的zip文件,设置触发关键字,且若不添加付款方式,训练将不会开始。

在输入图像部分中,上传包含训练图像的 zip 文件。

图片展示的是在Replicate中微调Flux炼Lora时,输入图像部分的设置界面。界面提示上传包含训练图像的zip文件,推荐至少10张图像,且若包含标题,需以.txt文件形式命名,如my - photo.jpg对应my - photo.txt。若不包含标题,可使用自动标题功能(默认启用)。当前显示已上传名为“metafeng.zip”的文件。该图片与上下文紧密相关,是进行训练图像模型操作前的文件上传步骤说明。

接下来,设置你在步骤 2 中选择的触发关键字。

图片展示的是在Replicate中训练通量图像模型时设置触发关键字的界面。界面中“trigger_word”字段已输入“metafeng”,下方说明触发关键字用于指定训练对象、风格或概念,可选择非真实词,如TOK或与训练内容相关的词,此词在训练期间与所有图像关联,使用LoRA时可在提示中包含触发关键字以激活LoRA。默认值为“TOK”。该图片与上下文紧密相关,是设置触发关键字这一步骤的操作展示。

将其余字段保留为默认值,最后单击“创建训练”按钮。

图片展示的是在Replicate中微调Flux炼Lora时设置训练通量图像模型的界面。界面中有“wandb_save_interval”和“skip_training_and_use_pretrained_hf_lora_url”两个字段,前者设置为100,后者为空。下方说明若想跳过LoRA训练,可在此字段输入HuggingFace下载URL,示例给出一个HuggingFace链接。界面右下角有“Reset”和“Create training”按钮。该图片与上下文紧密相关,是设置训练参数的步骤说明。

请记住,如果你不添加付款方式,训练将不会开始。

图片展示的是在Replicate中微调Flux炼Lora时,训练通量图像模型的界面。界面中有Form、Python、Node.js三个选项卡,当前选中的是Form选项卡。下方有一个红色警告框,内有白色感叹号图标,提示“你需要设置支付方式才能运行此模型”。该图片与上下文紧密相关,上下文提到将其余字段保留为默认值,最后单击“创建训练”按钮,但若不添加付款方式,训练将不会开始,此图片直观呈现了未设置支付方式时的提示情况。

图片展示的是Replicate平台的账单设置界面。界面中“Billing Period”显示为2024年9月11日UTC - 00:00,状态为“进行中”,总金额为$2.03。该图片与文档中“在Replicate中微调Flux炼Lora”步骤相关,对应第3步训练通量图像模型时,若不添加付款方式,训练将不会开始,且支付可能需用虚拟信用卡,此图直观呈现了训练过程中账单信息,帮助用户了解当前账单状态。

这里支付可能需要用到虚拟信用卡。

图片展示的是WildCard支付服务界面。上方有“服务总览”“支付服务”“我的卡片”“交易明细”“通过信用卡”“ChatGPT 一键升级”“API 一键用”等选项。中间部分介绍WildCard支付服务,可为ChatGPT Plus支付、注册OpenAI账号、升级ChatGPT、使用海外多变网络等。下方有“ChatGPT 一键升级”“API 一键用”“ChatGPT 专用浏览器”等服务说明。该图片与文档中在Replicate中微调Flux炼Lora,训练通量图像模型时需使用支付服务的内容相关,展示了可用的支付服务选项。

训练完成后,你将看到成功状态和如下消息:

训练过程大约需要 20 分钟才能完成,但这取决于队列长度。要监控进度,请转到**“训练”**页面并选择正在训练的模型。

正在训练中

图片展示的是在Replicate中训练Flux炼Lora模型的“Training”页面。页面显示模型处于“Running”状态,输入部分有“steps”等参数设置,输出部分有“Cancel”按钮及“Download logs”选项。页面右上角有“Dashboard”“Explore”等导航栏。该图片与上下文紧密相关,上下文提到训练完成后能看到成功状态及类似消息,此图直观呈现了训练过程中的界面情况,帮助用户了解训练状态及操作选项。

22分钟后,训练完成!

图片展示的是在Replicate中训练通量图像模型后的成功界面。界面显示训练状态为“Completed”,模型版本为“metaflg/metaflag-flux-4636fe81”,训练时长21分钟,创建时间为22分钟前。输入部分有“steps”等参数设置,输出部分提示训练成功,可运行模型或下载权重,并给出代码示例。该图片与上下文紧密相关,直观呈现了训练完成后的结果及后续操作选项。

训练成功了!你现在可以在我们的网络游乐场中运行并了解有关你训练过的模型的更多信息,或者开始通过Replate API运行预测。

现在我们已经可以对微调后的模型进行测试运行。单击“运行训练模型”即可开始。在写提示词时,请确保在提示词中包含trigger_word ,例如我的是 metafeng这样可以在绘图过程中触发我们训练的 Lora。

生成图像

现在便可以开始生成自定义出图了。让我们尝试一个例子:

Prompt: metafeng, wearing a tuxedo posing for a magazine in a red carpet show, the room is well lit, he’s facing the camera, fhalf body shot

metafeng,穿着燕尾服在红地毯秀上为杂志摆姿势,房间光线充足,他面对镜头,半身拍摄

图片展示了使用Flux生成图像的界面。左侧Input区域有Prompt输入框,示例内容为“metafeng,穿着燕尾服在红地毯秀上为杂志摆姿势,房间光线充足,他面对镜头,半身拍摄”;Image file、Mask file、Aspect ratio等输入框也显示相关参数。右侧Output区域呈现生成的图像,为一张男子身穿燕尾服、面对镜头的半身照,背景为红色。该图片与上下文紧密相关,直观呈现了根据提示生成图像的过程及结果。

天啊,当我第一次看到这张照片时,我很惊喜,当然也很开心。看看它的真实程度以及它与我的脸相似度是如此之高。它既奇怪又搞笑,同时又令人惊奇!

图片展示了一位男士在红地毯上摆拍的场景。他身着黑色西装,内搭白色衬衫,佩戴黑色领结,脚穿黑色皮鞋,左手插兜,右手自然下垂。背景为室内环境,地面铺有红色地毯,两侧墙壁为白色,顶部有红色灯光照射,营造出正式且华丽的氛围。此图与文档中“用Flux画AI写真照,逼真到朋友以为我要结婚了”内容相关,展示了AI生成图像的效果。

完美复刻了我在训练集中的一张形象照的动作。

这里还有更多:

Prompt: metafeng, studio photoshoot, wearing white polo, and black pants, smiling

metafeng,工作室拍摄,穿着白色 Polo 衫和黑色裤子,微笑

图片展示了一位身穿白色Polo衫和黑色裤子的男子,站在纯白色背景前。Polo衫左胸处有黑色文字标识。男子面带微笑,双手插兜,整体造型简洁大方。该图片对应文档中“Prompt:metafeng,studio photoshoot,wearing white polo,and black pants,smiling”这一生成图像指令,直观呈现了指令要求的拍摄场景与人物着装。

Prompt: metafeng, in a white oversize T-shirt posing for a brand shooting in front of a skyblue backround, full body shot

metafeng,身穿白色超大 T 恤,在天蓝色背景前摆出品牌拍摄的全身照

图片展示的是一位身穿白色超大T恤的人物,背景为天蓝色,进行全身拍摄。人物站姿端正,面向镜头。这张图片与上文提到的“metafeng,身穿白色超大T恤,在天蓝色背景前摆出品牌拍摄的全身照”的Prompt描述相符,是使用Flux生成的AI写真照示例之一,呈现出Prompt所设定的画面效果。

当然,也有翻车的时候,硬生生把我“变性”了,整成了一个娇滴滴的妹子。。。

图片展示的是一个身穿白色T恤的人物,背景为纯蓝色。人物短发,面带微笑,表情自然。此图对应文档中“当然,也有翻车的时候,硬生生把我‘变性’了,整成了一个娇滴滴的妹子。。。”的上下文,可能是作者在尝试用Flux生成图像时出现的“翻车”情况,意在说明AI生成图像时有时会出现与预期不符的效果。

Prompt: metafeng, In the office, sitting in front of the computer, thinking carefully

Metafeng,在办公室里,坐在电脑前,仔细思考

图片展示了一位站在办公室内的人物。他身着黑色T恤,T恤正面印有白色字母图案,搭配蓝色牛仔裤,手腕上戴着黑色手表。背景中,有三名工作人员在电脑前工作,其中一人坐在电脑前,另两人分别坐在不同桌子旁。办公室内有多张桌子,桌上摆放着电脑等办公设备,窗外可见城市景观。此图与上文提到的“Prompt:Metafeng,在办公室里,坐在电脑前,仔细思考”相呼应,直观呈现了Metafeng在办公室的场景。

图片展示了一位身穿黑色T恤、印有“LOAD MOSO”字样的男子,他站在办公室内,双手插兜,面带微笑。背景是宽敞明亮的办公环境,有多张办公桌,桌上摆放着电脑等设备,还有几把黑色办公椅。窗外可见建筑和树木。该图片与上文提到的“Prompt:metafeng,In the office,sitting in front of the computer,thinking carefully”指令对应,直观呈现了Metafeng在办公室里坐在电脑前思考的场景。

Flux 的表现确实让我大吃一惊。我也没想到它能做得这么好。整体效果和文字描述简直是绝配,主题和想要的也基本一模一样。最厉害的是,可以把手画得非常完美,要知道手可是很多 AI 绘画工具的老大难呢!

你是不是已经蠢蠢欲动了,大家可以尽管去试试不同的提示词。别不好意思,就要玩起来!我懂你的感受,这东西太上瘾了,哈哈,一不小心就画了一大堆。

要查看生成图像的历史记录,请转到“预测”选项卡并单击 ID 链接。

图片展示的是MetaFeng平台的“Predictions”页面。页面上方有“Dashboard”“Models”等导航栏选项。页面主体显示了生成图像的历史记录,包括Model、Source、Status、Total duration、Created等信息,如“fjgjw123456789012345678901234567890”对应的Model为“metafeng.flux”,Source为“Web”,Status为“Successful”,Total duration为17.2s,Created时间为1分钟前。该图片与上文提到的查看生成图像历史记录的内容相关,直观呈现了历史记录的展示形式。

你还可以通过 API 访问此模型并将其集成到你的自定义应用程序中。下面是 Node.js 中的示例代码:

import Replicate from "replicate";

const replicate = new Replicate({
  auth: process.env.REPLICATE_API_TOKEN,
});

const output = await replicate.run(
  "metafeng/metafegn-flux:4636fa811036020fae1d96f39454a55cafXXXXXXXXX",
  {
    input: {
      model: "dev",
      lora_scale: 1,
      num_outputs: 1,
      aspect_ratio: "1:1",
      output_format: "webp",
      guidance_scale: 3.5,
      output_quality: 90,
      prompt_strength: 0.8,
      extra_lora_scale: 1,
      num_inference_steps: 28
    }
  }
);
console.log(output);

变现思路

**定制服务:**定利用 Flux 模型的强大图像生成能力,我们可以为用户提供个性化的图像或艺术作品。这种服务可以针对个人用户、企业或品牌需求,通过提供独特的图像创作来实现盈利。

根据图像的复杂程度和生成的数量收取费用。例如,每张定制图像收取固定费用,或根据项目的规模和要求制定报价。也可以提供不同的服务套餐,例如基础套餐(少量图像)、高级套餐(更多图像和定制需求)、专业套餐(复杂图像和高级定制)。

**API 集成:**通过将 Flux 模型的 API 集成到其他应用程序或服务中,提供图像生成能力,并通过 API 调用费用实现盈利。这种方法可以将 Flux 的功能扩展到更多的平台和应用中。在对应应用上推出会员订阅服务,用户可以选择不同的订阅计划,获取高级功能和更多的图像生成选项。

联盟营销: 推广相关的 AI 工具获取推荐佣金,比如刚刚我们在使用 Replicate 平台微调训练过程中需要国外信用卡,而我推荐的 wildcard 信用卡,不仅充值方便,使用支付宝就可以直接充值付款,每邀请一个新用户,可以赚 $2 美元。提现也非常快,点击**“奖励提现”**直接就提现至我们的支付宝里面了。

图片展示的是WildCard平台的账单详情界面。左侧显示账单总额为299.41美元,右侧有邀请奖励余额0.00美元,总邀请人数25,已完成功人数21,总奖励金额42.00美元。下方有支付会员邀请和随心用邀请的记录,如2024年8月10日支付会员邀请,奖励金额82.00美元等。该图片与文档中介绍WildCard平台可充值常见AI工具、推广相关AI工具获取推荐佣金的内容相关,直观呈现了平台的账单及奖励情况。

还能充值常见的 AI 工具,ChatGPT,Claude,Midjourney 等等。

图片展示的是“选择你要支付的产品”界面,上方标题为“选择你要支付的产品”。界面中有多个支付产品图标,包括ChatGPT、OpenAI API、Midjourney、App Store、Claude、Adobe、X、Facebook、GitHub、Google Play、Amazon、Poe、Suno、Patreon、Perplexity、Openrouter、Cursor等,还有“... 其他场景”选项。该图片与文档中介绍的联盟营销相关,可充值常见的AI工具,如ChatGPT、Claude等,还能选择其他支付产品。

最后的想法

总的来说,用微调后的 Flux 模型来生成自己的图片真是太有意思了!而且你想想,才训练了 1000 步就能达到这效果,简直是又快又便宜,花个 2 美元就搞定了。出来的结果真的很棒,跟我长得特别像,而且跟提示词描述也挺贴合的。

不过要提醒一下,这篇文章用的是 DEV 版本的模型,不是 Pro 版的。如果你想要更厉害的图像生成效果,那 Flux Pro 绝对是首选。它在跟随提示词、画面质量、细节表现还有多样性输出方面都是一流的,比 Dev 版强大多了。所以要是想要更好的图片,用 Pro 版准没错!