Generated reference · ComfyUI workflow · Utility & post

AI Style Transfer

Transfer artistic styles between images using neural style transfer and AI-powered image transformation

Utility & post15nodesGPU A5000out image~60sv1.0.0

On this page
15Graph nodes
13Node classes
11Inputs
4Models

Tags: utilitystyle-transferartistictransformationneural-style

Inputs (11)#

The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.

content_imageimagerequired
Image to apply style to
style_sourceenumdefault preset_style
Source of style to transfer
options: preset_stylecustom_imagetext_description
preset_styleenumdefault impressionist
Preset artistic style
options: impressionistexpressionistcubistart_nouveauwatercoloroil_paintingukiyo_epop_artsurrealistbaroquerenaissancevisionarysacred_artpsychedelicminimalistabstract
style_imageimage
Custom style reference image
style_descriptionstringdefault
Text description of desired style
style_strengthenumdefault moderate
Strength of style application
options: subtlemoderatestrongextreme
content_preservationenumdefault medium
How much original content to preserve
options: highmediumlow
color_transferenumdefault full
Transfer colors from style source
options: fullpartialnone
detail_levelenumdefault medium
Level of detail in style transfer
options: coarsemediumfine
seedintegerdefault -1
Random seed
checkpointenumdefault dreamshaper_8
SD1.5 checkpoint: DreamShaper 8 finetune (default, baked VAE) or base 1.5
options: dreamshaper_8sd15_base

ComfyUI node graph (15)#

The executable ComfyUI prompt graph: 15 nodes across 13 distinct node classes, wired by 21 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.

flowchart TD n0["1: LoadImage"] n1["2: LoadImage"] n2["3: CheckpointLoaderSimple"] n3["4: IPAdapterUnifiedLoader"] n4["5: IPAdapter"] n5["6: CLIPTextEncode"] n6["7: CLIPTextEncode"] n7["8: VAEEncode"] n8["9: ControlNetLoader"] n9["10: LineArtPreprocessor"] n10["11: ControlNetApply"] n11["12: KSampler"] n12["13: VAEDecode"] n13["14: ColorTransfer"] n14["15: SaveImage"] n2 -->|model| n3 n3 -->|model| n4 n3 -->|ipadapter| n4 n1 -->|image| n4 n2 -->|clip| n5 n2 -->|clip| n6 n0 -->|pixels| n7 n2 -->|vae| n7 n0 -->|image| n9 n5 -->|conditioning| n10 n8 -->|control_net| n10 n9 -->|image| n10 n4 -->|model| n11 n10 -->|positive| n11 n6 -->|negative| n11 n7 -->|latent_image| n11 n11 -->|samples| n12 n2 -->|vae| n12 n12 -->|content_image| n13 n1 -->|style_image| n13 n13 -->|images| n14 classDef custom fill:#12b886,stroke:#0b6b4f,color:#04110c; class n3,n4,n9,n13 custom;
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (15)#

1LoadImagecore
image = {{content_image}} tmpl
outputs: IMAGEMASK
2LoadImagecore
image = {{style_image}} tmpl
outputs: IMAGEMASK
3CheckpointLoaderSimplecore
ckpt_name = {{checkpoint_files[checkpoint]}} tmpl
outputs: MODELCLIPVAE
4IPAdapterUnifiedLoadercustom pack
model = ◂ node 3 · out[0]preset = PLUS (high strength)
outputs: MODELIPADAPTER
5IPAdaptercustom pack
model = ◂ node 4 · out[0]ipadapter = ◂ node 4 · out[1]image = ◂ node 2 · out[0]weight = {{strength_configs[style_strength].denoise}} tmplstart_at = 0.0end_at = 1.0weight_type = style transfer
outputs: MODEL
6CLIPTextEncodecore
text = {{constructed_prompt}} tmplclip = ◂ node 3 · out[1]
outputs: CONDITIONING
7CLIPTextEncodecore
text = ugly, blurry, low quality, distorted, amateur, poorly made, bad artclip = ◂ node 3 · out[1]
outputs: CONDITIONING
8VAEEncodecore
pixels = ◂ node 1 · out[0]vae = ◂ node 3 · out[2]
outputs: LATENT
9ControlNetLoadercore
control_net_name = control_v11p_sd15_lineart_fp16.safetensors
outputs: CONTROL_NET
10LineArtPreprocessorcustom pack
image = ◂ node 1 · out[0]resolution = 512coarse = disable
outputs: IMAGE
11ControlNetApplycore
conditioning = ◂ node 6 · out[0]control_net = ◂ node 9 · out[0]image = ◂ node 10 · out[0]strength = {{preservation_configs[content_preservation].structure_weight}} tmpl
outputs: CONDITIONING
12KSamplercore
model = ◂ node 5 · out[0]positive = ◂ node 11 · out[0]negative = ◂ node 7 · out[0]latent_image = ◂ node 8 · out[0]seed = {{seed}} tmplsteps = 30cfg = {{strength_configs[style_strength].cfg}} tmplsampler_name = dpmpp_2m_sdescheduler = karrasdenoise = {{strength_configs[style_strength].denoise}} tmpl
outputs: LATENT
13VAEDecodecore
samples = ◂ node 12 · out[0]vae = ◂ node 3 · out[2]
outputs: IMAGE
14ColorTransfercustom pack
content_image = ◂ node 13 · out[0]style_image = ◂ node 2 · out[0]mode = {{color_transfer}} tmpl
outputs: IMAGE
15SaveImagecore
images = ◂ node 14 · out[0]filename_prefix = style_transfer

