Brain II

Site Tools


start:knowledge:vfx:pipeline

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
start:knowledge:vfx:pipeline [2025/03/10 15:31] – [Startup] florianstart:knowledge:vfx:pipeline [2025/03/28 13:36] (current) – [Startup] florian
Line 31: Line 31:
  
 ==== Startup ==== ==== Startup ====
-=== Create Drives === +I'm executing 2 scripts on startup using a single InvisibleLauncher.vbs file referenced in Windows "Task Scheduler" 
-Using VisualSubst +=== 1. CreateDrives === 
-=== Open programs on correct desktop === +This is a bat script. In addition to this I'm also using VisualSubst, this makes naming the mapped drives possible 
-Put this .ps1 file in any local location on your pcnavigate to your Windows startup folder (shell:startup)right-click -> new-> shortcutand instert this into the textbox:\\ +=== 2. AppsToDesktop === 
-powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Users\flori\4_StartupScript_MoveToVirtualDesktop1.ps1"+This is a .ps1 scriptreferenced to a a folder called "startup" that you can put whereever you want. 
 +In this startup, put shortcuts in the folders named after the corresponding desktop where you want them to be openedlike "Desktop1" 
 +For this script I'm using the [[https://github.com/MScholtes/PSVirtualDesktop|PSVirtualDesktop]] Powershell module  
 + 
 +==== Work locally while keeping a mirror on NAS ==== 
 + 
 +Create symbolic links from your Laragon www directory to your development folders on the NASThis keeps your working environment organized while allowing Laragon to serve the sites. 
 +''mklink /D [Link] [Target]''
  
 ===== Audio ===== ===== Audio =====
Line 75: Line 82:
 Key features: Key features:
  
-  * Filters tracks to only include supported audio formats (.mp3, .flac, .wav, etc.) 
   * Skips system and auto-generated playlists   * Skips system and auto-generated playlists
   * Can skip files that already exist in the destination folder   * Can skip files that already exist in the destination folder
Line 172: Line 178:
 <color rgb(0%,69%,31%)>Example: GRP_Nora_LP</color>\\ <color rgb(0%,69%,31%)>Example: GRP_Nora_LP</color>\\
  
-===== Reference Library =====+==== Reference Library ====
 For my collection of reference images, I only use broad categories as folders, the other information I put in the name and metadata. For my collection of reference images, I only use broad categories as folders, the other information I put in the name and metadata.
  
 I'm using a combination of tools, including Advanced Renamer, digiKam, Python and a tool from GitHub called [[https://github.com/jhc13/taggui|taggui]]. I'm using a combination of tools, including Advanced Renamer, digiKam, Python and a tool from GitHub called [[https://github.com/jhc13/taggui|taggui]].
  
-== Workflow ==+=== Workflow ===
 First, I will change the name with Advanced Renamer.\\ First, I will change the name with Advanced Renamer.\\
-Using TagGUI, I will then let the program generate captions into seperate text files, wich are named after the image they are describing.\\+Using [[https://github.com/jhc13/taggui/releases|TagGUI]], I will then let the program generate captions into seperate text files, wich are named after the image they are describing.\\
 Now we need the Python script to take the information from the text file, and add it to the metadata of the images.\\ Now we need the Python script to take the information from the text file, and add it to the metadata of the images.\\
 For clean organisation, I opted to convert all files to .jpg. This to make sure the metadata is displayed in a clean way. For clean organisation, I opted to convert all files to .jpg. This to make sure the metadata is displayed in a clean way.
  
-== The name ==+=== The name ===
 CATEGORY_SUBJECT_inc Nr CATEGORY_SUBJECT_inc Nr
  
-== The metadata ==+=== The metadata ===
 A description/caption in the images "Title" and "Subject" fields. A description/caption in the images "Title" and "Subject" fields.
- 
-== The script == 
-<code Python [enable_line_numbers="true"]> 
-import os 
-from PIL import Image as PilImage, PngImagePlugin 
-from pyexiv2 import Image as Pyexiv2Image 
- 
-def add_text_to_image_metadata(image_folder): 
-    try: 
-        # Iterate through all files in the specified folder 
-        for filename in os.listdir(image_folder): 
-            image_path = os.path.join(image_folder, filename) 
-            text_file_path = os.path.join(image_folder, f"{os.path.splitext(filename)[0]}.txt") 
- 
-            print(f"Processing {image_path}" # Debugging line 
- 
-            if os.path.exists(text_file_path): 
-                # Read the content from the text file 
-                with open(text_file_path, 'r') as file: 
-                    caption_text = file.read() 
- 
-                # Convert filename to lowercase for extension checking 
-                filename_lower = filename.lower() 
- 
-                if filename_lower.endswith(('.jpg', '.jpeg')): 
-                    # Load the image's metadata 
-                    image = Pyexiv2Image(image_path) 
- 
-                    # Add the caption to the image's EXIF UserComment and ImageDescription fields 
-                    image.modify_exif({'Exif.Photo.UserComment': caption_text, 'Exif.Image.ImageDescription': caption_text}) 
-                elif filename_lower.endswith('.png'): 
-                    # Convert the PNG image to JPEG 
-                    image = PilImage.open(image_path) 
-                    rgb_image = image.convert('RGB') 
-                    rgb_image.save(os.path.splitext(image_path)[0] + '.jpg', 'JPEG') 
- 
-                    # Load the image's metadata 
-                    image = Pyexiv2Image(os.path.splitext(image_path)[0] + '.jpg') 
- 
-                    # Add the caption to the image's EXIF UserComment and ImageDescription fields 
-                    image.modify_exif({'Exif.Photo.UserComment': caption_text, 'Exif.Image.ImageDescription': caption_text}) 
- 
-                    # Delete the original PNG image 
-                    os.remove(image_path) 
- 
-                # Delete the text file 
-                os.remove(text_file_path) 
- 
-        print("Processing completed for all images.") 
-    except Exception as e: 
-        print(f"Error: {e}") 
- 
-# Example usage: Specify the folder containing your images 
-image_folder_path = '/path/to/your/source/folder' 
-add_text_to_image_metadata(image_folder_path) 
-}(); 
-</code> 
  
 \\ \\
  
-== Sources ==+===== Sources =====
  
 [[https://www.youtube.com/watch?v=6KCtPnam6Sk&ab_channel=TimvanHelsdingen]]\\ [[https://github.com/alexanderrichtertd/plex/wiki/Project-Structure]]\\ [[https://www.youtube.com/watch?v=6KCtPnam6Sk&ab_channel=TimvanHelsdingen]]\\ [[https://github.com/alexanderrichtertd/plex/wiki/Project-Structure]]\\
start/knowledge/vfx/pipeline.1741617094.txt.gz · Last modified: 2025/03/10 15:31 by florian