十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

在 Xinference 中快速部署 sd-turbo:单步文生图模型的启动与调用全指南

在 Xinference 中快速部署 sd-turbo:单步文生图模型的启动与调用全指南 在 Xinference 中快速部署 sd-turbo单步文生图模型的启动与调用全指南【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inferencesd-turbo 是 Stability AI 发布的实时文生图text2image蒸馏模型Xinference 将其作为stable_diffusion家族的内置模型直接收录。本文基于 Xinference 仓库中的 sd-turbo 内置模型文档 与对应源码完整讲解如何在 Xinference 中启动 sd-turbo、通过 OpenAI 兼容 API 或 Python 客户端调用它并深入剖析其单步采样、零引导默认配置背后的实现原理。读完本文你将掌握从部署到调用的完整链路并能依据模型规格自由定制生成参数。模型概览根据 sd-turbo.rst 中的官方定义该模型的元信息如下属性值Model Namesd-turboModel Familystable_diffusionAbilitiestext2imageAvailable ControlNetNone需要特别注意的是sd-turbo不支持 ControlNet且能力仅为 text2image文本生成图像不包含 image2image 与 inpainting。这意味着它是一张专注于纯文生图的蒸馏模型无法像 stable-diffusion-v1.5 那样配合 canny、openpose 等 ControlNet 使用——这在 xinference/model/image/model_spec.json 的模型能力定义中同样得到印证stable-diffusion-v1.5与stable-diffusion-xl-base-1.0均声明了controlnet列表而 sd-turbo 条目中不存在该字段。在 Images 能力文档 中sd-turbo 被列为 Xinference 内置支持的 Text-to-image 模型之一与 sdxl-turbo、stable-diffusion-v1.5、stable-diffusion-xl-base-1.0、sd3-medium、FLUX.1 系列、Qwen-Image 等并列统一通过/v1/images/generations端点对外提供服务。模型规格Specifications原文档给出的 Model ID 为stabilityai/sd-turbo。深入 xinference/model/image/model_spec.json 中的sd-turbo条目约第 598 行可以拿到更完整的规格细节{ version: 2, model_name: sd-turbo, model_family: stable_diffusion, model_ability: [text2image], default_generate_config: { guidance_scale: 0, num_inference_steps: 1 }, model_src: { huggingface: { model_id: stabilityai/sd-turbo, model_revision: 1681ed09e0cff58eeb41e878a49893228b78b94c }, modelscope: { model_id: AI-ModelScope/sd-turbo, model_revision: master } }, virtualenv: { packages: [ #diffusers_dependencies# ; #engine# \diffusers\, transformers4.51.0, #system_torch#, #system_numpy# ], no_build_isolation: true } }从中可以提炼出以下关键技术事实默认生成配置guidance_scale0零引导即不使用 CFG、num_inference_steps1仅 1 步去噪。这是 sd-turbo 作为实时模型的立身之本——蒸馏后的模型在单个推理步内即可产出可用图像因此调用方不传任何参数时Xinference 也会按此默认值执行。双模型源默认从 Hugging Face 拉取stabilityai/sd-turbo固定 revision1681ed09e0cff58eeb41e878a49893228b78b94c以保证可复现同时提供 ModelScope 镜像源AI-ModelScope/sd-turbo可通过--download_hub modelscope指定。运行时依赖通过#diffusers_dependencies#宏引入 diffusers 引擎依赖并要求transformers4.51.0、系统级 torch 与 numpy。这些依赖在启用按模型虚拟环境per-model virtual environment时会被自动安装。从源码结构看同样的零引导 单步默认配置也应用在 sdxl-turbo 上model_spec.json 中 sdxl-turbo 的default_generate_config同为guidance_scale: 0, num_inference_steps: 1这说明 turbo 系列蒸馏模型在 Xinference 中被一致地视为免引导、极简步数的快速生成模型。启动 sd-turbo原文档给出了一行即可完成部署的命令xinference launch --model-name sd-turbo --model-type image关键参数说明--model-name sd-turbo指定内置模型名Xinference 会从模型规格表中读取其家族、能力、模型源与默认配置。--model-type image声明模型类型为图像模型对应 Images API 的能力体系。执行后 Xinference 会经历模型下载Hugging Face / ModelScope→ 依赖校验与虚拟环境准备 → 通过 diffusers 引擎加载 pipeline → 按默认生成配置就绪。加载完成后会返回一个model_uid后续所有图像请求都要引用它。可选启动参数根据 启动文档 与 Images 能力文档 中关于图像模型的说明sd-turbo 部署时还可以追加以下实用参数参数作用--download_hub modelscope从 ModelScope 镜像下载权重适合网络受限环境--cpu_offload True推理时把模型组件按需搬移到 CPU节省显存会略微增加延迟--size 512*512在 Web UI 或客户端侧控制输出分辨率--model-uid 自定义名指定模型唯一标识便于客户端引用与 FLUX.1、SD3.5 等大模型不同sd-turbo 属于轻量级模型规格表中没有为其配置quantize_text_encoder、transformer_quantization等量化默认项因此常规 GPU 环境下直接按默认方式加载即可。调用文生图 APIsd-turbo 通过 Xinference 的Text-to-Image API对外服务其端点与 OpenAI 图像生成接口兼容路由注册见 xinference/api/routers/images.py 中的/v1/images/generations。以下三种调用方式均继承自 Images 能力文档 并可直接套用。方式一cURLcurl -X POST \ http://XINFERENCE_HOST:XINFERENCE_PORT/v1/images/generations \ -H accept: application/json \ -H Content-Type: application/json \ -d { model: MODEL_UID, prompt: a cute corgi running in a park }方式二OpenAI Python Clientimport openai client openai.Client( api_keycannot be empty, base_urlhttp://XINFERENCE_HOST:XINFERENCE_PORT/v1 ) client.images.generate( modelMODEL_UID, prompta cute corgi running in a park )方式三Xinference Python Clientfrom xinference.client import Client client Client(http://XINFERENCE_HOST:XINFERENCE_PORT) model client.get_model(MODEL_UID) model.text_to_image(a cute corgi running in a park)返回结果以上调用均返回 OpenAI 风格的 JSON 结构默认把生成的图片落盘并返回本地url也可通过response_formatb64_json直接取 base64 数据{ created: 1697536913, data: [ { url: /home/admin/.xinference/image/605d2f545ac74142b8031455af31ee33.jpg, b64_json: null } ] }生成参数调用时可以通过kwargs覆盖生成配置例如model.text_to_image( a cute corgi running in a park, size512*512, num_inference_steps2, seed42, response_formatb64_json, )常用参数包括size如512*512、1024*1024默认由规格表决定、num_inference_steps采样步数、guidance_scaleCFG 强度、seed随机种子-1 表示随机、response_formaturl或b64_json。测试用例 xinference/model/image/tests/test_stable_diffusion.py 验证了size256*256与response_formatb64_json两种组合的完整行为返回结果长度为 1、URL 指向存在的文件、base64 解码后图片尺寸精确等于请求尺寸。源码级原理默认配置如何生效sd-turbo 在 Xinference 中由 xinference/model/image/stable_diffusion/core.py 的DiffusionModel类承载。其text_to_image的实现约第 1089 行起清晰展示了默认生成配置的合并逻辑generate_kwargs self._model_spec.default_generate_config.copy() generate_kwargs.update({k: v for k, v in kwargs.items() if v is not None}) generate_kwargs[width], generate_kwargs[height] width, height也就是说首先以model_spec.default_generate_config即 sd-turbo 的guidance_scale0, num_inference_steps1为基底再用调用方显式传入且非None的参数覆盖之最后强制注入宽高。这带来一个对使用者很重要的事实sd-turbo 即使不传任何生成参数也会以单步、零引导方式生成这正是它快的来源。如果你希望尝试 2 步或调整引导强度只需显式传入num_inference_steps/guidance_scale即可覆盖默认值。在加载侧DiffusionModel.load()会根据能力选择AutoPipelineForText2Image按规格中的torch_dtype、device_map等配置将 pipeline 装载到可用设备并支持cpu_offload、sequential_cpu_offload、attention_slicing、vae_tiling/vae_slicing等显存优化开关见 core.py 的_load_to_device方法。此外模型加载时还会读取规格中的虚拟环境包定义确保 diffusers、transformers 等依赖版本满足要求。约束与注意事项能力边界sd-turbo 仅支持 text2image不可用于 image2image/v1/images/variations与 inpainting/v1/images/inpainting。无 ControlNet规格中Available ControlNet为 None需要构图控制的场景应改用 stable-diffusion-v1.5 或 stable-diffusion-xl-base-1.0它们内置了 canny、openpose、depth 等 ControlNet 列表。单步生成的取舍num_inference_steps1与guidance_scale0是面向低延迟场景的默认选择若追求更高画质可以按需提高步数并调整引导强度但会牺牲生成速度。引擎与依赖sd-turbo 由 diffusers 引擎驱动虚拟环境依赖见规格表GGUF 量化、Lightning 加速、LoRA 与 ControlNet 等能力仅在 diffusers 引擎下可用sd-turbo 本身并未列入 SGLang / vLLM 引擎支持列表因此无需也无法为其指定--model-engine。延伸阅读图像模型总览与 API 说明Images 能力文档模型启动指南与副本/GPU 分配策略启动文档图像模型规格定义含 sd-turbo 完整条目xinference/model/image/model_spec.json核心实现DiffusionModelxinference/model/image/stable_diffusion/core.py图像 API 路由注册xinference/api/routers/images.py端到端测试用例xinference/model/image/tests/test_stable_diffusion.py【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表