Prompt construction#

template
artistic style transfer, {style_prompt}{custom_desc}, {detail_level} detail, professional quality, artistic transformation

Variables (3)#

style_prompt
{{preset_style_prompts[preset_style] if style_source == 'preset_style' else ''}} tmpl
custom_desc
{{', ' + style_description if style_source == 'text_description' and style_description else ''}} tmpl
detail_level
{{detail_level}} tmpl

Parameter banks (3)#

The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.

preset_style_prompts (16)#

impressionist
impressionist style, Monet-like, soft brush strokes, light play, color diffusion, plein air painting
expressionist
expressionist style, emotional intensity, bold colors, distorted forms, Van Gogh-like energy
cubist
cubist style, Picasso-like, geometric forms, fragmented perspective, multiple viewpoints
art_nouveau
art nouveau style, flowing organic lines, decorative patterns, Mucha-inspired, elegant curves
watercolor
watercolor painting style, soft washes, color bleeding, translucent layers, wet on wet
oil_painting
oil painting style, rich textures, visible brush strokes, classic technique, impasto
ukiyo_e
ukiyo-e style, Japanese woodblock print, flat colors, bold outlines, Hokusai-inspired
pop_art
pop art style, Warhol-like, bold colors, halftone dots, commercial aesthetic, bright
surrealist
surrealist style, Dalí-like, dreamlike, impossible combinations, subconscious imagery
baroque
baroque style, dramatic lighting, rich details, Caravaggio-inspired, chiaroscuro
renaissance
renaissance style, classical composition, realistic proportions, sfumato technique
visionary
visionary art style, Alex Grey-inspired, sacred geometry, consciousness imagery, mystical
sacred_art
sacred art style, religious iconography, gold leaf, devotional imagery, traditional
psychedelic
psychedelic art style, vibrant colors, flowing patterns, mind-expanding visuals
minimalist
minimalist style, simple forms, limited palette, clean lines, essential elements
abstract
abstract style, non-representational, pure form and color, emotional expression

strength_configs (4)#

subtle
{"denoise": 0.4, "cfg": 6.0}
moderate
{"denoise": 0.6, "cfg": 7.5}
strong
{"denoise": 0.75, "cfg": 9.0}
extreme
{"denoise": 0.9, "cfg": 11.0}

preservation_configs (3)#

high
{"structure_weight": 0.8}
medium
{"structure_weight": 0.5}
low
{"structure_weight": 0.2}

Models & dependencies#

Custom node packs (4)#

The non-core ComfyUI node classes this graph requires; the RunPod worker image the workflow runs on must bake or install a pack that provides every one of them.

ColorTransferIPAdapterIPAdapterUnifiedLoaderLineArtPreprocessor

Checkpoint aliases (2)#

dreamshaper_8
DreamShaper_8_pruned.safetensors
sd15_base
v1-5-pruned-emaonly.safetensors

Models required (4)#

DreamShaper_8_pruned.safetensors
control_v11p_sd15_lineart_fp16.safetensors
ip-adapter-plus_sd15.safetensors
v1-5-pruned-emaonly.safetensors

Output contract#

What a successful run of this workflow returns.

type
image
format
png
description
Style-transferred image

Taxonomy & 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.

assetFamily
mkt-brand-style-lock-template-pack
outputPackageProfile
image-single-profile
controlModalities
camera-lockcolor-script-lockdepth-constraintidentity-adapteripadapter-compositionipadapter-stylelatent-reusemodel-lockpalette-lockpose-constraintprompt-template-lockreference-ensemblesampler-scheduler-lockscene-lockseed-lockstyle-anchor +3 more
consistencyDimensions
lightingcolor-script
notes
Auto-mapped from utility defaults