当前位置: 首页 > news >正文

本地部署文生图模型 Flux

本地部署文生图模型 Flux

  • 0. 引言
  • 1. 本地部署
    • 1-1. 创建虚拟环境
    • 1-2. 安装依赖模块
    • 1-3. 创建 Web UI
    • 1-4. 启动 Web UI
    • 1-5. 访问 Web UI

在这里插入图片描述

0. 引言

2024年8月1日,blackforestlabs.ai发布了 FLUX.1 模型套件。

FLUX.1 文本到图像模型套件,该套件定义了文本到图像合成的图像细节、提示依从性、样式多样性和场景复杂性的新技术。

为了在可访问性和模型功能之间取得平衡,FLUX.1 有三种变体:FLUX.1 [pro]、FLUX.1 [dev] 和 FLUX.1 [schnell]:

  • FLUX.1 [pro]:FLUX.1 的佼佼者,提供最先进的性能图像生成,具有顶级的提示跟随、视觉质量、图像细节和输出多样性。在此处通过我们的 API 注册 FLUX.1 [pro] 访问权限。FLUX.1 [pro] 也可通过 Replicate 和 fal.ai 获得。
  • FLUX.1 [dev]:FLUX.1 [dev] 是一个用于非商业应用的开放权重、指导蒸馏模型。FLUX.1 [dev] 直接从 FLUX.1 [pro] 蒸馏而来,获得了相似的质量和快速粘附能力,同时比相同尺寸的标准模型效率更高。FLUX.1 [dev] 权重在 HuggingFace 上可用,可以直接在 Replicate 或 Fal.ai 上试用。
  • FLUX.1 [schnell]:我们最快的模型是为本地开发和个人使用量身定制的。FLUX.1 [schnell] 在 Apache2.0 许可下公开可用。类似,FLUX.1 [dev],权重在Hugging Face上可用,推理代码可以在GitHub和HuggingFace的Diffusers中找到。

1. 本地部署

1-1. 创建虚拟环境

conda create -n flux python=3.11 -y
conda activate flux

1-2. 安装依赖模块

git clone https://github.com/black-forest-labs/flux; cd flux
pip install -e '.[all]'
pip install accelerate
pip install git+https://github.com/huggingface/diffusers.git
pip install optimum-quanto
pip install gradio

1-3. 创建 Web UI

import torchimport gradio as grfrom optimum.quanto import freeze, qfloat8, quantizefrom diffusers import FlowMatchEulerDiscreteScheduler, AutoencoderKL
from diffusers.models.transformers.transformer_flux import FluxTransformer2DModel
from diffusers.pipelines.flux.pipeline_flux import FluxPipeline
from transformers import CLIPTextModel, CLIPTokenizer,T5EncoderModel, T5TokenizerFastdtype = torch.bfloat16# schnell is the distilled turbo model. For the CFG distilled model, use:
# bfl_repo = "black-forest-labs/FLUX.1-dev"
# revision = "refs/pr/3"
#
# The undistilled model that uses CFG ("pro") which can use negative prompts
# was not released.
bfl_repo = "black-forest-labs/FLUX.1-schnell"
revision = "refs/pr/1"
# bfl_repo = "black-forest-labs/FLUX.1-dev"
# revision = "main"scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained(bfl_repo, subfolder="scheduler", revision=revision)
text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=dtype)
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=dtype)
text_encoder_2 = T5EncoderModel.from_pretrained(bfl_repo, subfolder="text_encoder_2", torch_dtype=dtype, revision=revision)
tokenizer_2 = T5TokenizerFast.from_pretrained(bfl_repo, subfolder="tokenizer_2", torch_dtype=dtype, revision=revision)
vae = AutoencoderKL.from_pretrained(bfl_repo, subfolder="vae", torch_dtype=dtype, revision=revision)
transformer = FluxTransformer2DModel.from_pretrained(bfl_repo, subfolder="transformer", torch_dtype=dtype, revision=revision)# Experimental: Try this to load in 4-bit for <16GB cards.
#
# from optimum.quanto import qint4
# quantize(transformer, weights=qint4, exclude=["proj_out", "x_embedder", "norm_out", "context_embedder"])
# freeze(transformer)
quantize(transformer, weights=qfloat8)
freeze(transformer)quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)pipe = FluxPipeline(scheduler=scheduler,text_encoder=text_encoder,tokenizer=tokenizer,text_encoder_2=None,tokenizer_2=tokenizer_2,vae=vae,transformer=None,
)
pipe.text_encoder_2 = text_encoder_2
pipe.transformer = transformer
pipe.enable_model_cpu_offload()def generate(prompt, steps, guidance, width, height, seed):if seed == -1:seed = torch.seed()generator = torch.Generator().manual_seed(int(seed))image = pipe(prompt=prompt,width=width,height=height,num_inference_steps=steps,generator=generator,guidance_scale=guidance,).images[0]return imagedemo = gr.Interface(fn=generate, inputs=["textbox", gr.Number(value=4), gr.Number(value=3.5), gr.Slider(0, 1920, value=1024, step=2), gr.Slider(0, 1920, value=1024, step=2), gr.Number(value=-1)], outputs="image")demo.launch(server_name="0.0.0.0")

