You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Auto1111 WebUI搭建自定义React前端的Txt2Img API方案咨询

解决方案

一、更简便的扩散模型API构建方式

1. 基于Diffusers库直接搭建API

不用依赖Auto1111的代码,直接用Hugging Face的Diffusers库搭配FastAPI或Flask这类轻量框架快速构建文生图API。这种方式逻辑清晰、完全可控,支持加载Stable Diffusion主模型和LoRA权重,示例代码如下:

from fastapi import FastAPI
from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler
import torch
from PIL import Image
import base64
from io import BytesIO

app = FastAPI()

# 加载主模型与LoRA
model_id = "runwayml/stable-diffusion-v1-5"
scheduler = EulerDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler, torch_dtype=torch.float16)
pipe.load_lora_weights("path/to/your/lora")
pipe.to("cuda")

def image_to_base64(img: Image.Image) -> str:
    buffer = BytesIO()
    img.save(buffer, format="PNG")
    return base64.b64encode(buffer.getvalue()).decode("utf-8")

@app.post("/txt2img")
def generate_image(prompt: str, negative_prompt: str = "", num_inference_steps: int = 20):
    image = pipe(prompt, negative_prompt=negative_prompt, num_inference_steps=num_inference_steps).images[0]
    return {"image_base64": image_to_base64(image)}

你可以根据需求扩展采样器、分辨率、批量生成等参数,前端React直接通过HTTP请求调用接口即可。

2. 启用Auto1111内置API

Auto1111本身自带REST API功能,无需拆分后端代码,启动WebUI时添加参数--api即可启用。启动命令示例:

python launch.py --api

启动后,通过POST请求/sdapi/v1/txt2img接口,传入prompt、negative prompt、采样器、分辨率等参数,后端会直接返回生成的图片。这种方式零后端开发成本,可复用Auto1111的所有功能(包括LoRA加载、各类采样算法),前端只需处理请求与结果展示。

二、结合Auto1111完整后端实现自定义前端

1. 直接对接Auto1111内置API(推荐)

即上述启用--api参数的方案,Auto1111的API支持WebUI所有功能参数,启动后访问/docs路径可查看接口详情。React中用axios发送请求的示例:

import axios from 'axios';

async function generateImage(prompt) {
  try {
    const response = await axios.post('http://your-webui-address/sdapi/v1/txt2img', {
      prompt: prompt,
      negative_prompt: "",
      steps: 20,
      sampler_index: "Euler",
      width: 512,
      height: 512
    });
    return response.data.images[0];
  } catch (error) {
    console.error('生成图片失败:', error);
    throw error;
  }
}

该方案无需修改Auto1111后端代码,是最省心的定制前端方式。

2. 基于Auto1111核心模块封装自定义后端

若需深度定制,可将Auto1111的核心模块(如你梳理的processing.py、txt2img.py等)抽出来封装成独立服务:

  • 将Auto1111的modules目录复制到自己的项目中,处理好依赖关系;
  • 参考Auto1111的启动流程,完成模型加载、配置初始化等操作;
  • 用FastAPI或Flask包裹生成逻辑,定义自定义API接口,调用Auto1111的txt2img函数处理请求;
  • 这种方式能保留Auto1111的全部功能,但需理清模块间的依赖(如模型加载、全局配置、采样器初始化等),可能需要调试导入路径与依赖问题。

内容的提问来源于stack exchange,提问作者realslimshady

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 08:26:14