本地SDXL生图
本地 SDXL 生图 (axelhu-local-sdxl)
by axelhu
基于 ComfyUI + SDXL 的本地图片生成技能。适用于需要高质量配图、素材生成、本地私密生图、或对在线生成有频率限制的场景。
安装
claude skill add --url https://github.com/openclaw/skills文档
基于 ComfyUI + SDXL 的本地图片生成技能。适用于需要高质量配图、素材生成、本地私密生图、或对在线生成有频率限制的场景。
触发时机
在以下场景时使用:
- 用户/其他 agent 说"本地生图"、"本地SD生图"、"用本地工具生成图片"
- 用户/其他 agent 说"私密生图"、"脱敏生图"、"不上传在线"
- 需要生成涉及隐私、测试、商业素材的内容,且明确指定本地处理
- 需要精细控制构图、风格、尺寸的生图任务,且指定本地执行
不要用于:
- 默认生图请求(那些默认走在线服务,如 Midjourney/DALL-E)
- 用户说"生成图片"、"画一张图"且没有指定本地(默认在线优先)
使用方式
直接描述想要的图片内容,例如:
- "帮我生成一张科技感十足的封面图"
- "画一个程序员深夜编程的场景,插画风格"
- "生成一张杭州西湖的夜景图,高清写实风格"
Agent 收到后执行生图脚本,发送结果给用户。
技术规格
| 项目 | 参数 |
|---|---|
| 模型 | Stable Diffusion XL 1.0 (fp16) |
| 显卡 | NVIDIA RTX 3080 (10GB VRAM) |
| 出图尺寸 | 默认 1024×768,可调整 |
| 生图速度 | ~18秒/张(euler 采样,20步) |
| 可用采样器 | euler, dpmpp_2m, lcm, ddim 等 |
| API 端口 | localhost:8188 |
Agent 调用方法
方式一:通过脚本调用(推荐)
import subprocess
result = subprocess.run(
["python3", "/path/to/scripts/sdxl_generate.py",
"--prompt", "一只狐狸在森林里",
"--negative", "模糊, 低质量",
"--steps", "20",
"--seed", "42",
"--output", "/tmp/output.png"],
capture_output=True, text=True
)
print(result.stdout)
方式二:直接调 ComfyUI REST API
import requests, time, json
COMFYUI = "http://localhost:8188"
def generate(prompt, negative="", steps=20, seed=42, width=1024, height=768):
workflow = {
"loader": {"class_type": "CheckpointLoaderSimple",
"inputs": {"ckpt_name": "sdxl-base-1.0.safetensors"}},
"positive": {"class_type": "CLIPTextEncode",
"inputs": {"text": prompt, "clip": ["loader", 1]}},
"negative": {"class_type": "CLIPTextEncode",
"inputs": {"text": negative, "clip": ["loader", 1]}},
"latent": {"class_type": "EmptyLatentImage",
"inputs": {"width": width, "height": height, "batch_size": 1}},
"sampler": {"class_type": "KSampler",
"inputs": {"seed": seed, "steps": steps, "cfg": 7.0,
"sampler_name": "euler", "scheduler": "normal",
"denoise": 1.0,
"positive": ["positive", 0], "negative": ["negative", 0],
"model": ["loader", 0], "latent_image": ["latent", 0]}},
"decode": {"class_type": "VAEDecode",
"inputs": {"samples": ["sampler", 0], "vae": ["loader", 2]}},
"save": {"class_type": "SaveImage",
"inputs": {"images": ["decode", 0], "filename_prefix": "sdxl_gen"}}
}
r = requests.post(f"{COMFYUI}/prompt", json={"prompt": workflow})
pid = r.json()["prompt_id"]
# 等待完成(轮询)
for _ in range(30):
time.sleep(2)
hist = requests.get(f"{COMFYUI}/history/{pid}").json()
if pid in hist:
return f"{COMFYUI}/view?filename=sdxl_gen_00001_.png"
return None
参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
--prompt | (必填) | 图片描述,越详细越好 |
--negative | "blurry, low quality, distorted" | 反向提示词 |
--steps | 20 | 采样步数,越高质量越好越慢 |
--seed | 随机 | 种子,决定具体画面 |
--width | 1024 | 宽度(8的倍数) |
--height | 768 | 高度(8的倍数) |
--sampler | euler | 采样器(euler/dpmpp_2m/lcm/ddim) |
--cfg | 7.0 | CFG 强度(1-20) |
--output | 自动 | 输出路径 |
快速参考:常用场景
| 场景 | 推荐参数 |
|---|---|
| 写实风景/人物 | --steps 25 --cfg 7 --sampler euler |
| 动漫/插画风格 | --steps 20 --cfg 8 --negative "写实, 照片" |
| 快速草图/验证 | --steps 4 --sampler lcm --cfg 1.0(需要 LCM 模型) |
| 16:9 横幅图 | --width 1280 --height 720 |
输出格式
生图完成后,脚本自动将图片保存到指定路径或 /tmp/ 目录,并通过飞书发送图片消息给用户。
注意事项
- ComfyUI 服务必须已启动(
python3 main.py --port 8188) - RTX 3080 推荐分辨率 1024×768 以下,更高分辨率可能爆显存
- 生图过程约 18 秒,请提前告知用户等待
- 图片风格默认写实,如需特定风格在 prompt 中描述
相关 Skills
Claude API
by anthropic
Build apps with the Claude API or Anthropic SDK. TRIGGER when: code imports `anthropic`/`@anthropic-ai/sdk`/`claude_agent_sdk`, or user asks to use Claude API, Anthropic SDKs, or Agent SDK. DO NOT TRIGGER when: code imports `openai`/other AI SDK, general programming, or ML/data-science tasks.
Solana防骗检测
by ammkode
Detect scam tokens on Solana before you trade. Checks ticker patterns, token age, and known scam mints. Read-only — no wallet signing required.
营收工作室
by amoldericksoans
A revenue-first solofounder studio that watches markets, finds monetizable pain, validates offers, ships narrow products, and compounds commercial memory across launches. Uses massive parallel agent orchestration with 8 layers: Signal Mesh, Extraction, Opportunity Graph, Cofounder Council, Revenue Lab, Build Studio, Launch Loop, and Portfolio Allocator.