comfyui-art-venture
A comprehensive set of custom nodes for ComfyUI, focusing on utilities for image processing, JSON manipulation, model operations and working with object via URLs
Nodes (81)
Pick a ratio, get width and height
Reach Claude through your AWS account
Mistral through your AWS account
AV_CheckpointMerge — the deprecated model-blend node (use ModelMergeSimple)
Bundle model names into one PIPE
Bake a merged model into a .safetensors
Wire Anthropic's Claude into ComfyUI
One node instead of three
Both conditionings plus step timing
Chain multiple ControlNets on one wire
Multi-ControlNet without the fiddly bits
Load a ControlNet, by name or override
AV_ControlNetPreprocessor — the deprecated all-in-one preprocessor (and what to use instead)
Connect ComfyUI to Google Gemini
The settings node for the art-venture LLM chain
The node that actually runs the LLM call
One prompt in, text out
Build the conversation you send to the model
Stack multiple LoRAs from text
AV_LoraListStacker — build a LoRA stack from a text list, and chain it onto others
A LoRA loader with a mute switch and an override
Image-gen settings for Gemini's image model
Connect GPT models to your ComfyUI graph
One key, every LLM, into your workflow
Unpack a PIPE's model names
Unpack a PIPE back into text, image, and mask
Bundle your prompts into one PIPE wire
Load Segment Anything for precise masking
Load a VAE, with a name-override for automation
BLIPCaption — turn an image into a plain-English caption for img2img and prompting
Load a BLIP checkpoint you already have on disk
One named true/false switch for the rest of your graph
Pick a checkpoint name, as a string
Recolor a grayscale image using another image's color
ColorCorrect — a one-node color grade for images inside ComfyUI
DeepDanbooruCaption — tag an image with Danbooru tags (the old-school interrogator)
Override one piece of a shared generation manifest
DownloadAndLoadBlip — fetch and load the BLIP captioning model in one node
Grab a background-removal model
The Fooocus look, without leaving ComfyUI
The Fooocus sampler, split across passes
Pull a true/false flag out of a JSON blob
Pull one numeric value out of a JSON blob
Pull a number out of JSON by key
Drill into nested JSON
Encode an image once for fast masking
Pull one string out of a JSON blob
Layer one image over another using its alpha
Write a mask into an image's R/G/B/A channel
Pull one R/G/B/A channel as a mask
ImageGaussianBlur — a plain Gaussian blur for images in your ComfyUI graph
Pick one of up to four images by a number
Turn one image into a batch
Shrink images to a target size, with optional crop
ImageScaleDownBy — shrink an image by a simple multiplier
ImageScaleDownToSize — clamp an image's longest (or shortest) side to a pixel size
ImageScaleToMegapixels — resize an image to a target pixel budget, not a fixed width
Load a background-removal model you already have on disk
Cut the background out with ArtVenture's built-in model
LaMaInpaint — erase an object from an image without a diffusion model
Fetch a hosted image and use it as a mask directly
LoadImageFromUrl — pull images straight into ComfyUI from a URL or base64
LoadJsonFromText — parse a block of JSON text into a usable JSON object
Pull live JSON into a workflow
Load LaMa for clean object removal
MergeModels — blend two models by a ratio inside your ComfyUI graph
Remap a value from one range into another
Paste your inpaint crop back onto the original
Composite an inpaint in latent space
PrepareImageAndMaskForInpaint — the A1111-style inpaint prep ComfyUI doesn't have natively
Make a scannable QR image for QR art
A random decimal between two bounds
RandomInt — a random integer generator for seeds and random choices
See what SAM encoded
SDXLAspectRatioSelector — pick an aspect ratio, get SDXL-friendly width and height
SeedSelector — flip between a locked seed and a random one without rewiring
StringToInt — convert a text value into an integer ComfyUI can use
Turn text into an INT and a FLOAT
Cheap wildcard-style prompt randomizing
Pick a string based on a condition
ArtVenture Custom Nodes
A comprehensive set of custom nodes for ComfyUI, focusing on utilities for image processing, JSON manipulation, model operations and working with object via URLs
Image Nodes
LoadImageFromUrl
Loads images from URLs.
Inputs:
image: List of URLs or base64 image data, separated by new lineskeep_alpha_channel: Preserve alpha channeloutput_mode: List or batch output. UseListif you have different resolutions.
JSON Nodes
LoadJsonFromUrl
Loads JSON data from URLs.
Inputs:
url: JSON URLprint_to_console: Print JSON to console
LoadJsonFromText
Loads JSON data from text.
Inputs:
data: JSON textprint_to_console: Print JSON to console
Get<*>FromJson
Includes GetObjectFromJson, GetTextFromJson, GetFloatFromJson, GetIntFromJson, GetBoolFromJson.
Use key format key.[index].subkey.[sub_index] to access nested objects.
Utility Nodes
StringToNumber
Converts strings to numbers.
Inputs:
string: Input stringrounding: Rounding method
TextRandomMultiline
Randomizes the order of lines in a multiline string.
Inputs:
text: Input textamount: Number of lines to randomizeseed: Random seed
TextSwitchCase
Switch between multiple cases based on a condition.
Inputs:
switch_cases: Switch cases, separated by new linescondition: Condition to switch ondefault_value: Default value when no condition matchesdelimiter: Delimiter between case and value, default is:
The switch_cases format is case<delimiter>value, where case is the condition to match and value is the value to return when the condition matches. You can have new lines in the value to return multiple lines.
Inpainting Nodes
PrepareImageAndMaskForInpaint
Prepares images and masks for inpainting operations. It's to mimic the behavior of the inpainting in A1111.
Inputs:
image: Input image tensormask: Input mask tensormask_blur: Blur amount for mask (0-64)inpaint_masked: Whether to inpaint only the masked regions, otherwise it will inpaint the whole image.mask_padding: Padding around mask (0-256)width: Manually set inpaint area width. Leave 0 default to the masked area plus padding. (0-2048)height: Manually set inpaint area height. (0-2048)
Outputs:
inpaint_image: Processed image for inpaintinginpaint_mask: Processed maskoverlay_image: Preview overlaycrop_region: Crop coordinates (input of OverlayInpaintedImage)
OverlayInpaintedImage
Overlays inpainted images with original images.
Inputs:
inpainted: Inpainted imageoverlay_image: Original imagecrop_region: Crop region coordinates
Outputs:
IMAGE: Final composited image
LaMaInpaint
Remove objects from images using LaMa model.
LLM Nodes
- LLM API Config: Generic model settings (model, tokens, temperature).
- NanoBanana API Config: Preset for Gemini 2.5 Flash Image (modalities/aspect ratio).
- OpenAI API: Connect to OpenAI chat/completions.
- OpenRouter API: Route to many providers via OpenRouter; supports text and images where available.
- Gemini API: Google Gemini (text and image generation).
- Claude API: Anthropic Claude messages.
- AWS Bedrock Claude API: Claude via AWS Bedrock.
- AWS Bedrock Mistral API: Mistral completions via AWS Bedrock.
- LLM Message: Build message lists (system/user/assistant) with optional images.
- LLM Chat: Run multi-turn chats; returns text and optional images.
- LLM Completion: Single-prompt completion.
Known Issues
AV_controlnetPreprocessor is missing
AV_controlnetPreprocessor is a wrapper for comfyui_controlnet_aux that I created to quickly switch between multiple preprocessors, instead of having a separate node for each one. It requires comfyui_controlnet_aux to be installed, otherwise it will not be available.
Since AIO_Preprocessor is already implemented in comfyui_controlnet_aux, this node will be deprecated. You are recommended to switch to using AIO_Preprocessor node directly.