Commit Graph

858 Commits

Author SHA1 Message Date
huangfeice 5260e18cdf Add JoyImageEdit native model support
JoyImageEdit is an image-edit diffusion transformer from JD (jd-opensource),
Apache 2.0. This adds native ComfyUI support so it loads and runs like other
edit models (load checkpoint -> TextEncode + ReferenceLatent -> KSampler ->
VAEDecode), with no diffusers dependency.

Architecture:
- Transformer (comfy/ldm/joyimage/model.py): dual-stream (img/txt) DiT with a
  Conv3d patch embed (patch_size [1,2,2]), Wan-style learnable modulation,
  and 3D RoPE (rope_dim_list [16,56,56]). All attention goes through
  comfy.ldm.modules.attention.optimized_attention.
- Text encoder (comfy/text_encoders/{qwen3_vl,joyimage}.py): a reusable
  Qwen3-VL multimodal stack (vision tower + LM) in qwen3_vl.py, plus a thin
  JoyImage-specific layer (prompt templates, drop_idx, tokenizer, te() factory)
  in joyimage.py that depends on it. text_dim 4096.
- VAE: reuses the existing Wan 2.1 latent format (AutoencoderKLWan), no new
  latent format.
- Edit conditioning: reuses the reference_latents mechanism. Reference and
  noise latents are stacked on a new n-slot dimension and rotated at the model
  boundary (model_base.JoyImage), so the transformer stays 5D-in/5D-out.
  Guidance-rescale is built into the CFG path.

Model wiring:
- model_base.JoyImage uses ModelType.FLOW with sampling_settings
  multiplier=1000 (the time embedding is trained on t in [0,1000]) and
  shift=1.5; FLOW's linear time_snr_shift matches the diffusers
  FlowMatchEuler sigma schedule.
- model_detection sniffs the transformer state-dict (double_blocks.*,
  condition_embedder.*, 5D img_in Conv3d) to route image_model="joyimage".
- supported_models.JoyImage and the CLIPLoader "joyimage" type register it.

