SuperAPI AI 工具集

huggingface-lora-space-builder

智能体与模型

查看项目

更新于 10-15 14:54

技能介绍

用途

该技能用于为用户提供的 LoRA 在 Hugging Face Spaces 上构建并发布一个 Gradio 演示应用,通过该 LoRA 运行推理。当有人要求为某个 LoRA 创建、生成、发布 Space、demo、Gradio 应用或 playground 时使用,无论基础模型是 Qwen-Image、Qwen-Image-Edit、LTX 还是其他扩散模型。也适用于用户描述自己训练或托管在 Hub 上的 LoRA 并希望分享的场景。默认目标硬件为 ZeroGPU,默认推理库为 diffusers(当基础模型支持时)。产出是一个真实发布(默认私有)的 Space,用户可在浏览器中试用,而非本地脚本。

主要能力

该技能覆盖从信息收集到发布上线的完整流程,分为五个阶段:

  1. 收集 LoRA 信息:读取 Hub 上的 LoRA 仓库,获取模型卡中的基础模型、任务类型、触发词、推荐推理参数(步数、引导尺度、CFG、LoRA 尺度、分辨率)、示例提示词与示例媒体,以及子任务/具体用途。若信息无法推断,则一次性批量向用户提问。

  2. 选择基础管线:加载对应基础模型家族的参考文件(qwen-image.md、ltx.md、krea-2.md),并强制核对基础模型自身模型卡中的 diffusers 推理片段以确认管线类。默认使用 diffusers,当基础模型有 diffusers 管线类时;部分 LTX 变体需要原生管线。

  3. 设计 UI:不套用模板,而是从 LoRA 的任务与输入出发推理出 UI。参考 tasks.md 获取各任务基线 UI 模式,参考 adapting-to-the-lora.md 思考该 LoRA 的具体需求。考虑使用较新的 Gradio 组件(如 gr.ImageSlider、gr.BrowserState、@gr.render)。当内置与 Hub 自定义组件不足以表达输入形状时,可通过 gr.HTML 进入自定义 HTML/JS 模式。媒体输入 Space 可使用 gr.Examples,并从共享输入池(图像 linoyts/repo-to-space-example-inputs,视频 linoyts/repo-to-space-example-videos)选取示例。

  4. 编写 Space 文件:同时编写 app.py、requirements.txt 和 README.md,三者紧密耦合,一次性展示给用户批量审批。app.py 包含导入、常量、模块级模型加载、预处理函数、@spaces.GPU 装饰的推理函数和 Gradio Blocks。

  5. 发布 Space(默认私有)。

使用方式

按阶段顺序推进,前一阶段收集的信息决定下一阶段。不要跨多轮零散提问,应批量提问。需要 token 时一次性向用户索取具有写权限的 Hugging Face 访问令牌(在 https://huggingface.co/settings/tokens 创建),该令牌会复用于最终发布阶段。

适用场景

  • 为文本到图像、图像到图像、文本到视频、图像到视频、视频到视频五类任务的 LoRA 构建演示。
  • 基础模型属于 Qwen-Image、Qwen-Image-Edit、LTX、Krea 2 等家族。
  • 用户希望分享自己训练或托管在 Hub 上的 LoRA。

限制

  • 若基础模型不在参考文件覆盖范围内,该技能尚无一等支持,需告知用户并询问是否按类比推进或停止,不得静默猜测。
  • 必须核对基础模型自身模型卡中的 diffusers 片段以确认管线类,参考文件表格仅为尽力而为,可能滞后于最新发布。
  • ZeroGPU 规则:模型在模块级放到 cuda(非在 GPU 函数内延迟加载);推理函数用 @spaces.GPU(duration=...) 装饰;不使用 torch.compile。
  • gr.Examples 使用 cache_examples=True、cache_mode="lazy",普通 cache_examples=True 会在构建时运行示例并在 ZeroGPU 上失败。
  • 当 gr.Examples 带 fn= 时,点击行会仅以 inputs= 的值按位置调用 fn,因此不在 inputs 中的每个 fn 参数都需要默认值,否则点击会抛出 TypeError。
  • 关于收费、价格、平台、效果等具体信息,资料中暂未提供。