当前位置: 首页 > news >正文

Mac电脑手动安装原版Stable Diffusion,开启本地API调用生成图片

Mac 上安装 Stable Diffusion 的方法:
安装 Homebrew(如果尚未安装)
打开终端,执行以下命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 Python 3.10.x

brew install python@3.10

安装 Git

brew install git

安装步骤
克隆 automatic1111 仓库

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 如果clone不下来,直接到github去下载再解压(unzip)也可以
cd stable-diffusion-webui

创建并激活虚拟环境

python3.10 -m venv venv
source venv/bin/activate

执行webui.sh

./webui.sh

在这里插入图片描述
等结束后会自动跳转127.0.0.1:7860
在这里插入图片描述
下载model

https://civitai.com/models

model放到stable diffusion webui/models/Stable Diffusion下
在这里插入图片描述
开启API

# 在webui-user.sh添加
# Stable Diffusion WebUI启动脚本
export COMMANDLINE_ARGS="--lowvram --precision full --no-half --skip-torch-cuda-test --disable-nan-check --api"

在这里插入图片描述
再启动./webui.sh
在这里插入图片描述
编写本地调用api代码

import requests
import json
import base64
from PIL import Image
from io import BytesIO
import os# API地址(默认端口7860)
API_URL = "http://127.0.0.1:7860"# 1. 文本生成图像(txt2img)
def txt2img(prompt, negative_prompt="", steps=20, width=512, height=512, sampler="Euler a"):payload = {"prompt": prompt,"negative_prompt": negative_prompt,"steps": steps,"width": width,"height": height,"sampler_name": sampler,"cfg_scale": 7,  # 提示词相关性,值越高越贴近提示"seed": -1,  # -1表示随机种子}response = requests.post(f"{API_URL}/sdapi/v1/txt2img", json=payload)if response.status_code == 200:result = response.json()for i, img_data in enumerate(result["images"]):image = Image.open(BytesIO(base64.b64decode(img_data)))save_path = f"txt2img_result_{i}.png"image.save(save_path)print(f"图片已保存至: {save_path}")return resultelse:print(f"请求失败,状态码: {response.status_code}")print(response.text)return None# 2. 图像生成图像(img2img)
def img2img(prompt, image_path, negative_prompt="", steps=20, strength=0.7, sampler="Euler a"):# 读取图像并转换为base64with open(image_path, "rb") as f:image_data = f.read()image_base64 = base64.b64encode(image_data).decode('utf-8')payload = {"prompt": prompt,"negative_prompt": negative_prompt,"init_images": [image_base64],"steps": steps,"sampler_name": sampler,"strength": strength,  # 0.1-0.9,数值越高与原图差异越大"cfg_scale": 7,"seed": -1,}response = requests.post(f"{API_URL}/sdapi/v1/img2img", json=payload)if response.status_code == 200:result = response.json()for i, img_data in enumerate(result["images"]):image = Image.open(BytesIO(base64.b64decode(img_data)))save_path = f"img2img_result_{i}.png"image.save(save_path)print(f"图片已保存至: {save_path}")return resultelse:print(f"请求失败,状态码: {response.status_code}")print(response.text)return None# 3. 获取可用模型列表
def get_models():response = requests.get(f"{API_URL}/sdapi/v1/sd-models")if response.status_code == 200:return response.json()return []# 4. 切换模型
def switch_model(model_name):payload = {"sd_model_checkpoint": model_name}response = requests.post(f"{API_URL}/sdapi/v1/options", json=payload)return response.status_code == 200# 示例调用
if __name__ == "__main__":# 示例1: 文本生成图像txt2img(prompt="a beautiful landscape, mountains, lake, detailed, realistic, 4k",negative_prompt="blurry, low quality, deformed",steps=30,width=768,height=512)# 示例2: 图像生成图像(取消注释并提供图片路径)# img2img(#     prompt="make it more vibrant, add birds in the sky",#     image_path="input_image.png",#     strength=0.6# )# 示例3: 获取可用模型# models = get_models()# print("可用模型:", [model["title"] for model in models])# 示例4: 切换模型# switch_model("v1-5-pruned-emaonly.ckpt")

运行后
在这里插入图片描述
这样就可以编写本地脚本,实现自动化生图了,而无需在webui上一张张图自己生成了。

http://www.lqws.cn/news/565381.html

相关文章:

  • 在Mac上查找并删除Java 21.0.5
  • 【Canvas与标志】圆规脚足球俱乐部标志
  • Spring Cloud Gateway 实战:从网关搭建到过滤器与跨域解决方案
  • 浮油 - 3 相分层和自由表面流 CFX 模拟
  • 医疗AI智能基础设施构建:向量数据库矩阵化建设流程分析
  • js 基础
  • PCB工艺学习与总结-20250628
  • JVM——垃圾回收
  • Kafka4.0初体验
  • 系统架构设计师备考之架构设计专业知识
  • 软考 系统架构设计师系列知识点之杂项集萃(100)
  • TCP/UDP协议深度解析(三):TCP流量控制的魔法—滑动窗口、拥塞控制与ACK的智慧
  • Cursor 教程:用 Cursor 创建第一个 Java 项目
  • Webpack 中的 Loader 和 Plugin 全面详解
  • 全新大模型开源,腾讯(int4能打DeepSeek) Vs 谷歌(2GB运行多模态)
  • 【GESP 四级】一个程序掌握大部分知识点
  • 学习使用dotnet-dump工具分析.net内存转储文件(3)
  • 深入理解Mysql索引底层数据结构和算法
  • NeRF-Lidar实景重建:大疆Mavic 4 Pro低成本建模方案(2025实战指南)
  • 当SAM遇到声纳图像时之论文阅读
  • 【blender】使用bpy对一个obj的不同mesh进行不同的材质贴图(涉及对bmesh的操作)
  • 一键高效率图片MD5修改工具PHP版
  • 量子算法入门——5.Qiskit库介绍与简单应用(1)
  • 《伴时匣》app开发技术分享--用户登录(3)
  • MYSQL与PostgreSQL的差异
  • 解锁云原生微服务架构:搭建与部署实战全攻略
  • mac触摸板设置右键
  • 四大WordPress模板资源网站
  • docker启动xxl-job 网络问题
  • 【Linux手册】进程等待:必要性剖析与wait、waitpid等多种方式实操指南