FLUX.1 文生图模型微调指南
FLUX.1 是 Black Forest Labs 今年夏天发布的文本转图像模型系列。FLUX.1 模型为开源图像生成模型树立了新标准:它们可以生成逼真的手、清晰的文本,甚至可以生成搞笑表情包这样异常困难的任务。
现在,你可以使用 Ostris 的 Replicate 上的 AI Toolkit 对 FLUX.1 [dev] 进行微调。
如果你知道这一切意味着什么,并且已经准备好使用你的数据集进行尝试,你可以跳到代码部分。否则,以下是它的含义以及你应该关注的原因:

左图:使用基本 FLUX.1 模型生成。右图:与模型 fofr/flux-bad-70s-food 相同的提示和种子
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割
1、什么是微调?
这些大型图像生成模型(如 FLUX.1 和 Stable Diffusion)在一堆添加了噪声的图像上进行训练,并学习“添加噪声”的反向功能。令人惊讶的是,这竟然是“创建图像”。
他们怎么知道要创建哪幅图像?他们以 CLIP 和 T5 等转换器模型为基础,这些模型本身经过大量图像-标题对的训练。这些是语言到图像的编码器:它们学习将图像及其标题映射到高维空间中的相同形状。当您向他们发送文本提示时,例如“公园里读报纸的松鼠”,他们可以将其映射到网格中的像素模式。对于编码器来说,图片和标题是同一回事。
图像生成过程如下所示:获取一些输入像素,将它们稍微远离噪声并移向文本输入创建的模式,然后重复,直到达到正确的步数。
反过来,微调过程会从数据集中获取每个图像/标题对,并稍微更新内部映射。你可以通过这种方式教模型任何东西,只要它可以通过图像-标题对来表示:角色、设置、媒介、风格、流派。在训练过程中,模型将学会将你的概念与特定的文本字符串关联起来。将此字符串包含在提示中以激活该关联。
例如,假设你想针对漫画超级英雄微调模型。你将收集一些角色图像作为数据集。一个全面的批次:不同的设置、服装、灯光,甚至不同的艺术风格。这样,模型就会明白它正在学习的是这个人,而不是任何其他偶然的细节。
选择一个简短、不常见的单词或短语作为触发器:一些不会与其他概念或微调冲突的独特的东西。你可以选择“70 年代的糟糕食物”或“JELLOMOLD”之类的东西。训练您的模型。现在,当你提示“在旧金山的派对上拍摄 70 年代的糟糕食物”时,你的模型将调用你的特定概念。就这么简单。
拍几张你的宠物或你最喜欢的室内植物的照片,让我们开始吧。