1-4. 启动 Web UI

python flux_on_potato.py

1-5. 访问 Web UI

使用浏览器打开 http://localhost:7860 就可以访问了。

在这里插入图片描述

reference:

  • https://blackforestlabs.ai/announcing-black-forest-labs/
  • https://github.com/black-forest-labs/flux/
  • https://github.com/black-forest-labs/flux/issues/7
  • https://gist.github.com/AmericanPresidentJimmyCarter/873985638e1f3541ba8b00137e7dacd9

相关文章:

本地部署文生图模型 Flux

本地部署文生图模型 Flux 0. 引言1. 本地部署1-1. 创建虚拟环境1-2. 安装依赖模块1-3. 创建 Web UI1-4. 启动 Web UI1-5. 访问 Web UI 0. 引言 2024年8月1日&#xff0c;blackforestlabs.ai发布了 FLUX.1 模型套件。 FLUX.1 文本到图像模型套件&#xff0c;该套件定义了文本到…...

谷粒商城实战笔记-127-全文检索-ElasticSearch-整合-测试复杂检索

文章目录 一&#xff0c;使用Elasticsearch的Java RESTHighLevel Client完成复杂的查询请求1. 创建检索请求 (SearchRequest)2. 构造检索条件 (SearchSourceBuilder)3. 执行检索 (SearchResponse)4. 处理解析结果5. 获取聚合信息 二&#xff0c;AI时代的效率提升 一&#xff0c…...

解锁PyCharm:破解依赖库导入之谜

解锁PyCharm&#xff1a;破解依赖库导入之谜 PyCharm作为Python开发者的强大IDE&#xff0c;提供了丰富的功能来简化开发流程。然而&#xff0c;在使用过程中&#xff0c;开发者可能会遇到导入依赖库时出现的错误。本文将深入探讨PyCharm中导入依赖库报错的问题&#xff0c;并…...

JSON-Viewer插件:json格式查看器

npm install vue-json-viewer 2&#xff0c;main.js 引入 import JsonViewer from vue-json-viewer Vue.use(JsonViewer) 3&#xff0c;组件里写入这个组件 <json-viewer:value"textSecond":expand-depth"5"copyableboxedsort></json-viewer…...

HDFS块信息异常,spark无法读取数据

背景&#xff1a;flume数据落盘到hdfs上时&#xff0c;正在写入的文件一般是以.log.tmp结尾的文件&#xff0c;当flume将文件关闭以后将变为&#xff1a;.log 结尾的文件。由于我们使用阿里云的服务器&#xff0c;经常会有个别节点挂掉(进程在&#xff0c;无法通信&#xff0c;…...

