Canvas extension on SDXL: core ImagePadForOutpaint grows the frame in the chosen direction with a feathered transition mask, and differential diffusion paints coherent new content into the extension at full denoise while the original pixels stay latent-locked
Tags: compositionoutpaintexpandcanvasextensiondifferential diffusion
Inputs (9)#
The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.
source_imageimagerequiredpromptstringrequireddirectionenumdefault allleftrightupdownhorizontalverticalallexpand_pixelsintegerdefault 256min 64max 512featheringintegerdefault 40min 0max 128seedintegerdefault -1stepsintegerdefault 30min 15max 60cfg_scalefloatdefault 7.0min 1.0max 15.0checkpointenumdefault sdxl_baserealvis_xl_v5sdxl_baseComfyUI node graph (11)#
The executable ComfyUI prompt graph: 11 nodes across 10 distinct node classes, wired by 15 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.
Nodes (11)#
1CheckpointLoaderSimplecoreckpt_name = {{checkpoint_files[checkpoint]}} tmplMODELCLIPVAE2LoadImagecoreimage = {{source_image}} tmplIMAGEMASK3ImagePadForOutpaintcoreimage = ◂ node 2 · out[0]left = {{pad_configs[direction].left * expand_pixels}} tmpltop = {{pad_configs[direction].top * expand_pixels}} tmplright = {{pad_configs[direction].right * expand_pixels}} tmplbottom = {{pad_configs[direction].bottom * expand_pixels}} tmplfeathering = {{feathering}} tmplIMAGEMASK4CLIPTextEncodecoretext = {{prompt}} tmplclip = ◂ node 1 · out[1]CONDITIONING5CLIPTextEncodecoretext = ugly, deformed, blurry, low quality, watermark, text, signature, visible seam, frame, border, repeated edgeclip = ◂ node 1 · out[1]CONDITIONING6VAEEncodecorepixels = ◂ node 3 · out[0]vae = ◂ node 1 · out[2]LATENT7SetLatentNoiseMaskcoresamples = ◂ node 6 · out[0]mask = ◂ node 3 · out[1]LATENT8DifferentialDiffusioncoremodel = ◂ node 1 · out[0]MODEL9KSamplercoremodel = ◂ node 8 · out[0]positive = ◂ node 4 · out[0]negative = ◂ node 5 · out[0]latent_image = ◂ node 7 · out[0]seed = {{seed}} tmplsteps = {{steps}} tmplcfg = {{cfg_scale}} tmplsampler_name = dpmpp_2m_sdescheduler = karrasdenoise = 1.0LATENT10VAEDecodecoresamples = ◂ node 9 · out[0]vae = ◂ node 1 · out[2]IMAGE11SaveImagecoreimages = ◂ node 10 · out[0]filename_prefix = outpaint_expandParameter banks (1)#
The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.
pad_configs (7)#
left{"left": 1, "right": 0, "top": 0, "bottom": 0}right{"left": 0, "right": 1, "top": 0, "bottom": 0}up{"left": 0, "right": 0, "top": 1, "bottom": 0}down{"left": 0, "right": 0, "top": 0, "bottom": 1}horizontal{"left": 1, "right": 1, "top": 0, "bottom": 0}vertical{"left": 0, "right": 0, "top": 1, "bottom": 1}all{"left": 1, "right": 1, "top": 1, "bottom": 1}Models & dependencies#
Checkpoint aliases (2)#
realvis_xl_v5RealVisXL_V5.0_fp16.safetensorssdxl_basesd_xl_base_1.0.safetensorsModels required (2)#
RealVisXL_V5.0_fp16.safetensorssd_xl_base_1.0.safetensorsOutput contract#
What a successful run of this workflow returns.
typeimageformatpngchannels4Taxonomy & routing#
How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.
assetFamilycanvas-extended-stilloutputPackageProfileimage-single-profilecontrolModalitiescontrolnet-inpaintmodel-lockseed-locklatent-reuseconsistencyDimensionsenvironmentlightingnotesCore ImagePadForOutpaint with feathered differential-diffusion fill.