Generated reference · ComfyUI workflow · chroma

Chroma Text-to-Image → Transparent Cut-out

Generate with a Chroma checkpoint, then matte the subject onto a transparent background in the same run. Outputs the RGBA cut-out and the original render.

chroma17nodesGPU A5000out image~45sv1.0.0

On this page
17Graph nodes
15Node classes
8Inputs
9Models

Tags: chromarunpod-serverlessvolume-backedtext-to-imagematting

Inputs (8)#

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)
aspectenumdefault square_1024
Output aspect preset
options: square_1024portrait_896x1152landscape_1152x896portrait_832x1216landscape_1216x832
modelenumdefault birefnet-hr-matting
Matting model for the cut-out
options: birefnet-portraitbirefnet-mattingbirefnet-hr-matting

ComfyUI node graph (17)#

The executable ComfyUI prompt graph: 17 nodes across 15 distinct node classes, wired by 18 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: CFGGuider"] n8["9: KSamplerSelect"] n9["10: BetaSamplingScheduler"] n10["11: RandomNoise"] n11["12: EmptySD3LatentImage"] n12["13: SamplerCustomAdvanced"] n13["14: VAEDecode"] n14["15: BiRefNetRMBG"] n15["16: SaveImage"] n16["17: SaveImage"] n0 -->|model| n3 n1 -->|clip| n4 n4 -->|clip| n5 n4 -->|clip| n6 n3 -->|model| n7 n5 -->|positive| n7 n6 -->|negative| n7 n3 -->|model| n9 n10 -->|noise| n12 n7 -->|guider| n12 n8 -->|sampler| n12 n9 -->|sigmas| n12 n11 -->|latent_image| n12 n12 -->|samples| n13 n2 -->|vae| n13 n13 -->|image| n14 n14 -->|images| n15 n13 -->|images| n16 classDef custom fill:#12b886,stroke:#0b6b4f,color:#04110c; class n14 custom;
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (17)#

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 1 · out[0]shift = 1.0
outputs: MODEL
5T5TokenizerOptionscore
clip = ◂ node 2 · out[0]min_padding = 1min_length = 0
outputs: CLIP
6CLIPTextEncodecore
text = {{constructed_prompt}} tmplclip = ◂ node 5 · out[0]
outputs: CONDITIONING
7CLIPTextEncodecore
text = {{negative_prompt}} tmplclip = ◂ node 5 · out[0]
outputs: CONDITIONING
8CFGGuidercore
model = ◂ node 4 · out[0]positive = ◂ node 6 · out[0]negative = ◂ node 7 · out[0]cfg = {{cfg}} tmpl
outputs: GUIDER
9KSamplerSelectcore
sampler_name = euler
outputs: SAMPLER
10BetaSamplingSchedulercore
model = ◂ node 4 · out[0]steps = {{steps}} tmplalpha = 0.45beta = 0.45
outputs: SIGMAS
11RandomNoisecore
noise_seed = {{seed}} tmpl
outputs: NOISE
12EmptySD3LatentImagecore
width = {{aspect_map[aspect].width}} tmplheight = {{aspect_map[aspect].height}} tmplbatch_size = 1
outputs: LATENT
13SamplerCustomAdvancedcore
noise = ◂ node 11 · out[0]guider = ◂ node 8 · out[0]sampler = ◂ node 9 · out[0]sigmas = ◂ node 10 · out[0]latent_image = ◂ node 12 · out[0]
outputs: LATENTLATENT
14VAEDecodecore
samples = ◂ node 13 · out[0]vae = ◂ node 3 · out[0]
outputs: IMAGE
15BiRefNetRMBGcustom pack
image = ◂ node 14 · out[0]model = {{matte_option_map[model]}} tmplsensitivity = 1.0mask_blur = 0mask_offset = 0invert_output = falserefine_foreground = truebackground = Alphabackground_color = #222222
outputs: IMAGEMASKMASK_IMAGE
16SaveImagecore
images = ◂ node 15 · out[0]filename_prefix = isis/chroma-cutout
17SaveImagecore
images = ◂ node 14 · out[0]filename_prefix = isis/chroma-original

Prompt construction#

template
{base_prompt}

Variables (1)#

base_prompt
{{prompt}} tmpl

Parameter banks (5)#

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 (1)#

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"}}

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

aspect_map (5)#

square_1024
{"width": 1024, "height": 1024}
portrait_896x1152
{"width": 896, "height": 1152}
landscape_1152x896
{"width": 1152, "height": 896}
portrait_832x1216
{"width": 832, "height": 1216}
landscape_1216x832
{"width": 1216, "height": 832}

matte_option_map (3)#

birefnet-portrait
BiRefNet-portrait
birefnet-matting
BiRefNet-matting
birefnet-hr-matting
BiRefNet-HR-matting

requires_families (2)#

chroma-corebirefnet

Models & dependencies#

Custom node packs (1)#

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.

BiRefNetRMBG

Models required (9)#

Chroma1-HD.safetensors
uncannyPhotorealism_v13_bf16.safetensors
photonicFusionChroma_debloated_bf16.safetensors
ungloryhail_bf16.safetensors
t5xxl_fp16.safetensors
ae.safetensors
BiRefNet-portrait.safetensors
BiRefNet-matting.safetensors
BiRefNet-HR-matting.safetensors

Output contract#

What a successful run of this workflow returns.

type
image
format
png
primary
{"type": "image", "format": "png", "description": "RGBA cut-out of the generated subject on transparency"}
secondary
{"type": "image", "format": "png", "description": "The generated image before matting, kept for comparison"}

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-product-packshot-suite
outputPackageProfile
image-single-profile
controlModalities
model-locksampler-scheduler-lockseed-lockcontrolnet-segmentation
consistencyDimensions
identitylighting
notes
Chroma render then matting cut-out in one graph.