- Qwen Image Edit upgraded to the 2509 model (qwen_image_edit_2509_fp8_e4m3fn)
with TextEncodeQwenImageEditPlus multi-image conditioning; old 2508/2509
pairs removed.
- New Z-Image base example (z_image_bf16, Example_25 input) using default
LanPaint parameters (NumSteps 5, Lambda 5.0, StepSize 0.2, Friction 15);
old turbo/base pairs removed.
- Renamed the converted examples to the *_EncodeDecode_Inpaint convention
(fresh names force the workflow gallery to reload them) and generated
preview jpgs from the test run outputs; superseded old pairs removed,
Qwen_Image_Outpaint and wan2_2_T2I_Partial kept as distinct use cases.
- Fixed the Qwen Image example mask reference: Example_12's file has no
alpha channel (it is an output example), so it now points at Example_13's
masked input (7).
- Repositioned the ImageEncode/ImageDecode nodes next to the sampler in all
converted workflows (the conversion agents had placed them far off-canvas).
- SD3.5 and HiDream examples removed on request.
- Example_29 now ships the H3 masked input video and the inpainted output
video (InPainted_Drag_Me_to_ComfyUI.mp4).
Mask-in-video (the masks now travel with the video file):
- New videometa module: write/read a JSON payload under the lanpaint-mask
mp4 metadata tag via PyAV (stream copy, movflags=use_metadata_tags), so
exporting produces a NEW file and the source is never modified.
- Two server routes: GET /lanpaint/video_mask_meta (read the payload back)
and POST /lanpaint/export_mask_video (remux into input/<base>_masked.mp4).
- The mask editor exports the painted keyframes (base64 PNGs) + audio
intervals into the video; loading a video with the tag auto-restores the
masks (editor and node preview). A video without the tag clears the
workflow's masks - the video is the source of truth. The export also
offers a native save dialog (showSaveFilePicker) when available.
- The video widget upload now uses video_upload so MP4s are selectable in
the file chooser (was image_upload).
- LanPaint_ImageEncode accepts 5D latents from video VAEs encoding a single
image (e.g. the Hunyuan video VAE) - fixes the Hunyuan example.
Example set conversion (one example per supported model, new files, old
pairs removed after being superseded):
- New *ImageEncode/*EncodeDecode example workflows for SDXL, Flux.1,
Flux.2 Dev, Flux2 Klein, SD3.5, Hunyuan, Ideogram4, Krea2, Qwen Edit,
Qwen Image, Z-Image, Wan 2.2 and MiniMax H3 (AV), all using
LanPaint_ImageEncode/ImageDecode instead of VAEEncode +
SetLatentNoiseMask + VAEDecode + MaskBlend; every example references its
own example folder's masked input (hash-verified); preview jpgs generated
from the test runs; the H3 example ships its output mp4 as a preview.
- HiDream example removed on request; Example_29 added with the H3 masked
input video.
Fixes along the way: normalize node input.link/output.links fields against
the links arrays in all converted workflows (the frontend renders
null-link nodes as disconnected); stale Inpainting_mode widget removed from
the Flux.2 sampler; Lambda defaults 5.0 (first-order scheme); torchaudio
resample test assertion relaxed (edge ringing); the videometa tests updated
to the final export signature.
- Add Krea2 banner, example section, and documentation to README
- Add new Example_28 with Krea2 LanPaint KSampler workflow
- Add workflow JSON and preview to example_workflows/
- Add Ideogram4 banner, example section, and documentation to README
- Add new Example_27 with Ideogram4 LanPaint Custom Sampler Advanced workflow
- Add workflow JSON to example_workflows/
- Fix widgets_values in Example_23 and Example_24 InPainted images
Add Anima (Example_26) inpainting/outpainting support: update README with Anima example and changelog entry, add three example images (Original, Masked, Inpainted). Modify example_workflows/Qwen_Image_Inpaint.json to restructure and extend the node graph (add VAE/encode/decode, mask/image scaling/conversion, mask blending, updated links and node ids) and bump frontendVersion/node metadata for compatibility. Update .gitignore to ignore Claude-related files. Replace the Example_13 inpainted image binary with an updated version.
Added a new image inpainting example for Flux 2 Klein, including workflow JSON, sample images (original, masked, inpainted), and updated README with documentation and links. This provides users with a reference workflow and visual results for the Flux 2 Klein model.
Added new example workflows for Hunyuan, including images and JSON workflow files. Updated README with Hunyuan T2I inpainting instructions and links. Increased default LanPaint step size to 0.2 in nodes and advanced sampler, and refactored scale_latent_inpaint logic in lanpaint.py for improved compatibility.
Refactored LanPaint to dynamically handle tensors with varying numbers of dimensions by introducing add_none_dims and remove_none_dims utility methods. Updated all relevant tensor broadcasting to use these methods, improving flexibility. Also fixed reshape_mask in nodes.py to use the last two dimensions for resizing, ensuring correct mask shape.