Nodes/ComfyUI-Artha-Nodes/πŸ”± Artha Gemini Form
ComfyUI Node

πŸ”± Artha Gemini Form

Tick the muscles you want and get a fitness description

By CyrostarΒ·Created 10 months agoΒ·Updated 8 months agoΒ· 0
πŸ”± Artha Gemini Form
  • image
  • form
β—„chestfalseβ–Ί
β—„shouldersfalseβ–Ί
β—„armsfalseβ–Ί
β—„bicepsfalseβ–Ί
β—„tricepsfalseβ–Ί
β—„forearmsfalseβ–Ί
β—„absfalseβ–Ί
β—„corefalseβ–Ί
β—„obliquesfalseβ–Ί
β—„backfalseβ–Ί
β—„latsfalseβ–Ί
β—„trapsfalseβ–Ί
β—„legsfalseβ–Ί
β—„quadricepsfalseβ–Ί
β—„hamstringsfalseβ–Ί
β—„calvesfalseβ–Ί
β—„glutesfalseβ–Ί
β—„use_imagefalseβ–Ί
β—„api_keyβ–Ί
β—„modelgemini-2.5-flashβ–Ί
β—„max_tokens5000β–Ί
β—„temperature0.7β–Ί

Artha Gemini Form is the fitness tracker of the Artha character pipeline. Where its sibling nodes give you dropdowns, this one gives you seventeen boolean toggles - chest, shoulders, arms, biceps, triceps, forearms, abs, core, obliques, back, lats, traps, legs, quadriceps, hamstrings, calves, glutes - and each one you flip on adds a canned, professionally-written descriptor to the form object that Artha Gemini Portrait folds into your character prompt. Flip on abs, and "abs" becomes something like "well-defined abdominal muscles" in the final description without you having to write a word of anatomy prose.

It's the simplest node in the character set to understand, which is exactly what makes it the easiest one to underestimate. It's also the one most people forget to use - because a fitness description isn't an obvious prompt ingredient until you see the output.

How it works

There's no combo-box vocabulary here, just the seventeen toggles. Under the hood, each toggle maps to a pre-written descriptor stored in the pack's profile.json - so CHEST becomes a full phrase about chest development, LATS becomes one about a defined back, and so on. Flip several and you get a form dict of muscle-group descriptors, which Portrait renders into prose with a "FORM" prefix per attribute. If use_image is on and an image is connected, it skips the toggles entirely and asks Gemini to assess the subject's fitness from the photo instead - that's the only mode that requires an API key; the toggle path is purely local.

The output is a single form output (type ARTHAFORM), wired into Portrait's form input. You'll normally use Form in combination with Face, Body, Cloth, and Makeup, but there's no rule against using it alone.

The honest take

The canned descriptors are the feature and the limitation at once. They're consistent - no random flab about "muscle tone" depending on the model's mood that day - which is great for reproducible characters. But they're generic fitness language, not bespoke. You're not going to describe an unusual physique with these toggles; you're going to describe "the fit person archetype" with more or fewer boxes ticked. If you need something specific like "sinewy climber's build with developed forearms and a lean torso," tick forearms and core, accept the approximation, and add your own clause in Portrait's text_prompt.

The bigger gotcha is the same one that hits the whole pack: the use_image path costs an API call per execution, and failures are swallowed - an empty form output with the error printed to the ComfyUI console is the signature. And remember that flipping use_image on without an image just falls back to the toggle path silently, which is forgiving but can confuse you into thinking vision mode ran when it didn't.

Install

Shared with every node in the πŸ”± pack:

cd ComfyUI/custom_nodes
git clone https://github.com/Cyrostar/ComfyUI-Artha-Nodes
cd ComfyUI-Artha-Nodes
pip install -r requirements.txt

Restart ComfyUI, or install via ComfyUI Manager (search "Artha"). Toggle mode needs no key at all. If you want vision mode, grab a Gemini key from Google AI Studio and drop it in the pack's api.json so it doesn't sit in plaintext on the node.

CategoryArtha/LLM/Gemini

Inputs (23)

NameTypeDefaultDescription
chestBOOLEANfalseβ€”
shouldersBOOLEANfalseβ€”
armsBOOLEANfalseβ€”
bicepsBOOLEANfalseβ€”
tricepsBOOLEANfalseβ€”
forearmsBOOLEANfalseβ€”
absBOOLEANfalseβ€”
coreBOOLEANfalseβ€”
obliquesBOOLEANfalseβ€”
backBOOLEANfalseβ€”
latsBOOLEANfalseβ€”
trapsBOOLEANfalseβ€”
legsBOOLEANfalseβ€”
quadricepsBOOLEANfalseβ€”
hamstringsBOOLEANfalseβ€”
calvesBOOLEANfalseβ€”
glutesBOOLEANfalseβ€”
use_imageBOOLEANfalseβ€”
api_keySTRINGAPI key will be visible in plain text. Consider adding your api to the api.json located inside this custom node folder.
modelCOMBOgemini-2.5-flash5 options: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flash, gemini-2.0-flash-lite
max_tokensINT50001–8192For Gemini models, a token is equivalent to about 4 characters. 100 tokens is equal to about 60–80 English words.
temperatureFLOAT0.70–2A temperature of 0 means only the most likely tokens are selected. Higher values increase randomness.
imageoptIMAGEβ€”

Outputs (1)

NameTypeDescription
formARTHAFORMβ€”