File size: 1,977 Bytes
e4eeb10
733cce1
 
 
 
e4eeb10
 
 
 
733cce1
 
 
 
 
 
 
 
 
9f5222a
733cce1
9f5222a
733cce1
9f5222a
 
 
 
733cce1
9f5222a
 
 
 
 
 
733cce1
9f5222a
 
 
 
 
733cce1
9f5222a
 
 
733cce1
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
---
title: AI WebTV
emoji: 🔮
colorFrom: purple
colorTo: white
sdk: docker
pinned: false
app_port: 7860
---

A generative AI WebTV, powered by Zeroscope and Hugging Face.

This is just the frontend part, you will need the media-server (also open source) to make it work.

Warning: this is an experimental, proof-of-concept project made in a few days.

It is not ready for production use by other people! Also, this use models that should only be used for research purposes (no commercial usage).

Note: because the stream uses FLV, it doesn't work on iPhone. There is however a [Twitch mirror here](https://www.twitch.tv/ai_webtv).

The main code of the webtv is located inside the [media-server](https://huggingface.co/spaces/jbilcke-hf/media-server/tree/main) :

manual steps:
- human input to write a short paragraph describing a multi-shot video sequence
- manual submit it to GPT-4 to generate a list of video captions for each shot (the system instructions are extracts from a stable diffusion guide)
- commit the captions to the [playlist database](https://huggingface.co/spaces/jbilcke-hf/media-server/raw/main/database.json)

Inside the `media-server` space (generation process running in the background):
- for each prompt in the database
- generate a silent 3 seconds video clip with   Zeroscope V2 576w (hosted on Hugging Face Spaces)
- upscale the clip with  Zeroscope V2 XL (also a HF Space)
- perform frame interpolation with FILM (also a HF Space)
- storage in the Persistent Storage of the media-server Space

Inside the `media-server` space (streaming process running in the foreground):
- for each video file in the persistent storage folder
- add it to a new FFmpeg playlist (it's just a .txt file)
- broadcast it over the RTMP protocol using FFmpeg (in FLV format)
- diffusion of the stream using node-media-server

Inside the `AI-WebTV` space:
- display the stream using `mpegts.js`
- this doesn't work on iPhone, but now there is also a Twitch mirror