50 lines
1.6 KiB
Kotlin
50 lines
1.6 KiB
Kotlin
import org.openrndr.application
|
|
import org.openrndr.draw.ColorBuffer
|
|
import org.openrndr.draw.colorBuffer
|
|
import org.openrndr.extra.fx.transform.FlipVertically
|
|
import org.openrndr.extra.runway.DeOldifyRequest
|
|
import org.openrndr.extra.runway.DeOldifyResponse
|
|
import org.openrndr.extra.runway.runwayQuery
|
|
import org.openrndr.ffmpeg.ScreenRecorder
|
|
import org.openrndr.ffmpeg.VideoPlayerConfiguration
|
|
import org.openrndr.ffmpeg.VideoPlayerFFMPEG
|
|
|
|
/**
|
|
* This demonstrates the Deoldify model, which colors grayscale images
|
|
* This example requires a `reiinakano/DeOldify` model active in Runway.
|
|
*/
|
|
|
|
suspend fun main() = application {
|
|
configure {
|
|
width = 1280
|
|
height = 480
|
|
}
|
|
|
|
program {
|
|
val image = colorBuffer(640, 480)
|
|
val vc = VideoPlayerConfiguration().apply {
|
|
allowFrameSkipping = false
|
|
}
|
|
// -- you will have to supply your own video here
|
|
val video = VideoPlayerFFMPEG.fromFile("data/videos/night_of_the_living_dead_512kb.mp4", configuration = vc)
|
|
video.play()
|
|
val flip = FlipVertically()
|
|
|
|
video.newFrame.listen {
|
|
flip.apply(it.frame, image)
|
|
}
|
|
extend(ScreenRecorder()) {
|
|
frameRate = 30
|
|
}
|
|
extend {
|
|
video.draw(drawer, 0.0, 0.0, 640.0, 480.0)
|
|
val response: DeOldifyResponse =
|
|
runwayQuery("http://localhost:8000/query", DeOldifyRequest(image.toDataUrl()))
|
|
|
|
val image = ColorBuffer.fromUrl(response.image)
|
|
|
|
drawer.image(image, 640.0, 0.0)
|
|
image.destroy()
|
|
}
|
|
}
|
|
} |