自学内容网 自学内容网

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

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


原文地址:https://blog.csdn.net/cun_king/article/details/145248934

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!