Boogu-Image-0.1-Edit-Turbo
An editor with two wires and a four-step default
- referenceImages
- advancedFeatures.watermark.image
- image
One image in, one sentence, one image out
This is the simplest node in the pack and that's its whole appeal. There's no size dropdown, no negative prompt, no sampler, no prompt extension. You wire a picture into referenceImages, type what you want changed into positivePrompt, and the model returns the edited picture. Two required inputs, done.
The "Turbo" in the name is the interesting part: steps defaults to 4. This is a distilled few-step editor, the same economics as any turbo/few-step model in the local stack - a handful of denoise steps, fast answers, and less of the slow-burn refinement you'd get from a full-step edit model. The pack ships the non-turbo Boogu-Image-0.1-Edit sibling too, so if the turbo pass is leaving detail on the table, swapping the node is the comparison.
Where does it fit? In a real workflow it's the cheap revision step, not the hero renderer. Sketch or photograph goes in, you ask for the jacket to be red, the sign in the window to say something else, or the clutter on the desk gone. It's an API node, so the honest caveats apply: your image leaves the machine, each call is metered, and the provider's filter decides what's allowed. Per-call pricing is also the reason a fast, dumb, good-enough editor is nicer than you'd expect - you can iterate three times inside a minute without touching your own GPU.
How it works
No local model. The node assembles a Runware request (model: boogu:[email protected], taskType: imageInference), converts the image you wired in to an inline base64 PNG data URI, adds your prompt as the edit instruction, sends it over REST via the runware-sdk, then downloads the returned imageURL and hands it back as a torch IMAGE tensor that behaves like any other image in ComfyUI.
Dependencies are runware-sdk, pillow and soundfile - no VRAM, no checkpoint, no model downloads. The API key is read from RUNWARE_API_KEY, else ComfyUI Settings, else ~/.runware/config.yaml from runware auth login. After each run the node prints cost and NSFW status on its title bar.
The inputs that matter
- referenceImages - required, and it takes an
IMAGEdirectly. Whatever you wire in is the thing being edited; there is no size widget anywhere, so the output follows the input's framing. - positivePrompt - required, and the tooltip says exactly how to think about it: "Read as the edit instruction applied to the reference image." Write the change, not a description of the picture.
- steps - default 4, range 1–50. Raising it contradicts the point of the turbo variant, but a stubborn detail edit is a legitimate reason to try 8–12.
- seed - pin it if you want the same edit twice, otherwise you get a fresh variation of the same instruction.
- numberResults (1–20) - that many frames come back as one batched
IMAGE. - outputFormat (JPG/PNG/WEBP) and outputQuality (20–99).
Anything named advancedFeatures.watermark.* sits under a toggle that is off by default, and ttl is URL-expiry plumbing you can ignore - the node fetches your result immediately.
Output is a single image (IMAGE): feed Preview, Save Image, or the next step in a local chain.
Installing it
ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Set the key in ComfyUI Settings → Runware API key or export RUNWARE_API_KEY. Worth repeating since it surprises people: Runware's billing is top-up with a minimum charge and a card on file.
Where people get burned
- Forgetting one of the two required wires. Both are genuinely required; a missing
positivePromptis a validation error, not an auto-inpaint. - Writing a caption instead of an instruction. "A photo of a woman in a red jacket" is worse than "change the jacket to red". The model already has the photo.
- Expecting a new resolution. There's no width/height or size input; you get the input's framing back. Resize before, not after.
No Runware API key- nothing in env, Settings, or the CLI config file.- Errors come back as one short line, e.g.
Runware: ... [parameter 'steps', code …, HTTP 400]. That's deliberate; setRUNWARE_DEBUGfor the stack if you actually need it. numberResultsmultiplies the bill. Each result is its own generation, so 4 is four times the run printed on the title bar.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| referenceImages | IMAGE | — | |
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. Read as the edit instruction applied to the reference image. | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| seedopt | INT | 00–9223372036854776000 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| stepsopt | INT | 41–50 | Total number of denoising steps. Higher values generally produce more detailed results but take longer. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. Increases total generation time. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |