我使用了我女朋友的照片来训练 FLUX.1 模型


9 个月前

我用女朋友的照片训练了 FLUX.1 模型

通过仅用几张照片训练 Flux LoRa 模型,生成你所爱之人的真实 AI 图像。

使用 DreamStudio 生成的图像

虽然情人节已经过去,但本文中的想法可以转化为一个独特而贴心的礼物,送给你所爱的人。你的女朋友是否有梦想的目的地,她一直想去但从未有机会?你的父亲是否希望能见到约翰·尼克斯?你的母亲是否梦想成为亚马逊雨林的护林员?虽然你可能无法实现他们所有的梦想,但用 AI 生成的他们的图像制作一本相册,可以成为一个有趣而感人的礼物。

在本文中,我将首先介绍 FLUX.1 模型,这是由 Black Forest Labs 开发的开源图像生成模型。接着,我将探讨使用该模型的各种应用场景。我们将深入了解一些可用的预训练模型,并用我女朋友的照片训练一个模型。最后,我们将使用 Python 在本地运行微调后的模型。

为了本文的目的,我探索了两个当前支持 Flux LoRa 的平台,分别是 Replicatefal.ai。在第一个平台上,我能够生成非常逼真的输出,而无需训练数据;而在 fal.ai 上,我训练了我女朋友的图像,并创建了她在最梦幻场景中的提示。最后,我使用 fal.ai API 在本地与模型进行交互。

什么是来自 Black Forest Labs 的 FLUX.1

Black Forest Labs 是一个于 2024 年 8 月 1 日启动的 AI 研究社区。他们的目标是开发先进的最前沿生成深度学习模型,用于媒体。

FLUX.1 是 Black Forest Labs 的第一个杰出 AI 模型,能够通过使用流匹配(FM)技术从文本生成图像。与传统的文本到图像模型相比,FLUX.1 利用增强的 FM 技术进行高效的模型训练,无需复杂的模拟。

扩散模型逐步消除随机初始状态中的噪声以生成图像,而 FM 采用更有针对性的策略,掌握将噪声转换为真实图像所需的特定变换。因此,这种新方法产生了更高质量的图像,并带来了更快的处理速度和对最终输出的更大控制等独特优势。

在以下文章中了解更多关于流匹配(FM)的信息:

