今回はGoogleさんが
無限背景生成ツールを出したので
面白そうなので試してみました。

解説動画はこちら



さて、こちらは
Google Colab上で試す事ができる様になっています。
infinite_nature

コードやライブラリなどを自分のPCで整えれば
無限背景動画も作成できる様です。

このコードのgithubはこちら
github


スクリーンショット 2021-04-03 17.21.06

さて使い方ですが
非常に簡単で
シフト + エンターキーを押して
進んでいくだけです。

進めていくと入力デモ画面が
表示できるので遊ぶ事ができます。

スクリーンショット 2021-04-03 17.22.11
使い方は「PLAY」を押すと
背景画像が生成されて進んでいきます。

「PAUSE」で停止
デモ用には3つの画像が用意されている様です。
「UPLOAD」を押して自身の画像をアップロードすると
それの背景が生成できます。

download


 Colabの上ではうまくmp4などに
変換ができなかったので
強制的にGIFにするコードを
作ってみました。

実行するとフォルダ内にGIF画像が生成されます。
from io import BytesIO
from PIL import Image

def step2(offsetx, offsety):
  state['direction_offset'] = (offsetx, offsety)
  next_pose = state['next_pose_function'](state['rgbd'])
  next_rgbd = render_refine(
       state['rgbd'], state['style_noise'],
       state['pose'], state['intrinsics'],
       next_pose, state['intrinsics'])
  state['pose'] = next_pose
  state['rgbd'] = next_rgbd
  imgdata = tf.image.encode_png(
    tf.image.convert_image_dtype(state['rgbd'][..., :3], dtype=tf.uint8))
  return Image.open(BytesIO(imgdata.numpy()))

x,y,images=0.5,0.5,[]
for i in range(30):
  x = 2*x - 1
  y = 2*y - 1
  x = 0.5 + (x - 0.5) * .9
  y = 0.5 + (y - 0.5) * .9
  image = step2(2*x - 1, 2*y - 1)
  images.append(image)

images[0].save('out.gif', save_all=True, append_images=images[1:], loop=0, duration=30)
こんな感じの画像を生成できました。

out

画像の長さとかクリック箇所とか
色々いじってみると面白いと思います。

一枚の画像から
無限に画像を作れてしまうので
恐ろしいツールですね

精度が上がれば
いろいろなところに応用できるかも

今回はこれまでです。
それでは。