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

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,选择中文,输入一段文字,点击生成按钮,读音非常清晰,推荐大家尝试一下。

代码体验Flux文生图模型

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

需要关注的就是两个按钮,将代码复制下来,然后用自己的账户创建一个令牌,并替换掉代码中的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")

点击“管理令牌”后需要登录,然后获取一个新的

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

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

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

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 image
        
    except 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绘图经常翻车的手部,目前未整理文章),感兴趣的朋友们点个赞鼓励一下吧。

### Hugging Face 模型使用指南 #### 创建和管理模型仓库 在完成 huggingFace 平台上的注册之后,用户会被引导至欢迎页面:https://huggingface.co/welcome。此页面不仅展示了上传与下载模型的具体方法[^3],而且也是探索社区分享资源的理想起点。 #### 浏览现有模型Hugging Face 提供了一个庞大的预训练模型库,涵盖了多种自然语言处理任务和其他领域应用。访问 https://huggingface.co/models 可以浏览并筛选适合特定需求的模型。每个模型页面都包含了详细的描述文档、配置参数说明以及样例代码片段,便于快速理解和集成到个人项目中去[^1]。 #### 加载本地或远程模型实例化 对于想要直接利用已有模型开展工作的开发者来说,可以通过 Python 库 `transformers` 来加载官方发布的预训练权重文件: ```python from transformers import AutoModelForSequenceClassification, AutoTokenizer model_name = "distilbert-uncased-finetuned-2-english" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) ``` 上述代码段演示了如何获取名为 `"distilbert-base-uncased-finetuned-sst-2-english"` 的情感分析模型及其配套分词器,并将其应用于新的文本输入之上。 #### 部署自定义模型服务 当开发人员希望将自己的模型部署成在线 API 服务时,则可以选择借助 AWS SageMaker 这样的云服务平台来实现高效稳定的运行环境设置。具体操作流程包括但不限于创建 endpoint 实例、打包镜像、编写推理脚本等内容,在这方面有专门的文章提供了详尽指导[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纸照片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值