Files
Moser9815-ComfyUI-RMAutomation/README.md
T
2026-08-24 13:49:00 -04:00

6.3 KiB

ComfyUI-RMAutomation

A collection of workflow automation nodes for ComfyUI, designed to streamline AI image and video generation workflows.

Installation

  1. Open ComfyUI Manager
  2. Search for "RMAutomation"
  3. Click Install

Manual Installation

cd ComfyUI/custom_nodes
git clone https://github.com/yourusername/ComfyUI-RMAutomation

Nodes

LoRA Nodes

RM Power LoRA Loader

A flexible node for loading multiple LoRAs with support for:

  • Dynamic number of LoRA inputs (add as many as you need)
  • Fixed or random strength per LoRA
  • Two ways to feed LoRAs in automatically, both optional:
    • Styles Pipe + lora_source (Image / Motion High / Motion Low) - reads the selected LoRA string straight out of an RM_STYLES_PIPE
    • Style Import - a raw LoRA string, for graphs with no pipe
    • If both are connected the pipe wins, as the more specific intent
  • Civitai AIR mode - download LoRAs by model ID

Previously two nodes, RM Power LoRA Loader and RM Power LoRA Loader (Pipe), merged 2026-08-24. The single node is a superset of both. The old RMPowerLoraLoaderPipe key is still registered as an alias so existing workflows load unchanged - it resolves to the same class and shows the same name.

RM LoRA Collector

Combines multiple LoRA stacks into one. Accepts both LORA_STACK inputs and lora strings.

RM LoRA Apply

Applies all LoRAs from a collected stack to the model and CLIP.

Styles Nodes

RM Styles Full

Load prompts from a JSON styles file with multiple selection modes:

  • Manual: Use specific prompt number
  • Random: Random selection within range
  • Increment: Auto-increment after each generation
  • Decrement: Auto-decrement after each generation

Features an Edit Styles button that opens a modal editor for managing your styles.

RM Styles Full (Display)

Same as RM Styles Full but displays the current prompt on the node.

RM Styles Pipe / RM Styles Pipe Out

Pack and unpack style data for easier workflow connections.

Video Nodes

RM Video Combine

Combines images into video with:

  • Multiple format support (H.264, H.265, VP9, GIF, WebP)
  • Configurable output directory
  • Metadata embedding
  • Audio support
  • Ping-pong looping

Utility Nodes

RM Image Fallback

Returns the first non-empty image from multiple inputs. Useful for conditional workflows.

RM Mask Gate

Validates masks and passes through only valid ones. Outputs None for invalid masks, preventing crashes in downstream nodes.

RM Mask Gate (Guide)

Same as Mask Gate but for guide inputs. Disables guides when masks are invalid.

RM Set Latent Noise Mask

Improved latent noise mask setter with proper error handling for edge cases.

RM Positive/Negative Text Embed

CLIP text encoding nodes that combine optional string inputs with text fields.

Styles JSON Format

The styles file (data/styles.json) uses this format:

{
  "styles": [
    {
      "number": 1,
      "name": "Style Name",
      "positive": "positive prompt text",
      "negative": "negative prompt text",
      "motion": "motion prompt for video",
      "imageLoras": [
        {"path": "lora_name.safetensors", "weight": 1.0}
      ],
      "motionLoras": [],
      "motionLorasHigh": [],
      "motionLorasLow": []
    }
  ]
}

Using a custom styles file

The RM Styles nodes read data/styles.json by default. Point the custom_json_path widget at another file to override that. The path accepts:

Form Example
Absolute C:\Users\you\Styles\styles.json
Quoted (Explorer "Copy as path") "C:\Users\you\Styles\styles.json"
Home-relative ~/Styles/styles.json
Environment variable %USERPROFILE%\Styles\styles.json
Relative styles/mine.json — resolved against the ComfyUI root

Leave it blank to use the bundled default. The Edit Styles button reads and writes whichever file the widget points at.

Converting a styles CSV

tools/csv_to_styles.py converts a styles CSV (the A1111 styles.csv shape, or the Number,Name,Positive,Negative,Lora shape) into the JSON format above.

Double-click tools/Convert Styles CSV.cmd and it walks you through it: an Open dialog for the CSV, a Save As dialog for the JSON, then the summary stays on screen until you press Enter. You can also drag a CSV onto the launcher to preselect it.

Use the .cmd, not the .py — editors like Cursor and VS Code claim the .py extension via the per-user UserChoice registry key, so double-clicking the script opens the editor instead of running it. (Note that assoc .py / ftype will still report py.exe; they read machine-level associations, which UserChoice overrides.)

The dialogs need a Python install with tkinter. The python_embeded shipped with ComfyUI portable has none, so use the command line below if that's your only Python.

# Same dialogs, from a terminal
python tools/csv_to_styles.py

# Or give the paths directly (no dialogs, no pause - good for scripting)
python tools/csv_to_styles.py "ComfyUI/styles/StylesSFW.csv" "my_styles.json"

It repairs the things that otherwise make the node fail or silently drop styles: non-UTF-8 encodings, BOMs, nameless trailing columns, malformed lora tags (<lora:X:1), space-separated tags, .8-style weights), non-breaking spaces, control characters and embedded newlines, doubled commas, and blank, duplicate, zero or negative style numbers. It prints a summary of every repair, then re-reads the file the way the node does and reports how many styles will actually load.

Useful flags: --dry-run (report without writing), --start-number N (first number used when renumbering), --encoding (force a source encoding).

Custom Video Formats

Add custom video formats by placing JSON files in the video_formats directory. Example format:

{
  "extension": "mp4",
  "main_pass": ["-c:v", "libx264", "-preset", "medium", "-crf", "19", "-pix_fmt", "yuv420p"],
  "audio_pass": ["-c:a", "aac", "-b:a", "192k"],
  "save_metadata": "True",
  "dim_alignment": 2
}

License

MIT License - Do whatever you want with this code.

Credits