政安晨【零基础玩转各类开源AI项目】基于本地Linux Ubuntu系统部署及应用强大的图像推理模型:FLUX

本文主要是介绍政安晨【零基础玩转各类开源AI项目】基于本地Linux Ubuntu系统部署及应用强大的图像推理模型:FLUX,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

简介

下载项目

创建虚拟环境

安装依赖

启动项目

使用

在线使用

本地部署


政安晨的个人主页:政安晨

欢迎 👍点赞✍评论⭐收藏

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

本文目标部署并应用FLUX(基于已经释放出来的模型进行) 

简介

黑森林实验室的 FLUX 模型是一个具有创新性和强大性能的文本生成图像模型套件。

其主要特点如下:

  • 多种版本满足不同需求
    • flux.1pro:定位商业版,是旗舰模型,支持企业定制解决方案,具备最佳性能,包括最先进的提示跟随能力、卓越的视觉质量、丰富的图像细节以及多样化的输出格式。不过该版本目前仅通过 API 提供,属于闭源版本。
    • flux.1dev:定位科研(开源)版,主要面向非商业用途,开放权重,适合研究和开发者使用。它是从 flux.1pro 蒸馏而来,具有相似的图像质量和提示词遵循能力,但在相同尺寸下比标准模型更高效。
    • flux.1schnell:这是一个 “小模型”,是在 flux.1 基础上进行精简的版本,适合本地开发和个人使用,采用 Apache2.0 授权,生成速度最快,内存占用也最小。
  • 性能优势明显
    • 出色的图像生成能力:FLUX 模型可以即时根据用户提示词生成各种高质量的图像,在视觉质量、图像细节和输出多样性等方面表现优越,能处理复杂的文字生成、遵循复杂构图指示以及生成相对较好的人手图像(尽管还不够完美,但有很大进步)。例如,它可以准确处理包含大段文字、多个人物的场景,且在生成人物躺倒姿势等复杂情况时不会出现崩坏,在清晰度、细节逼真度和复杂场景生成等方面表现出色。
    • 对提示词的良好理解:经过特别微调,在预训练中保留了整个输出多样性,在指令遵守、视觉质量、尺寸 / 长宽变化等多个方面树立了新标准,尤其在复杂英文文本生成、多人场景、提示词理解遵循等方面表现突出,例如能准确处理多人场景,面部、手部细节不会扭曲崩坏,生成超长文本时无论是内容还是排版都较为标准到位,还能有效防止提示词泄露的情况发生,准确生成画面内容。
    • 高训练参数:训练参数高达 120 亿,使其能够提供与文生图领域的头部模型 midjourney 相媲美的视觉效果。
  • 技术架构先进:采用了基于多模态和并行扩散 transformer 模块的混合架构,并将其扩展到 120 亿参数。团队通过建立流匹配(flow matching)来改进最先进的扩散模型,并通过结合旋转位置嵌入(rotary position embedding)和并行注意力层,来提高模型性能和硬件效率。

总体而言,FLUX 模型的出现为图像生成领域带来了新的活力和竞争力,其开源的特性也为开发者和研究人员提供了更多的机会和可能性,有望推动相关领域的进一步发展。

下载项目

git clone git@github.com:black-forest-labs/flux.git

创建虚拟环境

conda create -n flux python=3.10 pip

激活虚拟环境:

conda activate flux

安装依赖

在项目目录中,执行安装依赖:

pip install -e '.[all]'

启动项目

推荐使用Gradio构建的交互界面来启动项目:

python demo_gr.py --name flux-schnell --device cuda

或者,可以启动一个dev版本的:

python demo_gr.py --name flux-dev --device cuda

当然,小伙伴们一定要准备好足够的磁盘空间和内存以及显存。

使用

其实FLUX模型的使用有很多方法:

在线使用

  1. Replicate 在线试玩:访问Replicate 网站,该平台提供了黑森林实验室 FLUX 模型的全部三款模型(flux.1 (pro)、flux.1 (dev) 和 flux.1 (schnell))的免费试用途径。在这里,您可以自定义提示词、图像尺寸等,生成速度通常较快。
  2. FAL 在线试玩:前往FAL 网站,同样支持 FLUX 模型的全部三款模型的生成体验,新用户一般会有免费试用额度。

本地部署

(以 flux.1 (dev) 为例,在 ComfyUI 中使用)

前提条件想顺畅使用此模型最好有 16G 的显存,8G 或 12G 虽然也可以运行,但生成速度可能较慢。

  1. 安装 ComfyUI:并将其更新到最新版本。
  2. 下载相关模型文件
    • 下载 ae.sft 模型,安装到 ComfyUI/models/vae 文件夹,为方便识别,可以将其改名为 flux_ae.sft。
    • 下载 flux1-dev.sft 文件,安装到 ComfyUI/models/unet 文件夹。如果您的显存比较小,可以下载 ComfyUI 官方发布的 flux1-dev-fp8.safetensors 模型文件,放到 checkpoints 大模型所在的文件夹。
    • 下载 clip_l.safetensors 和 t5xxl_fp8_e4m3fn.safetensors 文件,安装到根目录的 ComfyUI/models/clip 文件夹中(如果您之前安装过 SD3Medium 模型,那么这两个文件可能已经具备,不需要再次下载)。
  3. 模型安装后的设置:模型安装好之后,还需要对电脑系统和 ComfyUI 做出一些设置(具体设置可参考相关教程或说明文档)。

使用时,根据您的需求选择合适的版本和使用方式,通过输入描述性的提示词来引导模型生成图像。

例如,如果您使用在线平台,在相应的输入框中输入提示词;

如果是本地部署,在配置好的环境中通过相应的操作界面输入提示词等参数来启动生成过程。

需要注意的是,不同版本的 FLUX 模型在性能、功能和适用场景上可能会有所差异,您可以根据自己的具体需求和实际情况进行选择和使用。同时,随着技术的发展和平台的更新,具体的使用方法和步骤可能会有所变化,建议参考官方文档或相关的技术社区获取最新的信息和指导。


如果您的显卡确实内存不够(如上所示),增加使用 --offload选项。

OK,至此把FLUX运行起来。

希望小伙伴们借助这款工具框架可以探索更多有趣的AI世界。

 

这篇关于政安晨【零基础玩转各类开源AI项目】基于本地Linux Ubuntu系统部署及应用强大的图像推理模型:FLUX的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092629

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、