TCP协议概述

TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。它由IETF的RFC 793定义&#xff0c;并在各种通信系统中广泛应用&#xff0c;为不同但互连的计算机通信网络的主计算机中的成对进程之…...

SpringSecurity-3(认证和授权+SpringSecurity入门案例+自定义认证+数据库认证)

SpringSecurity使用数据库数据完成认证 5 SpringSecurity使用数据库数据完成认证5.1 认证流程分析5.1.1 UsernamePasswordAuthenticationFilter5.1.2 AuthenticationManager5.1.3 AbstractUserDetailsAuthenticationProvider5.1.4 AbstractUserDetailsAuthenticationProvider中…...

英国AI大学排名

计算机学科英国Top10 “计算机科学与信息系统”学科除了最受关注的“计算机科学”专业&#xff0c;还包括了“人工智能”“软件工程”“计算机金融”等众多分支专业。 1.帝国理工学院 Imperial College London 单以计算机专业本科来讲&#xff0c;仅Computing这个专业&#x…...

渗透测试与高级攻防技术(二)网络安全技术的前沿探讨:渗透测试与高级攻防

文章目录 引言 第一章&#xff1a;入侵检测与防御系统&#xff08;IDS/IPS&#xff09;1.1 IDS与IPS的区别1.2 Cisco IDS/IPS系统 第二章&#xff1a;蜜罐技术2.1 蜜罐技术概述2.2 搭建蜜罐系统2.3 蜜罐技术的优缺点 第三章&#xff1a;社会工程攻击3.1 社会工程攻击概述3.2 社…...

Windows系统下安装mujoco环境的教程【原创】

在学习Mujoco仿真的过程中&#xff0c;我先前是在linux系统下进行的研究与学习&#xff0c;今天来试试看在windows系统中安装mujoco仿真环境。 先前在linux中的一些关于mujoco学习记录的博客&#xff1a;Mujoco仿真【xml文件的学习 3】_mujoco打开xml文件-CSDN博客 下面开始wi…...

【秋招笔试】2024-08-03-科大讯飞秋招笔试题(算法岗)-三语言题解(CPP/Python/Java)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍖 本次题目难度中等偏上,最后一题又是…...

2024华数杯数学建模竞赛选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;C<A<B&#xff0c;开放度&#xff1a;A<B<C。 综合评价来看 A题适合对机械臂和机器人运动学感兴趣的同学&#xff0c;尤其是有一定编程和优化算法基础的同学。不建议非相关专业同学选择。 B题挑战较大&#xff0…...

大模型的经典面试问题及答案

大语言模型&#xff08;LLM&#xff09;在人工智能中变得越来越重要&#xff0c;在各个行业都有应用。随着对大语言模型专业人才需求的增长&#xff0c;本文提供了一套全面的面试问题和答案&#xff0c;涵盖了基本概念、先进技术和实际应用。如果你正在为面试做准备&#xff0c…...

nodejs环境搭建

1.准备工作 将他解压到指定路径(我是在D:\tools)并在解压文件下建立node_global和node_cache这两个目录 注1:新建目录说明(自带的比较难找,较麻烦) node_global:npm全局安装位置 node_cache:npm缓存路径 如图: 2.配置环境变量 …...

C#基础:LINQ表达式的单独定义和编译使用

//编写表达式 Expression<Func<AlarmGroupInfo, bool>> express x > x.DataSource 1 && x.AlarmStatus2;// 编译表达式 Func<AlarmGroupInfo, bool> compiledExpression express.Compile();// 应用到 LINQ 查询 var resultlistss alarmgroupl…...

前端面试:八股文系列(一)

更多详情&#xff1a;爱米的前端小笔记&#xff08;csdn~xitujuejin~zhiHu~Baidu~小红shu&#xff09;同步更新&#xff0c;等你来看&#xff01;都是利用下班时间整理的&#xff0c;整理不易&#xff0c;大家多多&#x1f44d;&#x1f49b;➕&#x1f914;哦&#xff01;你们…...

