Blend two input images into a new image with this LoRA for Qwen Image Edit.
Compatibility
Trained on Qwen Image Edit 2509. Also compatible with Qwen Image Edit 2511, which was used to generate the sample images.
Usage
Trigger phrase: blend images
Workflow: https://drive.google.com/file/d/1aLnslU-cfIwjEGmcQZSy9Ryl3BdaZiVO/view?usp=sharing
You can adjust the LoRA strength. For best results, keep the sampler settings provided in the workflow.
Limitations
Output quality can vary considerably with the output resolution, aspect ratio, and the relative positions of elements in the two input images. This is an experimental release trained on 11 image sets, with room for further improvement.
日本語
このLoRAは「一枚目の画像と二枚目の画像をブレンドして新規の画像を出力する」Qwen image edit 2509モデルをベースに制作したloRAです。
2511モデルでも使用できます。サンプルは2511で出力しています。
アウトプットの解像度やアスペクト比、入力画像同士の要素の離れ方によって出力のクオリティにかなり差が出ます。
11種類のセット画像で学習させており、まだまだ改善の余地がありますが、一旦配布します。ワークフローは
https://drive.google.com/file/d/1aLnslU-cfIwjEGmcQZSy9Ryl3BdaZiVO/view?usp=sharing
こちらを使用して下さい。LoRAの強度はいじっても良いですが、サンプラーのパラメータはいじらないほうが良いです。
Description
FAQ
Comments (2)
THis is a fantastic lora thank you
most recent swarmui/comfui update seems to have broken the workflow, now I am getting the error
# ComfyUI Error Report ## Error Details - Node ID: 3 - Node Type: KSampler - Exception Type: TypeError - Exception Message: TypeError: GGMLOps.Linear.forward_ggml_cast_weights() got an unexpected keyword argument 'input_act' ## Stack Trace ``` File "G:\SwarmUI\dlbackend\comfy\ComfyUI\execution.py", line 548, in execute output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\execution.py", line 353, in get_output_data return_values = await asyncmap_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\execution.py", line 327, in asyncmap_node_over_list await process_inputs(input_dict, i) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\execution.py", line 315, in process_inputs result = f(**inputs) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\nodes.py", line 1632, in sample def sample(self, model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=1.0): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\nodes.py", line 1596, in common_ksampler disable_pbar = not comfy.utils.PROGRESS_BAR_ENABLED ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ denoise=denoise, disable_noise=disable_noise, start_step=start_step, last_step=last_step, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\sample.py", line 82, in sample samples = sampler.sample(noise, positive, negative, cfg=cfg, latent_image=latent_image, start_step=start_step, last_step=last_step, force_full_denoise=force_full_denoise, denoise_mask=noise_mask, sigmas=sigmas, callback=callback, disable_pbar=disable_pbar, seed=seed) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1463, in sample return sample(self.model, noise, positive, negative, cfg, self.device, sampler, sigmas, self.model_options, latent_image=latent_image, denoise_mask=denoise_mask, callback=callback, disable_pbar=disable_pbar, seed=seed) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1353, in sample return cfg_guider.sample(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1335, in sample output = executor.execute(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed, latent_shapes=latent_shapes) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\patcher_extension.py", line 113, in execute return self.original(*args, **kwargs) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1262, in outer_sample output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed, latent_shapes=latent_shapes) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1237, in inner_sample samples = executor.execute(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\patcher_extension.py", line 113, in execute return self.original(*args, kwargs) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1005, in sample samples = self.sampler_function(model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar, self.extra_options) File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\utils\_contextlib.py", line 124, in decorate_context return func(*args, **kwargs) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\k_diffusion\sampling.py", line 205, in sample_euler denoised = model(x, sigma_hat s_in, *extra_args) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 640, in call out = self.inner_model(x, sigma, model_options=model_options, seed=seed) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1208, in call return self.outer_predict_noise(*args, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1215, in outer_predict_noise ).execute(x, timestep, model_options, seed) ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\patcher_extension.py", line 113, in execute return self.original(*args, **kwargs) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 1218, in predict_noise return sampling_function(self.inner_model, x, timestep, self.conds.get("negative", None), self.conds.get("positive", None), self.cfg, model_options=model_options, seed=seed) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 620, in sampling_function out = calc_cond_batch(model, conds, x, timestep, model_options) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 211, in calc_cond_batch return calccond_batch_outer(model, conds, x_in, timestep, model_options) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 219, in calccond_batch_outer return executor.execute(model, conds, x_in, timestep, model_options) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\patcher_extension.py", line 113, in execute return self.original(*args, kwargs) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\samplers.py", line 335, in calccond_batch output = model.apply_model(input_x, timestep_, c).chunk(batch_chunks) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\model_base.py", line 210, in apply_model return comfy.patcher_extension.WrapperExecutor.new_class_executor( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...<2 lines>... comfy.patcher_extension.get_all_wrappers(comfy.patcher_extension.WrappersMP.APPLY_MODEL, transformer_options) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ).execute(x, t, c_concat, c_crossattn, control, transformer_options, **kwargs) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\patcher_extension.py", line 113, in execute return self.original(*args, kwargs) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\model_base.py", line 254, in applymodel model_output = self.diffusion_model(xc, t, context=context, control=control, transformer_options=transformer_options, extra_conds) File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1778, in wrappedcall_impl return self._call_impl(*args, **kwargs) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1789, in callimpl return forward_call(*args, kwargs) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\ldm\qwen_image\model.py", line 435, in forward return comfy.patcher_extension.WrapperExecutor.new_class_executor( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...<2 lines>... comfy.patcher_extension.get_all_wrappers(comfy.patcher_extension.WrappersMP.DIFFUSION_MODEL, transformer_options) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ).execute(x, timestep, context, attention_mask, ref_latents, additional_t_cond, transformer_options, kwargs) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\patcher_extension.py", line 113, in execute return self.original(*args, **kwargs) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\ldm\qwen_image\model.py", line 542, in forward encoderhidden_states, hidden_states = block( ~~~~~^ hidden_states=hidden_states, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<5 lines>... transformer_options=transformer_options, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1778, in wrappedcall_impl return self._call_impl(*args, **kwargs) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1789, in callimpl return forward_call(*args, **kwargs) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\ldm\qwen_image\model.py", line 284, in forward img_mod_params = self.img_mod(temb) File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1778, in wrappedcall_impl return self._call_impl(*args, **kwargs) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1789, in callimpl return forward_call(*args, **kwargs) File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\container.py", line 253, in forward input = module(input) File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1778, in wrappedcall_impl return self._call_impl(*args, **kwargs) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1789, in callimpl return forward_call(*args, **kwargs) File "G:\SwarmUI\dlbackend\comfy\ComfyUI\comfy\ops.py", line 594, in forward return self.forward_comfy_cast_weights(input, input_act=input_act, act_weight=act_weight, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ residual=residual, residual_scale=residual_scale) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\SwarmUI\dlbackend\comfy\ComfyUI\custom_nodes\ComfyUI-GGUF-H3-main\ops.py", line 248, in forward_comfy_cast_weights out = self.forward_ggml_cast_weights(input, args, *kwargs) ```



