Nodes/Shima/Shima Photo Remix
ComfyUI Node

Shima Photo Remix

Img2img that respects your seed sync and gives you a second latent

By KDB-USJP·Created 6 months ago·Updated 6 months ago· 2
Shima Photo Remix
  • image
  • positive
  • negative
  • model
  • vae
  • shima.commonparams
  • modelcitizen.bndl
  • masterprompt.bndl
  • shima.samplercommons
  • image
  • latent
s33d0
randomizefalse
steps20
cfg8.0
sampler_name
scheduler
denoise0.60
resolution_modeSource
use_commonparamstrue
bucket_width1024
bucket_height1024
allow_external_linkingfalse
show_used_valuesfalse

Shima Photo Remix is the pack's img2img node, and the thing it does differently from a plain "Load Image → VAE Encode → KSampler" chain is resolution handling. You feed it a source image, and it remixes it at a resolution you choose: keep the source size, snap to SDXL buckets, snap to SD 1.5 buckets, or pick a custom bucket. That single decision is where most hand-built img2img graphs quietly go wrong - upscaling or downscaling a source into an off-model aspect ratio produces subtly worse results, and a buckets-aware node does the rounding for you. The default denoise of 0.60 is also a sensible remix starting point: enough to reimagine, not so much that it abandons the source entirely.

The other genuinely useful thing is the seed plumbing. Shima's whole philosophy is that seed should be a shared, external value - their s33d standard - so that every sampler in a workflow draws from the same source and the "control_after_generate" widget clutter disappears. Photo Remix plugs straight into that: wire in shima.commonparams and keep use_commonparams on, and the seed, dimensions, and sampler settings come from the shared Commons bundle. That's how you get a remix that stays in sync with the rest of a multi-stage generation instead of rolling its own seed.

How it works

It's a standard VAE-encode → KSampler → VAE-decode img2img pipeline with a few Shima conventions layered on. Inputs can arrive two ways - as individual wires (positive, negative, model, vae) or as bundles (modelcitizen.bndl, masterprompt.bndl), and the bundles override individual wires when both are present, per the pack's docs. If you leave both unconnected for something it needs, it raises an explicit error naming exactly what's missing - no silent failures. Sampler settings can come from three places with a clear priority: your local widgets, the shima.samplercommons bundle if connected, and shima.commonparams if use_commonparams is on.

The output is two-fold: the remixed image and the latent it was sampled from. That latent output is the part people forget exists - it means you can chain a second pass (a finer CFG, an upscale, a different sampler) directly off the remix's latent instead of re-encoding the image and compounding error.

The inputs that matter

  • image - the source to remix.
  • resolution_mode - Source, SDXL Buckets, SD1.5 Buckets, or Custom (with bucket_width/bucket_height when custom).
  • denoise - remix strength; 0.60 default.
  • s33d, randomize - the seed and its randomization behavior.
  • steps, cfg, sampler_name, scheduler - standard sampling.
  • model, vae, positive, negative - or the equivalent bundles.
  • shima.commonparams, use_commonparams, shima.samplercommons - the sync bundle inputs.

Outputs: image (IMAGE), latent (LATENT).

How to install it

Part of the Shima pack - ComfyUI Manager, search "Shima", or:

cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima

restart. No extra downloads - it uses the models already in your ComfyUI folders.

Common issues & troubleshooting

"No Model provided!" / "No Conditioning provided!" The explicit-error path: neither the individual inputs nor the bundles delivered what it needs. Connect the wires or the matching bundles - Photo Remix refuses to guess.

Remix looks nothing like the source. Denoise too high (or the source was drastically resized by a bucket mode that doesn't match its aspect ratio). Drop denoise toward 0.4–0.5 and pick the resolution mode that matches the source's native shape.

Seed ignores your s33d. If use_commonparams is on and a Commons bundle is wired, the bundle's seed wins by design. Turn the sync toggle off to force the local seed.

CategoryShima/Image

Inputs (22)

NameTypeDefaultDescription
imageIMAGE
s33dINT00–18446744073709550000
randomizeBOOLEANfalse
stepsINT201–10000
cfgFLOAT8.00–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT0.600–1
resolution_modeCOMBOSource4 options: Source, SDXL Buckets, SD1.5 Buckets, Custom
positiveoptCONDITIONING
negativeoptCONDITIONING
modeloptMODEL
vaeoptVAE
shima.commonparamsoptDICTConfiguration bundle from Shima.Commons (overrides settings)
use_commonparamsoptBOOLEANtrueIf True, use settings from Shima.Commons bundle
modelcitizen.bndloptBNDLBundle containing Model, CLIP, and VAE (overrides individual inputs)
masterprompt.bndloptBNDLBundle containing Positive and Negative conditioning (overrides individual inputs)
bucket_widthoptINT102464–8192
bucket_heightoptINT102464–8192
allow_external_linkingoptBOOLEANfalseIf ON, this node broadcasts/receives OUTSIDE the Island (ignores group regex)
show_used_valuesoptBOOLEANfalseShow actual values being used (debug)
shima.samplercommonsoptDICTSampler settings bundle from Shima.SamplerCommons (overrides sampler settings)

Outputs (2)

NameTypeDescription
imageIMAGE
latentLATENT