【AI创作】Draw Things CLI 交给 AI Agent:Mac本地出图自动化实践
› 社区话题 › 📺 VFX Pipeline | 数字创意工作流 › 【AI创作】Draw Things CLI 交给 AI Agent:Mac本地出图自动化实践
- 作者帖子
- 2026-05-01 - 22:50 #131754

追光参与者Draw Things CLI 结合 AI Agent 的本地图像生成方案,旨在通过命令行接口实现自动化与批量化图像生产。相较于传统图形界面(GUI),CLI 模式无需启动完整应用,可直接调用底层推理引擎,降低系统资源占用并提升生成效率。本指南提供从环境配置、核心命令到自动化工作流的完整技术路径,适用于视觉特效(VFX)概念设计、资产生成及流水线集成。
一、技术优势:从手动交互到自动化节点Draw Things GUI 版本功能完整,但依赖手动参数配置与交互操作,在批量生成多组概念图或风格变体时存在效率瓶颈。CLI 模式绕过图形界面渲染,直接在终端执行生成指令。在同等硬件环境下(如 Apple Silicon 芯片),CLI 模式可减少 UI 层开销,图像生成速度提升约 15%~30%。其核心优势在于支持脚本调用与 AI Agent 集成,可将“图像生成”转化为可编程、可编排的自动化工作流节点,实现参数批量替换、多模型轮询及流水线对接。
二、环境安装(macOS)
推荐使用 Homebrew 包管理器进行安装。若系统尚未配置 Homebrew,请先执行以下初始化命令:安装运行环境和Draw things Cli版本
# 1、Homebrew(如你还没装 Homebrew,:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 2、安装 CLI
brew install --HEAD drawthingsai/draw-things/draw-things-cli# 3、验证安装是否成功
draw-things-cli --help4、标准卸载(只删 CLI 工具)
brew uninstall draw-things-cli brew uninstall --force draw-things-cli(可选)移除 tap 仓库,让 brew list 更清爽
brew untap drawthingsai/draw-things5、验证是否卸载成功
# 看 CLI 是否安装 brew list | grep draw-things # 看 App 是否安装 brew list --cask | grep draw-things有输出就是装了,没输出说明本来就没有。
Draw thigns app版本的脚本目录
/Users/用户名/Library/Containers/com.liuliu.draw-things/Data/Documents/Scripts基础draw-things-cli生成图片的命令格式
# 最小可用
draw-things-cli generate \ --model "/绝对路径/模型.dtmodel" \ --prompt "你的提示词"# 完整参数
draw-things-cli generate \ --model "$MODEL_PATH" \ --prompt "cinematic still, subject, details" \ --negative "blurry, lowres, watermark" \ --width 1024 --height 768 \ --steps 30 \ --cfg 7.5 \ --sampler "DPM++ 2M Karras" \ --seed 42 \ --output "~/outputs/result.png"路径与变量预设(~/.zshrc)
export MODEL_KLEIN="$HOME/Pictures/DrawThings/Models/Klein_9B_Q4_0.dtmodel" export MODEL_REAL="$HOME/Pictures/DrawThings/Models/EpicRealism_Q4.dtmodel" export CONFIG_VFX="$HOME/Projects/CLI/configs/vfx_base.json" export OUT_DIR="$HOME/Projects/CLI/outputs" mkdir -p $OUT_DIRJSON 配置可以复用的脚本
# 命令调用
draw-things-cli generate \ --model "$MODEL_KLEIN" \ --prompt "$PROMPT" \ --config-json "$CONFIG_VFX" \ --output "$OUT_DIR/$(date +%s).png"// vfx_base.json 内容
{ "steps": 30, "cfg_scale": 7.5, "width": 1024, "height": 768, "sampler": "DPM++ 2M Karras", "hires_fix": true, "hires_scale": 1.5 }批量生成脚本
#!/bin/bash # batch_generate.sh PROMPTS=( "cyberpunk city, rain, neon" "ruined temple, overgrown, mist" "spaceship interior, holograms, dark" ) for p in "${PROMPTS[@]}"; do draw-things-cli generate \ --model "$MODEL_KLEIN" \ --prompt "$p" \ --config-json "$CONFIG_VFX" \ --output "$OUT_DIR/$(echo $p | md5).png" done# 风格变体批量
STYLES=("watercolor" "noir" "cyberpunk" "sketch") BASE="Easter egg design, intricate" for s in "${STYLES[@]}"; do draw-things-cli generate \ --model "$MODEL_KLEIN" \ --prompt "$BASE, $s style" \ --output "$OUT_DIR/easter_$s.png" doneAI Agent 调用脚本模板
#!/bin/bash # agent_generate.sh SCENE="$1" TIMESTAMP=$(date +%Y%m%d_%H%M%S) draw-things-cli generate \ --model "$MODEL_KLEIN" \ --prompt "cinematic still, VFX concept, $SCENE, volumetric lighting, film grain" \ --negative "cartoon, anime, text, watermark" \ --config-json "$CONFIG_VFX" \ --output "$OUT_DIR/concept_${TIMESTAMP}.png" echo "✅ $OUT_DIR/concept_${TIMESTAMP}.png"# 使用
chmod +x agent_generate.sh ./agent_generate.sh "a dragon landing on a skyscraper, dusk"工作流编排(Skill 示例)
#!/bin/bash skill_hires.sh PROMPT="1" TMP="$OUT_DIR/tmp_$Step1: 草图
draw-things-cli generate --model "$MODEL_QWEN" --prompt "$PROMPT" --width 512 --height 512 --steps 20 --output "$TMP.png"Step2: 高清放大
draw-things-cli generate --model " MODEL_KLEIN" --prompt " PROMPT" --init-image " TMP.png" --hires_fix true --hires_scale 2 --config-json " CONFIG_VFX" --output "OUT_DIR/final_(date +%s).png" rm "$TMP.png"VFX 专用参数速查
# 电影感场景
--prompt "cinematic still, subject, volumetric fog, practical lighting, 35mm film grain" --cfg 7.0 --steps 30 --sampler "DPM++ 2M Karras"# 人物肖像
--prompt "portrait, detailed skin, studio lighting, 85mm lens" --negative "deformed, blurry, cartoon" --cfg 6.5 --steps 25# 概念艺术
--prompt "concept art, matte painting, epic scale, dramatic sky" --hires_fix true --hires_scale 1.5# 带透明通道(Matte)
--output-format png --alpha true一键调用封装(函数版)
# 加入 ~/.zshrc
vfx_gen() { draw-things-cli generate \ --model "$MODEL_KLEIN" \ --prompt "cinematic still, VFX, $*" \ --negative "blurry, lowres, text" \ --config-json "$CONFIG_VFX" \ --output "$OUT_DIR/$(date +%s).png" }# 使用
source ~/.zshrc vfx_gen "cyberpunk alley, rain, neon signs"模型路径获取技巧(macOS)
Finder 中右键模型文件 → 按住 Option → “复制为路径名称”或终端查找
find ~/Pictures/DrawThings/Models -name "*.dtmodel" | grep Klein - 2026-05-02 - 17:46 #131777

