From b5e6085bc87fefd0fca1efdad6e59e7a72f5e673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Sanz?= Date: Mon, 6 Jul 2026 16:41:35 +0200 Subject: [PATCH] docs: streamline readme --- README.md | 92 +++++++++++++++++++------------------------------------ 1 file changed, 31 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index d339d4a..cc38546 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,15 @@ # ComfyUI-Runware -Every Runware model as a ComfyUI node: image, video, audio, 3D, and text. The -whole catalog stays current as new models launch, and each node's parameters -match the live model exactly. +Every Runware model as a ComfyUI node: image, video, audio, 3D, and text, all +running in the cloud. No local GPU and no per-model setup. The whole catalog +shows up in your node menu, and each node's widgets are the model's real parameters. + +**Full guide: https://runware.ai/docs/platform/comfyui** ## Install -**ComfyUI Manager** (recommended): search **Runware** and install. +**ComfyUI Manager** (recommended): open the Custom Nodes Manager, search +**Runware**, install, and restart. **Manual:** ```bash @@ -18,65 +21,32 @@ Restart ComfyUI. ## API key -Use any of these (the environment variable wins if more than one is set): +Create a key in the [dashboard](https://runware.ai/api-keys), then provide it one of these ways: -- **ComfyUI Settings → Runware API key**: paste your key in the UI, no terminal needed. -- **`RUNWARE_API_KEY`** in the environment ComfyUI runs in. -- **[Runware CLI](https://runware.ai/docs/platform/cli)**: run `runware auth login` - once and the nodes reuse the stored key. +- **ComfyUI Settings → Runware API key**: paste it in the UI, no terminal needed. +- **`RUNWARE_API_KEY`** environment variable: overrides the Settings field, useful for servers. +- **Runware CLI**: run `runware auth login` once and the nodes reuse the stored key. -## Use +## Quick start -Search the node menu for **Runware**. One node per model, grouped -`Runware//`. Set the parameters, wire the output, and queue: +1. Double-click the canvas and search a model by name (e.g. `FLUX.2 [dev]`), or browse `Runware/Image`. +2. Type your `positivePrompt` and set the dimensions. +3. Wire the node's **IMAGE** output into **Preview Image** or **Save Image**. +4. Queue. The request runs on Runware and comes back as a native `IMAGE`. -- **Image** models output a native ComfyUI IMAGE. -- **Audio / video** models output native ComfyUI AUDIO / VIDEO (chain them straight - into preview or save nodes); **3D** and other files download to your output folder - and return a path. -- **Reference / seed images** are IMAGE inputs and **inpainting masks** are MASK - inputs; audio/video inputs take a URL or path. -- **Builder nodes keep model nodes clean** (`Runware/Params`). Stackable features - live in their own nodes instead of crowding every model node: `LoRA`, `ControlNet`, - `IP-Adapter`, `Embeddings`, `Refiner`, feature blocks (`PuLID`, `PhotoMaker`, - `Watermark`, `Ultralytics`, `Accelerator Options`), and reference inputs. Each feature - is a distinct socket type, so you wire a builder into the model's matching typed socket - (`lora`, `controlNet`, ...) and chain the stackable ones to combine them. The model node - only shows the features a generation actually uses. -- **Builders scope themselves to the model they wire into.** LoRA, Embeddings, and Refiner - have an editable **model** field plus a **search catalog** button that opens a live - catalog search to fill the AIR. ControlNet and IP-Adapter instead scope their **model** - field to the model/architecture node they reach (through any builders in between): it - becomes a dropdown of exactly the models that node accepts, or a free AIR field until it - reaches one. The Speech, reference, Accelerator Options, and Outpaint builders scope - their **fields** the same way: each shows only what that model supports and hides the - rest (Speech's `voice`/`language` become that model's own lists, Accelerator Options - shows only its caching strategies, Outpaint drops `blur` where unsupported). -- **Model-specific config flattens onto the model node** as dotted fields under a - **Settings** section: `safety.checkContent`, `providerSettings.google.webSearch` - (only your model's provider is shown). -- **Widgets are grouped into sections** (inputs, core, settings, output). Where a model - has no fixed default for a setting, the node leaves it to the model rather than guess: - a number like `steps` or `CFGScale` shows a **set** toggle that reveals its field only - when you opt in, and a dropdown like `scheduler` carries a `(default)` option. Leave - these to use the model's own default, or set them to take control. Dimensions and - `seed` always show a value. A cohesive settings group reveals behind one toggle too: - `safety`, `toolChoice`, and `advancedFeatures` each hide their fields (e.g. - `safety.checkContent` / `safety.mode`) until you enable the group. -- Niche per-model params (and anything not auto-typed) go into the raw - `advanced_json` input. -- **Runware Upload Image** / **Runware Load Image (URL)**: upload an image once for - a reusable UUID, or pull any image URL (including a Runware result) into the graph - as an IMAGE. -- After a run, each model, architecture, and custom node shows its cost and, when the - model ran a content check, the NSFW result along its title bar (e.g. `$0.00078 · NSFW: no`). -- **Runware (custom)**: a generic node for any model AIR + taskType, for models - newer than your installed version. It makes no assumption about modality: you give - it the request as JSON (`request_json`) and it returns the raw response as - `result_json`. Feed media in as UUIDs/URLs (see **Runware Upload Image**). -- **Runware Get**: pulls a field out of a `result_json` by dot-path (e.g. - `0.imageURL`, `0.videoURL`, `0.outputs.files.0.url`; leave it empty to grab the - first URL). The `STRING` it outputs goes to **Runware Load Image (URL)** to preview - an image, or to a Save/Preview node for any other result. +## What's in the pack -Browse models and get an API key at [runware.ai](https://runware.ai/docs). +- **One node per model**, grouped `Runware//`. Widgets are the model's real parameters, with correct ranges, defaults, and dropdowns. +- **Native outputs**: image, upscale, and background-removal return `IMAGE`; audio returns `AUDIO`; video returns `VIDEO`; 3D and other files save to your output folder and return a path; text returns a string. +- **Native inputs**: reference and seed images are `IMAGE`, inpainting masks are `MASK`; audio, video, and document inputs take a URL, path, or UUID. +- **Builder nodes** (`Runware/Params`) keep model nodes clean. Stackable features (LoRA, ControlNet, IP-Adapter, Embeddings, and more) each wire into a model's typed socket, and you chain the stackable ones to combine them. +- **Custom checkpoints**: `Runware/Custom models` has a node per architecture (SDXL, SD 1.5, FLUX, Pony, and more) for community fine-tunes. +- **New models, day one**: `Runware (custom)` takes any model AIR and `taskType` as JSON and returns raw JSON. Pair it with `Runware Get` to pull a field out of the response (e.g. `0.imageURL`). +- **Run info** on the title bar: each run shows its cost and, when a content check ran, the NSFW result (e.g. `$0.00078 · NSFW: no`). + +The [full guide](https://runware.ai/docs/platform/comfyui) covers every builder, custom models, parameter behavior, and troubleshooting. + +## Links + +- [Documentation](https://runware.ai/docs/platform/comfyui) +- [Discord](https://discord.gg/aJ4UzvBqNU)