Generative AI

Generative AI

As AI assistants and agents grow exponentially, they also replicate human creativity. While humans continue to evolve linearly, carrying forward our creative experiences from the past into the future, collaborating with AI introduces new creative experiences for us—perhaps AI feels the same way.

graph TB


subgraph assets[App/book/assets]
  subgraph audios
    short
    long
    subgraph sync
      mp3
      timecode[timecode txt]
    end
  end

  subgraph images
    page1
    page2
    page3
  end

  subgraph videos
  end

  subgraph spreadsheets
  end

end


descriptors -.-> prompts-.-> AI -. files .-> Adobe

creatorA((generative artist)) --> notebook
creatorA -->descriptors


subgraph Adobe[Media Files Library]
  Photoshop
  Illustrator
  Animate
  Premiere
  AfterEffects
  Audition
end

Photoshop -.-> UXP
UXP[kwik extension] -. png jpg path .->images

Animate -.-> spreadsheets
Premiere -.-> videos
AfterEffects-.->videos
Audition -.- audios
Illustrator -. svg, png, jpg .->images


creatorC((content creator)) -.-> Adobe

generative AI

graph TB

subgraph descriptors[media descriptors]
  fountain[fountain screenplay]
  description[image/video/audio descriptions]
end

subgraph notebook[jupyter notebook]
  python[python scripts/curl/wget ..]
  prompts
  OCR
  text[extracted text]

  OCR-.->text
end

subgraph AI[gen AI]
  SML
  eleventhLabs
  suno
  stableDiffusion[SD/Midjourney]
end

SML -. anew or refined .->descriptors


subgraph assets[App/book/assets]
  subgraph audios
    short
    long
    subgraph sync
      mp3
      timecode[timecode txt]
    end
  end

  subgraph images
    page1
    page2
    page3
  end

  subgraph videos
  end

  subgraph spreadsheets
  end


end

descriptors -.-> prompts-.-> AI -. files .-> Adobe[(Media Files Library)]

creatorA((generative artist)) --> notebook
creatorA -->descriptors

Adobe -. publish .-> assets

  • App/book/assets/model.lua

    local M = {
      -- audios = {}, sprites = {},
      -- videos = {}
    
      audios = {
        {
          name = "click.mp3",
          path = "audios/short",
          links = {{page = "page1"}, {page = "page2"}}
        }
      },
      videos = {
        {
          name = "videoA.mp4",
          path = "videos",
          links = {
            {page= "page01", layers = {"layerA1", "layerA10"}},
            {page= "page02", layers = {"layerA2", "layerA20"}}
          },
        },
        {
          name = "videoB.mp4",
          path = "videos",
          links = {{page= "page01", layers = {"layerB"}}}
          }
      },
    
    }
    return M

    links are updated when creating/deleting a compoenet(audio, video etc) in kwik editor

    read with self.assetsSelector:onClick or selectBook.loadPage()

  • editor/assets/index.lua

    local function readAsset(path, folder, map, parent)
      -- print(path.."/"..folder)
      local entries = {}
      local success = lfs.chdir( path.."/"..folder )
      if success then
        for file in lfs.dir( path.."/"..folder ) do
          if util.isDir(file) and file~="." and file~=".."  then
            -- print("", "@Found dir " .. file )
            local children = readAsset(path.."/"..folder, file, map, folder)
            for i=1, #children do
              entries[#entries + 1] = children[i]
            end
          elseif file~="." and file~=".."  and file:find(".lua")  ==  nil and file:find("@") == nil and file:find(".json")  ==  nil then
            local mapEntry = map[file]
            if mapEntry == nil then
              if parent==nil then
                entries[#entries + 1] = {name=file, path=folder, links={}}
              else
                local v = parent.."/"..folder
                entries[#entries + 1] = {name=file, path=v:gsub("audios/",""), links={}}
              end
            else
              mapEntry.isExist = true
              entries[#entries + 1] = {name=mapEntry.name, path=mapEntry.path, links=mapEntry.links}
            end
          end
        end
        lfs.chdir( path )
      end
      return entries
    end

Image Tile View extension