Lance Image Edit
Edit a photo with a sentence, no masks, no inpainting pass
- model
- image
- image
Give it an image and a sentence - "turn this into a rainy street at night" - and Lance Image Edit returns the edited image. No mask, no inpaint region, no ControlNet, no second pass. That's the whole pitch, and it's the reason the Lance release thread reacted the way it did: open-weight text-guided editing that isn't a fussy multi-node ritual.
The mechanism is worth knowing because it explains the node's shape. Editing in Lance is framed as a generation task where the input image is part of the prompt. The node builds the official image_edit data format - an interleaved sequence of [prompt, image, image] where the first two elements are conditioning and the last is the target it must regenerate as the edit. It writes your ComfyUI image tensor to a temp PNG, feeds it through the same validate_on_fixed_batch path as the official CLI, and decodes the result back to an IMAGE. You get one output: image.
What you set
- image - any IMAGE from Load Image or anything upstream. Unlike the text-to-image node, there's no width/height validation here; arbitrary sizes get padded to the Wan VAE's 16-pixel stride at runtime and returned at their padded size.
- prompt - describe the change in plain language. This is the whole edit; be specific about what stays and what changes.
- num_timesteps (30), timestep_shift (3.5), cfg_text_scale (4.0) - the same official flow-matching defaults as every other node in the pack. CFG is the one you might nudge: edits can overcook at 4.0 if the change is small, so dropping toward 2.5–3 for light touch-ups is a common move.
- seed - 42 default, -1 for random.
Wiring and variant
[Lance Model Loader (lance_3b)] → [Load Image] → [Lance Image Edit] → [Save Image]
The image variant (lance_3b) is the one for this task. Output dimensions follow your input, so there's no upscaling surprise - an input is returned at roughly the same resolution.
Where it's genuinely useful
Where people actually reach for this: quick concept swaps, relighting, background or weather changes, and "unified" workflows where the same loaded model does generation, editing, and captioning without swapping checkpoints. It's not a precision tool - you don't get regional control, so edits that need surgical changes will still want a detailer or masked inpaint downstream. And the 40GB VRAM floor from the rest of this pack applies; if that's a problem, the low-VRAM comfyui-lance-aio port runs the same edit task with dynamic offloading. For everyone with the card to run it, this is the closest thing to "describe the change, get the change" you'll find in local ComfyUI.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | LANCE_MODEL | — | |
| image | IMAGE | — | |
| prompt | STRING | — | |
| num_timesteps | INT | 301–100 | — |
| timestep_shift | FLOAT | 3.50.1–10 | — |
| cfg_text_scale | FLOAT | 4.01–10 | — |
| seed | INT | 42-1–4294967295 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |