Hugging Face功能介绍,及在线体验当前顶级文生图模型Flux

news/2025/1/19 23:07:52/文章来源:https://www.cnblogs.com/cunzai/p/18680474

Hugging Face简介

对于非机器学习或深度学习领域的人士来说,Hugging Face这个名字可能并不耳熟。然而,随着近年来大规模模型的迅速崛起,相信大家或多或少都有所接触。如果你对这一领域感兴趣,并在GitHub上查阅过一些开源资料,那么你一定会频繁地看到Hugging Face的身影。例如,在DeepSeek-V3的GitHub项目中,下载的栏目就出现了Hugging Face链接。

正如Hugging Face的名字所寓意的那样(意为“拥抱的脸”),其标志设计同样别具一格,极具辨识度。🤗

那么,Hugging Face Hub 究竟是何方神圣呢?

Hugging Face Hub 是一个庞大的平台,汇聚了超过 90 万个模型、20 万个数据集以及 30 万个演示应用程序(Spaces)。这些资源全部开源,并在在线平台上公开共享,使人们能够轻松协作,共同推动机器学习的发展。Hub 作为一个核心枢纽,为所有人提供了一个探索、实验、协作并利用机器学习技术构建创新的空间。

简而言之,Hugging Face 堪称 AI 领域的 GitHub,是一个开源的机器学习社区与平台。你可以将其想象成一个巨大的 AI 模型商店,里面陈列着琳琅满目的现成 AI 模型,从翻译助手到图像生成器,无所不包!

打开Hugging Face的官网,非常简洁,右侧列举的几个比较热门的模型。

Hugging Face平台上主要包含以下类型的资源:

  • 模型 (Models):Hugging Face托管了大量的开源机器学习模型,这些模型适用于各种任务,包括自然语言处理 (NLP)、计算机视觉和音频。这些模型不仅包括预训练的模型,也包括经过微调的模型。用户可以浏览、下载并使用这些模型,并且可以直接在浏览器中使用模型进行推理。

  • 数据集 (Datasets):该平台托管了超过 20 万个数据集,涵盖了各种领域和模式。这些数据集可用于各种任务,包括 NLP、计算机视觉和音频。用户可以轻松地查找、下载和上传数据集,并且可以直接在浏览器中浏览数据集的内容。

  • Spaces (应用程序演示):Spaces 提供了一种简单的方式来托管机器学习演示应用程序。用户可以使用 Gradio 和 Streamlit 等 Python SDK 构建交互式应用程序,并将其托管在 Spaces 上。
    • 用户可以创建自己的 ML 作品集,展示项目并与其他人协作。
    • Spaces 还支持用户创建静态 Spaces,使用简单的 HTML/CSS/JavaScript 页面。

尝试一下热度榜一的Kokoro TTS,选择中文,输入一段文字,点击生成按钮,读音非常清晰,推荐大家尝试一下。

audio.wav,需要登录语雀试听

代码体验Flux文生图模型

模型界面也提供了在线体验的代码,以当下非常火的文生图模型Flux为例,进入模型主页,点击“View Code”

需要关注的就是“Copy”按钮和“Manage tokens”,将代码复制下来,另外需要创建一个Token替换掉其中的xxxx才能使用。

from huggingface_hub import InferenceClient
client = InferenceClient("black-forest-labs/FLUX.1-dev", token="hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")# output is a PIL.Image object
image = client.text_to_image("Astronaut riding a horse")

点击“Manage tokens”后需要登录,点击“Create new Token”

点击“Write”,写一个名称,最好使用英文名称,中文我没有尝试,并不保证一定可行。

复制你创建的Token,然后点击“Done”即可。(此Token作为演示使用,发布文章时已删除,请自行创建Token

为了更直观地使用,我使用Gradio封装了一层,有一个web ui启动界面,代码如下。(程序中的Token作为演示使用,发布文章时已删除,请自行创建Token并替换

from huggingface_hub import InferenceClient
import gradio as gr# 创建全局的client实例,避免重复创建
client = InferenceClient("black-forest-labs/FLUX.1-dev", token="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"
)def generate_image(prompt, width, height, progress=gr.Progress()):"""使用Flux生成图像的函数"""try:# 检查提示词是否为空if not prompt.strip():raise ValueError("提示词不能为空!")progress(0.3, desc="正在连接服务器...")progress(0.6, desc="正在生成图像...")image = client.text_to_image(prompt, width=width, height=height)progress(1.0, desc="生成完成!")return imageexcept Exception as e:# 返回错误信息raise gr.Error(f"生成图像时出错:{str(e)}")# 创建Gradio界面
demo = gr.Interface(fn=generate_image,inputs=[gr.Textbox(label="输入你的提示词", placeholder="例如:a beautiful girl"),gr.Slider(minimum=256, maximum=1024, value=512, step=64, label="图像宽度"),gr.Slider(minimum=256, maximum=1024, value=512, step=64, label="图像高度"),],outputs=gr.Image(label="生成的图像"),title="Flux AI 文生图",description="使用Flux AI模型生成图像",examples=[["A cute cat", 512, 512],["Beach view at sunset", 768, 512],["Futuristic city streets", 512, 768]]
)if __name__ == "__main__":demo.launch()

界面和测试效果如下,可以更改图像长度、宽度,提示词方面我提供了三组示例。(因为此项目太过火热,能不能生成成功还要看脸)

下期我将写一篇文章讲讲如何本地部署Flux(已经测试成功了,感叹该模型的精细程度,尤其AI绘图经常翻车的手部,目前未整理文章),感兴趣的朋友们点个赞鼓励一下吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/871908.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[JavaScript] 深入理解流程控制结构

在编程中,流程控制是指控制代码执行顺序的机制。通过流程控制结构,我们可以根据不同的条件执行不同的代码块,实现逻辑判断、循环遍历和跳出循环等功能。常见的流程控制语句有:if-else、switch-case、for、while,以及控制语句break和continue。本文将详细讲解这些控制结构的…

ELF2开发板(rk3588飞凌)

ELF2开发板(飞凌嵌入式) 开箱包裹内容打开包装,你可以看到以下物品一个绿联的usb3.0读卡器、sandisk的32g内存卡(太好了) rk3588 4g+32g emmc版本ELF2开发板 输出为12v 3A的电源适配器(和ipad的充电器外观好像)图1 外包装盒图2 开箱物品内容图3 ELF2开发板正面图4 ELF2开发…

抗沙箱方式列举

前言 研究过免杀的朋友们一定会碰到过自己的🐎今天还能用,明天就被秒的情况。这种情况大多数是被上传到沙箱然后被沙箱检测和分析发现是🐎,进而记录特征让咱们花好几天写的🐎直接废了。为了提高🐎的存活周期,咱们就需要抗沙箱这门技术。 未加抗沙箱 首先,作为演示我…

K-D树及其应用

K-D树及其应用 简介 在单个维度的范围搜索场景下,如:搜索创建时间最靠近某个日期的商品信息。可以通过遍历所有的商品信息,计算每个商品的创建日期的差值,得到差值最小的商品即可,这样每次查询的时间复杂度为 \(O(n)\);或者通过构造一个 BST,通过日期进行比较查询,这样…

基础动态规划讲解

(标题就叫这个吧,我也没什么主意了) 动态规划,要给这个这个东西下个定义,确实不太好下,他是一种基于状态来思考问题的算法思想 用来表示状态的话,那就是dp,(这么说好抽象),就直接说涉及动态规划的题目怎么处理吧 ,这个还是有步骤可行的,就按如下步骤操作 1.寻找子…

遗传算法个人入门笔记

先举一个简单的求解例子: 变量x,y 函数f(x,y) = (x-5)^2 + (y+3)^2 - 5 求最小值。 def test(x,y):return (x - 5)**2 + (y - 3)**2 - 5显然,这个函数在x=5,y=3时取最小值-5。现在我们尝试用遗传算法解决之。 遗传算法主要是模拟生物进化的过程,将每一个值视作一个生物,有…

excel快速定位到某一行

左上角输入框输入:A100定位到第100行

2024秋季学期 电子技术基础期末复习笔记

这期末也太难了吧,15*2,俩超级难的电路,直接给我算麻了电路分析模拟电路

【牛客训练记录】牛客周赛 Round 77

训练情况赛后反思 打一半吃饭去了,C题看到 ax+by=k 的问题,简单的扩欧exgcd没反应过来,简单数论还是不熟悉TAT,D题DSU计算联通块大小时 \(i\) 打成 \(a_i\) 疯狂 RE 被硬控了十几分钟 A题 输出题目所述的第几个字符串即可 #include <bits/stdc++.h> // #define int l…

LIS于LCS

LIS与LCS是动态规划中最常见的两种情况,LIS也就是最长上升子序列,而LCS是最长公共子序列。 在解决这个问题之前,先要明白为什么是序列,举个例子来说明,在数组 [1,2,3,4,5,6]中,[2,3,5]就是其子序列,也就是说,子序列其实就是数组中存在先后顺序,但不强调连续的子数组。…

层次分析法:数学建模

今天学习了层次分析法和数学建模,这里就简单写一下自己的学习新的,参考的资料是B站上的免费网课,老师讲的不错,可以去围观,学习,希望可以拿个奖。https://www.bilibili.com/video/BV1p14y1U7Nr/?spm_id_from=333.337.search-card.all.click 上面这里是链接。本文的大部分…

那些年我在 HL 集训做的题【某人别催了!】

某人别催了!!!Day 0 1.16 下午到 HL,居然还写了一道题? P8855 [POI2002] 商务旅行 LCA 板子。不理解当时为啥要写这个东东,可能是为了热热身吧。 Day 1 讲整体二分,但是没听懂。貌似是魔改版 CDQ...不管它。但是我似乎发现了一片新天地,一切的一切都从下面的一道题说起…