Extensions/ComfyUI_Seamless_Patten
ComfyUI Extension

ComfyUI_Seamless_Patten

It make any text2image create seamless patten

By moyi7712·Created 2 years ago·Updated 2 years ago· 20
moyi7712/ComfyUI_Seamless_Patten
Nodes4
On cloudLocal install
CategorySeamless
Stars20
Updated2 years ago
Readme

It change UNetModel and VAE Conv2d Layer into circular padding mode that make any text2image process generate seamless patten

2024-6-19 Update:

SeamlessVae Node:

patcher = vae.patcher.clone()
for layer in patcher.model.modules():
    if (isinstance(layer, nn.Conv2d)):
        pre_hook = layer.register_forward_pre_hook(vae_circular_hook_pre)
        hook = layer.register_forward_hook(vae_circular_hook)
        setattr(layer, 'circular_pre_hook', pre_hook)
        setattr(layer, 'circular_hook', hook)
vae.patcher = patcher
vae.first_stage_model = patcher.model

SeamlessKSampler Node:

padding_mode_list = []
for layer in  model.model.diffusion_model.modules():
    if (isinstance(layer, nn.Conv2d)):
        padding_mode_list.append(layer.padding_mode)
        layer.padding_mode = 'circular'

ret =  common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)

ind = 0
for layer in  model.model.diffusion_model.modules():
    if (isinstance(layer, nn.Conv2d)):
        padding_mode_list.append(layer.padding_mode)
        layer.padding_mode = padding_mode_list[ind]
        ind += 1
<div class="image-container"> <img src="./example/workflow.png" alt="workflow example"> <img src="./example/seamless.jpg" alt="Image semless"> <img src="./example/seamless_tile.jpg" alt="Image seamless tile"> </div> <!-- <!DOCTYPE html> <html> <head> <style> .image-container { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; margin: 0px; } .image-container img { flex: 1; width: calc(33.333% - 20px); border: none; object-fit: cover; } </style> </head> <body> <div class="image-container"> <img src="./example/seamless2.png" alt="Image 1"> <img src="./example/seamless2.png" alt="Image 2"> </div> <div class="image-container"> <img src="./example/seamless2.png" alt="Image 3"> <img src="./example/seamless2.png" alt="Image 4"> </div> </body> </html> -->