Adding back changes to view diff
This commit is contained in:
parent
bb70a8f0b2
commit
c04da8144f
@ -65,9 +65,9 @@ pip install keras-cv --upgrade --quiet
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import keras_cv
|
import keras_cv
|
||||||
from tensorflow import keras
|
from keras_cv.backend import keras
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import tensorflow as tf
|
from keras_cv.backend import ops
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import math
|
import math
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
@ -96,10 +96,10 @@ prompt_1 = "A watercolor painting of a Golden Retriever at the beach"
|
|||||||
prompt_2 = "A still life DSLR photo of a bowl of fruit"
|
prompt_2 = "A still life DSLR photo of a bowl of fruit"
|
||||||
interpolation_steps = 5
|
interpolation_steps = 5
|
||||||
|
|
||||||
encoding_1 = tf.squeeze(model.encode_text(prompt_1))
|
encoding_1 = ops.squeeze(model.encode_text(prompt_1))
|
||||||
encoding_2 = tf.squeeze(model.encode_text(prompt_2))
|
encoding_2 = ops.squeeze(model.encode_text(prompt_2))
|
||||||
|
|
||||||
interpolated_encodings = tf.linspace(encoding_1, encoding_2, interpolation_steps)
|
interpolated_encodings = ops.linspace(encoding_1, encoding_2, interpolation_steps)
|
||||||
|
|
||||||
# Show the size of the latent manifold
|
# Show the size of the latent manifold
|
||||||
print(f"Encoding shape: {encoding_1.shape}")
|
print(f"Encoding shape: {encoding_1.shape}")
|
||||||
@ -111,7 +111,7 @@ keep the diffusion noise constant between images.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
seed = 12345
|
seed = 12345
|
||||||
noise = tf.random.normal((512 // 8, 512 // 8, 4), seed=seed)
|
noise = keras.random.normal((512 // 8, 512 // 8, 4), seed=seed)
|
||||||
|
|
||||||
images = model.generate_image(
|
images = model.generate_image(
|
||||||
interpolated_encodings,
|
interpolated_encodings,
|
||||||
@ -174,8 +174,8 @@ interpolation_steps = 150
|
|||||||
batch_size = 3
|
batch_size = 3
|
||||||
batches = interpolation_steps // batch_size
|
batches = interpolation_steps // batch_size
|
||||||
|
|
||||||
interpolated_encodings = tf.linspace(encoding_1, encoding_2, interpolation_steps)
|
interpolated_encodings = ops.linspace(encoding_1, encoding_2, interpolation_steps)
|
||||||
batched_encodings = tf.split(interpolated_encodings, batches)
|
batched_encodings = ops.split(interpolated_encodings, batches)
|
||||||
|
|
||||||
images = []
|
images = []
|
||||||
for batch in range(batches):
|
for batch in range(batches):
|
||||||
@ -210,20 +210,20 @@ interpolation_steps = 6
|
|||||||
batch_size = 3
|
batch_size = 3
|
||||||
batches = (interpolation_steps**2) // batch_size
|
batches = (interpolation_steps**2) // batch_size
|
||||||
|
|
||||||
encoding_1 = tf.squeeze(model.encode_text(prompt_1))
|
encoding_1 = ops.squeeze(model.encode_text(prompt_1))
|
||||||
encoding_2 = tf.squeeze(model.encode_text(prompt_2))
|
encoding_2 = ops.squeeze(model.encode_text(prompt_2))
|
||||||
encoding_3 = tf.squeeze(model.encode_text(prompt_3))
|
encoding_3 = ops.squeeze(model.encode_text(prompt_3))
|
||||||
encoding_4 = tf.squeeze(model.encode_text(prompt_4))
|
encoding_4 = ops.squeeze(model.encode_text(prompt_4))
|
||||||
|
|
||||||
interpolated_encodings = tf.linspace(
|
interpolated_encodings = ops.linspace(
|
||||||
tf.linspace(encoding_1, encoding_2, interpolation_steps),
|
ops.linspace(encoding_1, encoding_2, interpolation_steps),
|
||||||
tf.linspace(encoding_3, encoding_4, interpolation_steps),
|
ops.linspace(encoding_3, encoding_4, interpolation_steps),
|
||||||
interpolation_steps,
|
interpolation_steps,
|
||||||
)
|
)
|
||||||
interpolated_encodings = tf.reshape(
|
interpolated_encodings = ops.reshape(
|
||||||
interpolated_encodings, (interpolation_steps**2, 77, 768)
|
interpolated_encodings, (interpolation_steps**2, 77, 768)
|
||||||
)
|
)
|
||||||
batched_encodings = tf.split(interpolated_encodings, batches)
|
batched_encodings = ops.split(interpolated_encodings, batches)
|
||||||
|
|
||||||
images = []
|
images = []
|
||||||
for batch in range(batches):
|
for batch in range(batches):
|
||||||
@ -293,18 +293,18 @@ batch_size = 3
|
|||||||
batches = walk_steps // batch_size
|
batches = walk_steps // batch_size
|
||||||
step_size = 0.005
|
step_size = 0.005
|
||||||
|
|
||||||
encoding = tf.squeeze(
|
encoding = ops.squeeze(
|
||||||
model.encode_text("The Eiffel Tower in the style of starry night")
|
model.encode_text("The Eiffel Tower in the style of starry night")
|
||||||
)
|
)
|
||||||
# Note that (77, 768) is the shape of the text encoding.
|
# Note that (77, 768) is the shape of the text encoding.
|
||||||
delta = tf.ones_like(encoding) * step_size
|
delta = ops.ones_like(encoding) * step_size
|
||||||
|
|
||||||
walked_encodings = []
|
walked_encodings = []
|
||||||
for step_index in range(walk_steps):
|
for step_index in range(walk_steps):
|
||||||
walked_encodings.append(encoding)
|
walked_encodings.append(encoding)
|
||||||
encoding += delta
|
encoding += delta
|
||||||
walked_encodings = tf.stack(walked_encodings)
|
walked_encodings = ops.stack(walked_encodings)
|
||||||
batched_encodings = tf.split(walked_encodings, batches)
|
batched_encodings = ops.split(walked_encodings, batches)
|
||||||
|
|
||||||
images = []
|
images = []
|
||||||
for batch in range(batches):
|
for batch in range(batches):
|
||||||
@ -342,20 +342,20 @@ we began our walk, so we get a "loopable" result!
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
prompt = "An oil paintings of cows in a field next to a windmill in Holland"
|
prompt = "An oil paintings of cows in a field next to a windmill in Holland"
|
||||||
encoding = tf.squeeze(model.encode_text(prompt))
|
encoding = ops.squeeze(model.encode_text(prompt))
|
||||||
walk_steps = 150
|
walk_steps = 150
|
||||||
batch_size = 3
|
batch_size = 3
|
||||||
batches = walk_steps // batch_size
|
batches = walk_steps // batch_size
|
||||||
|
|
||||||
walk_noise_x = tf.random.normal(noise.shape, dtype=tf.float64)
|
walk_noise_x = keras.random.normal(noise.shape, dtype="float64")
|
||||||
walk_noise_y = tf.random.normal(noise.shape, dtype=tf.float64)
|
walk_noise_y = keras.random.normal(noise.shape, dtype="float64")
|
||||||
|
|
||||||
walk_scale_x = tf.cos(tf.linspace(0, 2, walk_steps) * math.pi)
|
walk_scale_x = ops.cos(ops.linspace(0, 2, walk_steps) * math.pi)
|
||||||
walk_scale_y = tf.sin(tf.linspace(0, 2, walk_steps) * math.pi)
|
walk_scale_y = ops.sin(ops.linspace(0, 2, walk_steps) * math.pi)
|
||||||
noise_x = tf.tensordot(walk_scale_x, walk_noise_x, axes=0)
|
noise_x = ops.tensordot(walk_scale_x, walk_noise_x, axes=0)
|
||||||
noise_y = tf.tensordot(walk_scale_y, walk_noise_y, axes=0)
|
noise_y = ops.tensordot(walk_scale_y, walk_noise_y, axes=0)
|
||||||
noise = tf.add(noise_x, noise_y)
|
noise = ops.add(noise_x, noise_y)
|
||||||
batched_noise = tf.split(noise, batches)
|
batched_noise = ops.split(noise, batches)
|
||||||
|
|
||||||
images = []
|
images = []
|
||||||
for batch in range(batches):
|
for batch in range(batches):
|
||||||
|
Loading…
Reference in New Issue
Block a user