A prompting enhancement library for transformers-type text embedding systems.
Project description
compel
A text prompt weighting and blending library for transformers-type text embedding systems, by @damian0815.
With a flexible and intuitive syntax, you can re-weight different parts of a prompt string and thus re-weight the different parts of the embeddning tensor produced from the string.
Tested and developed against Hugging Face's StableDiffusionPipeline
but it should work with any diffsers-based system that uses an Tokenizer
and a Text Encoder
of some kind.
Adapted from the InvokeAI prompting code (also by @damian0815). For now, the syntax is fully documented here.
Demo
Quickstart
with Hugging Face diffusers >=0.12:
from diffusers import StableDiffusionPipeline
from compel import Compel
pipeline = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
compel = Compel(tokenizer=pipeline.tokenizer, text_encoder=pipeline.text_encoder)
# upweight "ball"
prompt = "a cat playing with a ball++ in the forest"
conditioning = compel.build_conditioning_tensor(prompt)
# generate image
image = pipeline(prompt_embeds=conditioning, num_inference_steps=20).images[0]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.