
Typographic Diffusion
By feeding letterform images to Stable Diffusion, we can generate stylistic variations of fonts in a methodical manner. Here we experiment with controlling the amount of diffusion influence by both blurring the source images and by stepping through start_schedule
values.


We can engineer the prompt a little better, adding text describing our desired letter, for example letter s
. In our experiments, this helped maintain legibility with higher blur and start_schedule
settings.

We also toyed with appending a sequence number to the prompt, as this would give us a slight variation between repeated letters, a far more subtle effect than changing the seed. A rough sketch of the script follows. Here we use the stability.ai API.
# engine="stable-diffusion-v1-5"
seed = 4
prompt = 'raygun glitch the designers republic graphic design'
for radius in [0, 5, 10, 15, 25]:
for schedule in [5, 6, 7, 8, 9]:
for c in text:
# source images are gaussian blurred with the given radius
source = prep_image(get_char(c), radius)
# append letter name and numeric perturbation to prompt
_prompt = f'{prompt} letter {c} {i}',
answers = stability_api.generate(
prompt=_prompt,
init_image=source,
start_schedule=schedule/10,
seed=seed + retry,
steps=30,
cfg_scale=14.0,
width=size,
height=size,
sampler=generation.SAMPLER_K_DPMPP_2S_ANCESTRAL,
)
Letterform images were taken from this Kaggle Dataset.