User-facing node TextEncodeJoyImageEdit (comfy_extras/nodes_joyimage.py)
bucket-resizes the input image to the nearest 1024-base bucket, encodes the
prompt with the image, and emits both the conditioning and the bucketed image
so the same pixels feed VAEEncode and the negative encode (JoyImage requires
noise and reference latents to share spatial dims).
2026-06-17 18:53:36 +08:00
Alexis Rolland ca1622ca24
chore: Update nodes categories (CORE-263) (#14460) 2026-06-17 08:33:09 +08:00
Jukka Seppänen fc964047e7
feat: Support text generation with Qwen3-VL (CORE-276) (#14298) 2026-06-17 08:12:44 +08:00
Maksim d38ea29d62
Add the checkbox to disable head drawing in node SDPoseDrawKeypoints (#14446) 2026-06-16 16:21:04 +08:00
Alexis Rolland a439dcae07
Update nodes titles (#14417) 2026-06-16 11:42:00 +08:00
Alexander Piskun fe54b5e955
Add 10-bit video support (#14452)
Create Video gets a bit_depth option (8-bit/10-bit); the selected depth is carried by the video and applied when it gets encoded. Save Video and Video Slice now keep the source bit depth instead of always quantizing to 8-bit, so 10-bit videos stay 10-bit. 10-bit uses h264 with the yuv420p10le pixel format,so there's no new codec or container.

Signed-off-by: bigcat88 <bigcat88@icloud.com>
2026-06-13 16:05:25 +03:00
comfyanonymous 10d466b0e3
Don't crash when using flux kv cache with split batches. (#14422) 2026-06-11 16:38:06 -07:00
Jukka Seppänen b97e60fc6b
Fix SCAIL-2 reference mask background convention (#14415) 2026-06-11 16:17:04 +08:00
Kohaku-Blueleaf f350acdf21
[Trainer/bug] Ensure model is not inference mode (CORE-72) (#13400)
* Ensure model is not inference mode

* force clone inside training mode to avoid inference tensor

* Allow force deepcopy for model patcher
2026-06-09 23:07:47 -04:00
Talmaj 5ece24e73c
Depth anything 3 (Core-135) (#13853)
Co-authored-by: Alexis Rolland <alexisrolland@hotmail.com>
2026-06-10 09:28:24 +08:00
Jukka Seppänen f8e51b674c
feat: Add Bernini-R model support (Wan video) (CORE-279) (#14216) 2026-06-10 07:47:34 +08:00
Kohaku-Blueleaf ad564899d3
Ensure conditions are not trainable to avoid bugs (#14368) 2026-06-09 15:55:29 -04:00
Alexis Rolland 9fc6f5f6dd
Move bg_removal_model input socket to first position for nicer display (#14353) 2026-06-09 23:36:56 +08:00
Jukka Seppänen 184009c2f6
feat: Add model support for SCAIL-2 (#14373)
* initial SCAIL2 support
2026-06-09 18:24:09 +03:00
comfyanonymous 00b633f368
Revert "Add SeedVR2 support (CORE-6) (#14110)" (#14359)
This reverts commit 7863cf0e53.
2026-06-08 18:00:20 -04:00
Silver a1c434eb65
Improve ResolutionSelector (#14309) 2026-06-09 01:05:10 +08:00
Jukka Seppänen fc258b10e5
Add Color primitive (#14260) 2026-06-09 00:30:28 +08:00
John Pollock 7863cf0e53
Add SeedVR2 support (CORE-6) (#14110) 2026-06-08 18:15:05 +08:00
Terry Jia ea36cb16d6
feat(3d): reorder Preview3DAdvanced / PreviewGaussianSplat / PreviewPointCloud inputs and outputs (#14308) 2026-06-05 19:01:57 -07:00
Terry Jia a65a5464c7
BE-1172 fix(3d): save Preview3DAdvanced / PreviewGaussianSplat / PreviewPointCloud to temp/, rename viewport input (#14294) 2026-06-05 14:18:41 -07:00
Terry Jia 2ef2cf1a7c
feat: add PreviewGaussianSplat + PreviewPointCloud nodes (#14194) 2026-06-05 12:30:58 -07:00
Jukka Seppänen 5aa71b9bc2
Enable cfg1 optimization for DualModelGuider with CFGGuider (#14290)
* Enable cfg1 optimization for DualModelGuider

* Fix CFG Override tooltip
2026-06-05 10:04:10 +03:00
Alexis Rolland ab0d8a9203
Consolidate audio nodes into SaveAudioAdvanced node (CORE-202) (#13871) 2026-06-04 19:29:41 -07:00
Alexander Piskun 4f99ce0f8c
[Partner Nodes] fix SaveWEBM node to save alpha channel; add BriaTransparentVideoBackground Partner node (#14257) 2026-06-03 16:05:48 -07:00
Yousef R. Gamaleldin 7758b9b321
fix: Image grid bug fix (CORE-215) (#14100) 2026-06-03 16:03:32 -07:00
comfyanonymous f69225df24
Mark DualModelGuider as experimental (#14262) 2026-06-03 08:55:18 -07:00
Jukka Seppänen 24f9a020ce
Support Ideogram4 (#14259) 2026-06-03 08:41:44 -07:00
Jukka Seppänen dc10c0133e
PiD: Add SDXL and QwenImage (#14240) 2026-06-02 12:40:49 -07:00
person4268 c96fcddb81
Radiance: support variant with nonzero txt_ids (#14206) 2026-06-01 22:07:48 -07:00
vidigoat 33799c4a2e
Fix uncaught OverflowError in Math Expression node for large int results (#14214) 2026-06-01 18:15:04 -07:00
comfyanonymous 4b48535a7d
Do tripo dinov3 inference in fp32. (#14221) 2026-06-01 18:08:20 -07:00
comfyanonymous 06b710aa68
Fix issue with triposplat preview and old offloading mode. (#14218) 2026-06-01 14:35:52 -07:00
Jukka Seppänen 462c27fdb2
feat: Add TripoSplat support (#14210) 2026-06-01 07:01:50 -07:00
Jukka Seppänen c37d2a0dac
feat: Add gaussian splat nodes (#14190) 2026-05-31 11:47:29 -07:00
Terry Jia 08e93a31a3
feat: add Preview3DAdvanced node (#14175)
Co-authored-by: Alexis Rolland <alexisrolland@hotmail.com>
2026-05-30 17:57:36 -04:00
Terry Jia e7214d78ee
feat: add model_info output to Load3D node (#14144) 2026-05-29 00:06:00 -07:00
Charles Chan 6ceec29bd1
feat: add overwrite/increment to SaveImageTextDataSetToFolderNode (#13215) 2026-05-28 10:12:04 -07:00
Terry Jia be06873d9b
Make Load3D model_file optional by adding "none" choice (#13379) 2026-05-27 23:16:28 -07:00
Alexis Rolland 174208df6b
chore: Update nodes categories (#14145)
* Move dataset/text nodes to text category

* Rename category utils into utilities

* Rename category api node into partner

* Move categories conditioning, latent, sampling, model_patches, training, etc. under model category

* Dispatch partner nodes in to 3d, audio, image, text, video categories

* Move PreviewAny node to utilities category
2026-05-27 20:43:33 -04:00
Alexander Piskun b1cba6f4e6
convert nodes_lt_upsampler nodes to V3 schema (#12423) 2026-05-27 11:11:43 -07:00
Barish Ozbay 2072d3e46d
fix: Stop LTXVCropGuides leaving stray latent frames when guides share a start position (#13882) 2026-05-26 19:59:32 -07:00
Jukka Seppänen 28f4ef277c
feat: Support NVIDIA PixelDiT and PiD (CORE-201) (#14103) 2026-05-26 17:50:14 -07:00
Jukka Seppänen 41812fa0ac
feat: Microsoft Lens support (CORE-248) (#14077) 2026-05-25 23:01:51 -07:00
Jedrzej Kosinski 88956e77af
multigpu: use unet_manual_cast for SelectModelDevice compute dtype (#14108) 2026-05-25 20:03:37 -07:00
comfyanonymous da49b7d0b6
Remove useless annotations imports. (#14105) 2026-05-25 19:23:29 -07:00
Jedrzej Kosinski 0a2dd86e78
MultiGPU Work Units For Accelerated Sampling (CORE-184) (#7063) 2026-05-25 18:26:40 -07:00
comfyanonymous 0077d78cbf
Save Image advanced node (CORE-32) (#13850) 2026-05-24 23:01:34 -04:00
Alexis Rolland 93888ae8e3
Move logic nodes into utils category (#14033) 2026-05-22 13:32:08 +08:00
Pauan 38ebc19037
Adding in And, Or, and Not nodes. (#14004) 2026-05-22 11:01:12 +08:00
Alexis Rolland 4259a0c7c3
Update MoGe nodes display names, search aliases and descriptions (#14030) 2026-05-21 16:50:09 +08:00