设施农业“AutoML“时代:大模型自动调参,让农业算法模型更简单易用

&#xff08;于景鑫 北京市农林科学院智能装备技术研究中心&#xff09;设施农业是现代农业的重要发展方向,但在数字化、智能化的进程中仍面临诸多挑战。传统的农业算法模型虽然可以为设施农业提供一定的决策支持,但在实际应用中往往受限于参数调优复杂、模型泛化能力差等因素。…...

LinkedList接口源码解读

LinkedList 接口源码解读 前言 因为追求质量&#xff0c;所以写的较慢。大概在接下来的三天内会把LinkedList源码解析出完。已经出完啦&#xff01;废话不多说&#xff0c;正片开始&#xff01; &#xff08;文章最后面有后记哦~&#xff09; 大家都知道&#xff0c;LinkedL…...

nohup将代码放到后端运行查看nohup命令

tail -f nohup.outnohup python your_script.py > /path/to/your/directory/output.log 2>&1 &...

MacOS的100个超实用技巧

目录 1. 界面和导航 1.1 使用热角 1.2 多桌面切换 1.3 快速访问应用 1.4 隐藏/显示菜单栏 1.5 使用Mission Control 2. 文件管理 2.1 使用Finder标签 2.2 快速查看文件 2.3 标签式窗口管理 2.4 使用Smart Folders 2.5 文件重命名 3. 系统设置 3.1 自定义Dock 3.…...

本地调试指引文档

在开发组件库时&#xff0c;我们经常需要在真实的项目中测试组件库的功能&#xff0c;所以需要进行本地调试&#xff0c;本文介绍两种组件库本地调试流程&#xff0c; 1.使用beta版本 2.使用npm link 两种都可以作为本地调试的方案&#xff0c;本文作为一个参考资料&#xff0…...

【C++】一堆数组 冒泡排序

冒泡排序&#xff0c;一种很常见的排序法师 这章要划重点&#xff0c;很重要&#xff01;&#xff01; 排序思路为前一个元素与后一个元素比大小&#xff0c;一直循环一轮&#xff0c;找出最大/最小的那个元素后&#xff0c;进行下一轮&#xff0c;找到第二大/小的元素......…...

[最短路SPFA]--启动!!!!!

基础模板 #include<bits/stdc.h> #define ll long long #define fi first #define se second #define pb push_back #define PII pair<int,int > #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) using namespace std; const int N 1e610; int …...

大模型是否潜在地进行多跳推理?

人工智能咨询培训老师叶梓 转载标明出处 以往的研究表明&#xff0c;基于Transformer的LLMs能够在参数中存储和检索事实信息&#xff0c;以完成简单提示&#xff0c;例如“Stevie Wonder的母亲是谁”。此外&#xff0c;当必要信息明确给出时&#xff0c;LLMs表现出了显著的上下…...

人为什么不能长期待在家里?三个原因告诉你答案

在现代社会的快节奏生活中,人们时常渴望能够拥有一段长时间待在家里的闲暇时光,幻想这会是一段惬意、舒适且自由的经历。然而,实际情况往往并非如此。许多人在经历了数日甚至更长时间的居家生活后,会逐渐感受到诸多负面情绪和不良影响。以下将详细阐述人为什么不能长期待在…...

MATLAB画散点密度图(附代码和测试数据的压缩包)

1. 有关 Matlab 获取代码关注WZZHHH回复关键词&#xff0c;或者咸鱼关注&#xff1a;WZZHHH123 怀俄明探空站数据解算PWV和Tm&#xff1a;怀俄明探空站数据解算PWV和Tm 怀俄明多线程下载探空站数据&#xff08;包括检查和下载遗漏数据的代码&#xff09;&#xff1a;怀俄明多线…...

SSH配置命令

