Generated reference · ComfyUI workflow · chroma

Chroma Image-to-Image

Re-render a source image with a Chroma checkpoint at a chosen denoise strength.

chroma22nodesGPU A5000out image~35sv1.0.0

On this page
22Graph nodes
18Node classes
11Inputs
14Models

Tags: chromarunpod-serverlessvolume-backedimage-to-image

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.

promptstringrequireddefault a close-up photograph of a tiger's eye, intricately detailed fur, natural lighting, sharp focus, highest quality
Positive prompt in natural prose (Chroma responds to descriptive photography language)
negative_promptstringdefault This greyscale unfinished sketch has bad proportions, is featureless and disfigured. It is a blurry ugly mess with excessive gaussian blur, riddled with watermarks and signatures, smudged with leaking colors and nonsensical orientation of objects. Messy and abstract, filled with artifacts that disrupt the coherency of the composition, extreme chromatic aberrations and inconsistent lighting. Dull, monochrome colors and countless artistic errors.
Negative prompt (Chroma is CFG-guided, so this is honoured)
checkpointenumdefault chroma1-hd
Full-precision Chroma checkpoint on the network volume. ungloryhail-bf16 = UnGloryHail BF16 (A.03.01, Civitai model-version 2898818, the BF16 file 2776781 rather than the version's fp8 primary; content explicit; not rendered on a GPU yet, A.03.01 live still owed).
options: chroma1-hduncanny-v13-bf16photonic-fusion-debloated-bf16ungloryhail-bf16
stepsintegerdefault 26min 8max 60
Sampling steps (26 is the Chroma1-HD reference)
cfgfloatdefault 3.8min 1.0max 10.0
Classifier-free guidance (3.8 is the Chroma1-HD reference)
seedintegerdefault -1
Random seed (-1 = random)
source_imageimagerequired
Source image (PNG/JPEG/WebP)
denoisefloatdefault 0.6min 0.05max 1.0
Denoise strength: low keeps the source, 1.0 ignores it
upscaleenumdefault none
Optional still-upscale tail, 2x. seedvr2_3b (A.01.08) resizes the still 2x with lanczos and restores it in one step with SeedVR2 3B (fp16) on ComfyUI's core SeedVR2 nodes, as the SeedVR2 3B image template does at 4x; its first use loads the seedvr2-3b family (7.29 GB) into the model cache. Only 2x is offered: the worker returns the PNG inline in the job output, and a 4x (~16 MP) still would not fit RunPod's job-output ceiling until outputs travel by the volume (V.12.05). none leaves the graph exactly as before. The Real-ESRGAN x2 tail (C.12.02) was retired once SeedVR2 3B had rendered (A.01.08); the enum refuses a job that still names x2.
options: noneseedvr2_3b
loraenumdefault none
Optional LoRA on the Chroma model (C.12.01; four picked by the user on 2026-09-13, all from CivitAI with every commercial flag). lenovo-ultrareal = photorealism enhancer (its trigger word `l3n0v0` is appended to the prompt automatically); chroma-realistic-slider = realism up/down by strength; chroma-defluxer = removes the residual Flux look; style-muk = illustration style. A.03.01 adds two more, also with every commercial flag: nicegirls-ultrareal = NiceGirls UltraReal Chroma (model-version 2487473, content racy); nsfw-realism-v1 = NSFW Realism v1.0 (model-version 2357084, content explicit). Neither version lists trained words, so neither appends a trigger, and neither has rendered on a GPU yet (A.03.01 live stills owed). none leaves the graph exactly as before.
options: nonelenovo-ultrarealchroma-realistic-sliderchroma-defluxerstyle-muknicegirls-ultrarealnsfw-realism-v1
lora_strengthfloatdefault 1.0min -2.0max 2.0
LoRA strength on the model (LoraLoaderModelOnly.strength_model). The slider LoRA is meant to be driven negative as well as positive; the others sit at 1.0.

ComfyUI node graph (22)#

The executable ComfyUI prompt graph: 22 nodes across 18 distinct node classes, wired by 27 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: UNETLoader"] n1["2: CLIPLoader"] n2["3: VAELoader"] n3["4: ModelSamplingAuraFlow"] n4["5: T5TokenizerOptions"] n5["6: CLIPTextEncode"] n6["7: CLIPTextEncode"] n7["8: LoadImage"] n8["9: VAEEncode"] n9["10: KSampler"] n10["11: VAEDecode"] n11["12: SaveImage"] n12["16: LoraLoaderModelOnly"] n13["17: UNETLoader"] n14["18: VAELoader"] n15["19: ResizeImageMaskNode"] n16["20: SeedVR2Preprocess"] n17["21: VAEEncodeTiled"] n18["22: SeedVR2Conditioning"] n19["23: KSampler"] n20["24: VAEDecodeTiled"] n21["25: SeedVR2PostProcessing"] n12 -->|model| n3 n1 -->|clip| n4 n4 -->|clip| n5 n4 -->|clip| n6 n7 -->|pixels| n8 n2 -->|vae| n8 n3 -->|model| n9 n5 -->|positive| n9 n6 -->|negative| n9 n8 -->|latent_image| n9 n9 -->|samples| n10 n2 -->|vae| n10 n0 -->|model| n12 n10 -->|input| n15 n15 -->|resized_images| n16 n16 -->|pixels| n17 n14 -->|vae| n17 n13 -->|model| n18 n17 -->|vae_conditioning| n18 n13 -->|model| n19 n18 -->|positive| n19 n18 -->|negative| n19 n17 -->|latent_image| n19 n19 -->|samples| n20 n14 -->|vae| n20 n20 -->|images| n21 n15 -->|original_resized_images| n21
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (22)#

1UNETLoadercore
unet_name = {{checkpoint_map[checkpoint]}} tmplweight_dtype = default
outputs: MODEL
2CLIPLoadercore
clip_name = t5xxl_fp16.safetensorstype = chromadevice = default
outputs: CLIP
3VAELoadercore
vae_name = ae.safetensors
outputs: VAE
4ModelSamplingAuraFlowcore
model = ◂ node 16 · out[0]shift = 1.0
outputs: MODEL
5T5TokenizerOptionscore
clip = ◂ node 2 · out[0]min_padding = 1min_length = 0
outputs: CLIP
6CLIPTextEncodecore
text = {{constructed_prompt}}{{lora_trigger_map[lora]}} tmplclip = ◂ node 5 · out[0]
outputs: CONDITIONING
7CLIPTextEncodecore
text = {{negative_prompt}} tmplclip = ◂ node 5 · out[0]
outputs: CONDITIONING
8LoadImagecore
image = {{source_image}} tmpl
outputs: IMAGEMASK
9VAEEncodecore
pixels = ◂ node 8 · out[0]vae = ◂ node 3 · out[0]
outputs: LATENT
10KSamplercore
model = ◂ node 4 · out[0]positive = ◂ node 6 · out[0]negative = ◂ node 7 · out[0]latent_image = ◂ node 9 · out[0]seed = {{seed}} tmplsteps = {{steps}} tmplcfg = {{cfg}} tmplsampler_name = eulerscheduler = betadenoise = {{denoise}} tmpl
outputs: LATENT
11VAEDecodecore
samples = ◂ node 10 · out[0]vae = ◂ node 3 · out[0]
outputs: IMAGE
12SaveImagecore
images = {{upscale_output_map[upscale]}} tmplfilename_prefix = isis/chroma-img2img
16LoraLoaderModelOnlycore
model = ◂ node 1 · out[0]lora_name = {{lora_map[lora]}} tmplstrength_model = {{lora_strength}} tmpl
outputs: MODEL
17UNETLoadercore
unet_name = seedvr2_3b_fp16.safetensorsweight_dtype = default
outputs: MODEL
18VAELoadercore
vae_name = seedvr2_ema_vae_fp16.safetensors
outputs: VAE
19ResizeImageMaskNodecore
input = ◂ node 11 · out[0]resize_type = scale by multiplierresize_type.multiplier = 2.0scale_method = lanczos
outputs: IMAGE
20SeedVR2Preprocesscore
resized_images = ◂ node 19 · out[0]
outputs: IMAGE
21VAEEncodeTiledcore
pixels = ◂ node 20 · out[0]vae = ◂ node 18 · out[0]tile_size = 512overlap = 128temporal_size = 4096temporal_overlap = 8
outputs: LATENT
22SeedVR2Conditioningcore
model = ◂ node 17 · out[0]vae_conditioning = ◂ node 21 · out[0]
outputs: CONDITIONINGCONDITIONING
23KSamplercore
model = ◂ node 17 · out[0]positive = ◂ node 22 · out[0]negative = ◂ node 22 · out[1]latent_image = ◂ node 21 · out[0]seed = {{seed}} tmplsteps = 1cfg = 1.0sampler_name = eulerscheduler = simpledenoise = 1.0
outputs: LATENT
24VAEDecodeTiledcore
samples = ◂ node 23 · out[0]vae = ◂ node 18 · out[0]tile_size = 512overlap = 128temporal_size = 4096temporal_overlap = 8
outputs: IMAGE
25SeedVR2PostProcessingcore
images = ◂ node 24 · out[0]original_resized_images = ◂ node 19 · out[0]color_correction_method = none
outputs: IMAGE

Prompt construction#

template
{base_prompt}

Variables (1)#

base_prompt
{{prompt}} tmpl

Parameter banks (6)#

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

option_policy (2)#

checkpoint
{"chroma1-hd": {"distribution": "service", "content": "neutral"}, "uncanny-v13-bf16": {"distribution": "service", "content": "neutral"}, "photonic-fusion-debloated-bf16": {"distribution": "internal_only", "content": "neutral"}, "ungloryhail-bf16": {"distribution": "service", "content": "explicit"}}
lora
{"lenovo-ultrareal": {"distribution": "service", "content": "neutral"}, "chroma-realistic-slider": {"distribution": "service", "content": "neutral"}, "chroma-defluxer": {"distribution": "service", "content": "neutral"}, "style-muk": {"distribution": "service", "content": "neutral"}, "nicegirls-ultrareal": {"distribution": "service", "content": "racy"}, "nsfw-realism-v1": {"distribution": "service", "content": "explicit"}}

checkpoint_map (4)#

chroma1-hd
Chroma1-HD.safetensors
uncanny-v13-bf16
uncannyPhotorealism_v13_bf16.safetensors
photonic-fusion-debloated-bf16
photonicFusionChroma_debloated_bf16.safetensors
ungloryhail-bf16
ungloryhail_bf16.safetensors

requires_families (2)#

chroma-coreseedvr2-3b

lora_map (7)#

none
lenovo-ultrareal
chroma-lenovo-ultrareal.safetensors
chroma-realistic-slider
chroma-realistic-slider.safetensors
chroma-defluxer
chroma-defluxer.safetensors
style-muk
chroma-style-muk.safetensors
nicegirls-ultrareal
chroma-nicegirls-ultrareal.safetensors
nsfw-realism-v1
chroma-nsfw-realism-v1.safetensors

lora_trigger_map (7)#

none
lenovo-ultrareal
, l3n0v0
chroma-realistic-slider
chroma-defluxer
style-muk
nicegirls-ultrareal
nsfw-realism-v1

upscale_output_map (2)#

none
110
seedvr2_3b
250

Models & dependencies#

Models required (14)#

Chroma1-HD.safetensors
uncannyPhotorealism_v13_bf16.safetensors
photonicFusionChroma_debloated_bf16.safetensors
ungloryhail_bf16.safetensors
t5xxl_fp16.safetensors
ae.safetensors
chroma-lenovo-ultrareal.safetensors
chroma-realistic-slider.safetensors
chroma-defluxer.safetensors
chroma-style-muk.safetensors
chroma-nicegirls-ultrareal.safetensors
chroma-nsfw-realism-v1.safetensors
seedvr2_3b_fp16.safetensors
seedvr2_ema_vae_fp16.safetensors

Output contract#

What a successful run of this workflow returns.

type
image
format
png

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
portrait-hero-image-bundle
outputPackageProfile
image-single-profile
controlModalities
model-locksampler-scheduler-lockseed-locklatent-reusereference-ensemble
consistencyDimensions
identitylightingcolor-script
notes
Chroma image-to-image at a chosen denoise.