Nodes/ComfyUI-MiniCPM-o/MiniCPM-o Image Analyzer
ComfyUI Node

MiniCPM-o Image Analyzer

Three images in, one Frankenstein prompt out

By CY-CHENYUE·Created 2 years ago·Updated 2 years ago· 39
MiniCPM-o Image Analyzer
  • model
  • tokenizer
  • theme_image
  • scene_image
  • style_image
  • theme_analysis
  • scene_analysis
  • style_analysis
  • combined_prompt
seed666666666666666
temperature0.70
top_p0.90
max_new_tokens512
user_prompt

The single-image sibling in this pack gives you one prompt from one picture. This node is the remix version: it takes three images - one for the subject, one for the scene, one for the style - and fuses them into a single generation prompt that combines all of it. It's the "I like the character from A, the setting from B, and the art style from C" workflow, automated into one pass.

That's a real workflow, not a gimmick. Style transfer via text is the whole "have a multimodal LLM describe what it sees" pattern people lean on for LLM-encoded models and video, and this node is the multi-image take on it. The author has said it's aimed at multi-image prompt-based image generation - you can see it as a text-only cousin of what IPAdapter does with image inputs, except the output is a prompt you can read, edit, and reuse anywhere.

How it works

This is not one model call - it's four. The node runs three separate analyses, each with its own hardcoded prompt in the source:

  • THEME_PROMPT - describes only the subject's physical appearance and attire, explicitly told not to mention background, lighting, style, or atmosphere.
  • SCENE_PROMPT - describes only environment, setting, lighting, and atmosphere, told to ignore the characters and the art style.
  • STYLE_PROMPT - outputs only the artistic style and technique, in a strict [art style] with [technique and color] format.

Each produces a STRING output - theme_analysis, scene_analysis, style_analysis. Then a fourth call takes all three (plus your optional user_prompt if you gave one, or "none") and runs them through a combine template that merges everything into one flowing, unlabeled description. That final result is the combined_prompt output, and it's the one you'll actually wire into your generator.

Inputs that matter

  • model / tokenizer - from the Load MiniCPM-o Model node, same as the other pack nodes.
  • theme_image, scene_image, style_image - three IMAGE inputs. Yes, you can feed the same image to all three slots; it just means subject, scene, and style all get read from that one picture, which is a decent poor-man's single-image captioner.
  • user_prompt (optional) - a multiline box for an extra element ("playing violin", "cyberpunk lighting") that gets folded into the final prompt. Leave blank and it's omitted.
  • max_new_tokens, temperature, top_p, seed - standard sampling controls shared with the image chat node.

The four outputs are all STRING: the three per-image analyses (useful if you want to see what the model thought before it glued things together) and the fused combined_prompt.

Installing

Nothing node-specific: install the pack via ComfyUI Manager (search "MiniCPM-o") or git clone https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-o into custom_nodes, pip install -r requirements.txt with ComfyUI's python, and put the openbmb/MiniCPM-o-2_6 model folder in models/MiniCPM/MiniCPM-o-2_6/. If Load MiniCPM-o Model throws "local model not found," it's that last step.

Where it hurts

First, it's slow. Four full 8B vision-model inferences per run, so this is the least snappy node in the pack - on a mid-range card you're waiting. Second, the same caching trap as the image chat node: it only re-runs when the seed changes (IS_CHANGED returns the seed), so changing an input image without touching the seed gives you the stale result. Nudge the seed or force the queue. Third, the analyses are opinionated by design - the theme prompt forbids background talk and the scene prompt forbids subjects, which keeps the pieces clean but means a busy image's subject will get a ruthless trim. If the fused prompt reads oddly, peek at the three raw analyses to see which input got misread.

CategoryMiniCPM-o

Inputs (10)

NameTypeDefaultDescription
modelMODEL
tokenizerTOKENIZER
theme_imageIMAGE
scene_imageIMAGE
style_imageIMAGE
seedINT6666666666666660–18446744073709550000
temperatureFLOAT0.700.1–2
top_pFLOAT0.900.1–1
max_new_tokensINT5121–2048
user_promptoptSTRING

Outputs (4)

NameTypeDescription
theme_analysisSTRING
scene_analysisSTRING
style_analysisSTRING
combined_promptSTRING