前置环境&#xff1a;端口配置IP地址&#xff0c;client和server之间可ping通&#xff0c;此处省略 server端: 开启stelnet [Huawei]stelnet server enable Info: Succeeded in starting the Stelnet server. aaa模式相关配置 #进入aaa模式 [Huawei]aaa # 添加用户admin和…...

谷粒商城实战记录-虚拟机开启密码认证登录

文章目录 一&#xff0c;虚拟机无法用用户名密码登录二&#xff0c;解决方案1&#xff0c;修改配置2&#xff0c;重启sshd服务3&#xff0c;测试SSH登录注意事项结论 参考文献 一&#xff0c;虚拟机无法用用户名密码登录 当使用Vagrant创建和管理虚拟机时&#xff0c;通常会通…...

C语言程序设计-[1] 基础语法

1、字符集 字符集&#xff1a;是ASCII字符集的一个子集。 注&#xff1a;基本上就是电脑键盘可以输入的一些字符。 2、标识符 标识符&#xff1a;用来命名程序中的一些实体&#xff0c;如&#xff1a;变量、常量、函数、数组名、类型名、文件名等。由一个或多个字符组成。 —…...

JavaSE第11篇:设计模式

一、创建型模式 1、工厂方法模式 2、抽象工厂模式 3、单例模式singleton /*** 单例* 饿汉式(线程安全的):在加载类的时候就会创建类的单例&#xff0c;并保存在类中。* 1.定义类变量实例并直接实例化&#xff0c;在类加载的时候就完成了实例化并保存在类中;* 2.定义无参构造…...

厦门律师网站建设/搜索词分析

说明&#xff1a;PMI的很多考试题目中&#xff0c;可能有不止一个正确答案&#xff0c;要选择一个相对最正确的答案。从什么角度来判断相对性最正确的&#xff0c;从本三十六计中的几个角度&#xff1a;“相对首先”、“相对首要”、“相对全面”、“相对积极主动”、“相对相关…...

做网站必须知道的问题/福州百度网站排名优化

课程首页地址&#xff1a;http://blog.csdn.net/sxhelijian/article/details/7910565【项目3&#xff1a;乘法口诀表】编程序&#xff0c;输出一个乘法口诀表&#xff0c;形如1x111x22 2x24 1x33 2x36 3x39…… #include <iostream> using namespace std; int mai…...

电商网站成功的营销策略/品牌推广的方式有哪些

PPT是大家广泛使用的一个幻灯片制作工具。作为微软office办公套件的其中一个重要组件&#xff0c;PPT一直在不断的版本更新。从XP、2003、2007、2010、2010、2016版本到去年发布的2019版本&#xff0c;每次版本的更新都给我们带来了许多的惊喜。作为最新版的PPT2019又给我们带来…...

绿化公司和苗圃做网站/seo企业建站系统

Flutter 按钮组件 Flutter里面有很多的Button组件很多&#xff0c;常见的按钮组件有&#xff1a;RaisedButton&#xff0c;FlatButton&#xff0c;IconButton&#xff0c;OutlineButton&#xff0c;ButtonBar&#xff0c;FloationActionButton等.. 组件描述RaisedButton凸起的…...

js网站模板怎么用/明年2024年有疫情吗

我们使用DevExpress控件做开发&#xff0c;可能大多用的是XtraGrid控件&#xff0c;还有TextEdit、ComobBoxEdit、SimpleButton等常用的表单类控件&#xff0c;其实DevExpress的强大&#xff0c;是因为它提供了相当丰富的控件&#xff0c;从这篇博客开始&#xff0c;分享那些冷…...

北京顺义做网站/互联网运营培训课程

我编写了几个程序,我编写了一些程序,但知道我编写了一个Chat messenger.当我编译服务器或客户端时,我总是从javac得到错误. “错误&#xff1a;找不到符号”.并且错误是在其他类的构造函数中应该如何构造那里.例&#xff1a;Chat.java:11 error: cannot find symbolFrame frm …...