Text Generation
Transformers
PyTorch
Safetensors
gpt2
stable-diffusion
prompt-generator
distilgpt2
text-generation-inference
Inference Endpoints
File size: 1,910 Bytes
bb39318
ab114ee
 
 
 
 
11038c0
 
 
 
bb39318
17b2af5
 
c5983e7
ab114ee
94e9bb0
 
 
ab114ee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7d8f63e
ab114ee
 
 
 
 
 
96f138d
ab114ee
 
96f138d
ab114ee
 
 
 
 
 
 
11038c0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
---
license: creativeml-openrail-m
tags:
- stable-diffusion
- prompt-generator
- distilgpt2
datasets:
- FredZhang7/krea-ai-prompts
- Gustavosta/Stable-Diffusion-Prompts
- bartman081523/stable-diffusion-discord-prompts
---
# DistilGPT2 Stable Diffusion Model Card
DistilGPT2 Stable Diffusion is a text-to-text model used to generate creative and coherent prompts for text-to-image models, given any text.
This model was finetuned on 2.03 million descriptive stable diffusion prompts from [Stable Diffusion discord](https://huggingface.co/datasets/bartman081523/stable-diffusion-discord-prompts), [Lexica.art](https://huggingface.co/datasets/Gustavosta/Stable-Diffusion-Prompts), and (my hand-picked) [Krea.ai](https://huggingface.co/datasets/FredZhang7/krea-ai-prompts). I filtered the hand-picked prompts based on the output results from Stable Diffusion v1.4.

Compared to other prompt generation models using GPT2, this one runs with 50% faster forwardpropagation and 40% less disk space & RAM.


### PyTorch

```bash
pip install --upgrade transformers
```

```python
from transformers import GPT2Tokenizer, GPT2LMHeadModel

# load the pretrained tokenizer
tokenizer = GPT2Tokenizer.from_pretrained('distilgpt2')
tokenizer.add_special_tokens({'pad_token': '[PAD]'})
tokenizer.max_len = 512

# load the fine-tuned model
model = GPT2LMHeadModel.from_pretrained('FredZhang7/distilgpt2-stable-diffusion')

# generate text using fine-tuned model
from transformers import pipeline
nlp = pipeline('text-generation', model=model, tokenizer=tokenizer)
ins = "a beautiful city"

# generate 10 samples
outs = nlp(ins, max_length=80, num_return_sequences=10)

# print the 10 samples
for i in range(len(outs)):
    outs[i] = str(outs[i]['generated_text']).replace('  ', '')
print('\033[96m' + ins + '\033[0m')
print('\033[93m' + '\n\n'.join(outs) + '\033[0m')
```

Example Output:
![Example Output](./prompt-examples.png)