左图:使用基本 FLUX.1 模型生成。右图:使用模型 fofr/flux-bad-70s-food 的相同提示和种子
2、如何微调 FLUX.1
n你只需在网络上或通过 API 上传一些图像,即可在 Replicate 上微调 FLUX.1。
如果你不熟悉 Replicate,我们可以轻松地将 AI 作为 API 运行。你不必寻找强大的 GPU,不必处理环境和容器,也不必担心扩展。可以使用普通 API 编写普通代码,只需为你使用的内容付费。
2.1 准备训练数据
要开始微调,你需要一组代表想要教给模型的概念的图像。这些图像应该足够多样化,以涵盖概念的不同方面。例如,如果你正在对特定角色进行微调,请包括各种设置、姿势和灯光下的图像。
以下是一些指导原则:
- 使用 12-20 张图像以获得最佳效果
- 尽可能使用大图像
- 使用 JPEG 或 PNG 格式
- 或者,为每个具有相同名称的图像创建一个相应的 .txt 文件,其中包含标题
获得图像(和可选标题)后,将它们压缩成一个文件。
2.2 在网络上创建训练
要开始在网络上进行训练过程,请在 Replicate 上导航到 Ostris 的 FLUX.1 [dev] 训练器。
首先,选择一个模型作为目标,或者通过在模型选择器字段中键入名称来创建一个新模型。
接下来,将包含训练数据的 zip 文件作为 input_images 上传,然后设置训练参数。
trigger_word 指的是你正在训练的对象、风格或概念。选择一个不是真实单词的字符串,例如 TOK 或与正在训练的内容相关的内容,例如 CYBRPNK。你指定的触发词将在训练期间与所有图像相关联。然后,当你运行经过微调的模型时,可以在提示中包含触发词以激活你的概念。
对于步骤,一个好的起点是 1000。
将 learning_rate、 batch_size 和 resolution 保留为默认值。除非你想提供自己的字幕,否则请保持自动字幕启用。
如果你想在 Hugging Face 上保存自己的模型,请输入你的 Hugging Face 令牌并设置存储库 ID。
填写完表格后,单击“创建训练”以开始微调过程。
2.3 通过 API 创建训练
或者,你可以使用 API 从自己的代码创建训练。
确保已在环境中设置了 REPLICATE_API_TOKEN。在你的帐户设置中找到它。
export REPLICATE_API_TOKEN=r8_***************************
创建一个新模型,作为微调权重的目标。一旦流程完成,你的训练模型将驻留在此位置。
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}")
现在你有了模型,请通过创建新的训练运行来开始训练过程。你需要提供输入图像、步数以及任何其他所需参数。
# 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}")
请注意,此时为模型选择哪种硬件并不重要,因为我们将所有 FLUX.1 微调路由到 H100。训练这么多步骤通常需要 20-30 分钟,费用不到 2 美元。
2.4 使用训练好的模型
训练完成后,可以像使用任何其他模型一样直接在 Replicate 上使用训练好的模型。
你可以在 Web 上运行它:
- 转到 Replicate 上的模型页面(例如
https://replicate.com/yourusername/flux-your-model-name)。 - 对于提示输入,请包含触发词(例如“70 年代的糟糕食物”)以激活你的微调概念。
- 根据需要调整任何其他输入。
- 单击“运行”以生成你的图像。
或者,使用 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 替换为你的实际模型详细信息。
你可以在模型页面的“API”选项卡上找到有关使用 API 运行它的更多信息。
3、使用 FLUX.1 [schnell] 实现更快的生成
你可以将 FLUX.1 [dev] LoRA 与较小的 FLUX.1 [schnell] 模型一起使用,以更快、更便宜地生成图像。只需在生成时将模型参数从 dev 更改为 schnell,并将 num_inference_steps 降低到 4 等小值即可。
请注意,输出仍将受 FLUX.1 [dev] 的非商业许可。
3.1 示例和用例
查看我们的示例库以获取灵感。你可以看到其他人如何微调 FLUX.1 来创建不同的风格、角色、永无止境的可爱动物游行等等。
基本 FLUX.1 模型输出:

左图:使用基本 FLUX.1 模型生成。右图:使用 fofr/flux-bad-70s-food 模型的相同提示和种子
3.2 许可和商业使用
如果你使用 FLUX.1 模型及其微调在 Replicate 上生成图像,则可以将这些图像用于商业用途。
如果你从 Replicate 下载权重并在自己的计算机上生成图像,则不能将这些图像用于商业用途。
原文链接:FLUX.1微调指南 - BimAnt
相关文章:
FLUX.1 文生图模型微调指南
FLUX.1 是 Black Forest Labs 今年夏天发布的文本转图像模型系列。FLUX.1 模型为开源图像生成模型树立了新标准:它们可以生成逼真的手、清晰的文本,甚至可以生成搞笑表情包这样异常困难的任务。 现在,你可以使用 Ostris 的 Replicate 上的 A…...
JavaWeb基础:HTTP协议与Tomcat服务器
目录 1. HTTP协议简介 示例代码:创建HTTP GET请求 2. Tomcat服务器介绍 Tomcat的基本操作 示例代码:部署简单Servlet 3. 使用Servlet处理请求 示例代码:处理POST请求 在现代网络开发中,理解HTTP协议和如何使用Tomcat作为服…...
python井字棋游戏设计与实现
python实现井字棋游戏 游戏规则,有三个井字棋盘,看谁连成的直线棋盘多谁就获胜 棋盘的展现形式为 棋盘号ABC和位置数字1-9 输入A1 代表在A棋盘1号位数下棋 效果图如下 部分源码如下: 卫星工纵浩 白龙码程序设计,点 代码获取 …...
据说是可以和 Windows 一拼的 5个 Linux 发行版
现如今有数以千计的 Linux 发行版可供您使用,然而人们却无法选择一个完美的操作系统来替代 Windows。 使用 Windows 时,傻瓜都能操作自如,同样的方法却不适用于 Linux。在这里,您必须具备操作和使用操作系统的基本知识。因此人们经…...
PHP 常用函数
1. ksort() 如果你有一个数组 array([11] > array(XX), [6] > array(YYY)),你想要返回按照key重新排序,并不改变键和值之间的关联,处理之后的结果为 array([6] > array(YY…...
如何将MySQL迁移到TiDB,完成无缝业务切换?
当 MySQL 数据库的单表数据量达到了亿级,会发生什么? 这个现象表示公司的业务上了一个台阶,随着数据量的增加,公司规模也进一步扩大了,是非常喜人的一个改变 ,然而随之而来的其他变化,就没那么…...
【嵌入式烧录刷写文件】-2.10-为一个Intel Hex文件计算校验和Checksum
案例背景(共6页精讲): 有如下一段Intel Hex文件,为其创建Checksum校验和:CRC16,CRC32(CVN),SHA-256 Hash算法…, 将Checksum Value填充到指定地址。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767…...
整体思想以及取模
前言:一开始由于失误,误以为分数相加取模不能,但是其实是可以取模的 这个题目如果按照一般方法,到达每个节点再进行概率统计,但是不知道为什么只过了百分之十五的测试集 题目地址 附上没过关的代码 #include<bits…...
RabbitMQ 消息可靠保障
RabbitMQ 消息可靠保障 消息的可靠性保证生产者重连生产者确认解决思路A-确认机制解决思路B-备份交换机 MQ 服务器宕机导致消息丢失消费端消息的可靠性保障 消费端限流给消息生成唯一id 消息的可靠性保证 实际项目中 MQ 的流程一般是:生产端把消息路由到交换机&…...
Redis 作为 PHP 的会话存储
使用 Redis 作为 PHP 的会话存储,可以实现多个服务器之间的会话共享,提高会话管理的效率,特别是在分布式系统中。这种方法将会话数据存储在 Redis 中,而不是使用默认的文件系统,从而使多个服务器可以访问相同的会话数据…...
基于伏图的数字心脏模拟仿真APP应用介绍
一、背景介绍 心脏是保证人体正常运转最重要的动力,人体内的血液循环通过心血管运输到各个部位,因此,心血管系统的稳定是人体健康的关键。心血管内科领域极具专业性,其理论研究与技术发展日新月异,心血管疾病患者往往…...
智云-一个抓取web流量的轻量级蜜罐docker一键启动
智云-一个抓取web流量的轻量级蜜罐docker安装教程 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN docker快速启动(v1.4) git clone https://github.com/xiaoxiaoranxxx/POT-ZHIYUN.git cd POT-ZHIYUN docker-compose up -d默认映射到80和8080端口 mysql不对外开放…...
原生HTML5、CSS、JavaScript实现简易网易云音乐播放
1.效果图 2.源码 1.index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网易云音乐</title><link rel"stylesheet" href"../CSS/index.css"> </head>…...
网上商城小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,商品信息管理,商品类型管理,活动专区管理,新品上架管理,用户评价管理,订单管理,系统管理 微信端账号功能包…...
微分方程(Blanchard Differential Equations 4th)中文版Section2.2
动力系统的几何分析 捕食者-猎物系统的向量场 在第2.1节中,我们展示了两个不同捕食者-猎物系统的 R ( t ) R(t) R(t) 和 F ( t ) F(t) F(t) 图形,但没有描述我们是如何生成这些图形的。我们将在第2.5节中解决这个问题,采用欧拉方法推广到…...
Swift 环境搭建
Swift 环境搭建 Swift 是由苹果公司开发的一种强类型编程语言,用于iOS、macOS、watchOS和tvOS应用程序的开发。搭建Swift开发环境是开始使用Swift进行编程的第一步。本文将详细介绍如何在不同的操作系统上搭建Swift开发环境。 在macOS上搭建Swift环境 系统要求 …...
科技与出版
科技与出版 ISSN: 1005-0590 CN: 11-3209/G3 常设栏目:特别策划、产业观察、融媒之光、编辑实务、营销方略、学术探索、创作空间等。 稿件要求 (1)来稿应有创新性;立论科学,主题明确,推理严谨;词语准确,…...
5年前端面试之路
作者:星空海绵 顺便吆喝一声,技术大厂,内推捞人,前/后端or测试←感兴趣 --加班偶尔较多,但周末加班两倍工资。 --15-35K,工资一线城市属于一般,但二线城市很可以。 前言 由于公司要进行…...
产品运营(一)--产品运营是什么?
1.运营是什么? 通过一系列穿针引线式的行为和资源投入,让一件事能持续良性运转。 运营面向的主体不同,使用的运营手段也是不同的。作用:赋予产品闪耀的光芒。距离用户最近的人(体验用户,成为用户?demo:k…...
学习大数据DAY41 Hive 分区表创建
目录 分区表 分区表应用场景 oracle 分区表种类 oracle 分区-范围分区 oracle 分区-列表分区 oracle 分区-散列分区 oracle 分区-组合分区 oracle 分区-分区表操作 hive 分区-创建分区表 hive 分区-分区表操作 hive 分区-动态分区表配置 上机练习 分区表 分区是将一…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
