Code Pluginsource linked

Draw Things Image Generationv1.10.1

OpenClaw tool for Draw Things CLI - local AI image generation on Apple Silicon

openclaw-draw-things·runtime draw-things·by @acwilan
Community code plugin. Review compatibility and verification before install.
openclaw plugins install clawhub:openclaw-draw-things
Latest release: v1.10.1Download zip

Capabilities

configSchema
Yes
Executes code
Yes
HTTP routes
0
Providers
draw-things
Runtime ID
draw-things

Compatibility

Built With Open Claw Version
2026.4.5
Min Gateway Version
2026.4.0
Plugin Api Range
>=2026.4.0
Plugin Sdk Version
2026.4.5
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The manifest, README, and code all align around one purpose: registering a Draw Things image-generation provider for OpenClaw, including generation and img2img editing.
Instruction Scope
Runtime behavior is scoped to image-generation requests and plugin configuration; prompt optimization and default prompt appending are disclosed configuration features, not hidden agent-control instructions.
Install Mechanism
The package has no install hooks or bundled dependency materialization, but the README tells users to install with an unsafe-force flag because the plugin executes local code.
Credentials
Use of child_process is proportionate to the stated purpose: it calls draw-things-cli with argument arrays to list local models and generate images, writes outputs to a configured directory, and reads supplied/generated image files.
Persistence & Privilege
No background worker, privilege escalation, credential access, or destructive persistence was found; generated images remain in the configured output directory and temporary edit input files are removed.
Scan Findings in Context
[suspicious.dangerous_exec] expected: Static scan flagged child_process usage. Artifact review confirms it is used to invoke the disclosed Draw Things CLI via execFile/execFileSync for model listing and image generation, with no shell command string construction observed.
Assessment
Install only if you intend to let OpenClaw run the local Draw Things CLI under your user account. Keep cliPath pointed at the real draw-things-cli binary, review outputDir/modelsDir settings, and remember that generated images are saved locally.
dist/draw-things-cli.js:94
Shell command execution detected (child_process).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

Verification

Tier
source linked
Scope
artifact only
Summary
Validated package structure and linked the release to source metadata.
Commit
01faed6535b0
Tag
v1.10.1
Provenance
No
Scan status
clean

Tags

latest
1.10.1

OpenClaw Draw Things

Local AI image generation for OpenClaw using Draw Things CLI on Apple Silicon. Generate images with Stable Diffusion, FLUX, and other models without API costs.

Features

  • 🖼️ Local image generation - No API keys needed
  • 🎨 Image editing (img2img) - Transform existing images with AI
  • 🍎 Apple Silicon optimized - Uses Core ML for fast inference
  • 🤖 Multiple models - SD, FLUX, and more
  • OpenClaw integration - Native tool support

Prerequisites

  • macOS with Apple Silicon (M1/M2/M3/M4)
  • Draw Things CLI installed via Homebrew:
    brew tap drawthingsai/draw-things
    brew install draw-things-cli
    
  • (Optional) Draw Things App from Mac App Store — easier GUI for browsing and downloading models
  • OpenClaw 2026.4.0 or later
  • AI Models downloaded (see Models section below)

💡 Note: Only the CLI is required. The Draw Things app is optional but provides a convenient GUI for browsing and downloading models.

Installation

From ClawHub (Recommended)

openclaw plugins install openclaw-draw-things --dangerously-force-unsafe-install

⚠️ Security Notice: This plugin executes shell commands to run the Draw Things CLI. OpenClaw's security scanner flags this as "dangerous code patterns". This is expected and necessary for the plugin to function — it uses child_process to spawn the draw-things-cli binary for local image generation. Use the --dangerously-force-unsafe-install flag to proceed with installation.

Manual Installation

git clone https://github.com/acwilan/openclaw-draw-things.git
cd openclaw-draw-things
npm install
npm run build
openclaw plugins install "$(pwd)"

Configuration

Add to your ~/.openclaw/openclaw.json:

{
  "plugins": {
    "entries": {
      "draw-things": {
        "enabled": true,
        "config": {
          "cliPath": "draw-things-cli",
          "outputDir": "~/Downloads/draw-things-output",
          "defaultModel": "realistic_vision_v5.1_f16.ckpt",
          "defaultSize": "1024x1024",
          "defaultEditStrength": 0.5,
          "defaultPromptMode": "auto",
          "defaultPromptAppend": "watercolor, soft brush strokes, cohesive painterly style",
          "defaultConfigJson": {
            "sampler": 12,
            "loras": [
              {
                "mode": "all",
                "file": "breath_of_the_wild_style_lora_f16.ckpt",
                "weight": 1
              }
            ]
          }
        }
      }
    }
  },
  "agents": {
    "defaults": {
      "imageGenerationModel": {
        "primary": "draw-things/realistic_vision_v5.1_f16.ckpt"
      }
    }
  }
}

Config Options

