OOP Animal πΎ
A wolf, purple, playing β one node instead of a tag battle
- OOP_ANIMAL
You want a scene with a purple wolf playing. Normally that's a sentence you gamble on - "purple wolf playing" is vague enough that the model picks its own favorite wolf. OOP Animal πΎ from the ComfyUI-OOP pack makes the animal a first-class citizen of your prompt: type, color and action each get a dropdown, and the node writes the labeled line for you.
What it builds
It's a string builder, like every node in this pack. Three dropdowns in, one custom OOP_ANIMAL string out:
- animal_type - 22 options:
Horse,Cat,Dog,Elephant,Lion,Tiger,Bear,Monkey,Snake,Giraffe,Kangaroo,Wolf, and more. DefaultCat. - color - 20 options from plain
Black/White/Brownthrough the fantasy palette (Blue,Green,Purple,Golden). DefaultBlack. - action - 21 options:
Jumping,Running,Sleeping,Playing,Eating,Roaring,Climbing,Swimming,Flying, and the rest. DefaultLying.
Pick Wolf + Purple + Playing and the node emits type:Wolf, color: Purple, action:Playing - exactly the label-prefixed style the pack's README demo uses. That's the whole trick: a consistent, structured sentence the OOP Node can slot into the bigger scene prompt.
There's also the randomize boolean. Flip it and each queue rolls a random animal, random color, random action. Great for brainstorming thumbnail variations; annoying if you wanted one specific wolf, because the re-roll fires on every queue run, not just when you change a widget. That's the IS_CHANGED method returning fresh random bits each time - intentional, and the pack's standard behavior.
Wiring it up
The OOP_ANIMAL output is a custom type only this pack understands. It doesn't plug into a text box. It goes into the Animal input on the OOP Node π«, which assembles the full structured prompt (Style: ..., Person: ..., Animal: type:Wolf, color: Purple, action:Playing, and so on), CLIP-encodes it, and gives you both a CONDITIONING and a readable STRING output. Read the string when you want to see exactly what got written.
Install
Ships with the pack, so one clone gets you everything:
cd ComfyUI/custom_nodes
git clone https://github.com/0xRavenBlack/ComfyUI-OOP
Restart ComfyUI. Manager works too - search ComfyUI-OOP in the Custom Nodes Manager. No requirements.txt, no model files, no pip fights. It's plain Python that never touches the image.
Gotchas
- SDXL territory. The pack's aggregator hardcodes CLIP skip β2 and 1024Γ1024 sizing, and the demo workflow runs an SDXL empty latent at 1152Γ896 (euler/karras, cfg 8, 20 steps).
type:Wolfreads cleanly on SDXL and booru-trained checkpoints. On Flux or newer LLM-encoder models, these labels are weaker signal - you're outside what the author built and tested. - Animal list is fixed. 22 species, no "penguin," no custom slot. If the list doesn't have your animal, pick the closest and edit the final string by hand - that's exactly why the OOP Node surfaces the prompt text.
- The color space in the label looks odd (
color: Purplewith a space) but it's harmless - it's just text the encoder reads.
Small quiet pack, built in early 2025 and dormant since. It won't win any awards for maintenance, but if you want animals in your scenes without typing the same sentence wrong three times, it works.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| animal_type | COMBO | Cat | 22 options: Horse, Cat, Dog, Elephant, Lion, Tiger, +16 |
| color | COMBO | Black | 20 options: Black, White, Brown, Golden, Gray, Spotted, +14 |
| action | COMBO | Lying | 21 options: Jumping, Lying, Running, Sleeping, Playing, Eating, +15 |
| randomizeopt | BOOLEAN | false | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| OOP_ANIMAL | OOP_ANIMAL | β |