追光参与者最近学习了Draw Things各种流程的使用,学习玩上方的cli语法与部署方法后,试着用Draw things cli的方式来执行流程,速度比图形界面快10-30%,根据上方语法写了这些测试的具体使用案例:我的模型路径在:/Users/xbaby/Documents/AiModel/DrawThings,我想要将成品输出到:/Users/xbaby/Pictures/dt_/fast_z.png
使用Z image生成图片
draw-things-cli generate \ --models-dir "/Users/xbaby/Documents/AiModel/DrawThings" \ --model "z_image_turbo_1.0_i8x.ckpt" \ --prompt "a futuristic cyberpunk city, bright neon lights, cinematic lighting" \ --steps 4 \ --guidance-scale 1.0 \ --width 512 \ --height 512 \ --output "/Users/xbaby/Pictures/dt_/fast_z.png模糊照片修复重新绘制:
draw-things-cli generate \ --models-dir "/Users/xbaby/Documents/AiModel/DrawThings" \ --model "qwen_image_edit_2511_i8x.ckpt" \ --image "/Users/xbaby/Desktop/Screenshot 2026-05-02 at 09.33.21.png" \ --prompt "Enhance image quality" \ --steps 4 \ --cfg 1.0 \ --seed 4253394538 \ --strength 1.0 \ --width 512 \ --height 512 \ --config-json '{"loras":[{"file":"qwen_image_edit_2511_lightning_4_step_v1.0_lora_f16.ckpt","weight":1},{"file":"qwen_edit_enhance_lora_f16.ckpt","weight":1}]}' \ --output "/Users/xbaby/Pictures/dt_/enhanced_screenshot.png"模糊照片修复脚本
draw-things-cli generate \ --models-dir "/Users/xbaby/Documents/AiModel/DrawThings" \ --model "qwen_image_edit_2511_i8x.ckpt" \ --image "/Users/xbaby/Desktop/Screenshot 2026-05-02 at 09.33.21.png" \ --prompt "Enhance image quality, unblur, high detail" \ --steps 4 \ --cfg 1.0 \ --seed 4253394538 \ --width 1024 \ --height 1024 \ --strength 1.0 \ --output "/Users/xbaby/Pictures/dt_/qwen_1024_enhanced.png" \ --config-json '{ "shift": 2.6555896, "tiledDecoding": true, "decodingTileWidth": 640, "decodingTileHeight": 640, "decodingTileOverlap": 128, "sampler": 12, "loras": [ { "file": "qwen_image_edit_2511_lightning_4_step_v1.0_lora_f16.ckpt", "weight": 1.0, "mode": "base" }, { "file": "prithivmlmods_qwen_image_edit_2511_unblur_upscale_lora_f16.ckpt", "weight": 1.0, "mode": "all" } ] }'换脸脚本:在终端中执行,分别将图片的路径拖放到窗口,然后按下enter执行
1、新建一个文件:dt_faceswap.sh
2、在文件内输入:
#!/bin/zsh # --- 1. 基础配置 --- MODELS_DIR="/Users/xbaby/Documents/AiModel/DrawThings" MODEL_NAME="flux_2_klein_9b_i8x.ckpt" # 默认输出路径(也可以改为交互式输入) OUTPUT_PATH="/Users/xbaby/Pictures/dt_/faceswap_$(date +%s).png" echo "------------------------------------------------" echo "🎨 Flux 9B [i8x] 命令行换脸工具" echo "提示:你可以直接将图片文件拖入此窗口来获取路径" echo "------------------------------------------------" # --- 2. 交互式获取路径 --- # 获取底图路径 printf "🖼 请输入/拖入【底图】路径 (Base Image): " read BASE_IMAGE # 去掉拖拽可能产生的引号和末尾空格 BASE_IMAGE="${BASE_IMAGE%\'}" BASE_IMAGE="${BASE_IMAGE#\'}" BASE_IMAGE="${BASE_IMAGE%\"}" BASE_IMAGE="${BASE_IMAGE#\"}" BASE_IMAGE=$(echo $BASE_IMAGE | xargs) # 获取人脸图路径 printf "🎭 请输入/拖入【参考脸】路径 (Face Image): " read FACE_IMAGE FACE_IMAGE="${FACE_IMAGE%\'}" FACE_IMAGE="${FACE_IMAGE#\'}" FACE_IMAGE="${FACE_IMAGE%\"}" FACE_IMAGE="${FACE_IMAGE#\"}" FACE_IMAGE=$(echo $FACE_IMAGE | xargs) # 检查文件是否存在 if [[ ! -f "$BASE_IMAGE" ]]; then echo "❌ 错误: 找不到底图文件,请检查路径。" exit 1 fi if [[ ! -f "$FACE_IMAGE" ]]; then echo "❌ 错误: 找不到人脸参考图,请检查路径。" exit 1 fi # --- 3. 构造 JSON 配置 --- JSON_CONFIG=$(cat <<JSON { "shift": 2.6555896, "sampler": 16, "seedMode": 2, "resolutionDependentShift": true, "preserveOriginalAfterInpaint": true, "loras": [] } JSON ) CONFIG_FILE="/tmp/dt_config.json" echo "$JSON_CONFIG" > "$CONFIG_FILE" echo "\n🚀 启动生成任务..." echo "📸 底图: $BASE_IMAGE" echo "🧬 参考脸: $FACE_IMAGE" echo "⏳ 请稍候,Flux 9B 模型加载中...\n" # --- 4. 执行生成 --- draw-things-cli generate \ --models-dir "$MODELS_DIR" \ --model "$MODEL_NAME" \ --image "$BASE_IMAGE" \ --prompt "A professional photo, replace the face with the features from $FACE_IMAGE, maintain consistent lighting and skin texture, high detail" \ --steps 4 \ --cfg 1.0 \ --strength 1.0 \ --config-file "$CONFIG_FILE" \ --output "$OUTPUT_PATH" # 清理 rm "$CONFIG_FILE" if [ $? -eq 0 ]; then echo "\n✅ 任务成功!" echo "📂 结果保存在: $OUTPUT_PATH" # 自动在 Finder 中预览结果 open "$OUTPUT_PATH" else echo "\n❌ 任务失败,请检查参数或显存占用。" fi EOF3、赋予刚刚创建的文件执行权限:
chmod +x dt_faceswap.sh
- 作者帖子
- 在下方一键注册,登录后就可以回复啦。