OptionTypeDefaultDescription
cliPathstringdraw-things-cliPath to Draw Things CLI binary
modelsDirstring-Optional override for models directory
outputDirstring~/Downloads/draw-things-outputWhere to save generated images
defaultModelstringrealistic_vision_v5.1_f16.ckptDefault model file
defaultSizestringmodel-specificDefault output size like 1024x1024; reduced to Draw Things-compatible multiples of 64 and takes precedence over aspect ratio/defaultWidth/defaultHeight when request size is omitted
defaultWidthnumbermodel-specificLegacy/default output width (reduced to multiple of 64)
defaultHeightnumbermodel-specificLegacy/default output height (reduced to multiple of 64)
defaultStepsnumbermodel-specificOverride sampling steps
defaultCfgnumbermodel-specificOverride CFG guidance scale
defaultEditStrengthnumber0.5Img2img/edit strength from 0-1
defaultPromptModestringautoauto, natural, or tagged prompt handling
defaultPromptAppendstring-Text appended to every generation/edit prompt before optimization; useful for fixed profiles like watercolor, cartoons, selfies, or charcoal
defaultConfigJsonobject-Draw Things JSGenerationConfiguration overrides forwarded through --config-json, including LoRAs, sampler, hires fix, upscaler, and other CLI-supported options
enablePromptOptimizationbooleanmode-dependentEnable/disable model-aware prompt conversion
highResStepsnumber15SD 1.5 high-resolution img2img upscale steps
timeoutMsnumber300000Per-generation CLI timeout in milliseconds

Models

The provider now uses a generated Draw Things CLI model catalog plus curated overrides for defaults like size, steps, CFG, prompt mode, and high-resolution behavior. Unknown model names still work via best-effort type inference, but adding curated overrides in src/model-metadata.ts gives more predictable behavior.

At runtime, the plugin checks draw-things-cli models list --downloaded-only and falls back to a downloaded model if the configured/requested model is not present locally.

Models are stored in:
~/Library/Containers/com.liuliu.draw-things/Data/Documents/Models/

Or specify a custom modelsDir in the plugin config.

Downloading Models via CLI

If you prefer not to use the Draw Things app, you can download models entirely via CLI:

# List currently downloaded models
draw-things-cli models list --downloaded-only

# List all available models for download
draw-things-cli models list

# Download a specific model
draw-things-cli models ensure --model <model-name>

💡 Tip: If using a custom models directory, add --models-dir <path> to match your plugin config.

Recommended Models

ModelDescription
realistic_vision_v5.1_f16.ckptPhotorealistic images (recommended default)
flux_2_klein_4b_q6p.ckptFLUX.2 Klein 4-bit quantized (fast, good quality)
flux_1_schnell_4b_q8p.ckptFLUX.1 Schnell for fast generation
sd_xl_base_1.0_f16.ckptStable Diffusion XL

Via Draw Things App (optional GUI method):
Open Draw Things app → Models → Download Models

Usage

Once installed and configured, OpenClaw can generate images:

Generate an image of a sunset over mountains

Or use explicit tool calls:

Use image_generate to create a cartoon cat

Default Prompt Append

Use defaultPromptAppend to lock a Draw Things-backed agent into a consistent visual profile. The plugin appends this text to every generation/edit prompt before model-aware prompt optimization, so a user prompt like a portrait of a woman can become a portrait of a woman, watercolor, soft brush strokes, cohesive painterly style.

Example profiles:

{
  "defaultPromptAppend": "watercolor, soft brush strokes, cohesive painterly style"
}
{
  "defaultPromptAppend": "cartoon illustration, bold outlines, vibrant colors"
}

Draw Things Configuration Overrides and LoRAs

Use defaultConfigJson for Draw Things-native options that are not part of OpenClaw's shared image-generation contract. The object is serialized and passed to draw-things-cli generate --config-json for both initial generation and high-resolution generation passes.

{
  "defaultConfigJson": {
    "sampler": 12,
    "hiresFix": false,
    "loras": [
      {
        "mode": "all",
        "file": "breath_of_the_wild_style_lora_f16.ckpt",
        "weight": 1
      }
    ]
  }
}

The CLI applies these values before the plugin's explicit model, dimensions, steps, CFG, and edit-strength arguments, so the shared OpenClaw request controls continue to win for overlapping settings.

OpenClaw's current image_generate request only defines provider-specific options for OpenAI. This means Draw Things overrides are persistent plugin configuration, not per-call tool parameters; supporting dynamic per-request LoRA selection requires an upstream extension of the image-generation contract.

Image Editing (img2img)

Transform existing images using AI:

Turn this photo into a watercolor painting [attach image]

Or explicitly:

Edit this image to look like a comic book style

The plugin supports:

  • One input image per edit request
  • Configurable strength via defaultEditStrength (how much the image changes)
  • Style transformations - watercolor, oil painting, cartoon, etc.
  • Detail enhancement - improve or modify specific aspects

Tips for best results:

  • Use clear style descriptions (e.g., "oil painting", "anime style", "sketch")
  • For subtle changes, the strength is moderate (0.5)
  • Works with any supported model

Troubleshooting

Provider does not show as configured

The plugin reports configured only when it can find draw-things-cli, the output path is plausible, and draw-things-cli models list --downloaded-only returns at least one local model.

"No image-generation provider registered"

Make sure the imageGenerationModel.primary is set correctly:

"imageGenerationModel": {
  "primary": "draw-things/your-model.ckpt"
}

"Model not found"

  • Verify the model file exists in Draw Things
  • Check the exact filename in the Models directory
  • Ensure modelsDir config matches your setup if using custom location

"draw-things-cli command not found"

Install the CLI via Homebrew:

brew tap drawthingsai/draw-things
brew install draw-things-cli

Plugin not loading

Check the plugin is enabled:

openclaw plugins list

If needed, restart the gateway:

openclaw gateway restart

Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev

# Run tests
npm test

Releasing

# Patch version (1.0.0 → 1.0.1)
npm run release:patch

# Minor version (1.0.0 → 1.1.0)
npm run release:minor

# Major version (1.0.0 → 2.0.0)
npm run release:major

This handles version bump, manifest sync, changelog, commit, tag, and push automatically.

License

MIT © Andres Rovira

Links