Nodes/ComfyUI_DiT [WIP]/DiTLabelSelect
ComfyUI Node

DiTLabelSelect

Your prompt is a dropdown of 1,000 ImageNet classes

By city96·Created 3 years ago·Updated 2 years ago· 5
DiTLabelSelect
    • class_labels
    label_name

    Here's the thing nobody warns you about with city96's DiT pack: there is no text anywhere. DiTLabelSelect is your prompt, and your options are 1,000 ImageNet class names - "tench, Tinca tinca," "goldfish," "toilet tissue, toilet paper, bathroom tissue." That's the entire vocabulary of the underlying model. Meta's class-conditional DiT was trained to answer one question - which of these 1,000 things is in the picture? - so there's no CLIP, no natural language, no negative prompt, no "masterpiece, trending on ArtStation." This node exists to turn that dropdown into something the sampler can eat.

    The whole pack is a WIP lab bench, remember: the README calls it an old repo and points you to ComfyUI_ExtraModels for maintained DiT support, and the models it talks to are the research checkpoints from facebookresearch/DiT. You're playing with a slice of diffusion history - class-conditioned generation, the thing text-to-image replaced - and this node is how you order from its menu.

    How it works

    The pack ships labels/imagenet1000.json, and this node renders its values as the dropdown you see. Pick a name and it maps back to the integer index - that integer is what the model's label embedding actually consumes. The output, class_labels (DITLAB), wires straight into DiTSampler. One input, one output, no options. It's almost offensively simple, and that's the point: the model speaks numbers, and this is the friendly face on top.

    The one thing that surprises people: there's no "None" or empty option in the dropdown, even though the loader's class-counting math assumes an empty token exists. That's deliberate. The empty class isn't a label you choose - the sampler bakes it in as the unconditional half of classifier-free guidance, and you never see it.

    Why you'd reach for it

    Because the alternative is typing numbers into a JSON file with 1,000 entries. The dropdown is the usable surface of a research toy. And since labels are just integers under the hood, you can chain DiTLabelCombine after this to condition on two classes at once - "goldfish" plus "tiger shark," if you're feeling chaotic.

    Installing it

    # ComfyUI Manager → Install Custom Nodes → search "ComfyUI_DiT"
    # or manually:
    cd ComfyUI/custom_nodes
    git clone https://github.com/city96/ComfyUI_DiT
    # then restart ComfyUI
    

    No requirements.txt, no extra pip packages. The label list comes bundled with the pack, so there's nothing to download for this node specifically - just the DiT checkpoint for the loader.

    Troubleshooting

    Honestly? It barely has failure modes. It's a data lookup: a name in, an integer out. The closest thing to a gotcha is conceptual - expect the results to look like a model that only knows 1,000 nouns, because that's literally what it is. Grainy, weird, and occasionally great. If the output looks wrong, it's almost never this node's fault; check the sampler's cfg and whether your VAEEncode is on the SD 1.5 VAE first.

    CategoryDiT

    Inputs (1)

    NameTypeDefaultDescription
    label_nameCOMBO1000 options: tench, Tinca tinca, goldfish, Carassius auratus, great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias, tiger shark, Galeocerdo cuvieri, hammerhead, hammerhead shark, electric ray, crampfish, numbfish, torpedo, +994

    Outputs (1)

    NameTypeDescription
    class_labelsDITLAB