[使用 FLUX.1 生成 AI 超级模型背后的研究论文

深度生成模型是一种计算机算法,学习理解和创建与…

medium.com](https://readmedium.com/research-paper-behind-generating-ai-supremodel-using-flux-1-ba84a2af258d) 你可以以三种不同的变体探索 FLUX.1 模型:

  • FLUX.1 [pro]: 提供最佳性能的图像生成,具有出色的视觉质量、图像细节和输出多样性。可以通过 API 访问,并通过以下平台访问:Replicatefal.aimystic
  • FLUX.1 [dev]: 该模型专为非商业用途而设计,提供与其专业版本 FLUX.1 [pro] 相当的质量,但与同等大小的常规模型相比效率更高。FLUX.1 [dev] 的权重可以在 Hugging Face 上公开获取,并可以在 Replicatefal.aimystic 等平台上进行测试。
  • FLUX.1 [schnell]: 专为本地开发和个人使用而设计,FLUX.1 [schnell] 在宽松的 Apache2.0 许可证下发布。与 FLUX.1 [dev] 类似,它提供相当的功能,具有在 Hugging Face 上的公共权重和在 GitHub 上轻松访问的推理代码。此外,用户可以通过 Replicatefal.aimystic 等平台轻松访问 FLUX.1 [schnell]。

在本文中,我们将主要关注 FLUX.1 [pro] 和微调 FLUX.1 [dev],即通过仅训练一小组图像来定制模型以生成特定风格、角色、个体和物体。这种定制是通过 LoRA(大语言模型的低秩适应) 训练技术实现的。

LoRa 技术是一种广泛使用的轻量级训练方法,显著减少了可训练参数的数量。它通过向模型添加一小组新的权重,仅训练这些权重来实现。这种方法使 LoRA 训练更快、更节省内存,并且生成的模型权重较小(仅几百 MB),更易于存储和共享。

FLUX.1 的生成 AI 图像应用

使用 FLUX.1 生成的图像输出质量极高,在某些情况下很难区分真实内容和 AI 生成的内容。它的潜在应用广泛多样。以下是与此技术相关的一些令人兴奋的可能性和潜在风险的示例:

  • 超现实主义肖像: FLUX.1 模型可以创建高质量的虚构人物肖像,有时很难区分真实照片和 AI 生成的图像。
  • 历史重现: 博物馆和教育机构可以使用 FLUX.1 生成详细且准确的历史人物、事件或环境的描绘,这些描绘已经不存在。
  • 广告和媒体: 品牌可以利用 FLUX.1 为营销活动创建令人惊叹、视觉吸引力强的图像,而无需昂贵的拍摄。
  • 虚拟网红: 公司可以使用 FLUX.1 创建数字人格,设计与观众互动,就像他们是真实的人一样。同时,公司可以通过使用 AI 网红而不是人类模特来大幅降低成本。
  • 有趣的礼物: 通过用你朋友和家人的图像微调模型,你可以生成他们在各种环境和场景中的照片,非常适合制作一本实体或数字相册,肯定会让他们开心。

尽管 FLUX.1 的能力令人印象深刻,但必须承认高质量 AI 生成图像的潜在风险。以下是一些关注点:

  • 深度伪造和虚假信息: 创建逼真的图像和视频的能力可能被用来传播虚假信息和操纵公众舆论。
  • 身份盗窃和勒索: AI 生成的图像可能被用来冒充个人,可能导致身份盗窃、骚扰或其他恶意活动。
  • 工作替代: AI 生成图像的日益复杂可能会取代摄影、平面设计和视觉特效等行业的工作。

随着 FLUX.1 和其他图像生成模型的能力以空前的速度不断进步,必须认识到这种技术的巨大潜力和危险,如上面所述的示例所强调的。现在让我们开始实验 FLUX.1 模型。

仅用提示生成真实的 AI 图像

在这一部分,我将尝试仅通过提示和 FLUX.1 [pro] 在 Replicate 上复制我所爱之人的图像。

首先,你需要创建一个账户,可以使用你的个人 GitHub 账户登录。

Replicate 主页

登录后,选择来自 Black Forest Labs 的 flux-pro 模型

FLUX.1 [pro] 在 Replicate

每张图像的费用为 $0.055。在 fal.ai 上,费用非常相似:$0.05

现在让我们尝试以下提示,而不更改参数:

“一位 30 岁的墨西哥女性的特写,她有着深色头发和深棕色的眼睛。她有着灿烂的微笑,露出她完美洁白整齐的牙齿。她的嘴唇丰满柔软,衬托出她愉快的表情。她的脸上有雀斑,脸型圆润对称,脸颊柔和。她的鼻子比例适中,既不太长也不太短。她正直视镜头。”

这是使用 FLUX.1 [pro] 生成的输出,生成大约花费了 18 秒:

使用 FLUX [pro] 模型在 Replicate 上生成的图像

上面的图像并不太像我的女朋友,也看起来不太真实。嘴唇、皮肤和雀斑的某些特征立刻让我意识到这是 AI 生成的图像。

现在让我们尝试使用 flux-dev-realism 模型,由 xlabs-ai 提供的相同提示。

[xlabs-ai/flux-dev-realism - Replicate

FLUX.1-dev 与 XLabs-AI 的现实主义 lora

replicate.com](https://replicate.com/xlabs-ai/flux-dev-realism) 这个模型生成一张图像的费用大约为 $0.037,让我们看看输出:

使用 FLUX [dev] 现实主义模型在 Replicate 上生成的图像

这张照片确实比第一张更真实,尽管它仍然与我的伴侣没有相似之处。问题可能出在我的提示上,可能不够详细。但总体来说,我非常喜欢这个结果,识别出这是 AI 生成的图像需要更长的时间。

微调 FLUX.1 [dev] 模型以生成我女朋友的图像

仅通过提示实现一个人的面孔的确切输出几乎是不可能的,至少如果这个人不是名人。因此,为了获得真正像我女朋友的结果,我需要用她的一组图像来训练 FLUX.1 [dev] 模型。

为此,我决定使用 fal.ai 来微调模型,并创建与我伴侣面孔相关的梦幻场景。

fal.ai 主页

Replicate 一样,你也可以使用你的 GitHub 账户登录。登录后,你应该去 fal-ai/flux-lora-general-training 开始训练你的模型。

fal-ai/flux-lora-general-training 页面

我没有调整任何参数,只上传了一个包含 14 张我爱人的图像的 zip 文件。为了获得最佳结果,请确保选择高质量的照片,因为质量越好,输出效果越好。请注意,微调模型需要不到 $5,然后生成图像的费用为 $0.035

训练模型后,点击 Run inference 生成图像。这是我使用的提示及其对应的图像输出:

提示 1:

“穿着时尚的恰帕斯服装,在丛林中拿着一把未来派的枪和纹身。”

使用微调后的 FLUX [dev] 模型在 fal.ai 上生成的图像

上面的输出在生成我女朋友的极其真实的面孔方面表现出色,然而,身体略有不同,而且看起来并不太真实。总体来说,结果令人印象深刻,如果我在某个社交媒体上只看到这张图像的面孔,我会很难理解这是假图。

提示 2:

“在沙漠中穿着沙丘服装,手中沙子缓缓流下”

使用微调后的 FLUX [dev] 模型在 fal.ai 上生成的图像

我为这个提示选择了多个输出,但上面的图像是我最喜欢的,不是因为它与她相似,而是因为我非常喜欢颜色、衣服,以及几乎所有的细节。至于面孔,我知道这不是她,但我无法准确指出原因。这是一种奇怪的感觉,但鼻子和眼睛的某些特征让我清楚这不是她。然而,嘴巴、脸颊和雀斑几乎完美。

提示 3:

“一位女性在墨西哥瓦哈卡的沙滩上漫步,夕阳下的美丽景色。一个鲜艳的蓝色蝴蝶轻轻停在她的肩膀上。她用前带式婴儿背带抱着一个婴儿,婴儿面朝她。女性的微笑反映出宁静的氛围,她穿着时尚的、适合海滩的衣服,与宁静的环境相得益彰。夕阳的金色光芒为场景增添了温暖的光辉,增强了宁静而亲密的时刻。”

使用微调后的 FLUX [dev] 模型在 fal.ai 上生成的图像

这是我最喜欢的一张,但我不得不多次重做提示,因为婴儿总是面朝镜头。环境完美匹配提示,看起来极其真实。女朋友的面孔在这张图像中也非常准确,只有一些微小的差异,初看时很难察觉。

在本地使用 Python 运行微调模型

如果你想将微调后的模型无缝集成到你的应用程序中,可以使用 fal.ai API 和 Hugging Face

首先,你需要安装客户端。

pip install fal-client

其次,你需要在仪表板的 Keys 标签下创建一个 API 密钥。

fal.ai 中的 API 密钥

复制之前创建的密钥并在你的机器上导出:

export FAL_KEY="YOUR_API_KEY"

现在返回到 fal-ai/flux-lora-general-training. 你会看到你的训练历史和右侧的微调模型。旁边有几个选项:Hugging FaceShow outputShow filesRun inference

点击 Hugging Face,创建一个新的仓库:

fal.ai 中创建 Hugging Face 仓库

确保你有一个 Hugging Face 账户并生成了 API 访问令牌。接下来,提供你的仓库名称、描述和实例提示。实例提示本质上是触发模型的关键字或短语。对于 API 交互,仓库应该是公开的,如果你想私下使用,可以直接使用 fal.ai 的 subtensor 链接(稍后我们会看到)。

一旦你在 Hugging Face 上有了微调后的模型,你需要获取包含模型有效负载的 URL。为此,访问你的模型页面,然后点击 Files and versions,最后右键单击以复制模型的 URL。

Hugging Face 获取 safetensor URL

现在让我们看看生成图像的 Python 脚本:

import fal_client

# 定义包含 LoRA 权重的有效负载
payload = {
    "prompt": (
        "我的爱在葡萄牙骑着波浪,微笑着看着镜头,"
        "穿着恰帕斯手工艺服装。"),
    "image_size": "landscape_4_3",
    "num_inference_steps": 28,
    "guidance_scale": 3.5,
    "num_images": 2,
    "enable_safety_checker": True,
    "output_format": "jpeg",
    "loras": [
        {
            "path": (
                "<your_hugging_face_model_url>"),
            "scale": 1.0
        }
    ]
}

# 提交请求
handler = fal_client.submit(
    "fal-ai/flux-general", arguments=payload)

# 获取结果
result = handler.get()
print(result)

输出的 JSON 如下:

{
  "images": [
    {
      "url": "https://fal.media/files/lion/54SfCxvW3M89EmMYbIl5J_bd54f51fede244f18ca9c296e17c26a0.png",
      "width": 1024,
      "height": 768,
      "content_type": "image/png"
    },
    {
      "url": "https://fal.media/files/koala/t8Vr65CSz_LvF1mEK0YBh_05060a71c9554641b3d5c5fbcd4ac9e2.png",
      "width": 1024,
      "height": 768,
      "content_type": "image/png"
    }
  ],
  "timings": {
    "inference": 17.717261105775833
  },
  "seed": 10265661715272741156,
  "has_nsfw_concepts": [
    false,
    false
  ],
  "prompt": "我的爱在葡萄牙骑着波浪,微笑着看着镜头,穿着恰帕斯手工艺服装。"
}

在两个图像输出中,下面的图像是我最喜欢的,尽管腿部与身体的其他部分看起来有些不成比例。

使用 Python 生成的微调 FLUX [dev] 模型的图像

如果你不想使用 Hugging Face,你也可以直接使用 fal.ai 的 safetensor 链接,并确保你的模型是私有的,不被其他人使用。

为此,再次访问 fal-ai/flux-lora-general-training,在右侧你会看到以 JSON 格式显示的训练历史,点击 Show output。JSON 中的一个键称为:diffusers_lora_file。在该键下,获取 URL。

fal.ai 中的训练历史 JSON

在上面的 Python 脚本中,只需将路径参数更改为你在训练历史中看到的 LoRa 文件 URL,你就可以开始了。

结论

在本文中,我展示了今天微调生成极其真实图像的模型是多么简单。仅用 14 张我女朋友的照片,我就能够创建一个高度准确的模型,可以在各种梦幻场景中生成她的无尽图像。我还可以轻松地使用 Python 和 fal.ai API 将此模型集成到网站或平台中。

当然,我在写这篇文章时得到了她的同意,但探索这个模型的能力以及实现的简单性让我反思其潜在的危险。作为一名父亲,我从未在社交媒体上发布过我孩子的照片,而在尝试 FLUX.1 后,我更加坚信要保持这种做法。

对于在社交媒体上有公共资料的父母和个人,值得重新考虑你的做法,因为任何人都可以下载 10 张照片,花不到 5 美元创建一个模型,并滥用它在网上传播你所爱之人的图像或进行勒索。

但让我们不要以反乌托邦的语气结束这篇文章。人工智能是令人惊叹的,在探索 FLUX.1 的过程中,我想到了这个圣诞节的一些令人兴奋的想法。

FluxAI 中文

© 2025. All Rights Reserved