├── .github └── workflows │ └── publish.yml ├── AnamorphicEffect.md ├── AnamorphicEffect.py ├── AspectSize.md ├── AspectSize.py ├── AspectSizeV2.md ├── AspectSizeV2.py ├── BatchAlphaComposite.md ├── BatchAlphaComposite.py ├── BatchOffset.md ├── BatchOffset.py ├── BatchRangeInsert.md ├── BatchRangeInsert.py ├── BatchRangeSwap.md ├── BatchRangeSwap.py ├── BatchThief.md ├── BatchThief.py ├── BlackBarsV1.md ├── BlackBarsV1.py ├── BlackBarsV2.md ├── BlackBarsV2.py ├── BlackBarsV3.md ├── BlackBarsV3.py ├── BorderCompositeAlpha.py ├── BracketCleaner.md ├── BracketCleaner.py ├── CRT_Effect_v1.md ├── CRT_Effect_v1.py ├── CaptionsToPromptList.md ├── CaptionsToPromptList.py ├── CathodeRayEffect.md ├── CathodeRayEffect.py ├── ClassicFilmEffect.md ├── ClassicFilmEffect.py ├── CombineAudio.md ├── CombineAudio.py ├── DJZ-Nodes-Index.md ├── DJZDatamoshV2.md ├── DJZDatamoshV2.py ├── DJZLoadLatent.md ├── DJZLoadLatent.py ├── DJZLoadLatentV2.md ├── DJZLoadLatentV2.py ├── DatasetWordcloud.md ├── DatasetWordcloud.py ├── DeadPixelEffect.md ├── DeadPixelEffect.py ├── DepthBasedPixelization.md ├── DepthBasedPixelization.py ├── DinskyPlus.md ├── DinskyPlus.py ├── DinskyPlusV2.md ├── DinskyPlusV2.py ├── DjzDatabendingV1.md ├── DjzDatabendingV1.py ├── DjzDatamosh.md ├── DjzDatamosh.py ├── DjzDatamoshV3.md ├── DjzDatamoshV3.py ├── DjzDatamoshV4.md ├── DjzDatamoshV4.py ├── DjzDatamoshV5.md ├── DjzDatamoshV5.py ├── DjzDatamoshV6.md ├── DjzDatamoshV6.py ├── DjzDatamoshV7.md ├── DjzDatamoshV7.py ├── DjzDatamoshV8.md ├── DjzDatamoshV8.py ├── FFXFADEORAMA.md ├── FFXFADEORAMA.py ├── FilmGateWeave.md ├── FilmGateWeave.py ├── FilmGrainEffect.md ├── FilmGrainEffect.py ├── FilmGrainEffect_v2.md ├── FilmGrainEffect_v2.py ├── FishEyeEffect.md ├── FishEyeEffect.py ├── FishEyeV2.md ├── FishEyeV2.py ├── FractalGenerator.md ├── FractalGenerator.py ├── FractalGeneratorV2.md ├── FractalGeneratorV2.py ├── FractalGeneratorV3.md ├── FractalGeneratorV3.py ├── GSL_Filter_V1.md ├── GSL_Filter_V1.py ├── HalationBloom.md ├── HalationBloom.py ├── ImageInterleavedUpscaler.md ├── ImageInterleavedUpscaler.py ├── ImageInterleavedUpscalerV2.md ├── ImageInterleavedUpscalerV2.py ├── ImageSizeAdjuster.md ├── ImageSizeAdjuster.py ├── ImageSizeAdjusterV2.md ├── ImageSizeAdjusterV2.py ├── ImageSizeAdjusterV3.md ├── ImageSizeAdjusterV3.py ├── JitterEffect.md ├── JitterEffect.py ├── KeyframeBasedUpscalerV1.md ├── KeyframeBasedUpscalerV1.py ├── KinescopeEffectV1.md ├── KinescopeEffectV1.py ├── LensLeaks.md ├── LensLeaks.py ├── LoadTextDirectory.md ├── LoadTextDirectory.py ├── LoadVideoBatchFrame.md ├── LoadVideoBatchFrame.py ├── LoadVideoDirectory.md ├── LoadVideoDirectory.py ├── LoadVideoDirectoryV2.md ├── LoadVideoDirectoryV2.py ├── MotionBlending.md ├── MotionBlending.py ├── NoiseFactory.md ├── NoiseFactory.py ├── NoiseFactoryV2.md ├── NoiseFactoryV2.py ├── NoiseFactoryV3.md ├── NoiseFactoryV3.py ├── NonSquarePixelsV1.md ├── NonSquarePixelsV1.py ├── PIP-MAN-V5.bat ├── PanavisionLensV1.md ├── PanavisionLensV2.md ├── PanavisionLensV2.py ├── ParametricMeshGen.md ├── ParametricMeshGen.py ├── ParametricMeshGenV2.md ├── ParametricMeshGenV2.py ├── ProjectFilePathNode.md ├── ProjectFilePathNode.py ├── ProjectFolderPathNode.md ├── ProjectFolderPathNode.py ├── PromptCleaner.md ├── PromptCleaner.py ├── PromptCleanerV2.py ├── PromptDupeRemover.md ├── PromptDupeRemover.py ├── PromptDupeRemoverV2.md ├── PromptDupeRemoverV2.py ├── PromptInject.md ├── PromptInject.py ├── PromptInjectV2.md ├── PromptInjectV2.py ├── PromptSwap.md ├── PromptSwap.py ├── README.md ├── RetroVideoText.md ├── RetroVideoText.py ├── SaveText.md ├── SaveText.py ├── ScreenGen ├── README.md ├── __init__.py ├── bounce.scg ├── matrix.scg ├── mazeV2.scg ├── pipes.scg ├── pipesV2.scg ├── plasma.scg ├── starfield.scg └── toastersV2.scg ├── ScreensaverGenerator.md ├── ScreensaverGenerator.py ├── ScreensaverGeneratorV2.md ├── ScreensaverGeneratorV2.py ├── ScreensaverGeneratorV3.md ├── ScreensaverGeneratorV3.py ├── SequentialNumberGenerator.md ├── SequentialNumberGenerator.py ├── StringChaos.md ├── StringChaos.py ├── StringPainter.md ├── StringPainter.py ├── StringPainterV2.md ├── StringPainterV2.py ├── StringWeights.md ├── StringWeights.py ├── Technicolor3Strip_v1.md ├── Technicolor3Strip_v1.py ├── Technicolor3Strip_v2.md ├── Technicolor3Strip_v2.py ├── ThinkSeeker.md ├── ThinkSeeker.py ├── ThreeToneStyler.md ├── ThreeToneStyler.py ├── TrianglesPlus.md ├── TrianglesPlus.py ├── TrianglesPlusV2.md ├── TrianglesPlusV2.py ├── UncleanSpeech.md ├── UncleanSpeech.py ├── VGA_Effect_v1.md ├── VGA_Effect_v1.py ├── VHS_Effect_V3.md ├── VHS_Effect_V3.py ├── VHS_Effect_v1.md ├── VHS_Effect_v1.py ├── VHS_Effect_v2.md ├── VHS_Effect_v2.py ├── VIZ ├── README.md ├── butterfly.viz ├── fractal_pulse.viz ├── frequency_dots.viz ├── kaleidoscope_wave.viz ├── milkdrop_bars.viz ├── oscilloscope.viz ├── plasma_wave.viz ├── spectrum.viz ├── spiral_analyzer.viz ├── starfield_pulse.viz ├── tunnel_beat.viz ├── vector_scope.viz └── wave_rings.viz ├── VideoBitClamp.md ├── VideoBitClamp.py ├── VideoChromaticAberration.md ├── VideoChromaticAberration.py ├── VideoCorridorV1.md ├── VideoCorridorV1.py ├── VideoCubeV1.md ├── VideoCubeV1.py ├── VideoFilmDamage.md ├── VideoFilmDamage.py ├── VideoInterlaceFastV4.md ├── VideoInterlaceFastV4.py ├── VideoInterlaceGANV3.md ├── VideoInterlaceGANV3.py ├── VideoInterlaced.md ├── VideoInterlaced.py ├── VideoInterlacedV2.md ├── VideoInterlacedV2.py ├── VideoMazeV1.md ├── VideoMazeV1.py ├── VideoMazeV2.md ├── VideoMazeV2.py ├── VideoNoiseFactory.md ├── VideoNoiseFactory.py ├── VideoPyramidV1.py ├── VideoRingPainter.md ├── VideoRingPainter.py ├── VideoTemperatureV1.py ├── VideoText.py ├── VideoTextV2.py ├── VideoTimecode.md ├── VideoTimecode.py ├── VideoTrails.md ├── VideoTrails.py ├── VideoTrailsV2.md ├── VideoTrailsV2.py ├── VideoVignettingV1.md ├── VideoVignettingV1.py ├── VoiceEffects.md ├── VoiceEffects.py ├── VoiceEffects2.md ├── VoiceEffects2.py ├── WaveletCompose.md ├── WaveletCompose.py ├── WaveletDecompose.md ├── WaveletDecompose.py ├── WinampViz.md ├── WinampViz.py ├── WinampVizV2.md ├── WinampVizV2.py ├── ZenkaiControlPromptV1.py ├── ZenkaiDepthPrompt.md ├── ZenkaiDepthPrompt.py ├── ZenkaiImagePromptV1.py ├── ZenkaiImagePromptV2.md ├── ZenkaiImagePromptV2.py ├── ZenkaiPoseMap.py ├── ZenkaiPrompt.md ├── ZenkaiPrompt.py ├── ZenkaiPromptV2.md ├── ZenkaiPromptV2.py ├── ZenkaiPromptV3.md ├── ZenkaiPromptV3.py ├── ZenkaiPromptV4.md ├── ZenkaiPromptV4.py ├── ZenkaiPromptV5.md ├── ZenkaiPromptV5.py ├── ZenkaiWildcard.md ├── ZenkaiWildcard.py ├── ZenkaiWildcardV2.md ├── ZenkaiWildcardV2.py ├── Zenkai_IMPv1.py ├── __init__.py ├── __pycache__ ├── AspectSize.cpython-312.pyc ├── AspectSizeV2.cpython-312.pyc ├── BatchOffset.cpython-312.pyc ├── BatchRangeInsert.cpython-312.pyc ├── BatchRangeSwap.cpython-312.pyc ├── BatchThief.cpython-312.pyc ├── CaptionsToPromptList.cpython-312.pyc ├── DJZDatamoshV2.cpython-312.pyc ├── DJZLoadLatent.cpython-312.pyc ├── DJZLoadLatentV2.cpython-312.pyc ├── DatasetWordcloud.cpython-312.pyc ├── DinskyPlus.cpython-312.pyc ├── DinskyPlusV2.cpython-312.pyc ├── DjzDatamosh.cpython-312.pyc ├── DjzDatamoshV3.cpython-312.pyc ├── DjzDatamoshV4.cpython-312.pyc ├── DjzDatamoshV5.cpython-312.pyc ├── DjzDatamoshV6.cpython-312.pyc ├── DjzDatamoshV7.cpython-312.pyc ├── FFXFADEORAMA.cpython-312.pyc ├── FractalGenerator.cpython-312.pyc ├── FractalGeneratorV2.cpython-312.pyc ├── FractalGeneratorV3.cpython-312.pyc ├── ImageSizeAdjuster.cpython-312.pyc ├── ImageSizeAdjusterV2.cpython-312.pyc ├── ImageSizeAdjusterV3.cpython-312.pyc ├── LoadTextDirectory.cpython-312.pyc ├── LoadVideoBatchFrame.cpython-312.pyc ├── LoadVideoDirectory.cpython-312.pyc ├── ParametricMeshGen.cpython-312.pyc ├── ParametricMeshGenV2.cpython-312.pyc ├── ProjectFilePathNode.cpython-312.pyc ├── PromptCleaner.cpython-312.pyc ├── PromptInject.cpython-312.pyc ├── PromptSwap.cpython-312.pyc ├── SaveText.cpython-312.pyc ├── SequentialNumberGenerator.cpython-312.pyc ├── StringPainter.cpython-312.pyc ├── StringPainterV2.cpython-312.pyc ├── StringWeights.cpython-312.pyc ├── TrianglesPlus.cpython-312.pyc ├── TrianglesPlusV2.cpython-312.pyc ├── ZenkaiPrompt.cpython-312.pyc ├── ZenkaiPromptV2.cpython-312.pyc ├── ZenkaiWildcard.cpython-312.pyc ├── ZenkaiWildcardV2.cpython-312.pyc └── __init__.cpython-312.pyc ├── djzTiling.py ├── djzTilingV2.py ├── examples ├── FFX-Fade-O-Rama.json └── Zenkai-System.json ├── install-portable.bat ├── onnx-install-portable.bat ├── pip-update-portable.bat ├── pixel_unshuffle_Cascade_error.jpg ├── posemaps └── jojo │ ├── 3e809220-c3d8-47b2-8c67-aee3a3e71e00.jpeg │ ├── 431b7bbd-f776-481d-8059-20541e5acb00.jpeg │ ├── ada43f70-4ac6-40fb-9fd9-070952f0b700.jpeg │ └── ca04587c-2cb4-491c-5bf6-ab906c725600.jpeg ├── presets ├── cassette.preset ├── film.preset ├── intercom.preset ├── phone.preset ├── radio.preset ├── readme.md ├── tv.preset ├── vinyl.preset └── walkie_talkie.preset ├── prompts ├── 01-trad-ahab.txt ├── 02-trad-legend.txt ├── 03-trad-theChase.txt ├── 04-trad-whiteWhale.txt ├── 05-trad-obsessions.txt ├── 06-trad-theStorm.txt ├── 07-trad-shipwrecked.txt ├── 08-trad-huntingDawn.txt ├── 09-trad-secondSpear.txt ├── 0utp0st.txt ├── 3mp1r3-style.txt ├── Alf-History.txt ├── Blacksunv3.txt ├── CogVideo-Long.txt ├── DJZ-S3Captions.txt ├── Ducreux.txt ├── Eclectic-AMV.txt ├── Gabe_yojoe.txt ├── Golden-Surfer-Video.txt ├── HYV-Drift-Touge.txt ├── HYV-Drift-daytime-touge.txt ├── HYV-Drift.txt ├── JohnWickGeneral.txt ├── JohnWickGeneralV2.txt ├── LTXV-dialogue-closeups.txt ├── LTXV-emotional-moments.txt ├── LTXV-interior-character.txt ├── LTXV-movement-sequences.txt ├── LTXV-nature-landscape.txt ├── LTXV-photorealistic-scenes.txt ├── LTXV-police-crime.txt ├── LTXV-professional-workplace.txt ├── LTXV-science-fiction-scenes.txt ├── LTXV-superhero-scenes.txt ├── LTXV-surrealist-scenes.txt ├── LTXV-video-full.txt ├── Merlin-Spaceship.txt ├── Mochi-Photo-256.txt ├── Mochi-Photo-short.txt ├── Mochi-Photo-xplor.txt ├── NTTW-full.txt ├── NTTWv66.txt ├── NeonMutation-tagged.txt ├── PhotonicCloning-captions.txt ├── RDM_Sharona_V4.txt ├── Spaceninjas-Real.txt ├── Spaceninjas-Soup.txt ├── StarCitizenFlux-V1.txt ├── Thorra-Actions-airlock.txt ├── Thorra-Actions-rushing.txt ├── Thorra-Actions-shooting.txt ├── Thorra-Actions.txt ├── Thorra-Airship-hallway.txt ├── Thorra-Airship-only.txt ├── Thorra-Airship-reactor.txt ├── Thorra-Airship.txt ├── Thorra-Machine-Cities.txt ├── Thorra-Main-extreme-closeup.txt ├── Thorra-Main-holding-gun.txt ├── Thorra-Main-shooting-directly.txt ├── Thorra-Main-sneaking.txt ├── Thorra-Main-spysuit.txt ├── Thorra-Main.txt ├── Thorra-Scenes-corridor.txt ├── Thorra-Scenes.txt ├── Tower-V0.txt ├── Zenkai-desu.txt ├── Zenkai-prompt.txt ├── Zenkai-random.txt ├── Zenkai-style.txt ├── abstractChaosFlux-captions.txt ├── airship-interiors-v3.txt ├── airship-locations-v2.txt ├── alf_video_prompts.txt ├── andromeda-spaceship-captions.txt ├── assassinKahb-captions.txt ├── assassinXuhk-captions.txt ├── assassinZohc-captions.txt ├── assassinkahb.txt ├── assassinmihq-captions.txt ├── bakemono-captions.txt ├── bar-projectv2.txt ├── big-gdg-doggo.txt ├── blacksun-V1.txt ├── blacksun-v0.txt ├── blacksunv4.txt ├── buster-k3at0n.txt ├── carxjohnson-captions.txt ├── cogvideo-fantasy.txt ├── cogvideo-gen.txt ├── cogvideo-scifi.txt ├── cogvideo.txt ├── crw-style.txt ├── cthuluBishop-captions.txt ├── cyberSocietyV4.txt ├── cyberninjav0.txt ├── cyberninjav1.txt ├── cybersoc-ep1.txt ├── cybersocietyV2.txt ├── cybersocietyV3.txt ├── cybersocietyV6.txt ├── cybersocietyv0.txt ├── cybersocietyv1.txt ├── cybersocietyv5.txt ├── darkExecutioner-captions.txt ├── deathDance-captions.txt ├── djz-OnFire.txt ├── djz-SnowStreets.txt ├── drift-ep0.txt ├── drift-ep1.txt ├── dronecam-captions.txt ├── duellingDaemons.txt ├── electronMicroscope-captions.txt ├── fxf-tokyo-meet.txt ├── genesis-flux-captions.txt ├── gkg-scout.txt ├── gkg-soldier.txt ├── glitchStick-captions.txt ├── grandSedan-captions.txt ├── gundamFigur-captions.txt ├── helldivers2-Flux-V1.txt ├── hologram-style-flux-V1.txt ├── jovian-airships-v3.txt ├── junglepunkOG.txt ├── junglepunkhouse.txt ├── kck-cybersociety-v0.txt ├── kxk-momjiLine-captions.txt ├── kzk-thorraV3-captions.txt ├── leviathanZero-captions.txt ├── megaDemons-captions.txt ├── necroChurch-captions.txt ├── newsLocation-Community.txt ├── newsLocation-Emergency.txt ├── newsLocation-Urban.txt ├── newsLocation-Weather.txt ├── newsReporter-onLocation.txt ├── newscaster-Agent.txt ├── newscaster-Web.txt ├── newsroom-prompts.txt ├── nttw-lite.txt ├── nttw-v5.txt ├── og-xvx-outfit.txt ├── oldgodsv0.txt ├── oldgodsv1.txt ├── paradistro-IMG-barrierInterface.txt ├── paradistro-IMG-exterior.txt ├── paradistro-IMG-pristine.txt ├── paradistro-IMG-voidchamber.txt ├── paradistro-biosphere.txt ├── paradistro-cognimus.txt ├── paradistro-gen.txt ├── paradistro-infra.txt ├── paradistro-shell.txt ├── paradistro-transitionzones.txt ├── powerRangerWeb.txt ├── powerRangersV1.txt ├── promptEater-captions.txt ├── reynolds-oil-style.txt ├── sharona-char.txt ├── sharona-charV3.txt ├── sharona-charv2.txt ├── sharona-style2.txt ├── spacemarineDiorama-captions.txt ├── superfashionV1.txt ├── ultraFuture-captions.txt ├── venus-safe-v1.txt ├── vkv-woman.txt ├── westwick-char.txt ├── westwick-style.txt ├── wick-ep1.txt ├── wick-ep2.txt ├── womanv0.txt ├── womanv1.txt ├── womanv2.txt ├── womanv3.txt ├── xjx-tokyo-racer-v0.txt └── zkz-backplate.txt ├── pyproject.toml ├── python_path.cfg ├── requirements.txt ├── ringPattern.npy ├── unclean_speech.log ├── voice-effects ├── ethereal.py ├── monster.py └── robot.py └── wildcards ├── Gabe_biome.txt ├── Gabe_building.txt ├── Gabe_buildstore.txt ├── Gabe_world.txt ├── actor.txt ├── aesthetic.txt ├── age.txt ├── ancient_civilization.txt ├── ancient_egyptian.txt ├── ancient_wonder.txt ├── angle.txt ├── animal.txt ├── aquatic_creature.txt ├── artistsama.txt ├── artistsama2.txt ├── asian_wonder.txt ├── bird.txt ├── bodykit.txt ├── climate.txt ├── color.txt ├── cute.txt ├── domestic_space.txt ├── element.txt ├── emotion.txt ├── enigmatic_place.txt ├── european_landmark.txt ├── exotic_animal.txt ├── fantasy_creature.txt ├── fantasy_realm.txt ├── fashion.txt ├── fish.txt ├── flying_creature.txt ├── fx.txt ├── hat.txt ├── hero.txt ├── historical_place.txt ├── horrorsama.txt ├── intensity.txt ├── location.txt ├── lost_city.txt ├── main.txt ├── material.txt ├── mechanical_animal.txt ├── mesoamerican_site.txt ├── mythical_flying_creature.txt ├── mythical_sea_beast.txt ├── natural_setting.txt ├── object.txt ├── pet.txt ├── photographer.txt ├── photography.txt ├── predator.txt ├── prehistoric_sea_creature.txt ├── public_place.txt ├── rank.txt ├── sci_fi_location.txt ├── shade.txt ├── size.txt ├── smal.txt ├── species.txt ├── structures.txt ├── time.txt ├── town.txt ├── tropical_bird.txt ├── tropical_fish.txt ├── vid1subject.txt ├── vid1subjectV2.txt ├── vid1subjectV3.txt ├── vid2action.txt ├── vid2actionV2.txt ├── vid2actionV3.txt ├── vid3physical.txt ├── vid3physicalV2.txt ├── vid3physicalV3.txt ├── vid4camera.txt ├── vid4cameraV2.txt ├── vid4cameraV3.txt ├── vid5environment.txt ├── vid5environmentV2.txt ├── vid5environmentV3.txt ├── vid6scene.txt ├── vid6sceneV2.txt ├── vid6sceneV3.txt ├── weapon.txt └── weather.txt /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish to Comfy registry 2 | on: 3 | workflow_dispatch: 4 | push: 5 | branches: 6 | - main 7 | - master 8 | paths: 9 | - "pyproject.toml" 10 | 11 | permissions: 12 | issues: write 13 | 14 | jobs: 15 | publish-node: 16 | name: Publish Custom Node to registry 17 | runs-on: ubuntu-latest 18 | if: ${{ github.repository_owner == 'MushroomFleet' }} 19 | steps: 20 | - name: Check out code 21 | uses: actions/checkout@v4 22 | - name: Publish Custom Node 23 | uses: Comfy-Org/publish-node-action@v1 24 | with: 25 | ## Add your own personal access token to your Github Repository secrets and reference it here. 26 | personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }} 27 | -------------------------------------------------------------------------------- /AspectSize.md: -------------------------------------------------------------------------------- 1 | # AspectSize Node 2 | 3 | The AspectSize node is a utility for calculating optimal image dimensions while maintaining a desired aspect ratio. It's particularly useful when working with different AI models (SD, SDXL, or Cascade) that have specific optimal resolutions. 4 | 5 | ## Parameters 6 | 7 | ### Required Inputs 8 | 9 | - **model_type** (Selection) 10 | - Options: "SD", "SDXL", "Cascade" 11 | - Determines the base resolution: 12 | - SD: 512x512 base 13 | - SDXL: 1024x1024 base 14 | - Cascade: 2048x2048 base 15 | 16 | - **aspect_ratio_width** (Integer) 17 | - Default: 1 18 | - The width component of your desired aspect ratio 19 | - Example: For 16:9, set this to 16 20 | 21 | - **aspect_ratio_height** (Integer) 22 | - Default: 1 23 | - The height component of your desired aspect ratio 24 | - Example: For 16:9, set this to 9 25 | 26 | ## Outputs 27 | 28 | - **Width** (Integer) 29 | - The calculated optimal width that maintains the aspect ratio 30 | - Always divisible by 16 (for model compatibility) 31 | 32 | - **Height** (Integer) 33 | - The calculated optimal height that maintains the aspect ratio 34 | - Always divisible by 16 (for model compatibility) 35 | 36 | ## How It Works 37 | 38 | 1. The node takes your desired aspect ratio and model type 39 | 2. Calculates dimensions that maintain the total pixel count of the base resolution 40 | 3. Adjusts the dimensions to be divisible by 16 (required for stable diffusion models) 41 | 4. Returns the optimal width and height values 42 | 43 | ## Common Use Cases 44 | 45 | 1. **Widescreen Images** 46 | - Set aspect_ratio_width to 16 and aspect_ratio_height to 9 for standard widescreen 47 | - Works well for landscape compositions 48 | 49 | 2. **Portrait Mode** 50 | - Set aspect_ratio_width to 9 and aspect_ratio_height to 16 for vertical compositions 51 | - Ideal for character portraits or phone wallpapers 52 | 53 | 3. **Square Images** 54 | - Set both values to 1 for perfect squares 55 | - Useful for social media profile pictures or album covers 56 | 57 | ## Notes 58 | 59 | - The node ensures that the output dimensions are always divisible by 16, which is required for compatibility with AI image generation models 60 | - The total pixel count is preserved as much as possible while maintaining the aspect ratio 61 | - The calculations automatically adjust based on the selected model type's base resolution 62 | -------------------------------------------------------------------------------- /AspectSize.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | class AspectSize: 4 | def __init__(self): 5 | pass 6 | 7 | @classmethod 8 | def INPUT_TYPES(s): 9 | return { 10 | "required": { 11 | "model_type": (["SD","SDXL","Cascade"],), 12 | "aspect_ratio_width": ("INT",{ 13 | "default": 1, 14 | "step":1, 15 | "display": "number" 16 | }), 17 | "aspect_ratio_height": ("INT",{ 18 | "default": 1, 19 | "step":1, 20 | "display": "number" 21 | }) 22 | } 23 | } 24 | 25 | RETURN_TYPES = ("INT","INT") 26 | RETURN_NAMES = ("Width", "Height") 27 | 28 | FUNCTION = "run" 29 | 30 | CATEGORY = "DJZ-Nodes" 31 | 32 | def run(self, model_type, aspect_ratio_width, aspect_ratio_height, downscale_factor=16): 33 | # Define the total pixel counts for SD and SDXL 34 | total_pixels = { 35 | 'SD': 512 * 512, 36 | 'SDXL': 1024 * 1024, 37 | 'Cascade': 2048 * 2048 38 | } 39 | 40 | # Calculate the number of total pixels based on model type 41 | pixels = total_pixels.get(model_type, 0) 42 | 43 | # Calculate the aspect ratio decimal 44 | aspect_ratio_decimal = aspect_ratio_width / aspect_ratio_height 45 | 46 | # Calculate width and height 47 | width = math.sqrt(pixels * aspect_ratio_decimal) 48 | height = pixels / width 49 | 50 | # Adjust the width and height to be divisible by the downscale_factor 51 | width = math.ceil(width / downscale_factor) * downscale_factor 52 | height = math.ceil(height / downscale_factor) * downscale_factor 53 | 54 | # Return the width and height as a tuple of integers 55 | return (int(width), int(height)) 56 | 57 | NODE_CLASS_MAPPINGS = { 58 | "AspectSize": AspectSize 59 | } 60 | 61 | NODE_DISPLAY_NAME_MAPPINGS = { 62 | "AspectSize": "AspectSize" 63 | } -------------------------------------------------------------------------------- /AspectSizeV2.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | class AspectSizeV2: 4 | def __init__(self): 5 | pass 6 | 7 | @classmethod 8 | def INPUT_TYPES(s): 9 | return { 10 | "required": { 11 | "model_type": (["SD","SDXL","Cascade"],), 12 | "aspect_ratio_width": ("INT", { 13 | "default": 1, 14 | "step": 1, 15 | "display": "number" 16 | }), 17 | "aspect_ratio_height": ("INT", { 18 | "default": 1, 19 | "step": 1, 20 | "display": "number" 21 | }), 22 | "downscale_factor": ("INT", { 23 | "default": 64, 24 | "min": 1, 25 | "max": 128, 26 | "step": 1, 27 | "display": "number" 28 | }) 29 | } 30 | } 31 | 32 | RETURN_TYPES = ("INT", "INT") 33 | RETURN_NAMES = ("Width", "Height") 34 | FUNCTION = "run" 35 | CATEGORY = "DJZ-Nodes" 36 | 37 | def run(self, model_type, aspect_ratio_width, aspect_ratio_height, downscale_factor): 38 | # Define the total pixel counts for SD and SDXL 39 | total_pixels = { 40 | 'SD': 512 * 512, 41 | 'SDXL': 1024 * 1024, 42 | 'Cascade': 2048 * 2048 43 | } 44 | 45 | # Calculate the number of total pixels based on model type 46 | pixels = total_pixels.get(model_type, 0) 47 | 48 | # Calculate the aspect ratio decimal 49 | aspect_ratio_decimal = aspect_ratio_width / aspect_ratio_height 50 | 51 | # Calculate width and height 52 | width = math.sqrt(pixels * aspect_ratio_decimal) 53 | height = pixels / width 54 | 55 | # Adjust the width and height to be divisible by the downscale_factor 56 | width = math.ceil(width / downscale_factor) * downscale_factor 57 | height = math.ceil(height / downscale_factor) * downscale_factor 58 | 59 | # Return the width and height as a tuple of integers 60 | return (int(width), int(height)) 61 | 62 | NODE_CLASS_MAPPINGS = { 63 | "AspectSizeV2": AspectSizeV2 64 | } 65 | 66 | NODE_DISPLAY_NAME_MAPPINGS = { 67 | "AspectSizeV2": "Aspect Size V2" 68 | } -------------------------------------------------------------------------------- /BatchAlphaComposite.md: -------------------------------------------------------------------------------- 1 | # Batch Alpha Composite Node 2 | 3 | The Batch Alpha Composite node is an image processing node that allows you to combine two batches of images using alpha compositing. This is particularly useful when you want to overlay images that have transparency (RGBA) on top of background images (RGB). 4 | 5 | ## Inputs 6 | 7 | ### Required Inputs 8 | 9 | 1. **bottom_images** (IMAGE) 10 | - The bottom layer batch of images 11 | - Format: RGB (3 channels) 12 | - Shape: (Batch, Height, Width, 3) 13 | - Value range: [0, 1] 14 | - This serves as the background layer 15 | 16 | 2. **top_images** (IMAGE) 17 | - The top layer batch of images 18 | - Format: RGBA (4 channels) 19 | - Shape: (Batch, Height, Width, 4) 20 | - Value range: [0, 1] 21 | - This serves as the foreground layer with transparency 22 | 23 | ## Output 24 | 25 | - Returns a single IMAGE output 26 | - Format: RGB (3 channels) 27 | - Shape: Same as input (Batch, Height, Width, 3) 28 | - Value range: [0, 1] 29 | 30 | ## How It Works 31 | 32 | The node performs alpha compositing using the standard alpha blending formula: 33 | 34 | ``` 35 | result = (alpha * foreground) + ((1 - alpha) * background) 36 | ``` 37 | 38 | For each image in the batch: 39 | 1. The alpha channel is extracted from the top image 40 | 2. The RGB channels from both images are blended according to the alpha values 41 | 3. Areas where alpha = 1 will show the top image completely 42 | 4. Areas where alpha = 0 will show the bottom image completely 43 | 5. Values between 0 and 1 create a proportional blend 44 | 45 | ## Use Cases 46 | 47 | - Overlaying transparent PNG images onto backgrounds 48 | - Combining multiple layers with transparency 49 | - Creating composite images with smooth blending 50 | - Batch processing of image overlays 51 | 52 | ## Error Handling 53 | 54 | The node includes validation to ensure: 55 | - Bottom layer images must be in RGB format (3 channels) 56 | - Top layer images must be in RGBA format (4 channels) 57 | - Both batches must have compatible dimensions 58 | 59 | If these conditions are not met, the node will raise an appropriate error message. 60 | -------------------------------------------------------------------------------- /BatchOffset.md: -------------------------------------------------------------------------------- 1 | # Batch Offset Node 2 | 3 | The Batch Offset node is designed to reorder images within a batch by shifting their positions by a specified offset. This is particularly useful for creating animation sequences or adjusting the order of batch-processed images. 4 | 5 | ## Parameters 6 | 7 | ### Required Inputs 8 | 9 | - **images** (IMAGE) 10 | - A batch of input images 11 | - Must contain multiple images (batch size > 1) 12 | - Input shape should be [batch_size, height, width, channels] 13 | 14 | - **offset** (Integer) 15 | - Default: -1 16 | - Range: -100 to 100 17 | - Controls how many positions to shift the images 18 | - Positive values shift images forward in the sequence 19 | - Negative values shift images backward in the sequence 20 | - The shift wraps around (circular shift) 21 | 22 | ## Outputs 23 | 24 | - **images** (IMAGE) 25 | - The reordered batch of images 26 | - Same shape as input, but with images shifted to new positions 27 | 28 | ## How It Works 29 | 30 | 1. The node takes a batch of images and an offset value 31 | 2. Calculates the effective offset using modulo operation to handle wrapping 32 | 3. Performs a circular shift of the images by the specified offset 33 | 4. For example, with offset = -1: 34 | - Image 1 → moves to last position 35 | - Image 2 → moves to position 1 36 | - Image 3 → moves to position 2 37 | - And so on... 38 | 39 | ## Common Use Cases 40 | 41 | 1. **Animation Frame Adjustment** 42 | - Shift animation frames to adjust timing 43 | - Create loop points in animated sequences 44 | - Fix frame order issues in batch-generated animations 45 | 46 | 2. **Batch Processing Order** 47 | - Reorder batch-processed images without regenerating 48 | - Adjust sequence alignment in multi-batch operations 49 | - Create variations in image sequence patterns 50 | 51 | 3. **Creative Effects** 52 | - Create interesting transitions between images 53 | - Generate rhythmic patterns in image sequences 54 | - Experiment with different ordering effects 55 | 56 | ## Notes 57 | 58 | - The node requires a batch of multiple images to function 59 | - If a single image is provided, the node will pass it through unchanged with a warning 60 | - The offset wraps around the batch size, so an offset of the batch size (or its negative) results in no change 61 | - Useful for post-processing adjustments without needing to regenerate images 62 | -------------------------------------------------------------------------------- /BatchOffset.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import numpy as np 3 | 4 | class BatchOffset: 5 | def __init__(self): 6 | self.type = "BatchOffset" 7 | self.output_node = True 8 | 9 | @classmethod 10 | def INPUT_TYPES(cls): 11 | return { 12 | "required": { 13 | "images": ("IMAGE",), 14 | "offset": ("INT", { 15 | "default": -1, 16 | "min": -100, # Arbitrary limit, can be adjusted 17 | "max": 100, # Arbitrary limit, can be adjusted 18 | "step": 1 19 | }) 20 | } 21 | } 22 | 23 | RETURN_TYPES = ("IMAGE",) 24 | FUNCTION = "offset_batch" 25 | CATEGORY = "image/batch" 26 | 27 | def offset_batch(self, images, offset): 28 | # Check if we have a batch of images 29 | if len(images.shape) < 4 or images.shape[0] <= 1: 30 | print("Warning: BatchOffset node requires a batch of multiple images") 31 | return (images,) 32 | 33 | # Calculate the effective offset (handling negative numbers) 34 | batch_size = images.shape[0] 35 | effective_offset = offset % batch_size 36 | 37 | # Perform the offset operation 38 | # For offset -1, this will move each image one position forward 39 | # and wrap the first image to the end 40 | shifted_images = torch.roll(images, shifts=effective_offset, dims=0) 41 | 42 | return (shifted_images,) 43 | 44 | # This is required for ComfyUI to recognize and load the node 45 | NODE_CLASS_MAPPINGS = { 46 | "BatchOffset": BatchOffset 47 | } 48 | 49 | NODE_DISPLAY_NAME_MAPPINGS = { 50 | "BatchOffset": "Batch Offset" 51 | } -------------------------------------------------------------------------------- /BatchRangeInsert.md: -------------------------------------------------------------------------------- 1 | # BatchRangeInsert Node 2 | 3 | The BatchRangeInsert node is designed for manipulating image sequences by inserting a batch of frames into a target sequence at a specified range. This node is particularly useful for video editing and frame sequence manipulation tasks within ComfyUI. 4 | 5 | ## Parameters 6 | 7 | ### Required Inputs 8 | 9 | 1. **target_sequence** (IMAGE) 10 | - The main sequence of images that will be modified 11 | - Must be a batch of multiple images (batch size > 1) 12 | - This is your base sequence where new frames will be inserted 13 | 14 | 2. **insert_frames** (IMAGE) 15 | - The batch of frames that will be inserted into the target sequence 16 | - Must be a valid batch of images 17 | - These frames will replace the specified range in the target sequence 18 | 19 | 3. **start_frame** (INT) 20 | - The starting frame index where insertion will begin 21 | - Default value: 0 22 | - Minimum value: 0 23 | - Maximum value: 999 24 | - Step size: 1 25 | 26 | 4. **end_frame** (INT) 27 | - The ending frame index where insertion will end 28 | - Default value: 1 29 | - Minimum value: 0 30 | - Maximum value: 999 31 | - Step size: 1 32 | - Must be greater than or equal to start_frame 33 | 34 | ## Usage 35 | 36 | The node operates by: 37 | 1. Taking a target sequence of images 38 | 2. Removing frames between start_frame and end_frame (inclusive) 39 | 3. Inserting the provided insert_frames at the start_frame position 40 | 4. Preserving all frames before start_frame and after end_frame 41 | 42 | ### Example 43 | 44 | If you have: 45 | - A target sequence of 10 frames 46 | - 3 insert frames 47 | - start_frame = 2 48 | - end_frame = 4 49 | 50 | The result will be: 51 | - Frames 0-1 from the target sequence 52 | - The 3 insert frames 53 | - Frames 5-9 from the target sequence 54 | 55 | ## Output 56 | 57 | The node outputs a single IMAGE type, which is the modified sequence containing: 58 | - Original frames before the insertion point 59 | - Newly inserted frames 60 | - Original frames after the insertion point 61 | 62 | ## Notes 63 | 64 | - The node will print a warning if either the target_sequence or insert_frames inputs are not proper batches of images 65 | - The final sequence length will be: original_length - (end_frame - start_frame) + insert_frames_length 66 | - Frame indices are automatically clamped to valid ranges to prevent errors 67 | - The node preserves the original image dimensions and channel count 68 | -------------------------------------------------------------------------------- /BatchThief.md: -------------------------------------------------------------------------------- 1 | # Batch Thief Node 2 | 3 | The Batch Thief node is designed to extract a specific range of frames from a batch of images. This node is particularly useful when you need to isolate or work with a subset of frames from a larger batch sequence. 4 | 5 | ## Parameters 6 | 7 | ### Required Inputs 8 | 9 | 1. **images** (IMAGE) 10 | - Input batch of images to extract frames from 11 | - Must be a batch containing multiple images 12 | 13 | 2. **start_frame** (INT) 14 | - The starting frame index to extract from the batch 15 | - Default value: 0 16 | - Minimum value: 0 17 | - Maximum value: 999 18 | - Step size: 1 19 | 20 | 3. **end_frame** (INT) 21 | - The ending frame index (exclusive) for extraction 22 | - Default value: 1 23 | - Minimum value: 0 24 | - Maximum value: 999 25 | - Step size: 1 26 | 27 | ## Usage 28 | 29 | The node works by selecting a range of frames from the input batch, starting from `start_frame` up to (but not including) `end_frame`. For example: 30 | - If you set `start_frame = 0` and `end_frame = 5`, it will extract the first 5 frames from the batch 31 | - If you set `start_frame = 10` and `end_frame = 15`, it will extract frames 10 through 14 32 | 33 | ## Important Notes 34 | 35 | 1. The node requires a batch of multiple images to function properly. If a single image is provided, a warning will be displayed. 36 | 2. Frame indices are automatically adjusted to valid ranges: 37 | - If `start_frame` is less than 0, it will be set to 0 38 | - If `end_frame` exceeds the batch size, it will be capped at the batch size 39 | - If `start_frame` is greater than or equal to `end_frame`, an empty batch warning will be displayed 40 | 3. The node is categorized under "image/batch" in the ComfyUI interface 41 | 42 | ## Output 43 | 44 | - Returns a tensor of type IMAGE containing the selected frames 45 | - If an invalid range is selected (start_frame >= end_frame), returns a single empty frame to maintain tensor structure 46 | -------------------------------------------------------------------------------- /BatchThief.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import numpy as np 3 | 4 | class BatchThief: 5 | def __init__(self): 6 | self.type = "BatchThief" 7 | self.output_node = True 8 | 9 | @classmethod 10 | def INPUT_TYPES(cls): 11 | return { 12 | "required": { 13 | "images": ("IMAGE",), 14 | "start_frame": ("INT", { 15 | "default": 0, 16 | "min": 0, 17 | "max": 999, # Arbitrary limit, can be adjusted 18 | "step": 1 19 | }), 20 | "end_frame": ("INT", { 21 | "default": 1, 22 | "min": 0, 23 | "max": 999, # Arbitrary limit, can be adjusted 24 | "step": 1 25 | }) 26 | } 27 | } 28 | 29 | RETURN_TYPES = ("IMAGE",) 30 | FUNCTION = "steal_frames" 31 | CATEGORY = "image/batch" 32 | 33 | def steal_frames(self, images, start_frame, end_frame): 34 | # Check if we have a batch of images 35 | if len(images.shape) < 4 or images.shape[0] <= 1: 36 | print("Warning: BatchThief node requires a batch of multiple images") 37 | return (images,) 38 | 39 | # Get batch size 40 | batch_size = images.shape[0] 41 | 42 | # Validate and adjust frame indices 43 | start_frame = min(max(0, start_frame), batch_size - 1) 44 | end_frame = min(max(start_frame, end_frame), batch_size) 45 | 46 | # Extract the specified range of frames 47 | stolen_frames = images[start_frame:end_frame] 48 | 49 | # If the range is empty (start_frame >= end_frame), return an empty batch 50 | if stolen_frames.shape[0] == 0: 51 | print("Warning: Selected frame range is empty") 52 | # Return a single empty frame to maintain tensor structure 53 | return (images[:1],) 54 | 55 | return (stolen_frames,) 56 | 57 | # This is required for ComfyUI to recognize and load the node 58 | NODE_CLASS_MAPPINGS = { 59 | "BatchThief": BatchThief 60 | } 61 | 62 | NODE_DISPLAY_NAME_MAPPINGS = { 63 | "BatchThief": "Batch Thief" 64 | } -------------------------------------------------------------------------------- /BracketCleaner.md: -------------------------------------------------------------------------------- 1 | # Bracket Cleaner Node README 2 | 3 | ## Overview 4 | The **Bracket Cleaner** node is designed to remove text enclosed within parentheses, along with the parentheses themselves, from a given input text. It processes the text by splitting it into paragraphs (using blank lines as separators) and then cleaning each paragraph individually. 5 | 6 | ## Functionality 7 | - **Paragraph Splitting:** The input text is divided into paragraphs based on blank lines. 8 | - **Bracket Removal:** For each paragraph, the node uses a regular expression to identify and remove any content within parentheses `(` and `)`. 9 | - **Logging:** The node logs both the original and the cleaned text for debugging and verification purposes. 10 | - **Output:** Returns the cleaned text as a single string, preserving paragraph breaks. 11 | 12 | ## Parameters 13 | 14 | ### text (STRING, required) 15 | - **Description:** The multiline string input that may contain unwanted bracketed information. 16 | - **Usage:** Supply any text that you want to clean. The node will look through each paragraph and remove any text that appears within parentheses. 17 | 18 | ## Example 19 | 20 | **Input:** 21 | ``` 22 | (Studio lights up, and I, Juan Carlos Gómez, appear on screen) 23 | 24 | Juan Carlos Gómez: Buenas noches, amigos. Welcome to our broadcast. 25 | 26 | (Cut to a graphic reading "URGENTE: Nuevo descubrimiento científico") 27 | 28 | Juan Carlos Gómez: Tonight, we have groundbreaking news. 29 | ``` 30 | 31 | **Output:** 32 | ``` 33 | Juan Carlos Gómez: Buenas noches, amigos. Welcome to our broadcast. 34 | 35 | Juan Carlos Gómez: Tonight, we have groundbreaking news. 36 | ``` 37 | 38 | ## How to Use 39 | 1. **Connect the Node:** Integrate the Bracket Cleaner node into your node pipeline. 40 | 2. **Provide Input:** Attach a string source to the `text` parameter containing the content you wish to process. 41 | 3. **Execute:** Run the node to output the cleaned text. Check logs if needed for details on the cleaning process. 42 | 43 | ## Category 44 | Custom-Nodes 45 | -------------------------------------------------------------------------------- /CombineAudio.md: -------------------------------------------------------------------------------- 1 | # Combine Audio Tracks Node 2 | 3 | A ComfyUI custom node that allows you to mix two audio tracks together with volume control for each track. 4 | 5 | ## Description 6 | 7 | The Combine Audio node takes two audio inputs and merges them into a single audio track while providing independent volume control for each input. This is particularly useful for: 8 | - Adding background music to voice recordings 9 | - Mixing multiple audio tracks 10 | - Creating layered audio effects 11 | 12 | ## Parameters 13 | 14 | ### Required Inputs 15 | - **audio1**: First audio input track (AUDIO type) 16 | - **audio2**: Second audio input track (AUDIO type) 17 | - **volume1**: Volume multiplier for the first audio track 18 | - Default: 1.0 19 | - Range: 0.0 to 2.0 20 | - Step: 0.1 21 | - **volume2**: Volume multiplier for the second audio track 22 | - Default: 1.0 23 | - Range: 0.0 to 2.0 24 | - Step: 0.1 25 | 26 | ### Output 27 | - Returns a combined AUDIO track 28 | 29 | ## How It Works 30 | 31 | 1. The node loads both input audio tracks using pydub 32 | 2. Applies volume adjustments to each track independently 33 | - Volume is converted from linear scale to decibels (dB) 34 | - A volume of 1.0 means no change 35 | - Values below 1.0 decrease volume 36 | - Values above 1.0 increase volume (up to 2.0x) 37 | 3. Automatically matches the length of both tracks 38 | - If one track is longer, the shorter track is padded with silence 39 | 4. Overlays the tracks together while preserving both audio streams 40 | 5. Exports the result as a new audio file 41 | 42 | ## Technical Details 43 | 44 | - Output Format: MP4 audio 45 | - Volume Conversion: Uses 20 * log10(volume) for dB conversion 46 | - Length Matching: Automatic padding with silence 47 | - Error Handling: Returns the first audio track if combination fails 48 | 49 | ## Dependencies 50 | 51 | - pydub: Audio processing library 52 | 53 | ## Usage Example 54 | 55 | 1. Connect two audio sources to the node's audio1 and audio2 inputs 56 | 2. Adjust volume1 and volume2 to balance the audio levels 57 | 3. The combined audio will be available at the output 58 | 59 | Note: The node automatically handles different length audio files by padding the shorter one with silence to match the longer track's duration. 60 | -------------------------------------------------------------------------------- /DJZLoadLatent.md: -------------------------------------------------------------------------------- 1 | # DJZ Load Latent Node 2 | 3 | The DJZ Load Latent node is designed to load previously saved latent tensors directly from ComfyUI's output directory. This node is particularly useful when you want to reuse latent representations from previous generations or load pre-computed latents into your workflow. 4 | 5 | ## Parameters 6 | 7 | ### Required Parameters 8 | 9 | - **latent_file**: A dropdown menu that displays all available .latent files found in the ComfyUI output directory and its subdirectories. The files are sorted alphabetically for easy navigation. 10 | 11 | ## Functionality 12 | 13 | The node performs the following operations: 14 | 15 | 1. Scans the ComfyUI output directory recursively for .latent files 16 | 2. Loads the selected latent file using safetensors 17 | 3. Applies the appropriate scaling factor based on the latent format version: 18 | - For version 0 format: multiplier = 1.0 19 | - For other formats: multiplier = 1.0 / 0.18215 20 | 4. Returns the properly formatted latent tensor for use in your workflow 21 | 22 | ## Error Handling 23 | 24 | The node includes several safety features: 25 | 26 | - If no latent files are found, an empty option is provided in the dropdown 27 | - If an invalid file is selected, appropriate error messages are displayed 28 | - If there's an error loading the latent, it returns a zero tensor (1, 4, 8, 8) to prevent workflow crashes 29 | - File validation is performed to ensure the selected file exists before attempting to load it 30 | 31 | ## Output 32 | 33 | The node outputs a LATENT type that can be used with other nodes that accept latent inputs in your ComfyUI workflow. 34 | 35 | ## Use Cases 36 | 37 | - Loading previously generated latents for further processing 38 | - Reusing latent representations across different workflows 39 | - Experimenting with saved latent spaces 40 | - Creating workflows that build upon previously generated results 41 | -------------------------------------------------------------------------------- /FilmGrainEffect_v2.md: -------------------------------------------------------------------------------- 1 | # Film Grain Effect V2 (video) 2 | 3 | This node applies a customizable film grain effect to a batch of images, with support for both preset patterns and custom mathematical expressions. 4 | 5 | ## Input Parameters 6 | 7 | - **images**: A batch of input images to process 8 | - **preset**: Choose from predefined grain patterns or select "custom" to use your own expression 9 | - custom: Use your own mathematical expression 10 | - subtle: Light grain effect with gentle temporal variation 11 | - vintage: Classic film grain with periodic intensity changes 12 | - unstable_signal: Dynamic grain pattern with multiple frequency components 13 | - dip: Periodic intensity dips 14 | - ebb: Smooth oscillating grain pattern 15 | - flow: Flowing grain pattern with dual frequency modulation 16 | - **expression_input**: Mathematical expression for custom grain pattern (used when preset is "custom") 17 | - Available functions: sin, cos, exp, abs, pow 18 | - Constants: pi, e 19 | - Random distributions: normal(mean, std), uniform(min, max) 20 | - Time variable: t (scaled by time_scale) 21 | - **base_intensity**: Overall strength of the grain effect (0.0 to 1.0) 22 | - **time_scale**: Controls the speed of temporal variations (0.1 to 10.0) 23 | - **noise_scale**: Controls the scale/contrast of the noise pattern (0.0 to 1.0) 24 | - **seed**: Random seed for reproducible results 25 | 26 | ## Expression Examples 27 | 28 | The following preset expressions can be used as references for creating custom patterns: 29 | 30 | ```python 31 | # Subtle grain 32 | 0.08 * normal(0.5, 0.15) * (1 + 0.2 * sin(t/25)) 33 | 34 | # Vintage film 35 | 0.15 * normal(0.5, 0.25) * (1 + 0.3 * sin(t/12)) + 0.05 * exp(-(t % 40)/10) 36 | 37 | # Unstable signal 38 | 0.15 * normal(0.5, 0.3) * (1 + 0.5 * sin(t/5)) + 0.1 * sin(t/3) * exp(-t/100 % 20) + 0.05 * uniform(-1, 1) * sin(t/7)**2 39 | ``` 40 | 41 | ## Expression Guidelines 42 | 43 | 1. Use `t` as the time variable (frame number × time_scale) 44 | 2. Combine random distributions (normal, uniform) with periodic functions (sin, cos) 45 | 3. Use modulo (%) for repeating patterns 46 | 4. Keep final values reasonable (typically between 0 and 1) 47 | 5. Test with different time_scale values to adjust temporal variation speed 48 | 49 | ## Output 50 | 51 | - Returns the processed images with film grain effect applied 52 | - Output maintains the same dimensions and format as input 53 | - Values are automatically clipped to valid range (0 to 1) 54 | -------------------------------------------------------------------------------- /ImageSizeAdjuster.md: -------------------------------------------------------------------------------- 1 | # Image Size Adjuster 2 | 3 | This node automatically adjusts image dimensions to be optimal for different AI model types (SD 1.5, SDXL, or Cascade) while maintaining the original aspect ratio and ensuring dimensions are properly divisible for tiling. 4 | 5 | ## Input Parameters 6 | 7 | - **image**: The input image to be resized 8 | - **model_type**: Choose between three AI model types: 9 | - `SD`: Targets 512x512 (262,144 pixels) 10 | - `SDXL`: Targets 1024x1024 (1,048,576 pixels) 11 | - `Cascade`: Targets 2048x2048 (4,194,304 pixels) 12 | - **downscale_factor**: The number that both width and height should be divisible by 13 | - Default: 64 14 | - Range: 1-128 15 | - Used to ensure dimensions are optimal for the model's tiling system 16 | 17 | ## Outputs 18 | 19 | - **adjusted_width**: The calculated optimal width for the selected model 20 | - **adjusted_height**: The calculated optimal height for the selected model 21 | 22 | ## How It Works 23 | 24 | 1. The node first determines the target total pixel count based on the selected model type 25 | 2. It preserves the aspect ratio of your input image while scaling to match the target pixel count 26 | 3. Both dimensions are then adjusted to be divisible by the downscale_factor 27 | 4. The final dimensions maintain a similar total pixel count to the model's target while keeping your image's proportions 28 | 29 | ## Use Cases 30 | 31 | - Preparing images for specific AI models while maintaining composition 32 | - Ensuring dimensions are optimal for tiling/processing 33 | - Automatically calculating proper dimensions for different model types without manual math 34 | -------------------------------------------------------------------------------- /ImageSizeAdjuster.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | class ImageSizeAdjuster: 4 | @classmethod 5 | def INPUT_TYPES(cls): 6 | return { 7 | "required": { 8 | "image": ("IMAGE",), 9 | "model_type": (["SD", "SDXL", "Cascade"],), 10 | "downscale_factor": ("INT", { 11 | "default": 64, 12 | "min": 1, 13 | "max": 128, 14 | "step": 1, 15 | "display": "number" 16 | }) 17 | } 18 | } 19 | 20 | RETURN_TYPES = ("INT", "INT") 21 | RETURN_NAMES = ("adjusted_width", "adjusted_height") 22 | FUNCTION = "adjust_size" 23 | CATEGORY = "DJZ-Nodes" 24 | 25 | def adjust_size(self, image, model_type, downscale_factor): 26 | # Define the total pixel counts for SD, SDXL, and Cascade 27 | total_pixels = { 28 | 'SD': 512 * 512, 29 | 'SDXL': 1024 * 1024, 30 | 'Cascade': 2048 * 2048 31 | } 32 | 33 | # Get the dimensions of the input image 34 | _, height, width, _ = image.shape 35 | 36 | # Calculate the current aspect ratio 37 | aspect_ratio = width / height 38 | 39 | # Get the target total pixels based on the model type 40 | target_pixels = total_pixels[model_type] 41 | 42 | # Calculate new dimensions that maintain the aspect ratio and are close to the target pixel count 43 | new_width = math.sqrt(target_pixels * aspect_ratio) 44 | new_height = new_width / aspect_ratio 45 | 46 | # Adjust dimensions to be divisible by the downscale factor 47 | adjusted_width = math.ceil(new_width / downscale_factor) * downscale_factor 48 | adjusted_height = math.ceil(new_height / downscale_factor) * downscale_factor 49 | 50 | return (int(adjusted_width), int(adjusted_height)) 51 | 52 | NODE_CLASS_MAPPINGS = { 53 | "ImageSizeAdjuster": ImageSizeAdjuster 54 | } 55 | 56 | NODE_DISPLAY_NAME_MAPPINGS = { 57 | "ImageSizeAdjuster": "Image Size Adjuster" 58 | } -------------------------------------------------------------------------------- /PIP-MAN-V5.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem PIP Manager for embedded Python 3 | setlocal EnableDelayedExpansion 4 | 5 | set "CONFIG_FILE=%~dp0python_path.cfg" 6 | 7 | if exist "%CONFIG_FILE%" ( 8 | set /p PYTHON_PATH=<"%CONFIG_FILE%" 9 | ) else ( 10 | echo No saved Python path found. 11 | echo Please enter the full path to python.exe: 12 | set /p PYTHON_PATH="Python Path: " 13 | echo !PYTHON_PATH!>"%CONFIG_FILE%" 14 | ) 15 | 16 | if not exist "!PYTHON_PATH!" ( 17 | echo Python executable not found at: !PYTHON_PATH! 18 | del "%CONFIG_FILE%" 2>nul 19 | pause 20 | exit /b 1 21 | ) 22 | 23 | :menu 24 | cls 25 | echo =================================== 26 | echo PIP MANAGER 27 | echo =================================== 28 | echo Current Python Path: !PYTHON_PATH! 29 | echo. 30 | echo 1. Update pip 31 | echo 2. Remove package 32 | echo 3. Install package 33 | echo 4. Check version 34 | echo 5. Check Packages 35 | echo 6. List Packages 36 | echo 7. Change path 37 | echo 8. Exit 38 | echo. 39 | set /p CHOICE="Choose an option (1-8): " 40 | 41 | if "!CHOICE!"=="1" ( 42 | "!PYTHON_PATH!" -m pip install --upgrade pip 43 | ) else if "!CHOICE!"=="2" ( 44 | set /p PKG="Package to remove: " 45 | "!PYTHON_PATH!" -m pip uninstall -y !PKG! 46 | ) else if "!CHOICE!"=="3" ( 47 | set /p PKG="Package to install: " 48 | "!PYTHON_PATH!" -m pip install !PKG! 49 | ) else if "!CHOICE!"=="4" ( 50 | set /p PKG="Package to check: " 51 | "!PYTHON_PATH!" -m pip show !PKG! | findstr "Version:" || echo Package not found 52 | ) else if "!CHOICE!"=="5" ( 53 | "!PYTHON_PATH!" -m pip check 54 | ) else if "!CHOICE!"=="6" ( 55 | "!PYTHON_PATH!" -m pip list 56 | ) else if "!CHOICE!"=="7" ( 57 | set /p NEW_PATH="New Python path: " 58 | if exist "!NEW_PATH!" ( 59 | echo !NEW_PATH!>"%CONFIG_FILE%" 60 | set "PYTHON_PATH=!NEW_PATH!" 61 | echo Path updated. 62 | ) else ( 63 | echo Invalid path. 64 | ) 65 | ) else if "!CHOICE!"=="8" ( 66 | echo Goodbye! 67 | exit /b 0 68 | ) else ( 69 | echo Invalid choice. 70 | ) 71 | 72 | pause 73 | goto menu 74 | -------------------------------------------------------------------------------- /ProjectFolderPathNode.md: -------------------------------------------------------------------------------- 1 | # Project Folder Path Generator 2 | 3 | This node generates a folder path based on specified components: root, project name, and subfolder. 4 | 5 | ## Parameters 6 | 7 | ### Required 8 | 9 | - **root**: The base directory for the path (defaults to "output") 10 | - **project_name**: The name of the project folder (defaults to "MyProject") 11 | - **subfolder**: A subfolder within the project (defaults to "images") 12 | 13 | ### Optional 14 | 15 | - **separator**: The path separator to use 16 | - "auto" (uses system default) 17 | - "forward_slash" (/) 18 | - "backslash" (\) 19 | 20 | ## Output 21 | 22 | - **STRING**: The generated folder path 23 | 24 | ## Example Output 25 | 26 | With default settings: 27 | ``` 28 | output/MyProject/images 29 | ``` 30 | 31 | ## Notes 32 | 33 | - The node sanitizes inputs to ensure they're safe for use in file paths 34 | - All spaces in inputs are converted to underscores 35 | - The output is a normalized path according to the system's standards 36 | -------------------------------------------------------------------------------- /ProjectFolderPathNode.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | class ProjectFolderPathNode: 4 | @classmethod 5 | def INPUT_TYPES(cls): 6 | return { 7 | "required": { 8 | "root": ("STRING", {"default": "output"}), 9 | "project_name": ("STRING", {"default": "MyProject"}), 10 | "subfolder": ("STRING", {"default": "images"}), 11 | }, 12 | "optional": { 13 | "separator": (["auto", "forward_slash", "backslash"], {"default": "auto"}), 14 | } 15 | } 16 | 17 | RETURN_TYPES = ("STRING",) 18 | FUNCTION = "generate_folder_path" 19 | CATEGORY = "file_management" 20 | 21 | def generate_folder_path(self, root, project_name, subfolder, separator="auto"): 22 | # Sanitize inputs 23 | root = self.sanitize_path_component(root) 24 | project_name = self.sanitize_path_component(project_name) 25 | subfolder = self.sanitize_path_component(subfolder) 26 | 27 | # Determine the separator 28 | if separator == "auto": 29 | sep = os.path.sep 30 | elif separator == "forward_slash": 31 | sep = "/" 32 | else: 33 | sep = "\\" 34 | 35 | # Construct path 36 | path_components = [root, project_name, subfolder] 37 | full_path = sep.join(filter(bool, path_components)) 38 | 39 | # Normalize the path 40 | full_path = os.path.normpath(full_path) 41 | 42 | return (full_path,) 43 | 44 | @staticmethod 45 | def sanitize_path_component(component): 46 | # Remove any characters that are unsafe for file paths 47 | unsafe_chars = ['<', '>', ':', '"', '|', '?', '*'] 48 | for char in unsafe_chars: 49 | component = component.replace(char, '') 50 | # Convert spaces to underscores 51 | component = component.replace(' ', '_') 52 | # Remove leading/trailing dots and slashes 53 | return component.strip('./\\') 54 | 55 | @classmethod 56 | def IS_CHANGED(cls, **kwargs): 57 | # This ensures the node updates when any input changes 58 | return float("nan") 59 | 60 | NODE_CLASS_MAPPINGS = { 61 | "ProjectFolderPathNode": ProjectFolderPathNode 62 | } 63 | 64 | NODE_DISPLAY_NAME_MAPPINGS = { 65 | "ProjectFolderPathNode": "Project Folder Path Generator" 66 | } 67 | -------------------------------------------------------------------------------- /PromptCleaner.md: -------------------------------------------------------------------------------- 1 | # Prompt Cleaner Node README 2 | 3 | ## Overview 4 | The **Prompt Cleaner** node processes input text by removing specified words, helping to sanitize or simplify textual prompts. It is designed to filter out unwanted words while preserving punctuation and the overall structure of the text. 5 | 6 | ## Functionality 7 | - **Word Removal:** The node receives a list of words (as a comma-separated string) that should be removed from the input text. It performs a case-insensitive match against each word. 8 | - **Text Tokenization:** It splits the input text into individual words and punctuation tokens using regular expressions. This ensures that punctuation is preserved in the final output. 9 | - **Filtering:** Each token in the input text is examined. If a token (in lowercase) matches any of the words in the removal list, it is excluded from the final output. 10 | - **Logging:** The node logs the original text, the words designated for removal, and the cleaned text for verification and debugging purposes. 11 | - **Output:** Returns the cleaned text as a single string, with tokens rejoined and separated by spaces. 12 | 13 | ## Parameters 14 | 15 | ### text (STRING, required) 16 | - **Description:** The multiline string input representing the prompt that needs cleaning. 17 | - **Usage:** Provide the full prompt from which you want certain words removed. The node will process the text token by token. 18 | 19 | ### words_to_remove (STRING, required) 20 | - **Description:** A comma-separated list of words that should be removed from the input text. 21 | - **Default Value:** `"man, woman, world"` 22 | - **Usage:** Specify the words to filter out. The node splits this string by commas, trims white spaces, and converts each word to lowercase for comparisons. 23 | 24 | ## Example 25 | 26 | **Input:** 27 | ``` 28 | The world is an amazing place. 29 | Man cannot comprehend all its wonders. 30 | ``` 31 | _With the default words to remove (`"man, woman, world"`), the node processes the text as follows._ 32 | 33 | **Output:** 34 | ``` 35 | The is an amazing place. cannot comprehend all its wonders. 36 | ``` 37 | 38 | ## How to Use 39 | 1. **Integrate the Node:** Add the Prompt Cleaner node into your processing pipeline. 40 | 2. **Provide Input:** Connect a text source to the `text` parameter and optionally modify the `words_to_remove` parameter with your custom list. 41 | 3. **Execute:** Run the node to produce the cleaned text. Check the logs if you need to verify which words were removed and inspect the output. 42 | 43 | ## Category 44 | Custom-Nodes 45 | -------------------------------------------------------------------------------- /PromptCleaner.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | logging.basicConfig(level=logging.INFO) 4 | logger = logging.getLogger(__name__) 5 | 6 | class PromptCleaner: 7 | @classmethod 8 | def INPUT_TYPES(cls): 9 | return { 10 | "required": { 11 | "text": ("STRING", {"multiline": True}), 12 | "words_to_remove": ("STRING", { 13 | "multiline": False, 14 | "default": "man, woman, world" 15 | }) 16 | } 17 | } 18 | 19 | RETURN_TYPES = ("STRING",) 20 | FUNCTION = "clean_prompt" 21 | CATEGORY = "Custom-Nodes" 22 | 23 | def clean_prompt(self, text, words_to_remove): 24 | # Split the words to remove and strip whitespace 25 | remove_words = [word.strip().lower() for word in words_to_remove.split(',')] 26 | 27 | # Split the input text into words, preserving punctuation 28 | import re 29 | words = re.findall(r'\b\w+\b|[^\w\s]', text) 30 | 31 | # Filter out the words that should be removed (case insensitive) 32 | cleaned_words = [] 33 | skip_next = False 34 | for i, word in enumerate(words): 35 | word_lower = word.lower() 36 | # Skip if word is in remove list 37 | if word_lower in remove_words: 38 | continue 39 | # Add punctuation and words not in remove list 40 | cleaned_words.append(word) 41 | 42 | # Join the remaining words back together 43 | cleaned_text = ' '.join(cleaned_words) 44 | 45 | logger.info(f"Original text: {text}") 46 | logger.info(f"Words removed: {words_to_remove}") 47 | logger.info(f"Cleaned text: {cleaned_text}") 48 | 49 | return (cleaned_text,) 50 | 51 | @classmethod 52 | def IS_CHANGED(cls, text, words_to_remove): 53 | return (text, words_to_remove) 54 | 55 | NODE_CLASS_MAPPINGS = { 56 | "PromptCleaner": PromptCleaner 57 | } 58 | 59 | NODE_DISPLAY_NAME_MAPPINGS = { 60 | "PromptCleaner": "Prompt Cleaner" 61 | } 62 | -------------------------------------------------------------------------------- /PromptDupeRemover.md: -------------------------------------------------------------------------------- 1 | # Prompt Duplicate Remover 2 | 3 | A ComfyUI custom node that removes duplicate words from prompt text while preserving punctuation and optionally maintaining the original case of words. 4 | 5 | ## Description 6 | 7 | The Prompt Duplicate Remover node is designed to clean up prompts by removing redundant words that might appear multiple times. This can be particularly useful when: 8 | - Combining multiple prompts together 9 | - Working with long, complex prompts 10 | - Cleaning up AI-generated or concatenated prompt strings 11 | 12 | ## Parameters 13 | 14 | ### Required Inputs 15 | 16 | 1. **text** (STRING, multiline) 17 | - The input prompt text that needs to be processed 18 | - Can contain multiple lines 19 | - Preserves punctuation and spacing 20 | 21 | 2. **preserve_case** (BOOLEAN) 22 | - Default: True 23 | - When enabled, maintains the original capitalization of words 24 | - When disabled, converts all words to lowercase in the output 25 | 26 | ## How It Works 27 | 28 | The node processes text through the following steps: 29 | 1. Splits the input text into individual words while preserving punctuation 30 | 2. Identifies duplicate words (case-insensitive comparison) 31 | 3. Removes subsequent occurrences of duplicate words 32 | 4. Maintains the first occurrence of each word 33 | 5. Preserves all punctuation and spacing 34 | 6. Rejoins the cleaned text while maintaining word order 35 | 36 | ## Example Usage 37 | 38 | ### Input Text: 39 | ``` 40 | A beautiful sunset, beautiful clouds, beautiful sky, beautiful landscape 41 | ``` 42 | 43 | ### Output with preserve_case = True: 44 | ``` 45 | A beautiful sunset, clouds, sky, landscape 46 | ``` 47 | 48 | Note: The node removes the duplicate instances of "beautiful" while maintaining the original case and punctuation. 49 | 50 | ## Technical Details 51 | 52 | - The node performs case-insensitive comparison to identify duplicates 53 | - Punctuation marks are preserved in their original positions 54 | - The first occurrence of each word is kept, subsequent duplicates are removed 55 | - Logging is implemented to track: 56 | - Original text 57 | - Number of words removed 58 | - Final cleaned text 59 | 60 | ## Integration 61 | 62 | This node can be particularly useful when: 63 | - Processing large prompt collections 64 | - Cleaning up concatenated prompts 65 | - Removing unintended duplicates from workflow outputs 66 | - Optimizing prompt length while maintaining meaning 67 | -------------------------------------------------------------------------------- /PromptDupeRemover.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | logging.basicConfig(level=logging.INFO) 4 | logger = logging.getLogger(__name__) 5 | 6 | class PromptDupeRemover: 7 | @classmethod 8 | def INPUT_TYPES(cls): 9 | return { 10 | "required": { 11 | "text": ("STRING", {"multiline": True}), 12 | "preserve_case": ("BOOLEAN", { 13 | "default": True, 14 | "label": "Preserve Original Case" 15 | }) 16 | } 17 | } 18 | 19 | RETURN_TYPES = ("STRING",) 20 | FUNCTION = "remove_duplicates" 21 | CATEGORY = "Custom-Nodes" 22 | 23 | def remove_duplicates(self, text, preserve_case=True): 24 | # Split the input text into words, preserving punctuation 25 | import re 26 | words = re.findall(r'\b\w+\b|[^\w\s]', text) 27 | 28 | # Keep track of seen words (case insensitive) 29 | seen_words = set() 30 | cleaned_words = [] 31 | 32 | for word in words: 33 | # Skip punctuation 34 | if not word.isalnum(): 35 | cleaned_words.append(word) 36 | continue 37 | 38 | # Check for duplicates using lowercase for comparison 39 | word_lower = word.lower() 40 | if word_lower not in seen_words: 41 | # Add the original word if preserving case, otherwise use lowercase 42 | cleaned_words.append(word if preserve_case else word_lower) 43 | seen_words.add(word_lower) 44 | 45 | # Join the remaining words back together 46 | cleaned_text = ' '.join(cleaned_words) 47 | 48 | logger.info(f"Original text: {text}") 49 | logger.info(f"Duplicate words removed: {len(words) - len(cleaned_words)} words removed") 50 | logger.info(f"Cleaned text: {cleaned_text}") 51 | 52 | return (cleaned_text,) 53 | 54 | @classmethod 55 | def IS_CHANGED(cls, text, preserve_case): 56 | return (text, preserve_case) 57 | 58 | NODE_CLASS_MAPPINGS = { 59 | "PromptDupeRemover": PromptDupeRemover 60 | } 61 | 62 | NODE_DISPLAY_NAME_MAPPINGS = { 63 | "PromptDupeRemover": "Prompt Duplicate Remover" 64 | } -------------------------------------------------------------------------------- /PromptInject.md: -------------------------------------------------------------------------------- 1 | # PromptInject Node 2 | 3 | The PromptInject node is a custom node for ComfyUI that allows you to inject additional text before a specific target phrase in your prompts. This is particularly useful for adding descriptive elements or modifiers to specific parts of your prompt without manually editing the entire text. 4 | 5 | ## Parameters 6 | 7 | ### Required Inputs 8 | 9 | 1. **text** (STRING, multiline) 10 | - The main prompt text where you want to inject additional content 11 | - Can be multiple lines of text 12 | - This is your base prompt that contains the target phrase 13 | 14 | 2. **target** (STRING) 15 | - The phrase where you want to inject text before 16 | - Default value: "the scene is captured" 17 | - Should be an exact match to what's in your text 18 | - Case-insensitive matching 19 | 20 | 3. **injection** (STRING) 21 | - The text you want to inject before the target phrase 22 | - Default value: "Screeching tires." 23 | - Will be automatically wrapped with spaces 24 | - If ends with punctuation (., !, ?), will be followed by a single space 25 | 26 | ## How It Works 27 | 28 | 1. The node takes your input text and looks for the specified target phrase 29 | 2. It automatically adds appropriate spacing around your injection text 30 | 3. The injection is placed immediately before the target phrase 31 | 4. The result maintains proper spacing and punctuation 32 | 33 | ## Example Usage 34 | 35 | ### Input: 36 | ``` 37 | text: "A beautiful landscape where the scene is captured in stunning detail" 38 | target: "the scene is captured" 39 | injection: "during sunset" 40 | ``` 41 | 42 | ### Output: 43 | ``` 44 | "A beautiful landscape where during sunset the scene is captured in stunning detail" 45 | ``` 46 | 47 | ## Tips for Use 48 | 49 | 1. Choose unique target phrases to ensure precise injection 50 | 2. Make sure your target phrase exists in the text exactly as written 51 | 3. The injection will maintain proper spacing, so you don't need to add extra spaces 52 | 4. Punctuation at the end of your injection will be handled automatically 53 | 54 | ## Technical Details 55 | 56 | - The node uses regular expressions for text matching and replacement 57 | - Matching is case-insensitive for better flexibility 58 | - Automatic space handling ensures clean text integration 59 | - Logging is implemented for debugging purposes 60 | 61 | ## Return Value 62 | 63 | The node returns a single STRING containing the modified prompt with the injected text. 64 | -------------------------------------------------------------------------------- /PromptInject.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | logging.basicConfig(level=logging.INFO) 4 | logger = logging.getLogger(__name__) 5 | 6 | class PromptInject: 7 | @classmethod 8 | def INPUT_TYPES(cls): 9 | return { 10 | "required": { 11 | "text": ("STRING", {"multiline": True}), 12 | "target": ("STRING", { 13 | "multiline": False, 14 | "default": "the scene is captured" 15 | }), 16 | "injection": ("STRING", { 17 | "multiline": False, 18 | "default": "Screeching tires." 19 | }) 20 | } 21 | } 22 | 23 | RETURN_TYPES = ("STRING",) 24 | FUNCTION = "inject_text" 25 | CATEGORY = "Custom-Nodes" 26 | 27 | def inject_text(self, text, target, injection): 28 | import re 29 | 30 | # Clean up target and injection 31 | target_clean = target.strip() 32 | injection_clean = injection.strip() 33 | 34 | # Create pattern for target phrase 35 | pattern = re.escape(target_clean) 36 | 37 | # Wrap injection with spaces, ensuring single space if it ends with punctuation 38 | if injection_clean[-1] in '.!?': 39 | injection_wrapped = f" {injection_clean} " 40 | else: 41 | injection_wrapped = f" {injection_clean} " 42 | 43 | # Inject the wrapped text before target 44 | result = re.sub(pattern, f"{injection_wrapped}{target_clean}", text, flags=re.IGNORECASE) 45 | 46 | logger.info(f"Original text: {text}") 47 | logger.info(f"Target phrase: {target}") 48 | logger.info(f"Injection text: {injection}") 49 | logger.info(f"Modified text: {result}") 50 | 51 | return (result,) 52 | 53 | @classmethod 54 | def IS_CHANGED(cls, text, target, injection): 55 | return (text, target, injection) 56 | 57 | NODE_CLASS_MAPPINGS = { 58 | "PromptInject": PromptInject 59 | } 60 | 61 | NODE_DISPLAY_NAME_MAPPINGS = { 62 | "PromptInject": "Prompt Inject" 63 | } 64 | -------------------------------------------------------------------------------- /PromptInjectV2.md: -------------------------------------------------------------------------------- 1 | # Prompt Inject V2 2 | 3 | This node allows you to inject text before or after a target phrase in a prompt. 4 | 5 | ## Inputs 6 | 7 | - **text**: The original prompt text 8 | - **target**: The phrase to target for injection 9 | - **injection**: The text to inject before or after the target 10 | - **inject_after**: Boolean option to place the injection after the target instead of before it 11 | 12 | ## Output 13 | 14 | - A modified string with the injection placed before or after the target phrase. 15 | 16 | ## Usage 17 | 18 | This node is useful for: 19 | - Adding context or details to specific parts of a prompt 20 | - Inserting descriptive elements before or after key phrases 21 | - Modifying existing prompts without rewriting them entirely 22 | 23 | ### Examples 24 | 25 | **With inject_after = False (default behavior):** 26 | - Original text: "The photo shows a landscape where the scene is captured at sunset." 27 | - Target: "the scene is captured" 28 | - Injection: "with dramatic lighting" 29 | - Result: "The photo shows a landscape where with dramatic lighting the scene is captured at sunset." 30 | 31 | **With inject_after = True (new behavior):** 32 | - Original text: "The photo shows a landscape where the scene is captured at sunset." 33 | - Target: "the scene is captured" 34 | - Injection: "with dramatic lighting" 35 | - Result: "The photo shows a landscape where the scene is captured with dramatic lighting at sunset." 36 | 37 | This is an enhanced version of the original PromptInject node, adding the ability to choose where the injection is placed. 38 | -------------------------------------------------------------------------------- /PromptSwap.md: -------------------------------------------------------------------------------- 1 | # Prompt Swap 2 | 3 | The Prompt Swap node is a utility for replacing specific words or phrases in prompt text with alternative text. It supports both single words and multi-word phrases, with special handling for quoted strings. 4 | 5 | ## Parameters 6 | 7 | ### Required Parameters 8 | 9 | 1. **text** (STRING, multiline) 10 | - The input text/prompt where you want to perform word swaps 11 | - Supports multiple lines of text 12 | - This is the source text where the replacements will occur 13 | 14 | 2. **target_words** (STRING) 15 | - A comma-separated list of words or phrases to be replaced 16 | - Default value: `man, woman, "no humans"` 17 | - Supports quoted phrases for multi-word targets 18 | - Case-insensitive matching 19 | - Each word/phrase should be separated by commas 20 | 21 | 3. **exchange_words** (STRING) 22 | - A comma-separated list of replacement words or phrases 23 | - Default value: `woman, man, "many monsters"` 24 | - Must have the same number of items as target_words 25 | - Words/phrases will replace their corresponding targets in order 26 | - Supports quoted phrases for multi-word replacements 27 | 28 | ## Usage 29 | 30 | 1. Connect your prompt source to the "text" input 31 | 2. Specify the words you want to replace in "target_words" 32 | 3. Provide their replacements in "exchange_words" 33 | 4. The node will process the text and output the modified version 34 | 35 | ## Example 36 | 37 | Input text: 38 | ``` 39 | A beautiful scene with a man and woman, but no humans in the background 40 | ``` 41 | 42 | target_words: `man, woman, "no humans"` 43 | exchange_words: `woman, man, "many monsters"` 44 | 45 | Output: 46 | ``` 47 | A beautiful scene with a woman and man, but many monsters in the background 48 | ``` 49 | 50 | ## Notes 51 | 52 | - The swapping process is case-insensitive 53 | - Multi-word phrases should be enclosed in quotes (e.g., `"no humans"`) 54 | - Longer phrases are processed first to avoid partial matches 55 | - Word boundaries are respected for single words (e.g., "man" won't match "manual") 56 | - Phrase boundaries are not enforced for quoted multi-word phrases 57 | - The number of target words must match the number of exchange words 58 | - Whitespace around words and phrases is automatically trimmed 59 | -------------------------------------------------------------------------------- /ScreenGen/__init__.py: -------------------------------------------------------------------------------- 1 | # This file makes the ScreenGen directory a Python package 2 | -------------------------------------------------------------------------------- /ScreenGen/pipes.scg: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | 4 | class PipesScreensaver: 5 | def __init__(self): 6 | self.name = "Pipes" 7 | self.description = "3D pipes screensaver effect" 8 | self.parameters = { 9 | "pipe_thickness": { 10 | "type": "INT", 11 | "default": 5, 12 | "min": 1, 13 | "max": 20, 14 | "step": 1 15 | }, 16 | "pipe_spawn_rate": { 17 | "type": "INT", 18 | "default": 20, 19 | "min": 5, 20 | "max": 50, 21 | "step": 1 22 | }, 23 | "pipe_speed": { 24 | "type": "FLOAT", 25 | "default": 5.0, 26 | "min": 1.0, 27 | "max": 15.0, 28 | "step": 0.5 29 | } 30 | } 31 | 32 | def init_state(self): 33 | return { 34 | 'pipes': [], 35 | 'next_pipe': 0 36 | } 37 | 38 | def render(self, width, height, frame, colors, speed, state, params): 39 | """Render 3D pipes screensaver""" 40 | if not state: 41 | state = self.init_state() 42 | 43 | img = np.zeros((height, width, 3), dtype=np.uint8) 44 | 45 | # Update existing pipes 46 | for pipe in state['pipes']: 47 | # Update pipe position and draw 48 | pipe['length'] += speed * params['pipe_speed'] 49 | cv2.line(img, 50 | (int(pipe['start'][0]), int(pipe['start'][1])), 51 | (int(pipe['start'][0] + pipe['dir'][0] * pipe['length']), 52 | int(pipe['start'][1] + pipe['dir'][1] * pipe['length'])), 53 | colors[pipe['color_idx']], 54 | thickness=params['pipe_thickness']) 55 | 56 | # Add new pipe occasionally 57 | state['next_pipe'] -= 1 58 | if state['next_pipe'] <= 0: 59 | state['pipes'].append({ 60 | 'start': (np.random.randint(0, width), np.random.randint(0, height)), 61 | 'dir': (np.random.rand() * 2 - 1, np.random.rand() * 2 - 1), 62 | 'length': 0, 63 | 'color_idx': np.random.randint(0, len(colors)) 64 | }) 65 | state['next_pipe'] = params['pipe_spawn_rate'] 66 | 67 | # Remove old pipes 68 | state['pipes'] = [p for p in state['pipes'] if p['length'] < max(width, height)] 69 | 70 | return img, state 71 | -------------------------------------------------------------------------------- /SequentialNumberGenerator.md: -------------------------------------------------------------------------------- 1 | # Sequential Number Generator 2 | 3 | The Sequential Number Generator is a utility node that generates sequential integer numbers within a defined range. It's designed to work with ComfyUI's seed system, allowing for controlled sequential number generation that can be used in various workflows. 4 | 5 | ## Parameters 6 | 7 | ### Required Parameters 8 | 9 | 1. **start** (INT) 10 | - The starting value of the sequence range 11 | - Default value: 0 12 | - Minimum value: -2147483648 13 | - Maximum value: 2147483647 14 | 15 | 2. **end** (INT) 16 | - The ending value of the sequence range 17 | - Default value: 1 18 | - Minimum value: -2147483648 19 | - Maximum value: 2147483647 20 | 21 | 3. **seed** (INT) 22 | - The seed value that determines the current position in the sequence 23 | - Default value: 0 24 | - Minimum value: 0 25 | - Maximum value: 18446744073709551615 (0xffffffffffffffff) 26 | 27 | ## Outputs 28 | 29 | The node returns two values: 30 | 1. **value**: The current number in the sequence 31 | 2. **next**: The next number that will be generated in the sequence 32 | 33 | ## Usage 34 | 35 | 1. Set the desired range using the start and end parameters 36 | 2. Provide a seed value to determine the current position in the sequence 37 | 3. The node will output both the current value and the next value in the sequence 38 | 39 | ## Examples 40 | 41 | ### Basic Counter 42 | - start: 0 43 | - end: 9 44 | - seed: 0 45 | 46 | Result: 47 | - value: 0 48 | - next: 1 49 | 50 | ### Custom Range 51 | - start: 100 52 | - end: 105 53 | - seed: 2 54 | 55 | Result: 56 | - value: 102 57 | - next: 103 58 | 59 | ## Notes 60 | 61 | - The sequence wraps around when it reaches the end value 62 | - For example, with range 1-3: 63 | - If current value is 3, next value will be 1 64 | - The start value must be less than or equal to the end value 65 | - The seed value maps to a position within the specified range 66 | - The sequence is deterministic based on the seed value 67 | - Useful for: 68 | - Creating numbered sequences 69 | - Implementing counters 70 | - Generating sequential batch numbers 71 | - Cycling through a range of values 72 | -------------------------------------------------------------------------------- /SequentialNumberGenerator.py: -------------------------------------------------------------------------------- 1 | """ 2 | Sequential Number Generator Node for ComfyUI 3 | Generates sequential integer numbers within a defined range. 4 | Uses ComfyUI's seed logic for counter control. 5 | """ 6 | 7 | class SequentialNumberGenerator: 8 | """ 9 | A custom node for ComfyUI that generates sequential integer numbers within a specified range. 10 | The numbers cycle through the range in order, resetting back to the start when reaching the end. 11 | """ 12 | 13 | @classmethod 14 | def INPUT_TYPES(cls): 15 | return { 16 | "required": { 17 | "start": ("INT", {"default": 0, "min": -2147483648, "max": 2147483647}), 18 | "end": ("INT", {"default": 1, "min": -2147483648, "max": 2147483647}), 19 | "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}), 20 | }, 21 | } 22 | 23 | RETURN_TYPES = ("INT", "INT",) # Returns (current_value, next_value) 24 | RETURN_NAMES = ("value", "next") 25 | FUNCTION = "generate" 26 | CATEGORY = "number operations" 27 | 28 | def generate(self, start, end, seed): 29 | # Validate the range 30 | if start > end: 31 | raise ValueError(f"Start value ({start}) must be less than or equal to end value ({end})") 32 | 33 | # Calculate the range size 34 | range_size = end - start + 1 35 | 36 | # Map the seed to a valid value in our range 37 | current = start + (seed % range_size) 38 | 39 | # Calculate the next value 40 | next_value = current + 1 41 | if next_value > end: 42 | next_value = start 43 | 44 | return (current, next_value) 45 | 46 | # Define the node class mapping 47 | NODE_CLASS_MAPPINGS = { 48 | "SequentialNumberGenerator": SequentialNumberGenerator 49 | } 50 | 51 | # Define how you want the node to be displayed in the UI 52 | NODE_DISPLAY_NAME_MAPPINGS = { 53 | "SequentialNumberGenerator": "Sequential Number Generator" 54 | } 55 | 56 | # This line is optional but recommended to prevent execution if the file is imported 57 | if __name__ == "__main__": 58 | pass -------------------------------------------------------------------------------- /StringPainter.md: -------------------------------------------------------------------------------- 1 | # StringPainter 2 | 3 | This custom node generates hexadecimal string values based on a seed value. It can operate in either increment mode (using the provided seed directly) or random mode (generating random hex values). The node is useful for creating unique identifiers or hash-like strings for painting or procedural generation purposes. 4 | 5 | ## Input Parameters 6 | 7 | - **seed** (Required) 8 | - Default: 0 9 | - Range: 0 to 0xFFFFFFFF (4294967295) 10 | - The base value used to generate the hex string 11 | - In increment mode, this value is directly converted to hex 12 | - In random mode, this value is ignored and a random value is generated instead 13 | 14 | - **bits** (Required) 15 | - Options: "16", "32" 16 | - Default: "16" 17 | - Determines the length of the output hex string: 18 | - 16-bit: Produces a 4-character hex string (0000-FFFF) 19 | - 32-bit: Produces an 8-character hex string (00000000-FFFFFFFF) 20 | 21 | - **mode** (Required) 22 | - Options: "increment", "random" 23 | - Default: "increment" 24 | - Determines how the hex string is generated: 25 | - `increment`: Uses the provided seed value directly 26 | - `random`: Generates a random value between 0 and 0xFFFFFFFF 27 | 28 | ## Output 29 | 30 | 1. **STRING** 31 | - A hexadecimal string representation 32 | - Length depends on the bits parameter: 33 | - 16-bit: 4 characters (e.g., "3039") 34 | - 32-bit: 8 characters (e.g., "00003039") 35 | - Always uses uppercase letters for hex digits A-F 36 | 37 | ## Usage Examples 38 | 39 | 1. **16-bit Increment Mode** 40 | - Set bits to "16" 41 | - Set mode to "increment" 42 | - Set seed to 12345 43 | - Output: "3039" (12345 in hex, truncated to 16 bits) 44 | 45 | 2. **32-bit Increment Mode** 46 | - Set bits to "32" 47 | - Set mode to "increment" 48 | - Set seed to 12345 49 | - Output: "00003039" (12345 in hex, padded to 32 bits) 50 | 51 | 3. **Random Mode** 52 | - Set mode to "random" 53 | - The seed value is ignored 54 | - Each execution generates a new random hex string 55 | - Length depends on the bits setting (4 or 8 characters) 56 | 57 | ## Notes 58 | 59 | - The node always outputs uppercase hexadecimal values 60 | - In 16-bit mode, values are padded with leading zeros to ensure 4 characters 61 | - In 32-bit mode, values are padded with leading zeros to ensure 8 characters 62 | - Random mode generates completely random values each time, regardless of the seed input 63 | - The node is part of the "painting" category, suggesting its use in procedural generation workflows 64 | -------------------------------------------------------------------------------- /StringPainter.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | class StringPainter: 4 | def __init__(self): 5 | self.seed = 0 6 | self.bits = 16 7 | self.mode = "increment" 8 | 9 | @classmethod 10 | def INPUT_TYPES(s): 11 | return { 12 | "required": { 13 | "seed": ("INT", {"default": 0, "min": 0, "max": 0xFFFFFFFF}), 14 | "bits": (["16", "32"], {"default": "16"}), 15 | "mode": (["increment", "random"], {"default": "increment"}) 16 | } 17 | } 18 | 19 | RETURN_TYPES = ("STRING",) 20 | FUNCTION = "generate_hex" 21 | CATEGORY = "painting" 22 | 23 | def generate_hex(self, seed, bits, mode): 24 | self.seed = seed 25 | self.bits = int(bits) 26 | self.mode = mode 27 | 28 | if self.mode == "random": 29 | seed = random.randint(0, 0xFFFFFFFF) 30 | 31 | hex_string = self.seed_to_hex(seed, self.bits) 32 | return (hex_string,) 33 | 34 | def seed_to_hex(self, seed, bits): 35 | max_value = 2**bits - 1 36 | hex_value = seed & max_value 37 | if bits == 16: 38 | return f"{hex_value:04X}" 39 | elif bits == 32: 40 | return f"{hex_value:08X}" 41 | else: 42 | raise ValueError("Unsupported bit size") 43 | 44 | # Example usage (not part of the node class, but useful for testing) 45 | if __name__ == "__main__": 46 | painter = StringPainter() 47 | 48 | # Test with 16-bit increment mode 49 | result = painter.generate_hex(12345, "16", "increment") 50 | print(f"16-bit increment mode, seed 12345: {result[0]}") 51 | 52 | # Test with 32-bit increment mode 53 | result = painter.generate_hex(12345, "32", "increment") 54 | print(f"32-bit increment mode, seed 12345: {result[0]}") 55 | 56 | # Test with 16-bit random mode 57 | result = painter.generate_hex(0, "16", "random") 58 | print(f"16-bit random mode: {result[0]}") 59 | 60 | # Test with 32-bit random mode 61 | result = painter.generate_hex(0, "32", "random") 62 | print(f"32-bit random mode: {result[0]}") -------------------------------------------------------------------------------- /StringWeights.md: -------------------------------------------------------------------------------- 1 | # StringWeights 2 | 3 | This custom node allows you to apply numerical weights to text strings. It's particularly useful for AI image generation workflows where you need to adjust the emphasis of different prompt components. The node wraps the input text in parentheses and appends a weight value with one decimal place precision. 4 | 5 | ## Input Parameters 6 | 7 | - **text** (Required) 8 | - Type: STRING 9 | - Multiline: Yes 10 | - The input text to be weighted 11 | - Can be a single word, phrase, or multiple lines of text 12 | 13 | - **weight** (Required) 14 | - Type: FLOAT 15 | - Default: 1.0 16 | - Range: 0.0 to 10.0 17 | - Step: 0.1 18 | - The weight value to apply to the text 19 | - Higher values increase emphasis, lower values decrease emphasis 20 | 21 | ## Output 22 | 23 | 1. **STRING** 24 | - The weighted text in the format: (text:weight) 25 | - Weight is formatted to one decimal place 26 | - Example: If text is "blue sky" and weight is 1.2, output will be "(blue sky:1.2)" 27 | 28 | ## Usage Examples 29 | 30 | 1. **Basic Weighting** 31 | - Input text: "blue sky" 32 | - Weight: 1.0 33 | - Output: "(blue sky:1.0)" 34 | 35 | 2. **Increased Emphasis** 36 | - Input text: "dramatic lighting" 37 | - Weight: 1.5 38 | - Output: "(dramatic lighting:1.5)" 39 | 40 | 3. **Reduced Emphasis** 41 | - Input text: "subtle texture" 42 | - Weight: 0.7 43 | - Output: "(subtle texture:0.7)" 44 | 45 | 4. **Multiple Lines** 46 | - Input text: 47 | ``` 48 | masterpiece 49 | high quality 50 | ``` 51 | - Weight: 1.2 52 | - Output: "(masterpiece\nhigh quality:1.2)" 53 | 54 | ## Notes 55 | 56 | - The node automatically formats weights to one decimal place for consistency 57 | - Weights are clamped between 0.0 and 10.0 58 | - The node is part of the "Custom-Nodes" category 59 | - Changes to either text or weight will trigger node updates 60 | - The node includes logging functionality for debugging purposes 61 | - Commonly used in prompt engineering for fine-tuning AI image generation 62 | -------------------------------------------------------------------------------- /StringWeights.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | logging.basicConfig(level=logging.INFO) 4 | logger = logging.getLogger(__name__) 5 | 6 | class StringWeights: 7 | @classmethod 8 | def INPUT_TYPES(cls): 9 | return { 10 | "required": { 11 | "text": ("STRING", {"multiline": True}), 12 | "weight": ("FLOAT", { 13 | "default": 1.0, 14 | "min": 0.0, 15 | "max": 10.0, 16 | "step": 0.1 17 | }) 18 | } 19 | } 20 | 21 | RETURN_TYPES = ("STRING",) 22 | FUNCTION = "apply_weight" 23 | CATEGORY = "Custom-Nodes" 24 | 25 | def apply_weight(self, text, weight): 26 | weighted_string = f"({text}:{weight:.1f})" # Format weight to one decimal place 27 | logger.info(f"Original text: {text}") 28 | logger.info(f"Weighted string: {weighted_string}") 29 | return (weighted_string,) 30 | 31 | @classmethod 32 | def IS_CHANGED(cls, text, weight): 33 | # This ensures the node updates when either text or weight changes 34 | return (text, weight) 35 | 36 | NODE_CLASS_MAPPINGS = { 37 | "StringWeights": StringWeights 38 | } 39 | 40 | NODE_DISPLAY_NAME_MAPPINGS = { 41 | "StringWeights": "String Weights" 42 | } -------------------------------------------------------------------------------- /ThinkSeeker.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import re 3 | 4 | logging.basicConfig(level=logging.INFO) 5 | logger = logging.getLogger(__name__) 6 | 7 | class ThinkSeeker: 8 | @classmethod 9 | def INPUT_TYPES(cls): 10 | return { 11 | "required": { 12 | "text": ("STRING", {"multiline": True}), 13 | } 14 | } 15 | 16 | RETURN_TYPES = ("STRING", "STRING",) # First for thinking_text, second for response_text 17 | FUNCTION = "parse_thinking" 18 | CATEGORY = "Custom-Nodes" 19 | 20 | def parse_thinking(self, text): 21 | """ 22 | Parse input text and split it into thinking sections and response sections. 23 | If no think tags are found, thinking_sections will be empty string. 24 | Returns a tuple of (thinking_text, response_text) 25 | """ 26 | # Pattern to match content between thinking tags 27 | thinking_pattern = r'(.*?)' 28 | 29 | # Find all thinking sections 30 | thinking_sections = re.findall(thinking_pattern, text, re.DOTALL) 31 | 32 | # Remove thinking sections from the original text to get response content 33 | response_content = re.sub(thinking_pattern, '', text, flags=re.DOTALL) 34 | 35 | # Join thinking sections with newlines if any exist, otherwise empty string 36 | thinking_text = "\n".join(thinking_sections) if thinking_sections else "" 37 | 38 | # Log the parsing results 39 | logger.info(f"Original text: {text}") 40 | logger.info(f"Extracted thinking text: {thinking_text}") 41 | logger.info(f"Response text: {response_content.strip()}") 42 | 43 | return (thinking_text, response_content.strip()) 44 | 45 | @classmethod 46 | def IS_CHANGED(cls, text): 47 | return text 48 | 49 | NODE_CLASS_MAPPINGS = { 50 | "ThinkSeeker": ThinkSeeker 51 | } 52 | 53 | NODE_DISPLAY_NAME_MAPPINGS = { 54 | "ThinkSeeker": "Think Seeker" 55 | } -------------------------------------------------------------------------------- /TrianglesPlus.md: -------------------------------------------------------------------------------- 1 | # TrianglesPlus Node 2 | 3 | ## Overview 4 | The TrianglesPlus node is a custom ComfyUI node that generates abstract art using triangular shapes. It creates unique, geometric compositions by placing multiple colored triangles in different regions of the canvas. 5 | 6 | ## Parameters 7 | 8 | ### Required Parameters 9 | - **width** (INT) 10 | - Default: 1024 11 | - Minimum: 64 12 | - Maximum: 4096 13 | - Description: The width of the generated image in pixels. 14 | 15 | - **height** (INT) 16 | - Default: 1024 17 | - Minimum: 64 18 | - Maximum: 4096 19 | - Description: The height of the generated image in pixels. 20 | 21 | - **seed** (INT) 22 | - Default: 0 23 | - Minimum: 0 24 | - Maximum: 4294967295 25 | - Description: Random seed for reproducible generation. Using the same seed will produce identical results. 26 | 27 | ## Output 28 | - Returns an IMAGE type that can be used with other ComfyUI nodes 29 | - The output is a tensor in the format (B,H,W,C) where: 30 | - B: Batch size (always 1) 31 | - H: Height of the image 32 | - W: Width of the image 33 | - C: Color channels (RGB) 34 | 35 | ## How It Works 36 | 1. The node creates a blank canvas with the specified dimensions 37 | 2. It generates 7 different triangles, each with: 38 | - Random positions based on specific regions of the canvas 39 | - Unique random colors 40 | 3. The triangles are strategically placed to create an abstract composition: 41 | - Two triangles in the top region 42 | - Two triangles in the bottom region 43 | - One triangle in the middle region 44 | - Two triangles on the sides 45 | 4. The final image is converted to the appropriate format for ComfyUI 46 | 47 | ## Usage Tips 48 | - Experiment with different seeds to generate various compositions 49 | - Adjust width and height to create different aspect ratios 50 | - The node works well as a starting point for further image processing or as a background generator 51 | -------------------------------------------------------------------------------- /VIZ/milkdrop_bars.viz: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | 4 | def render(features, width, height, color_palette): 5 | """ 6 | Renders a Milkdrop-style bar visualization with glow effects. 7 | 8 | Args: 9 | features (dict): Audio features including 'waveform', 'spectrum', 'bass', 'mids', 'highs' 10 | width (int): Output image width 11 | height (int): Output image height 12 | color_palette (list): List of (R,G,B) tuples for colors 13 | 14 | Returns: 15 | numpy.ndarray: RGB image of the visualization 16 | """ 17 | image = np.zeros((height, width, 3), dtype=np.uint8) 18 | 19 | spectrum = features['spectrum'] 20 | num_bars = min(32, len(spectrum)) 21 | bar_width = width // num_bars 22 | 23 | for i in range(num_bars): 24 | # Calculate bar properties 25 | amp = spectrum[i] * (1 + features['bass'] * 2) # Amplify with bass 26 | bar_height = int(amp * height * 0.8) # 80% max height 27 | 28 | # Calculate color based on amplitude and position 29 | color_idx = int((i / num_bars + amp) * len(color_palette)) % len(color_palette) 30 | color = color_palette[color_idx] 31 | 32 | # Draw main bar 33 | x_start = i * bar_width 34 | x_end = x_start + bar_width - 1 35 | y_start = height - bar_height 36 | y_end = height 37 | 38 | # Draw the bar 39 | cv2.rectangle(image, (x_start, y_start), (x_end, y_end), color, -1) 40 | 41 | # Add glow effect 42 | if bar_height > 0: 43 | # Create a small section for the glow 44 | glow_section = image[y_start:y_end, x_start:x_end+1].copy() 45 | # Apply gaussian blur 46 | cv2.GaussianBlur(glow_section, (5, 5), 2, dst=glow_section) 47 | # Blend back 48 | image[y_start:y_end, x_start:x_end+1] = cv2.addWeighted( 49 | image[y_start:y_end, x_start:x_end+1], 0.7, 50 | glow_section, 0.3, 0 51 | ) 52 | 53 | # Add peak marker 54 | peak_height = 2 55 | if bar_height > peak_height: 56 | peak_y = height - bar_height - peak_height 57 | cv2.rectangle(image, 58 | (x_start, peak_y), 59 | (x_end, peak_y + peak_height), 60 | color, -1) 61 | 62 | return image 63 | -------------------------------------------------------------------------------- /VIZ/oscilloscope.viz: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | 4 | def render(features, width, height, color_palette): 5 | """ 6 | Renders an oscilloscope visualization. 7 | 8 | Args: 9 | features (dict): Audio features including 'waveform', 'spectrum', 'bass', 'mids', 'highs' 10 | width (int): Output image width 11 | height (int): Output image height 12 | color_palette (list): List of (R,G,B) tuples for colors 13 | 14 | Returns: 15 | numpy.ndarray: RGB image of the visualization 16 | """ 17 | image = np.zeros((height, width, 3), dtype=np.uint8) 18 | 19 | waveform = features['waveform'] 20 | points = [] 21 | for x in range(width): 22 | sample_idx = int(x * len(waveform) / width) 23 | y = int(height/2 + waveform[sample_idx] * height/2) 24 | y = max(0, min(y, height-1)) # Clamp y value 25 | points.append((x, y)) 26 | 27 | # Draw the waveform using numpy operations 28 | points = np.array(points) 29 | for i in range(len(points)-1): 30 | color = color_palette[i % len(color_palette)] 31 | p1 = tuple(points[i]) 32 | p2 = tuple(points[i+1]) 33 | # Draw line using numpy slicing 34 | x1, y1 = p1 35 | x2, y2 = p2 36 | if x1 == x2: # Vertical line 37 | y_start, y_end = sorted([y1, y2]) 38 | image[y_start:y_end+1, x1] = color 39 | else: # Use cv2.line for non-vertical lines 40 | cv2.line(image, p1, p2, color, 2) 41 | 42 | return image 43 | -------------------------------------------------------------------------------- /VIZ/plasma_wave.viz: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def render(features, width, height, color_palette): 4 | """ 5 | Renders a plasma wave visualization. 6 | 7 | Args: 8 | features (dict): Audio features including 'waveform', 'spectrum', 'bass', 'mids', 'highs' 9 | width (int): Output image width 10 | height (int): Output image height 11 | color_palette (list): List of (R,G,B) tuples for colors 12 | 13 | Returns: 14 | numpy.ndarray: RGB image of the visualization 15 | """ 16 | image = np.zeros((height, width, 3), dtype=np.uint8) 17 | 18 | # Create plasma effect using sine waves modulated by audio features 19 | x = np.linspace(0, width, width) 20 | y = np.linspace(0, height, height) 21 | X, Y = np.meshgrid(x, y) 22 | 23 | # Create plasma pattern modulated by audio 24 | v = np.sin(X/30.0 + features['bass'] * 10) 25 | v += np.sin(Y/20.0 + features['mids'] * 10) 26 | v += np.sin((X+Y)/40.0 + features['highs'] * 10) 27 | v = (v + 3) / 6.0 # Normalize to 0-1 range 28 | 29 | # Map values to colors using vectorized operations 30 | color_indices = (v * (len(color_palette)-1)).astype(int) 31 | color_indices = np.clip(color_indices, 0, len(color_palette)-1) 32 | 33 | # Create RGB array from color palette 34 | palette_array = np.array(color_palette) 35 | 36 | # Map colors to image using advanced indexing 37 | image = palette_array[color_indices] 38 | 39 | return image 40 | -------------------------------------------------------------------------------- /VIZ/spectrum.viz: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def render(features, width, height, color_palette): 4 | """ 5 | Renders a spectrum analyzer visualization. 6 | 7 | Args: 8 | features (dict): Audio features including 'waveform', 'spectrum', 'bass', 'mids', 'highs' 9 | width (int): Output image width 10 | height (int): Output image height 11 | color_palette (list): List of (R,G,B) tuples for colors 12 | 13 | Returns: 14 | numpy.ndarray: RGB image of the visualization 15 | """ 16 | image = np.zeros((height, width, 3), dtype=np.uint8) 17 | 18 | spectrum = features['spectrum'] 19 | bar_width = max(1, width // len(spectrum)) 20 | 21 | for i, amp in enumerate(spectrum): 22 | if i * bar_width >= width: 23 | break 24 | 25 | bar_height = int(amp * height) 26 | bar_height = max(1, min(bar_height, height)) # Clamp height 27 | color = color_palette[i % len(color_palette)] 28 | 29 | # Draw rectangle using numpy slicing 30 | x_start = i * bar_width 31 | x_end = min(x_start + bar_width, width) 32 | y_start = height - bar_height 33 | y_end = height 34 | 35 | image[y_start:y_end, x_start:x_end] = color 36 | 37 | return image 38 | -------------------------------------------------------------------------------- /VIZ/wave_rings.viz: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | 4 | def render(features, width, height, color_palette, state=None): 5 | """ 6 | Renders concentric rings that pulse with the audio. 7 | Each frequency band (bass, mids, highs) controls different rings. 8 | 9 | Args: 10 | features (dict): Audio features 11 | width (int): Output image width 12 | height (int): Output image height 13 | color_palette (list): List of (R,G,B) tuples for colors 14 | state (dict, optional): Previous frame state 15 | 16 | Returns: 17 | numpy.ndarray: RGB image of the visualization 18 | """ 19 | # Create black background 20 | image = np.zeros((height, width, 3), dtype=np.uint8) 21 | center = (width // 2, height // 2) 22 | 23 | # Calculate ring properties based on audio features 24 | bass_radius = int(min(width, height) * 0.4 * (1 + features['bass'])) 25 | mids_radius = int(min(width, height) * 0.3 * (1 + features['mids'])) 26 | highs_radius = int(min(width, height) * 0.2 * (1 + features['highs'])) 27 | 28 | # Draw rings with glow effect 29 | for radius, color in [ 30 | (bass_radius, color_palette[0]), # Bass ring 31 | (mids_radius, color_palette[1]), # Mids ring 32 | (highs_radius, color_palette[2]) # Highs ring 33 | ]: 34 | # Draw main ring 35 | cv2.circle(image, center, radius, color, 2) 36 | 37 | # Create glow effect 38 | glow = np.zeros_like(image) 39 | cv2.circle(glow, center, radius, color, 4) 40 | cv2.GaussianBlur(glow, (15, 15), 5, dst=glow) 41 | 42 | # Blend glow with main image 43 | image = cv2.addWeighted(image, 1, glow, 0.5, 0) 44 | 45 | # Add wave effect using the waveform data 46 | waveform = features['waveform'] 47 | points = [] 48 | num_points = 100 49 | for i in range(num_points): 50 | angle = (i / num_points) * 2 * np.pi 51 | # Get waveform sample 52 | sample_idx = int((i / num_points) * len(waveform)) 53 | sample = waveform[sample_idx] 54 | # Calculate point position 55 | radius = int(min(width, height) * 0.25 * (1 + sample * 0.5)) 56 | x = center[0] + int(radius * np.cos(angle)) 57 | y = center[1] + int(radius * np.sin(angle)) 58 | points.append((x, y)) 59 | 60 | # Draw wave line 61 | points = np.array(points, dtype=np.int32) 62 | cv2.polylines(image, [points], True, color_palette[-1], 2) 63 | 64 | return image 65 | -------------------------------------------------------------------------------- /ZenkaiDepthPrompt.md: -------------------------------------------------------------------------------- 1 | # Zenkai Depth Prompt 2 | 3 | ## Description 4 | The Zenkai Depth Prompt node allows you to load depth maps and their associated prompts from a directory structure. It supports filtering prompts using a whitelist feature, which only selects prompts containing specific words or phrases. 5 | 6 | ## Inputs 7 | 8 | ### Required 9 | - **prompt_folder**: Select which subfolder in the "depthprompts" directory to use. 10 | - **seed**: Seed value for random or sequential selection. 11 | - **mode**: Choose between "sequential" or "random" selection modes. 12 | - **num_images**: Number of depth maps to load (1-10). 13 | 14 | ### Optional 15 | - **whitelist**: A comma-separated list of words or phrases that should be present in the prompts to include them. Phrases with multiple words should be enclosed in quotes. 16 | - Example: `photo, man, "man holding", landscape` 17 | 18 | ## Outputs 19 | - **IMAGE**: The selected depth map(s) as an image tensor. 20 | - **STRING**: The associated text prompt(s) joined with " | " as separators. 21 | 22 | ## Usage 23 | 1. Create a subfolder in the "depthprompts" directory. 24 | 2. Add depth map files (.jpg, .jpeg, or .png) with matching .txt files containing prompt descriptions. 25 | - Example: If you have `depth001.png`, create `depth001.txt` with the prompt text. 26 | 3. Use the whitelist parameter to filter which prompts are selected based on content. 27 | 28 | ## Whitelist Feature 29 | The whitelist filtering allows you to specify words or phrases that must appear in a prompt for it to be selected: 30 | - Simple words: `photo, man, landscape` 31 | - Phrases (use quotes): `"man holding", "depth map of landscape"` 32 | 33 | If no whitelist is specified, all depth map/prompt pairs will be considered for selection. 34 | -------------------------------------------------------------------------------- /ZenkaiPoseMap.py: -------------------------------------------------------------------------------- 1 | import os 2 | import random 3 | from PIL import Image 4 | import numpy as np 5 | import torch 6 | 7 | class ZenkaiPoseMap: 8 | @classmethod 9 | def INPUT_TYPES(cls): 10 | # Determine the path to the posemaps folder relative to this file 11 | posemaps_folder = os.path.join(os.path.dirname(__file__), "posemaps") 12 | # List subdirectories in the posemaps folder 13 | subfolders = [d for d in os.listdir(posemaps_folder) if os.path.isdir(os.path.join(posemaps_folder, d))] 14 | 15 | return { 16 | "required": { 17 | "pose_folder": (subfolders,), 18 | "seed": ("INT", { 19 | "default": 0, 20 | "min": 0, 21 | "max": 0xFFFFFFFF 22 | }) 23 | } 24 | } 25 | 26 | RETURN_TYPES = ("IMAGE",) 27 | FUNCTION = "load_pose_map" 28 | CATEGORY = "DJZ-Nodes" 29 | 30 | def load_pose_map(self, pose_folder, seed): 31 | # Build absolute path to the selected subfolder under posemaps 32 | folder_path = os.path.join(os.path.dirname(__file__), "posemaps", pose_folder) 33 | # Allowed image extensions 34 | allowed_extensions = (".jpeg", ".jpg", ".png") 35 | # List all allowed image files in the selected folder 36 | image_files = [f for f in os.listdir(folder_path) if f.lower().endswith(allowed_extensions)] 37 | 38 | if not image_files: 39 | return (None,) 40 | 41 | # Use the seed to get a consistent random selection 42 | random.seed(seed) 43 | selected_file = random.choice(image_files) 44 | file_path = os.path.join(folder_path, selected_file) 45 | 46 | image = Image.open(file_path) 47 | # Ensure image is in RGB mode 48 | if image.mode != "RGB": 49 | image = image.convert("RGB") 50 | image_np = np.array(image).astype(np.float32) / 255.0 51 | image_tensor = torch.from_numpy(image_np) 52 | if image_tensor.dim() == 3: 53 | image_tensor = image_tensor.unsqueeze(0) 54 | return (image_tensor,) 55 | 56 | NODE_CLASS_MAPPINGS = { 57 | "ZenkaiPoseMap": ZenkaiPoseMap 58 | } 59 | 60 | NODE_DISPLAY_NAME_MAPPINGS = { 61 | "ZenkaiPoseMap": "Zenkai Pose Map" 62 | } 63 | -------------------------------------------------------------------------------- /ZenkaiPrompt.md: -------------------------------------------------------------------------------- 1 | # ZenkaiPrompt Node 2 | 3 | ## Overview 4 | ZenkaiPrompt is a ComfyUI node that randomly selects and returns a line from a specified text file in the prompts directory. It's designed to provide variety and inspiration by selecting from curated collections of prompts. 5 | 6 | ## Parameters 7 | 8 | ### Required Parameters 9 | - **text_file** (COMBO) 10 | - Options: List of available .txt files in the prompts directory, including: 11 | - Various themed prompt collections (e.g., cybersociety, blacksun, cogvideo) 12 | - Caption files (e.g., assassinKahb-captions.txt, dronecam-captions.txt) 13 | - Style-specific prompts (e.g., LTXV-dialogue-closeups.txt, Mochi-Photo-256.txt) 14 | - Description: The source text file to select a prompt from 15 | 16 | - **seed** (INT) 17 | - Default: 0 18 | - Minimum: 0 19 | - Maximum: 4294967295 20 | - Description: Random seed for reproducible prompt selection. Using the same seed with the same text file will always return the same prompt. 21 | 22 | ## Output 23 | - Returns a STRING type containing a single line selected from the chosen text file 24 | - The selected line can be used as input for other nodes that accept text/prompts 25 | 26 | ## Available Prompt Collections 27 | The node comes with various prompt collections organized by themes: 28 | 29 | 1. **Traditional Narratives** 30 | - 01-trad-ahab.txt through 09-trad-secondSpear.txt 31 | - Contains narrative-focused prompts 32 | 33 | 2. **Sci-Fi and Fantasy** 34 | - cybersociety (v0-v6) 35 | - blacksun (v0-v4) 36 | - cogvideo-scifi.txt, cogvideo-fantasy.txt 37 | 38 | 3. **Character and Scene Descriptions** 39 | - LTXV series (dialogue-closeups, emotional-moments, etc.) 40 | - Various character-specific collections (assassinKahb, darkExecutioner, etc.) 41 | 42 | 4. **Style-Specific** 43 | - Mochi-Photo series 44 | - hologram-style-flux 45 | - NeonMutation-tagged 46 | 47 | 5. **Environmental and Scene Settings** 48 | - paradistro series 49 | - dronecam-captions 50 | - HYV-Drift series 51 | 52 | ## Usage Tips 53 | - Use different text files to target specific themes or styles 54 | - Keep the seed value constant to maintain consistent prompt selection across multiple runs 55 | - Combine with other prompt-processing nodes for more complex prompt generation 56 | - Useful for batch processing where you want variety but reproducibility 57 | -------------------------------------------------------------------------------- /ZenkaiPrompt.py: -------------------------------------------------------------------------------- 1 | import os 2 | import random 3 | 4 | class ZenkaiPrompt: 5 | @classmethod 6 | def INPUT_TYPES(cls): 7 | # Get the list of text files in the 'prompts' folder 8 | prompts_folder = os.path.join(os.path.dirname(__file__), 'prompts') 9 | text_files = [f for f in os.listdir(prompts_folder) if f.endswith('.txt')] 10 | 11 | return { 12 | "required": { 13 | "text_file": (text_files,), 14 | "seed": ("INT", { 15 | "default": 0, 16 | "min": 0, 17 | "max": 0xFFFFFFFF 18 | }) 19 | } 20 | } 21 | 22 | RETURN_TYPES = ("STRING",) 23 | FUNCTION = "generate_prompt" 24 | CATEGORY = "DJZ-Nodes" 25 | 26 | def generate_prompt(self, text_file, seed): 27 | prompts_folder = os.path.join(os.path.dirname(__file__), 'prompts') 28 | file_path = os.path.join(prompts_folder, text_file) 29 | 30 | with open(file_path, 'r', encoding='utf-8') as f: 31 | lines = f.readlines() 32 | 33 | # Use the seed to consistently select a line 34 | random.seed(seed) 35 | selected_line = random.choice(lines).strip() 36 | 37 | return (selected_line,) 38 | 39 | NODE_CLASS_MAPPINGS = { 40 | "ZenkaiPrompt": ZenkaiPrompt 41 | } 42 | 43 | NODE_DISPLAY_NAME_MAPPINGS = { 44 | "ZenkaiPrompt": "Zenkai-Prompt" 45 | } -------------------------------------------------------------------------------- /ZenkaiPromptV2.py: -------------------------------------------------------------------------------- 1 | import os 2 | import random 3 | 4 | class ZenkaiPromptV2: 5 | @classmethod 6 | def INPUT_TYPES(cls): 7 | prompts_folder = os.path.join(os.path.dirname(__file__), 'prompts') 8 | text_files = [f for f in os.listdir(prompts_folder) if f.endswith('.txt')] 9 | 10 | return { 11 | "required": { 12 | "text_file": (text_files,), 13 | "seed": ("INT", { 14 | "default": 0, 15 | "min": 0, 16 | "max": 0xFFFFFFFF 17 | }), 18 | "num_prompts": ("INT", { 19 | "default": 1, 20 | "min": 1, 21 | "max": 10, 22 | "step": 1 23 | }) 24 | }, 25 | "optional": { 26 | "prefix": ("STRING", {"default": ""}), 27 | "suffix": ("STRING", {"default": ""}) 28 | } 29 | } 30 | 31 | RETURN_TYPES = ("STRING",) 32 | FUNCTION = "generate_prompts" 33 | CATEGORY = "DJZ-Nodes" 34 | 35 | def generate_prompts(self, text_file, seed, num_prompts, prefix="", suffix=""): 36 | prompts_folder = os.path.join(os.path.dirname(__file__), 'prompts') 37 | file_path = os.path.join(prompts_folder, text_file) 38 | 39 | with open(file_path, 'r', encoding='utf-8') as f: 40 | lines = [line.strip() for line in f if line.strip()] 41 | 42 | random.seed(seed) 43 | selected_lines = random.sample(lines, min(num_prompts, len(lines))) 44 | 45 | prompts = [f"{prefix}{line}{suffix}" for line in selected_lines] 46 | return (", ".join(prompts),) 47 | 48 | @classmethod 49 | def IS_CHANGED(cls, text_file, seed, num_prompts, prefix, suffix): 50 | return float(seed) # This ensures the node updates when the seed changes 51 | 52 | NODE_CLASS_MAPPINGS = { 53 | "ZenkaiPromptV2": ZenkaiPromptV2 54 | } 55 | 56 | NODE_DISPLAY_NAME_MAPPINGS = { 57 | "ZenkaiPromptV2": "Zenkai-Prompt V2" 58 | } -------------------------------------------------------------------------------- /ZenkaiPromptV4.md: -------------------------------------------------------------------------------- 1 | # Zenkai-Prompt V4 2 | 3 | An advanced prompt selection node that allows filtering of prompts using a blacklist. 4 | 5 | ## Parameters 6 | 7 | - **text_file**: Select a text file from the prompts directory containing the list of prompts 8 | - **seed**: Random seed for prompt selection 9 | - **num_prompts**: Number of prompts to select (1-10) 10 | - **prefix** (optional): Text to add before each prompt 11 | - **suffix** (optional): Text to add after each prompt 12 | - **blacklist** (optional): Comma-separated list of words or phrases to filter out. Use quotes for multi-word phrases. 13 | 14 | ## Blacklist Examples 15 | 16 | - Single words: `table, cat, dog` 17 | - Phrases with spaces: `"no humans", "blue sky", table` 18 | - Mixed: `cat, "red car", table, "green grass"` 19 | 20 | ## Notes 21 | 22 | - The blacklist is case-insensitive 23 | - If a prompt contains any blacklisted term, it will be excluded from selection 24 | - If all prompts are filtered out by the blacklist, the node will return an error message 25 | - The node maintains compatibility with previous versions' input/output format 26 | - Random selection is performed after filtering, ensuring only valid prompts are chosen 27 | 28 | ## Example Usage 29 | 30 | 1. Load a prompt list file 31 | 2. Add blacklist terms: `cat, "no humans", table` 32 | 3. Set number of desired prompts 33 | 4. Node will return random prompts that don't contain any blacklisted terms 34 | -------------------------------------------------------------------------------- /ZenkaiWildcard.md: -------------------------------------------------------------------------------- 1 | # ZenkaiWildcard Node 2 | 3 | The ZenkaiWildcard node is a custom node for ComfyUI that enables dynamic text replacement in prompts using a wildcard system. It allows you to define placeholder tokens in your prompt that will be randomly replaced with content from corresponding text files. 4 | 5 | ## Parameters 6 | 7 | - **prompt** (required): The input text prompt containing wildcard tokens. Each wildcard should be marked with the specified wildcard symbol (default: $$) followed by the name of a text file in the wildcards folder (without the .txt extension). 8 | 9 | - **seed** (required): An integer value that determines the randomization of wildcard selections. Using the same seed will produce the same random selections. 10 | - Default: 0 11 | - Minimum: 0 12 | - Maximum: 4294967295 (0xFFFFFFFF) 13 | 14 | - **wildcard_symbol** (required): The symbol used to identify wildcards in the prompt. 15 | - Default: "$$" 16 | 17 | ## How It Works 18 | 19 | 1. The node looks for patterns in your prompt that match the format: `$$filename` 20 | 2. For each match, it looks for a corresponding `filename.txt` in the `wildcards` folder 21 | 3. If the file exists, it randomly selects one line from the file and replaces the wildcard with that content 22 | 4. If the file doesn't exist or is empty, the original wildcard text is left unchanged 23 | 24 | ## Usage Example 25 | 26 | If you have a file named `color.txt` in your wildcards folder containing: 27 | ``` 28 | red 29 | blue 30 | green 31 | ``` 32 | 33 | And your prompt is: 34 | ``` 35 | a $$color car driving down the street 36 | ``` 37 | 38 | The node might output: 39 | ``` 40 | a blue car driving down the street 41 | ``` 42 | 43 | ## Notes 44 | 45 | - Wildcard files should be placed in the `wildcards` folder within the node's directory 46 | - Each line in a wildcard file represents one possible replacement option 47 | - Empty lines in wildcard files are ignored 48 | - The node will log information about the wildcard replacement process, which can be helpful for debugging 49 | - The same seed will always produce the same random selections, allowing for reproducible results 50 | 51 | ## Error Handling 52 | 53 | - If a referenced wildcard file doesn't exist, the original wildcard text is preserved in the prompt 54 | - If a wildcard file exists but is empty, the original wildcard text is preserved 55 | - The node includes logging functionality that helps track which files it's trying to access and what replacements are being made 56 | -------------------------------------------------------------------------------- /__pycache__/AspectSize.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/AspectSize.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/AspectSizeV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/AspectSizeV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/BatchOffset.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/BatchOffset.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/BatchRangeInsert.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/BatchRangeInsert.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/BatchRangeSwap.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/BatchRangeSwap.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/BatchThief.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/BatchThief.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/CaptionsToPromptList.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/CaptionsToPromptList.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DJZDatamoshV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DJZDatamoshV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DJZLoadLatent.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DJZLoadLatent.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DJZLoadLatentV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DJZLoadLatentV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DatasetWordcloud.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DatasetWordcloud.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DinskyPlus.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DinskyPlus.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DinskyPlusV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DinskyPlusV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DjzDatamosh.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DjzDatamosh.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DjzDatamoshV3.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DjzDatamoshV3.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DjzDatamoshV4.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DjzDatamoshV4.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DjzDatamoshV5.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DjzDatamoshV5.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DjzDatamoshV6.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DjzDatamoshV6.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/DjzDatamoshV7.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/DjzDatamoshV7.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/FFXFADEORAMA.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/FFXFADEORAMA.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/FractalGenerator.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/FractalGenerator.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/FractalGeneratorV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/FractalGeneratorV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/FractalGeneratorV3.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/FractalGeneratorV3.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ImageSizeAdjuster.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ImageSizeAdjuster.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ImageSizeAdjusterV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ImageSizeAdjusterV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ImageSizeAdjusterV3.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ImageSizeAdjusterV3.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/LoadTextDirectory.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/LoadTextDirectory.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/LoadVideoBatchFrame.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/LoadVideoBatchFrame.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/LoadVideoDirectory.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/LoadVideoDirectory.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ParametricMeshGen.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ParametricMeshGen.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ParametricMeshGenV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ParametricMeshGenV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ProjectFilePathNode.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ProjectFilePathNode.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/PromptCleaner.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/PromptCleaner.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/PromptInject.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/PromptInject.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/PromptSwap.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/PromptSwap.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/SaveText.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/SaveText.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/SequentialNumberGenerator.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/SequentialNumberGenerator.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/StringPainter.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/StringPainter.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/StringPainterV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/StringPainterV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/StringWeights.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/StringWeights.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/TrianglesPlus.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/TrianglesPlus.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/TrianglesPlusV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/TrianglesPlusV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ZenkaiPrompt.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ZenkaiPrompt.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ZenkaiPromptV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ZenkaiPromptV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ZenkaiWildcard.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ZenkaiWildcard.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/ZenkaiWildcardV2.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/ZenkaiWildcardV2.cpython-312.pyc -------------------------------------------------------------------------------- /__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /install-portable.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set "requirements_txt=%~dp0\requirements.txt" 4 | set "python_exec=..\..\..\python_embeded\python.exe" 5 | 6 | echo Installing node... 7 | 8 | if exist "%python_exec%" ( 9 | echo Installing with ComfyUI Portable 10 | "%python_exec%" -s -m pip install -r "%requirements_txt%" 11 | ) else ( 12 | echo Installing with system Python 13 | pip install -r "%requirements_txt%" 14 | ) 15 | 16 | pause -------------------------------------------------------------------------------- /onnx-install-portable.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set "python_exec=..\..\..\python_embeded\python.exe" 4 | 5 | echo Installing ONNX Runtime GPU... 6 | 7 | if exist "%python_exec%" ( 8 | echo Installing with ComfyUI Portable 9 | "%python_exec%" -m pip uninstall -y onnxruntime 10 | "%python_exec%" -m pip uninstall -y onnxruntime-gpu 11 | "%python_exec%" -m pip install onnxruntime-gpu 12 | ) else ( 13 | echo Installing with system Python 14 | pip uninstall -y onnxruntime 15 | pip uninstall -y onnxruntime-gpu 16 | pip install onnxruntime-gpu 17 | ) 18 | 19 | pause 20 | -------------------------------------------------------------------------------- /pip-update-portable.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set "python_exec=..\..\..\python_embeded\python.exe" 4 | 5 | echo Installing node... 6 | 7 | if exist "%python_exec%" ( 8 | echo Installing with ComfyUI Portable 9 | "%python_exec%" -m pip install --upgrade pip" 10 | ) else ( 11 | echo Installing with system Python 12 | -m pip install --upgrade pip" 13 | ) 14 | 15 | pause -------------------------------------------------------------------------------- /pixel_unshuffle_Cascade_error.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/pixel_unshuffle_Cascade_error.jpg -------------------------------------------------------------------------------- /posemaps/jojo/3e809220-c3d8-47b2-8c67-aee3a3e71e00.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/posemaps/jojo/3e809220-c3d8-47b2-8c67-aee3a3e71e00.jpeg -------------------------------------------------------------------------------- /posemaps/jojo/431b7bbd-f776-481d-8059-20541e5acb00.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/posemaps/jojo/431b7bbd-f776-481d-8059-20541e5acb00.jpeg -------------------------------------------------------------------------------- /posemaps/jojo/ada43f70-4ac6-40fb-9fd9-070952f0b700.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/posemaps/jojo/ada43f70-4ac6-40fb-9fd9-070952f0b700.jpeg -------------------------------------------------------------------------------- /posemaps/jojo/ca04587c-2cb4-491c-5bf6-ab906c725600.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/posemaps/jojo/ca04587c-2cb4-491c-5bf6-ab906c725600.jpeg -------------------------------------------------------------------------------- /presets/cassette.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cassette Tape", 3 | "description": "Emulates characteristics of analog cassette tape recording and playback including tape saturation and hiss", 4 | 5 | "compression_ratio": 2.0, 6 | "compression_threshold": -12.0, 7 | 8 | "low_cut": 50.0, 9 | "high_cut": 14000.0, 10 | 11 | "distortion_amount": 0.15, 12 | 13 | "noise_level": 0.07, 14 | "noise_color": "white", 15 | 16 | "reverb_amount": 0.0, 17 | "room_size": 0.0, 18 | 19 | "metadata": { 20 | "category": "Analog", 21 | "era": "1970s-1990s", 22 | "quality": "Consumer Audio", 23 | "variants": [ 24 | { 25 | "name": "Type I (Normal)", 26 | "low_cut": 50.0, 27 | "high_cut": 12000.0, 28 | "noise_level": 0.09, 29 | "distortion": 0.18 30 | }, 31 | { 32 | "name": "Type II (Chrome)", 33 | "low_cut": 50.0, 34 | "high_cut": 14000.0, 35 | "noise_level": 0.06, 36 | "distortion": 0.15 37 | }, 38 | { 39 | "name": "Type IV (Metal)", 40 | "low_cut": 50.0, 41 | "high_cut": 15000.0, 42 | "noise_level": 0.04, 43 | "distortion": 0.12 44 | } 45 | ], 46 | "characteristics": [ 47 | "tape hiss", 48 | "wow and flutter", 49 | "tape saturation", 50 | "head bumps", 51 | "azimuth errors" 52 | ], 53 | "technical_specs": { 54 | "frequency_response": "50Hz-14kHz", 55 | "dynamic_range": "50-60dB", 56 | "wow_and_flutter": "0.1-0.2%" 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /presets/film.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Vintage Film Audio", 3 | "description": "Emulates characteristics of classic motion picture optical sound and early magnetic film sound systems", 4 | 5 | "compression_ratio": 2.5, 6 | "compression_threshold": -24.0, 7 | 8 | "low_cut": 80.0, 9 | "high_cut": 12000.0, 10 | 11 | "distortion_amount": 0.12, 12 | 13 | "noise_level": 0.06, 14 | "noise_color": "pink", 15 | 16 | "reverb_amount": 0.25, 17 | "room_size": 0.8, 18 | 19 | "metadata": { 20 | "category": "Film", 21 | "era": "Classic", 22 | "quality": "Vintage Theater", 23 | "variants": [ 24 | "Optical Sound", 25 | "Magnetic Sound", 26 | "Early Dolby" 27 | ], 28 | "historical_references": { 29 | "optical_era": "1930s-1960s", 30 | "magnetic_era": "1950s-1970s" 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /presets/intercom.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Intercom System", 3 | "description": "Emulates typical intercom and public address system characteristics with heavy bandwidth limiting and system noise", 4 | 5 | "compression_ratio": 8.0, 6 | "compression_threshold": -12.0, 7 | 8 | "low_cut": 300.0, 9 | "high_cut": 3400.0, 10 | 11 | "distortion_amount": 0.25, 12 | 13 | "noise_level": 0.08, 14 | "noise_color": "brown", 15 | 16 | "reverb_amount": 0.3, 17 | "room_size": 0.6, 18 | 19 | "metadata": { 20 | "category": "Communication", 21 | "era": "Modern", 22 | "quality": "Low-Fi", 23 | "variants": ["PA System", "Security Intercom", "Building Intercom"] 24 | } 25 | } -------------------------------------------------------------------------------- /presets/phone.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Phone Call", 3 | "description": "Emulates telephone audio characteristics for both cellular and landline systems", 4 | 5 | "compression_ratio": 5.0, 6 | "compression_threshold": -16.0, 7 | 8 | "low_cut": 300.0, 9 | "high_cut": 3400.0, 10 | 11 | "distortion_amount": 0.18, 12 | 13 | "noise_level": 0.05, 14 | "noise_color": "white", 15 | 16 | "reverb_amount": 0.02, 17 | "room_size": 0.1, 18 | 19 | "metadata": { 20 | "category": "Communication", 21 | "era": "Modern", 22 | "quality": "Telephone", 23 | "variants": [ 24 | { 25 | "name": "Landline", 26 | "bandwidth": "300Hz-3.4kHz", 27 | "noise_profile": "constant" 28 | }, 29 | { 30 | "name": "Cellular", 31 | "bandwidth": "300Hz-3.4kHz", 32 | "noise_profile": "variable", 33 | "artifacts": [ 34 | "digital compression", 35 | "packet loss", 36 | "signal fade" 37 | ] 38 | } 39 | ], 40 | "technical_specs": { 41 | "sampling_rate": "8kHz", 42 | "bit_depth": "8-bit", 43 | "codec": "G.711" 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /presets/radio.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Radio Broadcast", 3 | "description": "Emulates AM/FM radio characteristics with heavy compression and bandwidth restrictions", 4 | 5 | "compression_ratio": 6.0, 6 | "compression_threshold": -15.0, 7 | 8 | "low_cut": 150.0, 9 | "high_cut": 4500.0, 10 | 11 | "distortion_amount": 0.15, 12 | 13 | "noise_level": 0.04, 14 | "noise_color": "pink", 15 | 16 | "reverb_amount": 0.05, 17 | "room_size": 0.2, 18 | 19 | "metadata": { 20 | "category": "Broadcast", 21 | "era": "Modern", 22 | "quality": "AM/FM Radio", 23 | "variants": ["AM", "FM"] 24 | } 25 | } -------------------------------------------------------------------------------- /presets/tv.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TV Broadcast", 3 | "description": "Emulates typical television broadcast audio characteristics with compression and bandwidth limiting", 4 | 5 | "compression_ratio": 4.0, 6 | "compression_threshold": -18.0, 7 | 8 | "low_cut": 100.0, 9 | "high_cut": 8000.0, 10 | 11 | "distortion_amount": 0.05, 12 | 13 | "noise_level": 0.02, 14 | "noise_color": "white", 15 | 16 | "reverb_amount": 0.1, 17 | "room_size": 0.3, 18 | 19 | "metadata": { 20 | "category": "Broadcast", 21 | "era": "Modern", 22 | "quality": "Standard Definition" 23 | } 24 | } -------------------------------------------------------------------------------- /presets/vinyl.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Vinyl Record", 3 | "description": "Emulates characteristics of vinyl record playback systems including surface noise and tonal warmth", 4 | 5 | "compression_ratio": 1.5, 6 | "compression_threshold": -20.0, 7 | 8 | "low_cut": 30.0, 9 | "high_cut": 16000.0, 10 | 11 | "distortion_amount": 0.08, 12 | 13 | "noise_level": 0.03, 14 | "noise_color": "pink", 15 | 16 | "reverb_amount": 0.0, 17 | "room_size": 0.0, 18 | 19 | "metadata": { 20 | "category": "Analog", 21 | "era": "Classic", 22 | "quality": "Hi-Fi", 23 | "variants": [ 24 | { 25 | "name": "New Pressing", 26 | "noise_level": 0.02, 27 | "distortion": 0.05 28 | }, 29 | { 30 | "name": "Vintage", 31 | "noise_level": 0.06, 32 | "distortion": 0.12 33 | }, 34 | { 35 | "name": "Worn", 36 | "noise_level": 0.09, 37 | "distortion": 0.15 38 | } 39 | ], 40 | "characteristics": [ 41 | "surface noise", 42 | "inner groove distortion", 43 | "rumble", 44 | "wow and flutter" 45 | ], 46 | "technical_specs": { 47 | "frequency_response": "30Hz-16kHz", 48 | "dynamic_range": "60dB", 49 | "channel_separation": "30dB" 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /presets/walkie_talkie.preset: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Walkie-Talkie", 3 | "description": "Emulates characteristics of two-way radio communication systems including squelch noise and heavy compression", 4 | 5 | "compression_ratio": 10.0, 6 | "compression_threshold": -10.0, 7 | 8 | "low_cut": 400.0, 9 | "high_cut": 2500.0, 10 | 11 | "distortion_amount": 0.30, 12 | 13 | "noise_level": 0.12, 14 | "noise_color": "white", 15 | 16 | "reverb_amount": 0.0, 17 | "room_size": 0.0, 18 | 19 | "metadata": { 20 | "category": "Communication", 21 | "era": "Modern", 22 | "quality": "Two-way Radio", 23 | "variants": [ 24 | { 25 | "name": "Consumer FRS/GMRS", 26 | "bandwidth": "400Hz-2.5kHz", 27 | "power": "Low", 28 | "noise_level": 0.15 29 | }, 30 | { 31 | "name": "Professional", 32 | "bandwidth": "300Hz-3kHz", 33 | "power": "High", 34 | "noise_level": 0.10 35 | }, 36 | { 37 | "name": "Emergency Services", 38 | "bandwidth": "350Hz-3kHz", 39 | "power": "High", 40 | "noise_level": 0.08 41 | } 42 | ], 43 | "characteristics": [ 44 | "squelch noise", 45 | "static bursts", 46 | "signal fade", 47 | "PTT clicks", 48 | "background noise" 49 | ], 50 | "technical_specs": { 51 | "frequency_response": "400Hz-2.5kHz", 52 | "dynamic_range": "30dB", 53 | "modulation": "FM Narrowband", 54 | "artifacts": [ 55 | "squelch tail", 56 | "transmission start/stop noise", 57 | "interference" 58 | ] 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /prompts/Ducreux.txt: -------------------------------------------------------------------------------- 1 | ducreux style, oil painting of a man wearing hat and jacket, is smiling and pointing 2 | ducreux style, oil painting of a man wearing white wig with jacket, shh gesture, be quiet pose 3 | ducreux style, oil painting of a man wearing white wig with jacket, shh gesture, be quiet pose 4 | ducreux style, oil painting of a man wearing hat and jacket, is smiling and pointing 5 | ducreux style, oil painting of a man wearing hat and jacket, is shocked and waving 6 | ducreux style, oil painting of a man wearing hat and jacket, is shocked and waving 7 | ducreux style, oil painting of a man wearing hat and jacket, shh gesture, be quiet pose 8 | ducreux style, oil painting of a man wearing hat and jacket, shh gesture, be quiet pose 9 | ducreux style, oil painting of a man wearing white wig with red jacket, is surprised and waving 10 | ducreux style, oil painting of a man wearing white wig with red jacket, is surprised and waving 11 | ducreux style, oil painting of a man wearing white wig with red jacket, is yawning and stretching 12 | ducreux style, oil painting of a man wearing white wig with red jacket, is yawning and stretching 13 | -------------------------------------------------------------------------------- /prompts/Merlin-Spaceship.txt: -------------------------------------------------------------------------------- 1 | xzx Merlin style Spaceship, , a space ship in the middle of a building with lots of lights on it 2 | xzx Merlin style Spaceship, , a sci - fi themed space station in a sci - fi video game 3 | xzx Merlin style Spaceship, , an artist's rendering of a futuristic space ship flying over a city 4 | xzx Merlin style Spaceship, , a computer generated image of a space ship in the middle of a desert 5 | xzx Merlin style Spaceship, , a silver jet flying over a city in a video game style video game 6 | xzx Merlin style Spaceship, , a computer generated image of a space ship flying over a desert area with a city in the background 7 | xzx Merlin style Spaceship, , a silver jet flying over a city in a video game style video game 8 | -------------------------------------------------------------------------------- /prompts/PhotonicCloning-captions.txt: -------------------------------------------------------------------------------- 1 | PhotonicCloning style a group of mannequins standing next to each other, science fiction, window, indoors, robot, no humans 2 | PhotonicCloning style a row of neon human figures in a dark room, science fiction, glowing, robot, cyberpunk 3 | PhotonicCloning style a row of glowing human body systems in a dark room, skeleton, science fiction, standing, glowing 4 | PhotonicCloning style a row of glowing human body parts in a dark room, science fiction, cyberpunk, robot, cyborg 5 | PhotonicCloning style a row of neon human torsos in a dark room, science fiction, glowing, indoors, robot, cyberpunk, standing 6 | PhotonicCloning style a row of neon colored human torsos in a dark room, science fiction, standing, glowing, robot 7 | PhotonicCloning style a display of neon human body parts in a dark room, science fiction, no humans, glowing, robot, cyberpunk 8 | PhotonicCloning style a group of neon human figures standing next to each other, science fiction, no humans, cyberpunk, cable, robot, skeleton, glowing 9 | PhotonicCloning style a group of neon human figures standing next to each other, science fiction, cable, no humans, robot, glowing, window, cyberpunk, indoors 10 | PhotonicCloning style a group of robot standing next to each other in a room, science fiction, cable, standing, glowing, robot, bodysuit, cyberpunk 11 | PhotonicCloning style a group of robot standing next to each other in a room, cable, science fiction, cyberpunk, robot, glowing 12 | PhotonicCloning style a group of robot standing next to each other in a room, cable, science fiction, glowing, robot, standing, multiple boys, helmet 13 | -------------------------------------------------------------------------------- /prompts/Thorra-Airship-hallway.txt: -------------------------------------------------------------------------------- 1 | anime xgx airship hallway room 2 | anime xgx airship hallway room 3 | anime xgx airship hallway room 4 | anime xgx airship hallway room 5 | anime xgx airship hallway room 6 | anime xgx airship hallway room 7 | anime xgx airship hallway room 8 | anime xgx airship hallway room 9 | anime xgx airship hallway room 10 | anime xgx airship hallway room 11 | anime xgx airship hallway room 12 | anime xgx airship hallway room 13 | anime xgx airship hallway room 14 | anime xgx airship hallway room 15 | anime xgx airship hallway room 16 | anime xgx airship hallway room 17 | anime xgx airship hallway room 18 | anime xgx airship hallway room 19 | anime xgx airship hallway room 20 | anime xgx airship hallway room 21 | anime xgx airship hallway room 22 | anime xgx airship hallway room 23 | -------------------------------------------------------------------------------- /prompts/Thorra-Airship-reactor.txt: -------------------------------------------------------------------------------- 1 | anime xgx airship reactor room, cinematic lighting 2 | anime xgx airship reactor room, cinematic lighting 3 | anime xgx airship reactor room, cinematic lighting 4 | anime xgx airship reactor room, cinematic lighting 5 | anime xgx airship reactor room, cinematic lighting 6 | anime xgx airship reactor room, cinematic lighting 7 | anime xgx airship reactor room, cinematic lighting 8 | anime xgx airship reactor room, cinematic lighting 9 | anime xgx airship reactor room, cinematic lighting 10 | anime xgx airship reactor room, cinematic lighting 11 | anime xgx airship reactor room, cinematic lighting 12 | -------------------------------------------------------------------------------- /prompts/Thorra-Main-extreme-closeup.txt: -------------------------------------------------------------------------------- 1 | extreme close up anime kzk woman with long red hair and blue cosmic eyes 2 | extreme close up anime kzk woman with red hair and blue cosmic eyes in the rain 3 | extreme close up anime kzk woman with red hair and green cosmic eyes in the rain 4 | extreme close up anime kzk woman face with red hair and blue cosmic eyes 5 | extreme close up anime kzk woman face with red hair and blue cosmic eyes 6 | extreme close up anime kzk woman with red hair and blue cosmic eyes and a red jacket 7 | extreme close up anime kzk woman with red hair and blue cosmic eyes in the rain 8 | extreme close up anime kzk woman with red hair and blue cosmic eyes in the rain 9 | extreme close up anime kzk woman face with red hair and blue cosmic eyes 10 | extreme close up anime kzk woman with red hair and blue cosmic eyes in the rain 11 | extreme close up anime kzk woman with long red hair and a green cosmic eye 12 | -------------------------------------------------------------------------------- /prompts/Thorra-Main-holding-gun.txt: -------------------------------------------------------------------------------- 1 | anime kzk woman with red hair holding a gun and wearing headphones, crouching down with a rifle in her hand 2 | anime kzk woman with red hair is holding a rifle in a room with graffiti on the walls 3 | anime kzk woman with red hair holding a rifle 4 | anime kzk woman with red hair holding a gun in a sci - fi setting with neon lights in the background 5 | anime kzk woman with red hair holding a gun in a sci - fi - themed room with neon lights and a sci - fi background 6 | anime kzk woman with red hair holding a gun in a sci - fi themed room with a group of people standing in the background 7 | anime kzk woman with red hair is holding a gun in a sci - fi - themed room, standing in the doorway 8 | anime kzk woman with red hair holding a gun in a room with a lot of light coming through the windows 9 | anime kzk woman with red hair holding a gun in one hand and a gun in the other hand 10 | anime kzk woman with red hair is holding a gun in a sci - fi - themed space station 11 | anime kzk woman with red hair holding a gun in a sci-fi city 12 | anime kzk woman with red hair holding a rifle and wearing a green uniform, crouching down in a hallway with a building in the background 13 | anime kzk woman with red hair holding a gun in one hand and another hand 14 | anime kzk woman with red hair holding a gun in one hand, wearing a red cape 15 | anime kzk woman with red hair holding a gun in one hand and wearing a black and red outfit on the other side of her body 16 | anime kzk woman with long red hair looking out of a window holding a rifle 17 | anime kzk woman with red hair holding a rifle 18 | anime kzk woman with red hair holding a rifle 19 | anime kzk woman with red hair is holding a rifle 20 | anime kzk woman with red hair holding a rifle 21 | anime kzk woman with red hair holding a rifle, leaning against a wall 22 | -------------------------------------------------------------------------------- /prompts/Thorra-Main-shooting-directly.txt: -------------------------------------------------------------------------------- 1 | anime kzk woman with red hair shooting directly at the camera, with red hair holding a gun in front of a white background 2 | anime kzk woman with red hair shooting directly at the camera, with red hair holding a gun in one hand and a gun in the other 3 | anime kzk woman with red hair shooting directly at the camera, with red hair pointing a gun at the camera 4 | anime kzk woman with red hair shooting directly at the camera, with red hair holding a gun in one hand and a gun in the other 5 | anime kzk woman with red hair shooting directly at the camera, with red hair holding a gun in one hand and a gun in the other 6 | anime kzk woman with red hair shooting directly at the camera, with red hair pointing a gun at the camera 7 | -------------------------------------------------------------------------------- /prompts/Thorra-Main-spysuit.txt: -------------------------------------------------------------------------------- 1 | close up anime kzk woman with red hair wearing spysuit portrait, black and white outfit 2 | close up anime kzk woman with red hair wearing spysuit portrait, black and silver outfit 3 | close up anime kzk woman with red hair wearing spysuit portrait, and piercings on her face 4 | close up anime kzk woman with red hair wearing spysuit portrait, black jacket and holding a sword 5 | close up anime kzk woman with red hair wearing spysuit portrait, black top and earrings 6 | close up anime kzk woman with red hair wearing spysuit portrait, black outfit and holding a sword 7 | close up anime kzk woman with red hair wearing spysuit portrait, red eyes 8 | close up anime kzk woman with red hair wearing spysuit portrait, 9 | close up anime kzk woman with red hair wearing spysuit portrait, black top and earrings 10 | close up anime kzk woman with red hair wearing spysuit portrait, black jacket and looking at the camera 11 | close up anime kzk woman with red hair wearing spysuit portrait, and a black suit on 12 | close up anime kzk woman with red hair wearing spysuit portrait, 13 | close up anime kzk woman with red hair wearing spysuit portrait, black jacket and looking at the camera 14 | close up anime kzk woman with red hair wearing spysuit portrait, suit and holding a gun 15 | close up anime kzk woman with red hair wearing spysuit portrait, wearing black and white makeup 16 | close up anime kzk woman with red hair wearing spysuit portrait, and a black jacket 17 | close up anime kzk woman with red hair wearing spysuit portrait, black outfit and looking at the camera 18 | close up anime kzk woman with red hair wearing spysuit portrait, black and white outfit 19 | -------------------------------------------------------------------------------- /prompts/assassinXuhk-captions.txt: -------------------------------------------------------------------------------- 1 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, male focus, solo, weapon, red eyes, facial hair, white hair, armor, dual wielding, open mouth, beard 2 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, sword, male focus, solo, armor, dual wielding, facial hair, japanese armor, beard, red eyes 3 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, male focus, weapon, solo, sword, red eyes, white hair, facial hair, armor, dual wielding, open mouth 4 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, sword, solo, male focus, dual wielding, red eyes, katana, facial hair, white hair, beard 5 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, male focus, sword, solo, dual wielding, facial hair, white hair, beard, holding, open mouth 6 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, sword, male focus, solo, dual wielding, armor, red eyes, white hair, facial hair, beard 7 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, male focus, solo, sword, white hair, facial hair, dual wielding, armor, red eyes, open mouth 8 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, sword, male focus, solo, red eyes, facial hair, beard, white hair, dual wielding, open mouth 9 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, male focus, sword, solo, dual wielding, facial hair, white hair, beard, red eyes, open mouth 10 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, male focus, dual wielding, solo, sword, white hair, facial hair, beard, open mouth, holding 11 | RAW photo of assassinxuhk, daemon swordsman, holding weapon, bone magic, weapon, sword, male focus, solo, dual wielding, white hair, katana, facial hair, beard, open mouth 12 | -------------------------------------------------------------------------------- /prompts/assassinZohc-captions.txt: -------------------------------------------------------------------------------- 1 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , skull, male focus, solo, red background, muscular, skeleton 2 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , monster, skeleton, skull, red background, teeth, weapon, claws, red theme, ribs, solo 3 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , weapon, sword, skull, holding weapon, holding, solo, holding sword, monster, skeleton, red background 4 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , scythe, skeleton, skull, weapon, multiple boys, red theme, red background, holding, 6+boys 5 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , weapon, skeleton, sword, red background, skull, male focus, solo, holding, holding weapon, holding sword 6 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , weapon, skeleton, holding, holding weapon, red background, skull, male focus, multiple boys, muscular, ribs 7 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , skeleton, weapon, red background, skull, ribs, bone, male focus, holding, monster, solo 8 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , skull, solo, male focus, scythe, weapon, holding, skeleton, holding weapon, monster, teeth 9 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , weapon, cape, red background, skull, scythe, armor, male focus, multiple boys, skeleton, holding 10 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , skeleton, skull, red background, solo, monster, teeth, weapon, red theme, male focus 11 | RAW photo of assassinzohc, daemon swordsman, blood and bone weapon, skull knight, swirling energy , weapon, skeleton, skull, cape, holding, red background, blood, sword, holding weapon, red theme 12 | -------------------------------------------------------------------------------- /prompts/assassinkahb.txt: -------------------------------------------------------------------------------- 1 | AssassinKahb style a demonic looking skeleton holding a sword with red hair -------------------------------------------------------------------------------- /prompts/big-gdg-doggo.txt: -------------------------------------------------------------------------------- 1 | RAW photo of gdg dog, 2 | RAW photo of gdg dog, 3 | RAW photo of gdg dog, 4 | RAW photo of gdg dog, 5 | RAW photo of gdg dog, 6 | RAW photo of gdg dog, 7 | RAW photo of gdg dog, 8 | RAW photo of gdg dog, 9 | RAW photo of gdg dog, 10 | RAW photo of gdg dog, 11 | RAW photo of gdg dog, 12 | RAW photo of gdg dog, 13 | RAW photo of gdg dog, 14 | RAW photo of gdg dog, 15 | RAW photo of gdg dog, 16 | RAW photo of gdg dog, 17 | RAW photo of gdg dog, 18 | RAW photo of gdg dog, 19 | RAW photo of gdg dog, 20 | RAW photo of gdg dog, 21 | RAW photo of gdg dog, 22 | RAW photo of gdg dog, 23 | -------------------------------------------------------------------------------- /prompts/darkExecutioner-captions.txt: -------------------------------------------------------------------------------- 1 | DarkExecutioner style a man in a space suit with a cross on his head, helmet, solo, male focus, armor, realistic, science fiction, cross, upper body 2 | DarkExecutioner style a man in armor standing in front of a doorway, weapon, gun, armor, science fiction, helmet, solo, holding, holding gun, standing 3 | DarkExecutioner style a painting of a robot with a cross on it's head, solo, steampunk, armor, helmet, red eyes, glowing, weapon, science fiction, upper body, glowing eyes 4 | DarkExecutioner style a painting of a man in a space suit holding a gun, weapon, gun, armor, helmet, science fiction, solo, rifle, holding weapon, holding, robot 5 | DarkExecutioner style a painting of a man in a space suit, realistic, helmet, science fiction, solo, male focus, armor 6 | DarkExecutioner style a painting of a man in armor holding a gun, weapon, armor, solo, gun, science fiction, moon, helmet, holding, holding weapon, holding gun 7 | DarkExecutioner style a painting of a man in armor holding a sword, weapon, armor, sword, holding, holding weapon, gun, helmet, solo, standing, 1other 8 | DarkExecutioner style a man with a gun standing in the middle of a city, weapon, gun, science fiction, solo, armor, robot, rifle, helmet, holding, holding gun 9 | DarkExecutioner style a painting of a giant robot holding a gun, weapon, gun, science fiction, solo, holding, robot, holding weapon, holding gun, armor, helmet 10 | DarkExecutioner style a painting of a man in armor standing in front of a doorway, armor, solo, robot, science fiction, weapon, standing, mecha, helmet, 1other, steampunk 11 | DarkExecutioner style a painting of a man with a gun in a dark room, weapon, gun, solo, armor, science fiction, holding, helmet, holding weapon, rifle, holding gun 12 | DarkExecutioner style a painting of a man wearing a helmet and holding a gun, weapon, gun, solo, science fiction, armor, realistic, helmet, holding, rifle, male focus 13 | DarkExecutioner style a painting of a man in armor holding a gun, weapon, gun, armor, solo, helmet, holding weapon, holding gun, holding, moon, science fiction 14 | DarkExecutioner style a painting of a man holding a gun in front of a full moon, weapon, sword, moon, armor, solo, holding weapon, holding, holding sword, gauntlets, helmet 15 | DarkExecutioner style a painting of a man in armor holding a gun, weapon, gun, science fiction, armor, rifle, solo, helmet, holding, holding weapon, holding gun 16 | DarkExecutioner style a painting of a man with a gun in his hand, weapon, realistic, solo, male focus, science fiction, gun, helmet, armor, rifle 17 | -------------------------------------------------------------------------------- /prompts/deathDance-captions.txt: -------------------------------------------------------------------------------- 1 | DeathDance style a drawing of a man holding a sword next to a skeleton 2 | DeathDance style a black and white drawing of a skeleton and a man 3 | DeathDance style a drawing of a man riding a horse next to a tree 4 | DeathDance style a drawing of a skeleton and a woman holding a sword 5 | DeathDance style a drawing of a man plowing a field with horses 6 | DeathDance style a black and white drawing of a man with a skull on his head 7 | DeathDance style a black and white drawing of a man holding a skeleton 8 | DeathDance style a drawing of a man with a sword and a skeleton 9 | DeathDance style a drawing of a group of people sitting around a table 10 | DeathDance style a black and white drawing of a man handing something to a skeleton 11 | DeathDance style a drawing of a skeleton sitting at a table 12 | DeathDance style a drawing of a skeleton and a person with a cane 13 | DeathDance style a black and white drawing of a man and a woman 14 | DeathDance style a drawing of a skeleton being taken out of a door 15 | DeathDance style a black and white drawing of a man holding a stick 16 | DeathDance style a drawing of a woman and child in a room with a skeleton in the background 17 | DeathDance style a drawing of a skeleton and a man with a sword 18 | DeathDance style a drawing of a skeleton and an old man 19 | DeathDance style a black and white drawing of a man holding a sword 20 | DeathDance style a drawing of a man sitting at a table next to a skeleton 21 | DeathDance style a drawing of a skeleton and a woman in a bed 22 | -------------------------------------------------------------------------------- /prompts/djz-OnFire.txt: -------------------------------------------------------------------------------- 1 | onfire style, fire, no humans, scenery, sky, outdoors 2 | onfire style,, scenery, ruins 3 | onfire style,, sky, scenery, outdoors, cloud, solo, standing 4 | onfire style,, fire, no humans, molten rock, scenery, sky 5 | onfire style, scenery, no humans, outdoors, cave, rock, sky, ruins 6 | onfire style,, fire, no humans, scenery, ruins 7 | onfire style,, fire, scenery, no humans, sky, smoke 8 | onfire style,, no humans, scenery, fire, outdoors, sky, molten rock, cloud, ruins 9 | onfire style,, scenery, fire, orange theme, outdoors 10 | onfire style, fire, scenery, no humans, city, sky 11 | onfire style,, fire, scenery, sky, cloud 12 | onfire style, scenery, no humans, fire 13 | onfire style, no humans, scenery, ruins, fire 14 | onfire style, fire, no humans, smoke, destruction 15 | onfire style,, fire, silhouette, smoke, sky, burning, dark 16 | onfire style, no humans, scenery, fire, sky, smoke 17 | onfire style,, scenery, fire 18 | onfire style, scenery, no humans, smoke, fire, sky, cloud 19 | onfire style,, fire, east asian architecture, architecture, scenery, building, orange theme, molten rock 20 | onfire style,, fire, smoke, solo 21 | onfire style,, no humans, smoke, fire, scenery, city, building, sky 22 | onfire style, fire, no humans, scenery, burning, sky 23 | onfire style,, scenery, sky, cloud, outdoors 24 | onfire style, scenery, fire, no humans, outdoors 25 | onfire style, fire, burning, orange theme 26 | onfire style,, fire, orange theme, solo, burning, scenery 27 | onfire style, fire, no humans, molten rock, scenery 28 | onfire style, scenery, fire 29 | onfire style, scenery, fire 30 | onfire style, scenery, no humans, fire, sky, outdoors 31 | -------------------------------------------------------------------------------- /prompts/dronecam-captions.txt: -------------------------------------------------------------------------------- 1 | jxj dronecam style Photo of . a large body of water sitting next to a forest under a sky filled with clouds 2 | jxj dronecam style Photo of . a view of the sun setting over a green field 3 | jxj dronecam style Photo of . view from high above a city at sunset 4 | jxj dronecam style Photo of . a plane flying in the sky with a bridge in the distance in the background 5 | jxj dronecam style Photo of . a bird's eye view of a city with a river running through it 6 | jxj dronecam style Photo of . a bench sitting on top of a hill with a sunset in the background 7 | jxj dronecam style Photo of . a plane flying over a city with a mountain in the background at sunset 8 | jxj dronecam style Photo of . a plane flying in the sky with the sun shining down on the mountains in the background 9 | jxj dronecam style Photo of . a bird's - eye view of solar farm at sunset 10 | jxj dronecam style Photo of . a bird's eye view of a city at sunset 11 | jxj dronecam style Photo of . an aerial view of a town with a tennis court in the foreground 12 | jxj dronecam style Photo of . a bird's eye view of a city with mountains in the background 13 | jxj dronecam style Photo of . a bird's - eye view of a small church surrounded by trees and houses 14 | jxj dronecam style Photo of . a view of a field with trees in the foreground and a blue sky in the background 15 | jxj dronecam style Photo of . a bird's eye view of a house in the middle of a field 16 | jxj dronecam style Photo of . an aerial view of a sports field with a soccer field in the foreground 17 | jxj dronecam style Photo of . an aerial view of a building in the middle of a town with a car parked in front of it 18 | jxj dronecam style Photo of . an aerial view of a large building with a dome on top of it 19 | jxj dronecam style Photo of . an aerial view of a building with a lot of windows and a lot of debris on the ground 20 | jxj dronecam style Photo of . an aerial view of a yellow field in the middle of a rural area 21 | jxj dronecam style Photo of . a bird's eye view of a small town with lots of houses 22 | jxj dronecam style Photo of . a bird's eye view of a house in the middle of a field 23 | jxj dronecam style Photo of . a bird's eye view of a residential area with a tree in the foreground 24 | jxj dronecam style Photo of . a bird's eye view of a city with a lake in the foreground 25 | -------------------------------------------------------------------------------- /prompts/electronMicroscope-captions.txt: -------------------------------------------------------------------------------- 1 | yjy style electron microscopy 2 | yjy style electron microscopy 3 | yjy style electron microscopy 4 | yjy style electron microscopy 5 | yjy style electron microscopy 6 | yjy style electron microscopy 7 | yjy style electron microscopy 8 | yjy style electron microscopy 9 | yjy style monochrome electron microscopy 10 | yjy style electron microscopy 11 | yjy style electron microscopy 12 | yjy style electron microscopy 13 | yjy style electron microscopy 14 | yjy style electron microscopy 15 | yjy style electron microscopy 16 | yjy style electron microscopy 17 | yjy style monochrome electron microscopy 18 | yjy style monochrome electron microscopy 19 | yjy style electron microscopy 20 | yjy style electron microscopy 21 | yjy style monochrome electron microscopy 22 | yjy style monochrome electron microscopy 23 | yjy style electron microscopy 24 | yjy style electron microscopy 25 | yjy style electron microscopy 26 | yjy style monochrome electron microscopy 27 | yjy style monochrome electron microscopy 28 | yjy style electron microscopy 29 | yjy style electron microscopy 30 | yjy style electron microscopy 31 | yjy style electron microscopy 32 | yjy style electron microscopy 33 | yjy style electron microscopy 34 | yjy style electron microscopy 35 | yjy style electron microscopy 36 | yjy style monochrome electron microscopy 37 | yjy style electron microscopy 38 | yjy style monochrome electron microscopy 39 | yjy style electron microscopy 40 | yjy style electron microscopy 41 | yjy style electron microscopy 42 | yjy style electron microscopy 43 | yjy style electron microscopy 44 | yjy style electron microscopy 45 | -------------------------------------------------------------------------------- /prompts/gundamFigur-captions.txt: -------------------------------------------------------------------------------- 1 | raw photo of fgf Gundam,,, robot, mecha, no humans, science fiction, realistic 2 | raw photo of fgf Gundam,,, robot, mecha, weapon, no humans, gun, tree, holding, nature, holding gun, holding weapon 3 | raw photo of fgf Gundam,,, robot, mecha, mobile suit, science fiction, shield, pilot suit, jumpsuit 4 | raw photo of fgf Gundam,,, shield, no humans, mecha, robot, weapon, solo, holding shield, nature, mobile suit, v-fin 5 | raw photo of fgf Gundam,,, shield, mecha, robot, no humans, nature, forest, bamboo, weapon, solo, mobile suit 6 | raw photo of fgf Gundam,,, no humans, mecha, robot, v-fin, solo, mobile suit, tree, photo background, nature, flying 7 | raw photo of fgf Gundam,,, robot, mecha, science fiction, hands on hips, grass 8 | raw photo of fgf Gundam,,, robot, mecha, no humans, photo background, shield, solo, weapon, mobile suit, v-fin 9 | -------------------------------------------------------------------------------- /prompts/hologram-style-flux-V1.txt: -------------------------------------------------------------------------------- 1 | photo of ztz hologram style, science fiction, solo, male focus, from behind, helmet, blurry, standing, armor 2 | photo of ztz hologram style, science fiction, solo, cyberpunk, male focus, night 3 | photo of ztz hologram style, solo, male focus, science fiction, upper body, alien, space 4 | photo of ztz hologram style, solo, male focus, chromatic aberration, cloud, outdoors, science fiction, sky, long hair 5 | photo of ztz hologram style, solo, male focus, science fiction, rain, upper body, cyberpunk, night, jacket 6 | photo of ztz hologram style, science fiction, solo, male focus, star (sky), realistic, space 7 | photo of ztz hologram style, solo, cloud, male focus, science fiction, moon, from behind, sky, helmet 8 | photo of ztz hologram style, solo, male focus, science fiction, space, realistic, helmet 9 | photo of ztz hologram style, science fiction, robot, monochrome, mecha, male focus, facial hair, realistic, jacket, aircraft, military 10 | photo of ztz hologram style, solo, sitting, male focus, science fiction, humanoid robot, mountain, red hair, indian style, cyborg, moon 11 | photo of ztz hologram style, weapon, sword, holding, holding weapon, cloud, science fiction, over shoulder, mountain, solo, armor 12 | photo of ztz hologram style, laser, male focus, science fiction, space, realistic, solo 13 | photo of ztz hologram style, solo, science fiction, male focus, chromatic aberration, clenched hands, alien, armor, standing 14 | photo of ztz hologram style, science fiction, solo, male focus, from behind, helmet, cyberpunk, standing, chromatic aberration, robot 15 | photo of ztz hologram style, weapon, science fiction, gun, armor, sword, holding, male focus, mountain, spacecraft, solo 16 | photo of ztz hologram style, chromatic aberration, cloud, mountain, science fiction, cloudy sky, standing, male focus, from behind, robot, sky 17 | photo of ztz hologram style, cyberpunk, science fiction, male focus, solo, jacket, cable, standing, gloves, rain, robot 18 | photo of ztz hologram style, science fiction, realistic, robot, spacecraft, mecha, armor, glowing, alien, solo 19 | photo of ztz hologram style, science fiction, male focus, solo, cyberpunk, from behind, standing, gloves, arms at sides 20 | photo of ztz hologram style, science fiction, realistic, moon, mountain, male focus, sitting, spacecraft, cloud, solo, robot 21 | photo of ztz hologram style, solo, cyborg, weapon, male focus, gun, rain, cyberpunk, ponytail 22 | -------------------------------------------------------------------------------- /prompts/junglepunkOG.txt: -------------------------------------------------------------------------------- 1 | yoji shinkawa's jealous rendition of a vibrant Junglepunk trader, colourful jungle survival plate-armor by Ryogi Minagawa, anthropomorphic, thick wet jungle 2 | Yoshitaka Amano's confused rendition of a vibrant Junglepunk Knight, colourful jungle survival plate-armor by Ian McQue, anthropomorphic, thick wet jungle 3 | a photo of a vibrant Junglepunk trader by yoji shinkawa, colourful jungle survival plate-armor design by Ryogi Minagawa, anthropomorphic, thick wet jungle detail by Craig Mullins -------------------------------------------------------------------------------- /prompts/junglepunkhouse.txt: -------------------------------------------------------------------------------- 1 | yoji shinkawa's jealous rendition of a vibrant Junglepunk TreeHouse, colourful jungle village by Ryogi Minagawa, anthropomorphic, thick wet jungle 2 | Yoshitaka Amano's confused rendition of a vibrant Junglepunk Treehouse, colourful jungle village by Ian McQue, anthropomorphic, thick wet jungle 3 | a photo of a vibrant Junglepunk Treehouse by yoji shinkawa, colourful jungle village by Ryogi Minagawa, anthropomorphic, thick wet jungle detail by Craig Mullins -------------------------------------------------------------------------------- /prompts/megaDemons-captions.txt: -------------------------------------------------------------------------------- 1 | MegaDemons style, a strange looking creature standing in the middle of a city 2 | MegaDemons style, a painting of a giant creature standing on top of a building 3 | MegaDemons style, a creepy looking creature sitting in the middle of a city 4 | MegaDemons style, a giant robot standing in the middle of a city 5 | MegaDemons style, a painting of a giant creature standing in the middle of a city 6 | MegaDemons style, a painting of a man sitting on top of a building 7 | MegaDemons style, a painting of a man in a gas mask sitting on top of a 8 | MegaDemons style, a strange looking creature standing in the middle of a city 9 | MegaDemons style, a painting of a giant creature standing in the middle of a city 10 | MegaDemons style, a painting of a giant creature standing in the middle of a city 11 | MegaDemons style, a painting of a giant robot sitting on top of a building 12 | MegaDemons style, a creepy looking creature sitting on top of a building 13 | MegaDemons style, a giant creature sitting on top of a tall building 14 | MegaDemons style, a painting of a robot sitting on top of a building 15 | MegaDemons style, a painting of a strange looking creature in a city 16 | MegaDemons style, a creepy looking creature standing in the middle of a city 17 | MegaDemons style, a painting of a giant creature in the middle of a city 18 | MegaDemons style, a painting of an alien sitting on top of a building 19 | MegaDemons style, a painting of a man in a futuristic suit 20 | MegaDemons style, a black and white photo of a robot in the middle of a city 21 | MegaDemons style, a digital painting of a man standing in the middle of a city 22 | MegaDemons style, a painting of a giant creature standing in front of a city 23 | MegaDemons style, a painting of a giant creature with a city in the background 24 | MegaDemons style, a giant creature standing in the middle of a city 25 | MegaDemons style, a giant alien standing in the middle of a city 26 | MegaDemons style, a giant creature standing in the middle of a city 27 | MegaDemons style, a painting of a giant creature sitting on top of a building 28 | MegaDemons style, a demonic looking creature sitting on top of a building 29 | MegaDemons style, a man standing on top of a hill next to tall buildings 30 | MegaDemons style, a painting of a giant creature with a city in the background 31 | -------------------------------------------------------------------------------- /prompts/necroChurch-captions.txt: -------------------------------------------------------------------------------- 1 | NecroChurch style, a large cross in the middle of a dark room, blood, throne, no humans, cross, statue, indoors, church, scenery, light 2 | NecroChurch style, a large white cross in the middle of a dark room, throne, light, statue, solo, pillar 3 | NecroChurch style, a large cross sitting in the middle of a dark room, stairs, cross, church, indoors, window 4 | NecroChurch style, a large white cross sitting in the middle of a church, no humans, cross, bug, light rays, church, light, scenery, stairs, butterfly 5 | NecroChurch style, a person sitting on a chair in front of a cross, throne, solo, armor, 1boy, sitting, male focus, cross, from behind, petals, shoulder armor 6 | NecroChurch style, a large white cross sitting on top of a set of steps, no humans, scenery, stairs, cross 7 | NecroChurch style, a glowing cross in the middle of a dark room, no humans, scenery, cross, pillar 8 | NecroChurch style, a large white cross sitting in the middle of a dark room, no humans, scenery, stairs, cross, light, church, pillar, light particles 9 | NecroChurch style, a glowing cross in the middle of a dark room, no humans, cross, scenery, glowing, building 10 | NecroChurch style, a glowing cross in the middle of a dark room, wings, pillar, stairs, light, statue, angel, light rays, solo, angel wings, feathered wings 11 | NecroChurch style, a large cross sitting in the middle of a dark room, solo, blood, indoors, robe, 1boy, church 12 | NecroChurch style, a large cross sitting in the middle of a dark room, no humans, throne, scenery, cross, stairs, indoors 13 | NecroChurch style, an image of a cross in the middle of a dark room, statue, wings, stairs, angel, feathered wings, angel wings, indoors, light, solo 14 | NecroChurch style, a cross in the middle of a dimly lit room, cross, no humans, blood, church, indoors, light, scenery, tile floor 15 | NecroChurch style, a person sitting in front of a cross in a dark room, stairs, long hair, 1girl, sitting, blood, from behind, indoors, cross, solo, church 16 | NecroChurch style, a person standing in front of a large cross, solo, stairs, 1boy, outstretched arms, male focus, from behind, wings, standing, light, spread arms 17 | NecroChurch style, a lit up cross sitting on top of a set of steps, stairs, solo, pillar, blood, indoors 18 | NecroChurch style, a person sitting on the ground in front of a large cross, solo, cross, scenery, red theme, stairs, 1girl, from behind, hood 19 | NecroChurch style, a large cross sitting in the middle of a room, cross, scenery, no humans, light rays, church, indoors, sunlight, light 20 | NecroChurch style, a large cross sitting on top of a set of steps, statue, cross, pillar, stairs 21 | -------------------------------------------------------------------------------- /prompts/newsLocation-Community.txt: -------------------------------------------------------------------------------- 1 | A farmers market fills a town square, vendors arranging produce while early shoppers browse colorful displays; the camera holds steady at eye level. Morning sunlight creates a warm, inviting atmosphere. The scene appears to be real-life footage. 2 | Students stream out of a high school building at day's end, school buses lined up while parents wait in cars; the camera maintains a fixed position. Afternoon sun creates a typical school day atmosphere. The scene appears to be real-life footage. 3 | A little league baseball game unfolds on a community field, parents watching from bleachers while other children play nearby; the camera stays steady at eye level. Golden hour sunlight creates a nostalgic atmosphere. The scene appears to be real-life footage. 4 | Local firefighters demonstrate equipment at a community safety day, children exploring fire trucks while parents take photos; the camera remains static. Bright midday sun illuminates the friendly, educational scene. The scene appears to be real-life footage. 5 | A town hall meeting fills a community center, residents sitting in rows while officials prepare at a table up front; the camera holds position at the back. Indoor lighting creates a civic atmosphere. The scene appears to be real-life footage. 6 | Volunteers work in a community garden, planting vegetables while children learn about growing food; the camera maintains a steady position. Morning sunlight creates an optimistic atmosphere. The scene appears to be real-life footage. 7 | A local arts festival fills a closed street, artists displaying works while musicians perform and visitors browse; the camera stays fixed at eye level. Late afternoon sun creates a cultural atmosphere. The scene appears to be real-life footage. 8 | Workers renovate a historic building downtown, scaffolding covering one wall while preservation experts consult blueprints; the camera holds steady. Natural daylight shows the restoration progress clearly. The scene appears to be real-life footage. 9 | A food drive operates outside a community center, volunteers sorting donations while people drop off items; the camera remains static. Overcast sky creates even lighting across the charitable scene. The scene appears to be real-life footage. 10 | A neighborhood block party fills a residential street, families gathering at tables while children play games; the camera maintains position at eye level. Early evening sun creates a warm community atmosphere. The scene appears to be real-life footage. -------------------------------------------------------------------------------- /prompts/newsLocation-Weather.txt: -------------------------------------------------------------------------------- 1 | Palm trees bend in strong winds, loose debris flying past while dark clouds roll overhead; the camera shows slight movement despite stabilization. Gray storm light creates an ominous atmosphere, rain falling steadily. The scene appears to be real-life footage. 2 | Snow falls heavily in a suburban area, plows working to clear streets while residents shovel driveways; the camera remains as steady as possible in the wind. Overcast sky creates flat, white lighting conditions. The scene appears to be real-life footage. 3 | Waves crash against a seawall, spray flying high while storm clouds gather; the camera holds position despite strong winds. Dark clouds create dramatic lighting as rain begins to fall. The scene appears to be real-life footage. 4 | A tornado forms in the distance over rural farmland, rotating clouds visible while debris lifts into the air; the camera maintains a safe distance despite wind. Dramatic storm lighting creates an eerie atmosphere. The scene appears to be real-life footage. 5 | Flash flood waters rush through a normally dry creek bed, debris carried by the current while onlookers watch from safe distances; the camera stays fixed on high ground. Cloudy skies create even lighting across the scene. The scene appears to be real-life footage. 6 | Lightning illuminates storm clouds over a city skyline, rain falling in sheets while wind whips flags and signs; the camera holds steady under cover. Dark clouds occasionally lit by lightning create dramatic contrasts. The scene appears to be real-life footage. 7 | Thick fog reduces visibility on a major highway, hazard lights blinking on slowly moving vehicles; the camera remains static as shapes emerge from the fog. Diffused morning light creates a monotone atmosphere. The scene appears to be real-life footage. 8 | Ice-covered tree branches crack under the weight, power crews working nearby while sleet continues to fall; the camera stays stable despite conditions. Overcast sky creates flat lighting on the icy scene. The scene appears to be real-life footage. 9 | A dust storm approaches across the desert, reducing visibility while loose materials blow past; the camera maintains position as conditions deteriorate. Late afternoon sun filtered through dust creates an apocalyptic atmosphere. The scene appears to be real-life footage. 10 | Heat waves distort the view of a city street, people seeking shade while mirage-like effects appear on the pavement; the camera holds steady in the heat. Harsh sunlight creates strong shadows and glare. The scene appears to be real-life footage. -------------------------------------------------------------------------------- /prompts/ultraFuture-captions.txt: -------------------------------------------------------------------------------- 1 | UltraFuture style an artist's rendering of a futuristic city in a sci - fi world, raw photo of, no humans, scenery, city, sky, cloud, cityscape, building, ground vehicle, outdoors, sun 2 | UltraFuture style an artist's rendering of a futuristic city in the middle of a desert, raw photo of, scenery, no humans, outdoors, cloud, sky, science fiction, tree, building, ruins, grass 3 | UltraFuture style an artist's rendering of a futuristic city in the middle of the desert, raw photo of, scenery, cloud, no humans, sky, outdoors, building, ruins, aircraft, tower, fantasy 4 | UltraFuture style an artist's rendering of a futuristic city with a giant dome in the middle, raw photo of, scenery, no humans, sky, city, cityscape, building, outdoors, science fiction, cloud, star (sky) 5 | UltraFuture style an artist's rendering of a futuristic city in the middle of the desert, raw photo of, scenery, no humans, sky, outdoors, moon, cloud, star (sky), ruins, city, building 6 | UltraFuture style an artist's rendering of a futuristic city in a sci - fi world, raw photo of, scenery, no humans, sky, cityscape, city, outdoors, building, cloud, science fiction, star (sky) 7 | UltraFuture style an artist's rendering of a futuristic city in a sci - fi world, raw photo of, scenery, no humans, sky, cloud, outdoors, building, bird, sunset, tree, mountain 8 | UltraFuture style a futuristic city in the middle of a large body of water with a moon in the sky, raw photo of, no humans, scenery, city, cityscape, building, sky, cloud, moon, sun, skyscraper 9 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "djz-nodes" 3 | description = "AspectSize and 100 more nodes" 4 | version = "2.2.2" 5 | license = {file = "LICENSE"} 6 | dependencies = ["rtree", "trimesh", "wordcloud", "matplotlib", "opencv-python", "pydub>=0.25.1", "ffmpeg-python>=0.2.0", "opensimplex", "moderngl"] 7 | 8 | [project.urls] 9 | Repository = "https://github.com/MushroomFleet/DJZ-Nodes" 10 | # Used by Comfy Registry https://comfyregistry.org 11 | 12 | [tool.comfy] 13 | PublisherId = "driftjohnson" 14 | DisplayName = "DJZ-Nodes" 15 | Icon = "" 16 | -------------------------------------------------------------------------------- /python_path.cfg: -------------------------------------------------------------------------------- 1 | K:\MACHINES14\ComfyUI_windows_portable_nvidia\ComfyUI_windows_portable\python_embeded\python.exe 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | rtree 2 | trimesh 3 | wordcloud 4 | matplotlib 5 | opencv-python 6 | pydub>=0.25.1 7 | ffmpeg-python>=0.2.0 8 | opensimplex 9 | moderngl 10 | librosa>=0.9.0 11 | tqdm>=4.62.0 12 | numba 13 | soundfile -------------------------------------------------------------------------------- /ringPattern.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MushroomFleet/DJZ-Nodes/58baa825b8eb2055b9841665cb662bad9689700c/ringPattern.npy -------------------------------------------------------------------------------- /voice-effects/ethereal.py: -------------------------------------------------------------------------------- 1 | # Ethereal voice 2 | effects.add_reverb(room_size=0.9, damping=0.1) 3 | effects.change_formants(1.2) 4 | effects.add_echo(delay_time=0.4, decay=0.6) -------------------------------------------------------------------------------- /voice-effects/monster.py: -------------------------------------------------------------------------------- 1 | # Monster voice 2 | effects.apply_frequency_filter(300, 'lowpass') 3 | effects.change_formants(0.7) 4 | effects.add_distortion(gain=2.0, threshold=0.3) -------------------------------------------------------------------------------- /voice-effects/robot.py: -------------------------------------------------------------------------------- 1 | # Robot voice 2 | effects.apply_frequency_filter(2000, 'bandpass') 3 | effects.add_vibrato(freq=10, depth=0.1) 4 | effects.change_formants(1.5) -------------------------------------------------------------------------------- /wildcards/Gabe_buildstore.txt: -------------------------------------------------------------------------------- 1 | Bungalow 2 | Cottage 3 | Duplex 4 | Triplex 5 | Low-rise apartment building 6 | Mid-rise apartment building 7 | High-rise apartment building 8 | Townhouse 9 | Condominium building 10 | Office building 11 | Hotel 12 | Hospital 13 | University residence hall 14 | Skyscraper -------------------------------------------------------------------------------- /wildcards/actor.txt: -------------------------------------------------------------------------------- 1 | Tim Thomerson 2 | Fred Ward 3 | Bruce Campbell 4 | Lance Henriksen 5 | Michael Biehn 6 | Reggie Bannister 7 | Ken Foree 8 | Keith David 9 | Thomas Jane 10 | Mark Hamill 11 | Peter Jason 12 | Tom Atkins 13 | Adam Baldwin 14 | Andrew Divoff 15 | Robert Forster 16 | Christopher Lambert 17 | Corey Feldman 18 | Clancy Brown 19 | Rutger Hauer 20 | Michael Ironside 21 | Marshall Bell 22 | Mitch Pileggi 23 | Peter Weller 24 | Bill Paxton 25 | Vernon Wells 26 | John C. McGinley 27 | Charles S. Dutton 28 | Kevin J. O'Connor 29 | Tom Savini 30 | Brad Dourif 31 | Danny Trejo 32 | Jeff Fahey 33 | Treat Williams 34 | Robert Englund 35 | Donald Pleasence 36 | Joseph Pilato 37 | Robert Patrick 38 | Michael Rooker 39 | Bill Moseley 40 | Tony Todd 41 | Tom Towles 42 | James Hong 43 | Doug Bradley 44 | Chris Sarandon 45 | Anthony Perkins 46 | Andy Serkis 47 | Roddy McDowall 48 | Ted Raimi 49 | Donnie Yen 50 | Ron Perlman 51 | David Carradine 52 | James Remar 53 | Dennis Hopper 54 | Mario Van Peebles 55 | Tom Lister Jr. 56 | Emilio Estevez 57 | Sid Haig 58 | David Patrick Kelly 59 | William Sadler 60 | Dominique Pinon 61 | Brion James 62 | Tobin Bell 63 | Stephen Geoffreys 64 | Brian Thompson 65 | Paul Winfield 66 | Zakes Mokae 67 | Robert John Burke 68 | John Rhys-Davies 69 | Thom Mathews 70 | William Hickey 71 | Thomas Rosales Jr. 72 | Robert Davi 73 | George 'Buck' Flower 74 | Angus Scrimm 75 | Hugh Quarshie 76 | Craig Sheffer 77 | Jeffrey Jones 78 | Wes Studi 79 | Trevor Goddard 80 | Cary-Hiroyuki Tagawa 81 | Victor Wong 82 | Michael Wincott 83 | Daniel von Bargen 84 | Sean Pertwee 85 | Gary Busey 86 | Mark Boone Junior 87 | Craig Fairbrass 88 | James Karen 89 | Clu Gulager 90 | Miguel A. Núñez Jr. 91 | Sam Neill 92 | Michael Gross 93 | Steve Railsback 94 | Michael Massee 95 | Willem Dafoe 96 | Arnold Vosloo 97 | Reb Brown 98 | Lou Diamond Phillips 99 | Miguel Ferrer 100 | Tim Daly -------------------------------------------------------------------------------- /wildcards/age.txt: -------------------------------------------------------------------------------- 1 | young 2 | old 3 | middle-aged 4 | teen 5 | baby 6 | child 7 | infant -------------------------------------------------------------------------------- /wildcards/ancient_civilization.txt: -------------------------------------------------------------------------------- 1 | Sumerian 2 | Minoan 3 | Indus Valley 4 | Olmec 5 | Phoenician 6 | Hittite 7 | Etruscan 8 | Carthaginian -------------------------------------------------------------------------------- /wildcards/ancient_egyptian.txt: -------------------------------------------------------------------------------- 1 | pyramid 2 | sphinx 3 | temple 4 | obelisk 5 | necropolis 6 | pharaoh's tomb 7 | statue of Anubis 8 | Valley of the Kings -------------------------------------------------------------------------------- /wildcards/ancient_wonder.txt: -------------------------------------------------------------------------------- 1 | Great Pyramid of Giza 2 | Hanging Gardens of Babylon 3 | Temple of Artemis at Ephesus 4 | Statue of Zeus at Olympia 5 | Mausoleum at Halicarnassus 6 | Colossus of Rhodes 7 | Lighthouse of Alexandria 8 | Great Wall of China -------------------------------------------------------------------------------- /wildcards/angle.txt: -------------------------------------------------------------------------------- 1 | Over the shoulder 2 | Low angle 3 | High angle 4 | Bird's eye view 5 | Worm's eye view 6 | Aerial shot 7 | Close up 8 | Extreme close up 9 | Medium shot 10 | Long shot 11 | establishing shot 12 | point of view 13 | pan 14 | tilt 15 | tracking shot 16 | zoom 17 | dolly shot 18 | hand-held camera 19 | steadicam 20 | jib shot 21 | crane shot 22 | zoom out 23 | zoom in 24 | reverse angle 25 | high-speed camera 26 | slow motion 27 | time-lapse 28 | stop-motion 29 | underwater 30 | surface shot 31 | subsurface shot 32 | cheating 33 | canted angle 34 | Dutch angle 35 | line of action 36 | leading line 37 | framing 38 | golden mean 39 | rule of thirds 40 | symmetrical balance 41 | asymmetrical balance 42 | radial balance -------------------------------------------------------------------------------- /wildcards/animal.txt: -------------------------------------------------------------------------------- 1 | Lion 2 | Tiger 3 | Cheetah 4 | Leopard 5 | Panther 6 | Jaguar 7 | Cougar 8 | Lynx 9 | Bobcat 10 | Ocelot 11 | Serval 12 | Caracal 13 | Tayra 14 | Civet 15 | Genet 16 | Binturong 17 | Bush dog 18 | Bushbaby 19 | Capybara 20 | Chinchilla 21 | Coati 22 | Coyote 23 | Crab-eating fox 24 | Dhole 25 | Fennec fox 26 | Fishing cat 27 | Fox 28 | Giant panda 29 | Gorilla 30 | Guinea pig 31 | Hamster 32 | Hedgehog 33 | Hippopotamus 34 | Honey badger 35 | Hyena 36 | Iguana 37 | Indian elephant 38 | Kangaroo 39 | Koala 40 | Komodo dragon 41 | Lemur 42 | Leopard cat 43 | Llama 44 | Manatee 45 | Mandrill 46 | Markhor 47 | Meerkat 48 | Mongoose 49 | Monkey 50 | Mouse 51 | Otter 52 | Pig 53 | Platypus 54 | Polar bear 55 | Porcupine 56 | Puma 57 | Raccoon 58 | Red panda 59 | Rhinoceros 60 | Raccoon dog 61 | Ring-tailed lemur 62 | River dolphin 63 | Rock hyrax 64 | Sea lion 65 | Sea otter 66 | Seal 67 | Shrew 68 | Sloth 69 | Squirrel 70 | Tarsier 71 | Tasmanian devil 72 | Tenrec 73 | Tree kangaroo 74 | Turtle 75 | Water buffalo 76 | Water deer 77 | Weasel 78 | Wildebeest 79 | Wolf 80 | Wolverine 81 | Wombat 82 | Zebra 83 | Bald Eagle 84 | Golden Eagle 85 | Osprey 86 | Hawk 87 | Falcon 88 | Vulture 89 | Condor 90 | Kestrel -------------------------------------------------------------------------------- /wildcards/aquatic_creature.txt: -------------------------------------------------------------------------------- 1 | $$size whale 2 | colorful $$tropical_fish 3 | graceful manta ray 4 | playful dolphin 5 | mysterious giant squid 6 | ancient $$prehistoric_sea_creature 7 | bioluminescent jellyfish 8 | $$mythical_sea_beast -------------------------------------------------------------------------------- /wildcards/artistsama.txt: -------------------------------------------------------------------------------- 1 | Mamoru Nagano 2 | Yoshitaka Amano 3 | Craig Mullins 4 | Ian McQue 5 | katsuhiro otomo 6 | Masamune Shirow 7 | akihito yoshida 8 | Ryogi Minagawa 9 | Mamoru Nagano 10 | Yoshitaka Amano 11 | Craig Mullins 12 | Ian McQue 13 | katsuhiro otomo 14 | Masamune Shirow 15 | akihito yoshida 16 | Ryogi Minagawa -------------------------------------------------------------------------------- /wildcards/artistsama2.txt: -------------------------------------------------------------------------------- 1 | Ian McQue 2 | Craig Mullins 3 | Yoshitaka Amano 4 | Mamoru Nagano 5 | Ian McQue 6 | Craig Mullins 7 | Yoshitaka Amano 8 | Mamoru Nagano 9 | Ian McQue 10 | Craig Mullins 11 | Yoshitaka Amano 12 | Mamoru Nagano -------------------------------------------------------------------------------- /wildcards/asian_wonder.txt: -------------------------------------------------------------------------------- 1 | Great Wall of China 2 | Taj Mahal 3 | Angkor Wat 4 | Forbidden City 5 | Borobudur Temple 6 | Petra 7 | Bagan Temples 8 | Mount Fuji -------------------------------------------------------------------------------- /wildcards/bird.txt: -------------------------------------------------------------------------------- 1 | eagle 2 | owl 3 | hummingbird 4 | peacock 5 | flamingo 6 | parrot 7 | swan 8 | $$tropical_bird -------------------------------------------------------------------------------- /wildcards/bodykit.txt: -------------------------------------------------------------------------------- 1 | rocketbunny 2 | BN sports 3 | JDM 4 | veilside 5 | liberty walk -------------------------------------------------------------------------------- /wildcards/climate.txt: -------------------------------------------------------------------------------- 1 | Polar 2 | Tundra 3 | Volcanic 4 | Desert 5 | Savanna 6 | Mediterranean 7 | Grassland 8 | Taiga 9 | Tropical 10 | Rainforest 11 | Prairie 12 | Beach 13 | Park -------------------------------------------------------------------------------- /wildcards/color.txt: -------------------------------------------------------------------------------- 1 | aliceblue 2 | antiquewhite 3 | aqua 4 | aquamarine 5 | azure 6 | beige 7 | bisque 8 | black 9 | blanchedalmond 10 | blue 11 | blueviolet 12 | brown 13 | burlywood 14 | cadetblue 15 | chartreuse 16 | chocolate 17 | coral 18 | cornflowerblue 19 | cornsilk 20 | crimson 21 | cyan 22 | darkblue 23 | darkcyan 24 | darkgoldenrod 25 | darkgray 26 | darkgreen 27 | darkgrey 28 | darkkhaki 29 | darkmagenta 30 | darkolivegreen 31 | darkorange 32 | darkorchid 33 | darkred 34 | darksalmon 35 | darkseagreen 36 | darkslateblue 37 | darkslategray 38 | darkslategrey 39 | darkturquoise 40 | darkviolet 41 | deeppink 42 | deepskyblue 43 | dimgray 44 | dimgrey 45 | dodgerblue 46 | firebrick 47 | floralwhite 48 | forestgreen 49 | fuchsia 50 | gainsboro 51 | ghostwhite 52 | gold 53 | goldenrod 54 | gray 55 | green 56 | greenyellow 57 | grey 58 | honeydew 59 | hotpink 60 | indianred 61 | indigo 62 | ivory 63 | khaki 64 | lavender 65 | lavenderblush 66 | lawngreen 67 | lemonchiffon 68 | lightblue 69 | lightcoral 70 | lightcyan 71 | lightgoldenrodyellow 72 | lightgray 73 | lightgreen 74 | lightgrey 75 | lightpink 76 | lightsalmon 77 | lightseagreen 78 | lightskyblue 79 | lightslategray 80 | lightslategrey 81 | lightsteelblue 82 | lightyellow 83 | lime 84 | limegreen 85 | linen 86 | magenta 87 | maroon 88 | mediumaquamarine 89 | mediumblue 90 | mediumorchid 91 | mediumpurple 92 | mediumseagreen 93 | mediumslateblue 94 | mediumspringgreen 95 | mediumturquoise 96 | mediumvioletred 97 | midnightblue 98 | mintcream 99 | mistyrose 100 | moccasin 101 | navajowhite 102 | navy 103 | oldlace 104 | olive 105 | olivedrab 106 | orange 107 | orangered 108 | orchid 109 | palegoldenrod 110 | palegreen 111 | paleturquoise 112 | palevioletred 113 | papayawhip 114 | peachpuff 115 | peru 116 | pink 117 | plum 118 | powderblue 119 | purple 120 | red 121 | rosybrown 122 | royalblue 123 | saddlebrown 124 | salmon 125 | sandybrown 126 | seagreen 127 | seashell 128 | sienna 129 | silver 130 | skyblue 131 | slateblue 132 | slategray 133 | slategrey 134 | snow 135 | springgreen 136 | steelblue 137 | tan 138 | teal 139 | thistle 140 | tomato 141 | turquoise 142 | violet 143 | wheat 144 | white 145 | whitesmoke 146 | yellow 147 | yellowgreen -------------------------------------------------------------------------------- /wildcards/cute.txt: -------------------------------------------------------------------------------- 1 | Kittens 2 | Puppies 3 | Bunnies 4 | Hamsters 5 | Guinea Pigs 6 | Chickens 7 | Ducklings 8 | Baby goats 9 | Penguins 10 | Koalas 11 | Baby elephants 12 | Sea turtles 13 | Snow leopards 14 | Dolphins 15 | Panda bears 16 | Orcas 17 | Sloths 18 | Hedgehogs 19 | Red pandas 20 | Squirrels 21 | Raccoons 22 | Corgis 23 | Otters 24 | Frogs 25 | Butterflies 26 | Ladybugs -------------------------------------------------------------------------------- /wildcards/domestic_space.txt: -------------------------------------------------------------------------------- 1 | living room 2 | kitchen 3 | bedroom 4 | study 5 | attic 6 | basement 7 | garden shed 8 | cozy nook -------------------------------------------------------------------------------- /wildcards/element.txt: -------------------------------------------------------------------------------- 1 | Fire 2 | Ice 3 | Water 4 | Air 5 | Earth 6 | Wind 7 | Light 8 | Darkness 9 | Life 10 | Death 11 | Time 12 | Space 13 | Reality 14 | Truth 15 | Lies 16 | Love 17 | Hate 18 | Hope 19 | Despair 20 | Friendship 21 | Betrayal 22 | Courage 23 | Cowardice 24 | Peace 25 | War 26 | Tranquility 27 | Chaos 28 | Stability 29 | Change 30 | Order 31 | Disorder 32 | Progress 33 | Regression 34 | Growth 35 | Decay 36 | Creation 37 | Destruction 38 | Life 39 | Death 40 | Light 41 | Darkness 42 | Fire 43 | Air 44 | Water 45 | Earth 46 | Wind -------------------------------------------------------------------------------- /wildcards/emotion.txt: -------------------------------------------------------------------------------- 1 | angry 2 | fearful 3 | sad 4 | happy 5 | disgusted 6 | surprised 7 | scared 8 | confused 9 | shocked 10 | calm 11 | distracted 12 | frustrated 13 | annoyed 14 | proud 15 | content 16 | jealous 17 | in love 18 | embarrassed 19 | silly 20 | lonely 21 | ashamed 22 | sympathetic -------------------------------------------------------------------------------- /wildcards/enigmatic_place.txt: -------------------------------------------------------------------------------- 1 | Bermuda Triangle 2 | Stonehenge 3 | Easter Island 4 | Nazca Lines 5 | Göbekli Tepe 6 | Tunguska event site 7 | Crooked Forest 8 | Richat Structure -------------------------------------------------------------------------------- /wildcards/european_landmark.txt: -------------------------------------------------------------------------------- 1 | castle 2 | cathedral 3 | monastery 4 | palace 5 | fortress 6 | abbey 7 | citadel 8 | amphitheater -------------------------------------------------------------------------------- /wildcards/exotic_animal.txt: -------------------------------------------------------------------------------- 1 | lemur 2 | sloth 3 | pangolin 4 | axolotl 5 | kinkajou 6 | fennec fox 7 | tapir 8 | capybara -------------------------------------------------------------------------------- /wildcards/fantasy_creature.txt: -------------------------------------------------------------------------------- 1 | unicorn 2 | dragon 3 | phoenix 4 | griffin 5 | centaur 6 | pegasus 7 | chimera 8 | basilisk -------------------------------------------------------------------------------- /wildcards/fantasy_realm.txt: -------------------------------------------------------------------------------- 1 | Narnia 2 | Middle-earth 3 | Wonderland 4 | Westeros 5 | Hogwarts 6 | Neverland 7 | Oz 8 | Asgard -------------------------------------------------------------------------------- /wildcards/fashion.txt: -------------------------------------------------------------------------------- 1 | Hip-hop 2 | Victorian 3 | Goth 4 | Punk 5 | Tomboy 6 | Girly 7 | Boho 8 | Preppy 9 | Gangster -------------------------------------------------------------------------------- /wildcards/fish.txt: -------------------------------------------------------------------------------- 1 | Salmon 2 | Tuna 3 | Clownfish 4 | Goldfish 5 | Angelfish 6 | Shark 7 | Swordfish 8 | Stingray 9 | Marlin 10 | Cod 11 | Bass 12 | Flounder 13 | Carp 14 | Trout 15 | Herring 16 | Guppy 17 | Dory 18 | Haddock 19 | Bream 20 | Tilefish 21 | Pike 22 | Perch 23 | Sunfish 24 | Minnow 25 | Catfish 26 | Grouper 27 | Halibut 28 | Sole 29 | Snapper 30 | Tilapia 31 | Mahi Mahi 32 | Bluegill 33 | Porgy 34 | Crappie 35 | Cichlid 36 | Anchovy 37 | Butterfish 38 | Pompano 39 | Sardine 40 | Anchovy 41 | Barracuda 42 | Bluefish 43 | Bonito 44 | Bullhead 45 | Calico Bass 46 | Chub 47 | Cisco 48 | Crab 49 | Crawfish 50 | Eel 51 | Fugu 52 | Gar 53 | Grayling 54 | Hake 55 | Herring 56 | Krill 57 | Mackerel 58 | Mullet 59 | Needlefish 60 | Perch 61 | Pout 62 | Pickerel 63 | Pike 64 | Pollock 65 | Rubberlip Mullet 66 | Salmon 67 | Sardine 68 | Scad 69 | Shad 70 | Silverside 71 | Smelt 72 | Snapper 73 | Snook 74 | Swordfish 75 | Tarpon 76 | Trout 77 | Whitefish 78 | Yellowtail 79 | Arapaima 80 | Arowana 81 | Barramundi 82 | Bigeye tuna 83 | Black carp 84 | Black piranha 85 | Boesemani rainbowfish 86 | Chameleon cichlid 87 | Cherry barb 88 | Clown loach 89 | Clownfish 90 | Common carp 91 | Corydoras 92 | Danio 93 | Discus 94 | Electric blue ahli 95 | Electric eel 96 | Fire eel 97 | Flowerhorn cichlid 98 | Giant gourami 99 | Giant danio 100 | Glass catfish 101 | Guppy 102 | Hammerhead shark 103 | Hatchetfish 104 | Hognosed brotula 105 | Horseface loach 106 | Jewel cichlid 107 | Koi 108 | Lake malawi cichlid 109 | Lemon tetra 110 | Lungfish 111 | Marbled headstander 112 | Mbu puffer 113 | Megalodon 114 | Milkfish 115 | Molly 116 | Neon tetra 117 | Oscar 118 | Pacu 119 | Paradise fish 120 | Peacock bass 121 | Piranha 122 | Platy 123 | Pleco 124 | Pufferfish 125 | Rainbowfish 126 | Redtail catfish 127 | Ropefish 128 | Roseline shark 129 | Sailfin pleco 130 | Sarasa goldfish 131 | Scorpionfish 132 | Siamese fighting fish -------------------------------------------------------------------------------- /wildcards/flying_creature.txt: -------------------------------------------------------------------------------- 1 | eagle 2 | owl 3 | bat 4 | butterfly 5 | dragonfly 6 | hummingbird 7 | pterodactyl 8 | $$mythical_flying_creature -------------------------------------------------------------------------------- /wildcards/fx.txt: -------------------------------------------------------------------------------- 1 | radiant 2 | glowing 3 | glossy 4 | sparkles 5 | lens flare 6 | reflective -------------------------------------------------------------------------------- /wildcards/hat.txt: -------------------------------------------------------------------------------- 1 | Baseball cap 2 | Bucket hat 3 | Cowboy hat 4 | Fedora 5 | Felt hat 6 | Bowler hat 7 | Top hat 8 | Tiara 9 | Beanie 10 | Straw hat 11 | Sunhat 12 | Tophat 13 | Sombrero 14 | Beret 15 | Crown -------------------------------------------------------------------------------- /wildcards/historical_place.txt: -------------------------------------------------------------------------------- 1 | $$ancient_civilization ruins 2 | medieval $$european_landmark 3 | lost $$asian_wonder 4 | prehistoric cave paintings 5 | $$ancient_egyptian monument 6 | Mayan $$mesoamerican_site 7 | forgotten $$lost_city 8 | $$ancient_wonder of the world -------------------------------------------------------------------------------- /wildcards/horrorsama.txt: -------------------------------------------------------------------------------- 1 | eldritch 2 | tentacles 3 | demonic 4 | lovecraftian 5 | horror 6 | otherworldy 7 | occult 8 | heretic 9 | sorcery 10 | dark 11 | evil -------------------------------------------------------------------------------- /wildcards/intensity.txt: -------------------------------------------------------------------------------- 1 | slightly 2 | moderately 3 | extremely 4 | surprisingly 5 | subtly 6 | overwhelmingly 7 | curiously 8 | uniquely -------------------------------------------------------------------------------- /wildcards/location.txt: -------------------------------------------------------------------------------- 1 | The Great Barrier Reef, Australia 2 | The Grand Canyon, Arizona, USA 3 | Niagara Falls, Canada/USA 4 | The Amazon Rainforest, South America 5 | The Matterhorn, Switzerland 6 | The African Savannah, Africa 7 | The Sahara Desert, Africa 8 | The Great Plains, USA 9 | Yosemite Valley, California, USA 10 | Mount Everest, Nepal/China 11 | The Maldives, Indian Ocean 12 | The Galapagos Islands, Ecuador 13 | The Great Lakes, USA/Canada 14 | The Pacific Islands, Oceania 15 | The Okavango Delta, Botswana 16 | The Atacama Desert, Chile 17 | The Iguazu Falls, Argentina/Brazil 18 | The Victoria Falls, Zambia/Zimbabwe 19 | The Bahamas 20 | Hawaii 21 | Cancun, Mexico 22 | Puerto Vallarta, Mexico 23 | Los Angeles, California 24 | Orlando, Florida 25 | New York City, New York 26 | Las Vegas, Nevada 27 | San Francisco, California 28 | Miami, Florida 29 | Riviera Maya, Mexico 30 | Cozumel, Mexico 31 | Paris, France 32 | London, England 33 | Barcelona, Spain 34 | Rome, Italy 35 | Madrid, Spain 36 | Dubai, United Arab Emirates 37 | Ibiza, Spain 38 | Mykonos, Greece 39 | Santorini, Greece 40 | Bora Bora, French Polynesia 41 | Maui, Hawaii 42 | The Maldives 43 | Thailand 44 | Australia 45 | New Zealand -------------------------------------------------------------------------------- /wildcards/lost_city.txt: -------------------------------------------------------------------------------- 1 | Atlantis 2 | El Dorado 3 | Shangri-La 4 | Lemuria 5 | Agartha 6 | Ys 7 | Kitezh 8 | Dvarka -------------------------------------------------------------------------------- /wildcards/main.txt: -------------------------------------------------------------------------------- 1 | A $$color $$animal in a $$location 2 | $$weather scene with a $$object 3 | $$character wearing $$clothing -------------------------------------------------------------------------------- /wildcards/material.txt: -------------------------------------------------------------------------------- 1 | Marble 2 | Granite 3 | Sandstone 4 | Slate 5 | Quartzite 6 | Limestone 7 | Travertine 8 | Onyx 9 | Soapstone 10 | Diamond 11 | Sapphire 12 | Ruby 13 | Emerald 14 | Topaz 15 | Opal 16 | Amethyst 17 | Turquoise 18 | Wood 19 | Bamboo 20 | Cork 21 | Leather 22 | Fur 23 | Silk 24 | Wool 25 | Aloe 26 | Cactus 27 | Fern 28 | Ivy 29 | Orchid 30 | Palm 31 | Ferns 32 | Moss 33 | Snow 34 | Ice 35 | Water 36 | Rocks 37 | Pebbles 38 | Glass 39 | Copper 40 | Brass 41 | Oak 42 | Pine 43 | Cherry 44 | Maple 45 | Birch 46 | Elm 47 | Mahogany 48 | Rosewood 49 | Teak 50 | Teak -------------------------------------------------------------------------------- /wildcards/mechanical_animal.txt: -------------------------------------------------------------------------------- 1 | robotic dog 2 | cyborg cat 3 | android horse 4 | bionic bird 5 | mecha-elephant 6 | nano-insect 7 | AI-powered fish 8 | quantum serpent -------------------------------------------------------------------------------- /wildcards/mesoamerican_site.txt: -------------------------------------------------------------------------------- 1 | pyramid 2 | temple complex 3 | ball court 4 | observatory 5 | palace 6 | ceremonial center 7 | stepped pyramid 8 | sacred cenote -------------------------------------------------------------------------------- /wildcards/mythical_flying_creature.txt: -------------------------------------------------------------------------------- 1 | dragon 2 | phoenix 3 | pegasus 4 | griffin 5 | roc 6 | hippogriff 7 | flying monkey 8 | winged serpent -------------------------------------------------------------------------------- /wildcards/mythical_sea_beast.txt: -------------------------------------------------------------------------------- 1 | kraken 2 | leviathan 3 | sea serpent 4 | hydra 5 | charybdis 6 | selkie 7 | merfolk 8 | siren -------------------------------------------------------------------------------- /wildcards/natural_setting.txt: -------------------------------------------------------------------------------- 1 | dense forest 2 | misty mountains 3 | sandy beach 4 | rolling hills 5 | lush jungle 6 | arid desert 7 | frozen tundra 8 | crystal cave -------------------------------------------------------------------------------- /wildcards/object.txt: -------------------------------------------------------------------------------- 1 | ball 2 | lamp 3 | sock 4 | book 5 | phone 6 | spoon 7 | knife 8 | fork 9 | computer 10 | television 11 | remote control 12 | mouse 13 | keyboard 14 | bottle 15 | can 16 | cup 17 | plate 18 | napkin 19 | table 20 | chair 21 | sofa 22 | desk 23 | lamp 24 | door 25 | window 26 | curtain 27 | blind 28 | mirror 29 | clock 30 | watch 31 | wallet 32 | keys 33 | backpack 34 | computer 35 | laptop 36 | printer 37 | scanner 38 | camera 39 | camcorder 40 | microphone 41 | headphones 42 | speakers 43 | television 44 | television remote 45 | DVD player 46 | CD player 47 | radio 48 | stereo 49 | cassette player 50 | phonograph 51 | alarm clock 52 | digital clock 53 | timer 54 | stopwatch 55 | nightstand 56 | lamp 57 | picture frame 58 | photo album 59 | scrapbook 60 | address book 61 | phone book 62 | calendar 63 | planner 64 | agenda 65 | binder 66 | notebook 67 | journal 68 | card game 69 | board game 70 | puzzle 71 | handheld game 72 | dice 73 | playing cards 74 | model 75 | toy 76 | bike 77 | skateboard 78 | rollerblades 79 | helmet 80 | baseball 81 | baseball bat 82 | glove 83 | soccer ball 84 | football 85 | basketball 86 | tennis ball 87 | golf ball 88 | ping pong ball 89 | hockey puck 90 | hockey stick 91 | skis 92 | snowboard 93 | fishing rod 94 | tackle box 95 | waders 96 | golf clubs 97 | tennis racket 98 | swimsuit 99 | flippers 100 | mask 101 | snorkel 102 | fishing net 103 | basketball hoop 104 | trampoline 105 | tent 106 | sleeping bag 107 | backpack 108 | hiking boots 109 | fishing boots 110 | wedding dress 111 | bridesmaid dress 112 | tuxedo 113 | suit 114 | tie 115 | shirt 116 | pants 117 | shorts 118 | skirt 119 | blouse 120 | dress 121 | pajamas 122 | bathrobe 123 | heels 124 | flats 125 | sandals 126 | hiking boots 127 | work boots 128 | sneakers 129 | hat 130 | belt 131 | scarf 132 | gloves 133 | coat 134 | raincoat 135 | jacket 136 | hoodie 137 | sweatshirt -------------------------------------------------------------------------------- /wildcards/pet.txt: -------------------------------------------------------------------------------- 1 | dog 2 | cat 3 | rabbit 4 | hamster 5 | parakeet 6 | goldfish 7 | guinea pig 8 | ferret -------------------------------------------------------------------------------- /wildcards/photographer.txt: -------------------------------------------------------------------------------- 1 | Annie Leibovitz 2 | Yousuf Karsh 3 | Irving Penn 4 | Richard Avedon 5 | Annie Liebovitz 6 | Helmut Newton 7 | Diane Arbus 8 | Walker Evans 9 | Robert Frank 10 | Edward Weston 11 | Margaret Bourke-White 12 | Ansel Adams 13 | Alfred Stieglitz 14 | Imogen Cunningham 15 | Eliot Porter 16 | Gertrude Käsebier 17 | Dorothea Lange 18 | Lewis Hine 19 | Sherman 20 | Carl Van Vechten 21 | Arnold Newman 22 | Matthew Brady 23 | Timothy O'Sullivan 24 | James van der Zee 25 | Baron Wolman 26 | Jean-Léon Gérôme 27 | John Singer Sargent 28 | Auguste Rodin 29 | Rembrandt 30 | Frida Kahlo 31 | Pablo Picasso 32 | Salvador Dalí 33 | Henri Matisse 34 | Andy Warhol 35 | Cindy Sherman 36 | Thomas Eakins 37 | John Singleton Copley 38 | Gilbert -------------------------------------------------------------------------------- /wildcards/photography.txt: -------------------------------------------------------------------------------- 1 | Aerial 2 | Architectural 3 | Black and white 4 | Close-up 5 | Conceptual 6 | Documentary 7 | Fashion 8 | Fine art 9 | Food 10 | Glamour 11 | Landscape 12 | Lifestyle 13 | Macro 14 | Medical 15 | Nature 16 | Photojournalism 17 | Portrait 18 | Product 19 | Sports 20 | Street 21 | Underwater -------------------------------------------------------------------------------- /wildcards/predator.txt: -------------------------------------------------------------------------------- 1 | lion 2 | tiger 3 | wolf 4 | bear 5 | eagle 6 | shark 7 | crocodile 8 | panther -------------------------------------------------------------------------------- /wildcards/prehistoric_sea_creature.txt: -------------------------------------------------------------------------------- 1 | plesiosaur 2 | megalodon 3 | ichthyosaur 4 | mosasaur 5 | dunkleosteus 6 | liopleurodon 7 | kronosaurus 8 | archelon -------------------------------------------------------------------------------- /wildcards/public_place.txt: -------------------------------------------------------------------------------- 1 | bustling market 2 | grand theater 3 | city park 4 | central library 5 | sports stadium 6 | town square 7 | busy train station 8 | popular museum -------------------------------------------------------------------------------- /wildcards/rank.txt: -------------------------------------------------------------------------------- 1 | scout 2 | adventurer 3 | explorer 4 | engineer 5 | pilot 6 | thief 7 | hustler 8 | gangster 9 | trader 10 | builder 11 | climber 12 | paratrooper 13 | diver 14 | swimmer 15 | captain 16 | blogger 17 | musician 18 | photographer -------------------------------------------------------------------------------- /wildcards/sci_fi_location.txt: -------------------------------------------------------------------------------- 1 | space station 2 | alien planet 3 | cyberpunk megacity 4 | terraformed moon 5 | underwater dome city 6 | orbital habitat 7 | time-warp nexus 8 | quantum realm outpost -------------------------------------------------------------------------------- /wildcards/shade.txt: -------------------------------------------------------------------------------- 1 | light 2 | dark 3 | pale 4 | bright 5 | deep 6 | soft 7 | rich 8 | vivid -------------------------------------------------------------------------------- /wildcards/size.txt: -------------------------------------------------------------------------------- 1 | enormous 2 | colossal 3 | gigantic 4 | massive 5 | titanic 6 | immense 7 | hulking 8 | gargantuan -------------------------------------------------------------------------------- /wildcards/smal.txt: -------------------------------------------------------------------------------- 1 | Watches 2 | Rings 3 | Earrings 4 | Pendants 5 | Cufflinks 6 | Tie pins 7 | Keychains 8 | Lockets 9 | Charms 10 | Pins 11 | Brooches 12 | Ribbons 13 | Buttons 14 | Beads 15 | Sequins 16 | Spangles 17 | Confetti 18 | Glitter 19 | Bells 20 | Bows 21 | Candles 22 | Soap bubbles 23 | Fireworks 24 | Snowflakes 25 | Leaves 26 | Flowers 27 | Feathers 28 | Pebbles 29 | Shells 30 | Popcorn 31 | Candy 32 | Lollipops 33 | Gumdrops 34 | Jelly beans 35 | Chocolates 36 | Toys 37 | Balloons 38 | Puzzles 39 | Blocks -------------------------------------------------------------------------------- /wildcards/species.txt: -------------------------------------------------------------------------------- 1 | dog 2 | cat 3 | horse 4 | elephant 5 | giraffe 6 | penguin 7 | koala 8 | $$bird -------------------------------------------------------------------------------- /wildcards/structures.txt: -------------------------------------------------------------------------------- 1 | houses 2 | huts 3 | buildings 4 | silos 5 | hangars 6 | tents -------------------------------------------------------------------------------- /wildcards/time.txt: -------------------------------------------------------------------------------- 1 | day 2 | night 3 | afternoon 4 | dusk 5 | dawn 6 | morning 7 | sunset 8 | studio 9 | midnight 10 | rush hour 11 | noon 12 | early 13 | late 14 | fast 15 | slow 16 | studio 17 | outdoor 18 | highway -------------------------------------------------------------------------------- /wildcards/town.txt: -------------------------------------------------------------------------------- 1 | settlement 2 | encampment 3 | camp 4 | village 5 | town 6 | city 7 | district 8 | base 9 | fortress 10 | outpost 11 | shelter 12 | farm 13 | refinery 14 | station 15 | castle 16 | dome 17 | research lab 18 | bunker 19 | airport 20 | helipad 21 | commune 22 | ruins -------------------------------------------------------------------------------- /wildcards/tropical_bird.txt: -------------------------------------------------------------------------------- 1 | toucan 2 | macaw 3 | cockatoo 4 | bird of paradise 5 | hornbill 6 | sunbird 7 | frigatebird 8 | quetzal -------------------------------------------------------------------------------- /wildcards/tropical_fish.txt: -------------------------------------------------------------------------------- 1 | clownfish 2 | angelfish 3 | butterflyfish 4 | parrotfish 5 | triggerfish 6 | lionfish 7 | surgeonfish 8 | mandarin fish -------------------------------------------------------------------------------- /wildcards/vid1subject.txt: -------------------------------------------------------------------------------- 1 | a woman with long brown hair 2 | a woman with blonde hair 3 | a woman with short brown hair 4 | a man with graying hair 5 | a man in a suit 6 | two police officers 7 | a prison guard 8 | a woman with light skin 9 | a man with dark skin 10 | a woman with pink hair 11 | a man with a mustache 12 | a woman with an updo 13 | a man with a goatee 14 | a woman with red hair 15 | two men in uniforms 16 | a man with a beard 17 | a man in casual clothes 18 | a group of officers 19 | a woman in formal wear 20 | a man with short hair -------------------------------------------------------------------------------- /wildcards/vid1subjectV2.txt: -------------------------------------------------------------------------------- 1 | a woman with shoulder-length brown hair 2 | a woman with flowing blonde hair 3 | a man with neatly trimmed gray hair 4 | a police officer 5 | a security guard 6 | a businesswoman 7 | a businessman 8 | a medical professional 9 | a young woman 10 | a middle-aged man 11 | two officers 12 | a detective 13 | an office worker 14 | a resident 15 | a pedestrian 16 | a customer 17 | a staff member 18 | a civilian 19 | an individual 20 | a professional 21 | -------------------------------------------------------------------------------- /wildcards/vid1subjectV3.txt: -------------------------------------------------------------------------------- 1 | a professional with a confident demeanor 2 | a team leader with experience 3 | a senior specialist 4 | a department supervisor 5 | a skilled practitioner 6 | an experienced consultant 7 | a qualified expert 8 | a seasoned professional 9 | a team coordinator 10 | a project manager 11 | a field specialist 12 | a senior advisor 13 | a department head 14 | a lead professional 15 | a certified expert 16 | a qualified supervisor 17 | a senior team member 18 | an industry professional 19 | a subject matter expert 20 | a distinguished practitioner 21 | -------------------------------------------------------------------------------- /wildcards/vid2action.txt: -------------------------------------------------------------------------------- 1 | walks away from the vehicle 2 | enters through the doorway 3 | looks down with sadness 4 | speaks while moving 5 | unlocks and opens the door 6 | turns around slowly 7 | ascends the staircase 8 | talks on the telephone 9 | walks towards the window 10 | yells from the doorway 11 | knocks on the door 12 | hangs up the phone 13 | stands motionless 14 | enters the room speaking 15 | looks to the right 16 | moves through the crowd 17 | sits at the table 18 | approaches the couch 19 | walks past quickly 20 | turns their head sharply -------------------------------------------------------------------------------- /wildcards/vid2actionV2.txt: -------------------------------------------------------------------------------- 1 | walks forward with purpose 2 | enters the scene calmly 3 | observes the surroundings 4 | speaks clearly 5 | moves through the space 6 | pauses briefly 7 | stands with authority 8 | examines documents 9 | interacts with objects 10 | gestures while speaking 11 | sits down carefully 12 | rises from their position 13 | exits the frame 14 | approaches the desk 15 | reviews information 16 | makes a phone call 17 | checks their surroundings 18 | consults with others 19 | maintains their position 20 | moves with determination 21 | -------------------------------------------------------------------------------- /wildcards/vid2actionV3.txt: -------------------------------------------------------------------------------- 1 | presents information with clarity 2 | demonstrates expertise confidently 3 | analyzes the situation carefully 4 | communicates key points effectively 5 | facilitates group discussion 6 | reviews documentation thoroughly 7 | implements standard procedures 8 | conducts professional assessment 9 | provides detailed explanation 10 | coordinates team activities 11 | addresses key objectives 12 | manages resources efficiently 13 | delivers expert guidance 14 | performs systematic evaluation 15 | executes tasks methodically 16 | shares valuable insights 17 | maintains professional standards 18 | directs project operations 19 | ensures quality compliance 20 | demonstrates best practices 21 | -------------------------------------------------------------------------------- /wildcards/vid3physical.txt: -------------------------------------------------------------------------------- 1 | wearing a black jacket and jeans 2 | styled in an elegant updo with pearl earrings 3 | in a dark blue uniform with a badge 4 | wearing a maroon sleeveless top and silver necklace 5 | dressed in a brown suit jacket over a white shirt 6 | in a white tank top with visible injuries 7 | wearing a black dress with sequins 8 | in a gray shirt with rolled sleeves 9 | wearing a brown coat and red scarf 10 | in full police tactical gear 11 | wearing a blue jacket and black hat with veil 12 | in a black and white striped prison uniform 13 | dressed in formal evening attire 14 | wearing a light blue sweater and slacks 15 | in a dark suit with gold tie 16 | wearing a white collared shirt and blazer 17 | in casual athletic wear 18 | dressed in medical scrubs 19 | wearing a security uniform 20 | in business casual attire with accessories -------------------------------------------------------------------------------- /wildcards/vid3physicalV2.txt: -------------------------------------------------------------------------------- 1 | wearing a well-fitted dark suit 2 | in professional business attire 3 | dressed in a formal blazer and slacks 4 | wearing a crisp white shirt and tie 5 | in a neat police uniform 6 | wearing smart casual business wear 7 | dressed in medical scrubs and lab coat 8 | in a security uniform with badge 9 | wearing a conservative dress suit 10 | in business casual attire 11 | dressed in formal office wear 12 | wearing a light colored suit 13 | in dark professional attire 14 | wearing a tailored jacket 15 | in standard workplace attire 16 | wearing neutral colored clothing 17 | in appropriate professional wear 18 | dressed in formal business wear 19 | wearing coordinated office attire 20 | in smart professional clothing 21 | -------------------------------------------------------------------------------- /wildcards/vid3physicalV3.txt: -------------------------------------------------------------------------------- 1 | wearing polished professional attire 2 | dressed in refined business wear 3 | in contemporary workplace attire 4 | wearing tailored professional clothing 5 | dressed in modern business ensemble 6 | in elegant professional wear 7 | wearing sophisticated workplace attire 8 | dressed in pristine business clothing 9 | in coordinated professional ensemble 10 | wearing classic business attire 11 | dressed in refined workplace wear 12 | in distinguished professional clothing 13 | wearing premium business ensemble 14 | dressed in quality workplace attire 15 | in tasteful professional wear 16 | wearing structured business clothing 17 | dressed in precise professional attire 18 | in well-appointed workplace ensemble 19 | wearing distinguished business wear 20 | dressed in authoritative professional attire 21 | -------------------------------------------------------------------------------- /wildcards/vid4camera.txt: -------------------------------------------------------------------------------- 1 | the camera remains stationary, focused on the subject's face 2 | the camera pans slowly from left to right 3 | the camera follows from behind at medium distance 4 | the camera angle is a close-up on the upper body 5 | the camera maintains a static wide shot 6 | the camera tracks sideways, keeping pace 7 | the camera pulls back to reveal the scene 8 | the camera stays fixed at eye level 9 | the camera moves in a slow circular motion 10 | the camera holds on a medium shot 11 | the camera captures from a low angle 12 | the camera zooms gradually closer 13 | the camera maintains distance while tracking 14 | the camera shifts focus to the background 15 | the camera sweeps across the landscape 16 | the camera holds position at shoulder height 17 | the camera dollies forward smoothly 18 | the camera tilts up from ground level 19 | the camera frames the scene from above 20 | the camera pivots to follow movement -------------------------------------------------------------------------------- /wildcards/vid4cameraV2.txt: -------------------------------------------------------------------------------- 1 | the camera maintains a steady medium shot 2 | the camera follows smoothly at eye level 3 | the camera holds a professional framing 4 | the camera tracks laterally with precision 5 | the camera captures with subtle movement 6 | the camera maintains clear focus 7 | the camera frames the scene professionally 8 | the camera moves with steady stability 9 | the camera holds a balanced composition 10 | the camera transitions smoothly 11 | the camera maintains appropriate distance 12 | the camera captures with clarity 13 | the camera follows with measured movement 14 | the camera holds steady framing 15 | the camera maintains professional distance 16 | the camera tracks with purpose 17 | the camera captures the scene clearly 18 | the camera moves with deliberate pace 19 | the camera holds optimal framing 20 | the camera maintains consistent focus 21 | -------------------------------------------------------------------------------- /wildcards/vid4cameraV3.txt: -------------------------------------------------------------------------------- 1 | filmed with steady professional framing 2 | captured in crisp high definition 3 | recorded with balanced composition 4 | documented with precision focus 5 | shot with dynamic stability 6 | filmed in clear documentary style 7 | captured with expert cinematography 8 | recorded using smooth tracking 9 | documented from optimal angles 10 | shot with professional clarity 11 | filmed using fluid movement 12 | captured with strategic framing 13 | recorded in presentation quality 14 | documented with careful attention 15 | shot with measured precision 16 | filmed using expert technique 17 | captured in professional resolution 18 | recorded with deliberate movement 19 | documented using ideal framing 20 | shot with masterful composition 21 | -------------------------------------------------------------------------------- /wildcards/vid5environment.txt: -------------------------------------------------------------------------------- 1 | the room is dimly lit with warm overhead lights 2 | the street is wet from recent rain, reflecting streetlights 3 | the space is brightly lit by natural sunlight 4 | the environment is dark with blue-toned lighting 5 | the room has exposed brick walls and industrial lighting 6 | the setting is a modern office with fluorescent lighting 7 | the scene is lit by a single harsh spotlight 8 | the environment is bathed in golden hour sunlight 9 | the room features soft ambient lighting 10 | the space is illuminated by cold moonlight 11 | the setting is backlit with dramatic shadows 12 | the environment is lit by flickering fluorescent tubes 13 | the room glows with warm candlelight 14 | the scene is lit by harsh emergency lights 15 | the setting features dramatic contrast lighting 16 | the environment is bathed in natural diffused light 17 | the space is lit by neon signs and streetlamps 18 | the room has dramatic side lighting 19 | the setting is illuminated by computer screens 20 | the environment features practical lighting sources -------------------------------------------------------------------------------- /wildcards/vid5environmentV2.txt: -------------------------------------------------------------------------------- 1 | the space is well-lit with natural daylight 2 | the room features professional office lighting 3 | the environment has balanced indoor lighting 4 | the area is illuminated by modern fixtures 5 | the space has clean, even lighting 6 | the setting features ambient office lighting 7 | the environment is professionally lit 8 | the room has clear, consistent lighting 9 | the space features natural and artificial light 10 | the setting has appropriate workplace lighting 11 | the environment maintains proper illumination 12 | the area features controlled lighting 13 | the space has standard office illumination 14 | the room is lit for professional clarity 15 | the setting maintains optimal visibility 16 | the environment has proper business lighting 17 | the space features functional illumination 18 | the room has professional-grade lighting 19 | the area maintains consistent brightness 20 | the setting has appropriate indoor lighting 21 | -------------------------------------------------------------------------------- /wildcards/vid5environmentV3.txt: -------------------------------------------------------------------------------- 1 | in a modern professional environment 2 | within a well-appointed workspace 3 | inside a premium business setting 4 | amid a sophisticated office space 5 | within an executive environment 6 | in a contemporary business center 7 | inside a professional complex 8 | amid a refined workplace setting 9 | within a state-of-the-art facility 10 | in an upscale business environment 11 | inside a professional headquarters 12 | amid a corporate campus setting 13 | within a prestigious workspace 14 | in a professional suite 15 | inside an advanced facility 16 | amid an enterprise environment 17 | within a premier business space 18 | in a professional complex 19 | inside a corporate center 20 | amid an executive setting 21 | -------------------------------------------------------------------------------- /wildcards/vid6scene.txt: -------------------------------------------------------------------------------- 1 | the scene appears to be real-life footage 2 | the scene is captured in real-life footage 3 | the scene is documented live footage 4 | the scene appears to be from a movie 5 | the scene appears to be from a TV show 6 | the scene is from a professional film 7 | the scene appears to be from a movie or TV show 8 | the scene is computer-generated imagery 9 | the scene is CGI animation 10 | the scene is digital animation 11 | the scene is captured documentary footage 12 | the scene is professional broadcast footage 13 | the scene appears to be news footage 14 | the scene is from a television broadcast 15 | the scene appears to be security footage 16 | the scene is from a theatrical release 17 | the scene is professional studio footage 18 | the scene appears to be archival footage 19 | the scene is from a streaming series 20 | the scene is digital virtual footage -------------------------------------------------------------------------------- /wildcards/vid6sceneV2.txt: -------------------------------------------------------------------------------- 1 | the scene is from a corporate training video 2 | the scene is from a professional documentary 3 | the scene is from a business presentation 4 | the scene is from an instructional video 5 | the scene is from a workplace documentation 6 | the scene is from an educational program 7 | the scene is from a professional interview 8 | the scene is from a corporate communication 9 | the scene is from a training demonstration 10 | the scene is from an office documentation 11 | the scene is from a professional recording 12 | the scene is from a business documentation 13 | the scene is from an organizational video 14 | the scene is from a workplace presentation 15 | the scene is from a professional demonstration 16 | the scene is from a corporate documentation 17 | the scene is from an institutional video 18 | the scene is from a business recording 19 | the scene is from a professional presentation 20 | the scene is from a workplace training video 21 | -------------------------------------------------------------------------------- /wildcards/vid6sceneV3.txt: -------------------------------------------------------------------------------- 1 | captured for professional documentation 2 | produced as training material 3 | created for industry presentation 4 | developed as educational content 5 | designed for corporate communication 6 | produced as instructional material 7 | created for professional development 8 | developed as strategic content 9 | designed for organizational training 10 | captured for knowledge sharing 11 | produced as expert guidance 12 | created for skill development 13 | developed as best practices 14 | designed for professional instruction 15 | captured for workplace education 16 | produced as reference material 17 | created for competency training 18 | developed as professional resources 19 | designed for industry education 20 | captured for excellence standards 21 | -------------------------------------------------------------------------------- /wildcards/weapon.txt: -------------------------------------------------------------------------------- 1 | sword 2 | spear 3 | pole 4 | halberd 5 | bow 6 | greatsword 7 | cutlass 8 | scimitar 9 | axe 10 | poleaxe 11 | polearm 12 | daggers 13 | rope 14 | chain 15 | katana 16 | kusarigama 17 | knives 18 | blades 19 | -------------------------------------------------------------------------------- /wildcards/weather.txt: -------------------------------------------------------------------------------- 1 | Sunny 2 | Cloudy 3 | Partlycloudy 4 | Mostlycloudy 5 | Overcast 6 | Clear 7 | Foggy 8 | Mist 9 | Smog 10 | Haze 11 | Freezing 12 | Severe 13 | Extreme 14 | Windy 15 | Calm 16 | Light 17 | Heavy 18 | Gentle 19 | Moderate 20 | Fresh 21 | Strong 22 | Gale 23 | Storm 24 | Violent 25 | Hurricane 26 | Tropical 27 | Cyclone 28 | Squall 29 | Tornado 30 | Blowing 31 | Drifting 32 | Falling 33 | Icicle 34 | Hail 35 | Sleet 36 | Snow 37 | Snowfall 38 | Snowing 39 | Flurries 40 | Whiteout 41 | Freezingrain 42 | Drizzle 43 | Downpour --------------------------------------------------------------------------------