Releases: Sxela/VibeWarp
Release list
v0.6.0 — Gradient guidance, multiscale sampling, U-Net acceleration
Gradient guidance is back on the render path, alongside multiscale sampling and two
opt-in U-Net speedups.
Gradient guidance
WarpFusion's guidance now steers sampling toward a temporal target, independently of the
img2img init (which stays the warp + consistency composite):
- Pixel guidance —
init_scale(try1000), an LPIPS + MSE loss against the guidance
target in pixel space. - Latent guidance —
init_latent_scale(try100), an MSE loss in latent space. guidance_modepicks the target: previous warped frame, with or without the
consistency mask, the raw init, and so on.clamp_grad/clamp_maxclamp the gradient by RMS so a large scale does not blow
the frame out.guidance_add_noise/guidance_use_start_codenoise the target to the sampler's
current sigma, reusing one noise tensor and preserving the notebook's RNG order.
LPIPS moved out of the optional [sched] extra into the core dependencies — core guidance
needs it now. [sched] still exists so nothing breaks, but it is empty.
Multiscale sampling
sampler_scale_schedule maps a sampling step to a percentage of the final latent
resolution. Early steps can evaluate the whole frame cheaply and later steps run at full
resolution. sampler_scale_min_size sets a pixel floor for the longest side, so coarse
passes stay at or above the model's trained resolution (512 for SD1.5).
Below 100% the U-Net sees the whole downscaled frame and tiling is deliberately disabled;
at 100% the normal tiled path takes over. The sampler latent itself is always full
resolution.
U-Net acceleration (opt-in)
unet_cache offers two strategies, both resetting their state every frame:
- DeepCache — reuses the expensive inner U-Net branch on intermediate denoiser
evaluations, everyunet_cache_intervalsteps. - First Block Cache — reuses a previous output when the first encoder block moves less
thanunet_cache_thresholdrelative to the last one.
compile_unet separately torch.compiles the unified U-Net, the active ControlNets, and
the VAE encode/decode paths. It is opt-in because every new multiscale/tile/VAE shape may
trigger another graph compile; Inductor artifacts persist under .vibewarp_cache.
Per-part pose detection
OpenPose and DWPose now expose pose_include_body, pose_include_hand, and
pose_include_face, controlling which keypoint sets are detected and drawn.
Fixes
- SDXL text encoder on newer
open_clipbuilds whose attention modules are
batch-first — the unconditional NLD→LND permute produced silently wrong conditioning. - IP-Adapter
composition preciseweight type, matching the current ComfyUI
IPAdapter Plus layer map. - The UI launchers (
run-ui.bat/run-ui.sh) now reinstall dependencies when an
existing environment predates a required package, such astorchsdefor the DPM++ SDE
samplers.
As always: parity-validated coverage and what is implemented-but-unverified are tracked in
docs/roadmap.md. The features
in this release are covered by the CPU test suite but have not been through GPU parity
validation against the notebook.
Full changelog: v0.5.0...v0.6.0
v0.5.0 — IP-Adapter catalog & editor
Since 0.4.0
IP-Adapter, properly surfaced. A canonical IP-Adapter model catalog
(vibewarp/ipadapter_catalog.py) now drives a dedicated IP-Adapter editor in the UI, on the
SD1.5 / SDXL render path. The correct image encoder — ViT-H or ViT-bigG — is selected from
the adapter itself, and a WarpFusion settings import discovers the clip_vision directory
automatically. See
IP-Adapter setup.
One-command IP-Adapter downloads with resume-on-interrupt:
download-ipadapter-models.sh / .bat (regular and Plus variants). The existing Qwen and
Mage fetchers gained .bat equivalents too, so Windows has parity with Linux/macOS.
History view. Filters for the run list, plus relative-keyframe handling.
Every new module ships with tests. Full diff:
v0.4.0...v0.5.0
v0.4.0 — Qwen Image Edit & Mage-Flow Edit
Since 0.3.0
Two more ComfyUI-backed edit models, joining FLUX.2 Klein and HiDream. All four are HTTP
clients to an external ComfyUI — nothing is vendored.
Qwen Image Edit 2511. INT8 ConvRot diffusion model + Qwen 2.5 VL encoder + Qwen image
VAE + the default LightX2V 8-step Lightning LoRA (model_version="qwen_image_edit_2511"),
plus a lower-VRAM Q5_K_M GGUF variant (qwen_image_edit_2511_gguf, via ComfyUI-GGUF).
Mage-Flow Edit (Microsoft, 4B). INT8 ConvRot transformer + Qwen3-VL 4B encoder + Mage
VAE, in a 30-step RL-aligned variant (mage_flow_edit) and a 4-step distilled one
(mage_flow_edit_turbo).
Unified Reference Images editor. FLUX.2, HiDream, Qwen and Mage now share one ordered
reference-image control: the first image is always present; later images can be raw or
temporal frames, or an uploaded style reference via a drag-and-drop picker.
One-command model fetchers with resume-on-interrupt: download-qwen-image-edit.sh,
download-qwen-convrot.sh, download-mage-flow.sh.
Setup and exact Hugging Face downloads for each backend are in the README and
docs/settings.md. Every
backend ships with tests.
Full diff: v0.3.0...v0.4.0
v0.3.0 — Edit models (FLUX.2 Klein, HiDream)
Since 0.2.0
Edit models — FLUX.2 Klein Edit and HiDream. An instruction-edit render path alongside
the diffusion pipeline, driven by an external ComfyUI backend over HTTP (nothing
vendored). Live progress is relayed back from ComfyUI, and edit references (raw and
unwarped style references) are handled for instruction-style edits.
History & Comparison. Compare settings across runs, seek far faster through a run's
frames, and resume cancelled runs — a partial render is still assembled into a video.
Progress & cancellation. Progress is reported relative to the selected frame range, and
cancellation gives clearer feedback.
UI. Model-compatibility hints and a settings-diff view.
Every new module ships with tests (flux, flux_comfy, hidream, comfy_progress, settings-diff,
model-compatibility). 50 files changed.
Full diff: v0.2.0...v0.3.0
v0.2.0 — Consistency parity, video probing
Since 0.1.0
Consistency-mask / optical-flow parity fix. Corrections to the consistency and flow
handling from the cc-parity work, with tests. The processed consistency mask is now a
selectable layer in the History & Comparison view.
Video probing on input. Selecting an input video reads it on the spot (ffprobe, with an
OpenCV fallback) and shows the source metadata, a first-non-black-frame thumbnail, and — the
point — the exact render size and frame count the run will produce, rather than an
estimate. The frame range is clamped to what the clip actually contains.
Patreon + supporters. A Sponsor button (.github/FUNDING.yml) and a supporters credit
in the render monitor, shown only until the first frame of a session renders.
26 files changed. Full diff: v0.1.0...v0.2.0
v0.1.0 — Initial public release
First public release of VibeWarp — the WarpFusion v0.37 notebook consolidated into an
installable Python package with a Svelte web UI, dependencies vendored rather than
git-cloned at runtime.
Verified against the notebook
Correctness is measured by rendering both sides — VibeWarp and the notebook, in the
notebook's own environment — and comparing frame by frame (mean absolute error per pixel;
0 is byte-identical). These cases are confirmed at parity:
| Case | MAE | |
|---|---|---|
| SD1.5, no ControlNet | 0.0125 | pass |
| SD1.5 + softedge | 0.0116 | pass |
| SD1.5 + tile | 0.017 | |
| SD1.5 + ip2p | 0.018 | |
| SD1.5, full 5-net ControlNet stack | 0.054 | |
| SD1.5 + inpaint | 0.066 | |
| Reconstructed-noise mode (± ControlNet) | 0.044 / 0.075 | |
| AnimateDiff SD1.5, sliding context (notebook default 32/8/16/10) | 0.0147 | |
AnimateDiff SD1.5, seams + reinject_stylized |
0.005–0.013 | tighter than the SD1.5 base |
Also implemented (not yet notebook-verified)
SDXL and SDXL ControlNets, AnimateDiff SDXL/HotshotXL, LORA, IP-Adapter, FreeU, background
masking, captions, content-aware scheduling, softcap, tiled VAE, colormatch, tiled sampler.
These run and produce plausible output; they have no parity test yet. See
docs/roadmap.md for the
honest state and the open work.
Interface
A local web UI (Svelte + FastAPI) and a full CLI that consumes WarpFusion settings files
as-is. Flow-based settings tabs, keyframe editors, and a History & Comparison view for
inspecting past runs layer by layer.
Licensed GPL-3.0; vendored components and their lineage are in
THIRD_PARTY_LICENSES.md.