appiq-solution 1.4.8 → 1.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +172 -48
- package/bmad-core/agent-teams/team-fullstack.yaml +1 -11
- package/bmad-core/agents/analyst.md +3 -7
- package/bmad-core/agents/architect.md +0 -6
- package/bmad-core/agents/dev.md +5 -24
- package/bmad-core/agents/pm.md +3 -7
- package/bmad-core/agents/qa.md +0 -17
- package/bmad-core/agents/sm.md +3 -8
- package/bmad-core/agents/ux-expert.md +3 -8
- package/bmad-core/data/technical-preferences.md +1 -147
- package/bmad-core/templates/fullstack-architecture-tmpl.yaml +5 -12
- package/bmad-core/workflows/brownfield-fullstack.yaml +1 -15
- package/bmad-core/workflows/greenfield-fullstack.yaml +5 -49
- package/bmad-core/working-in-the-brownfield.md +10 -19
- package/dist/agents/bmad-orchestrator.txt +0 -111
- package/dist/agents/pm.txt +2 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -111
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -111
- package/dist/teams/team-all.txt +2 -111
- package/dist/teams/team-fullstack.txt +2 -111
- package/dist/teams/team-ide-minimal.txt +0 -111
- package/dist/teams/team-no-ui.txt +2 -111
- package/package.json +60 -18
- package/tools/cli.js +3 -3
- package/tools/installer/package-lock.json +2 -2
- package/#NEW APP PROMPT/ARCHITECTURE.md +0 -279
- package/#NEW APP PROMPT/ARCHITECTURE_UNIFIED.md +0 -414
- package/#NEW APP PROMPT/accesibility_prompt.md +0 -103
- package/#NEW APP PROMPT/clean-code.mdc +0 -55
- package/#NEW APP PROMPT/codequality.mdc +0 -47
- package/#NEW APP PROMPT/flutter-ai-rules/LICENSE +0 -21
- package/#NEW APP PROMPT/flutter-ai-rules/README.md +0 -104
- package/#NEW APP PROMPT/flutter-ai-rules/combined/README.md +0 -25
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart.md +0 -192
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart__under_6K.md +0 -99
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail.md +0 -308
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail__under_6K.md +0 -87
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier.md +0 -254
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier__under_6K.md +0 -98
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider.md +0 -261
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider__under_6K.md +0 -105
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito.md +0 -371
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito__under_6K.md +0 -92
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc.md +0 -287
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc__under_6K.md +0 -68
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod.md +0 -375
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod__under_6K.md +0 -106
- package/#NEW APP PROMPT/flutter-ai-rules/media/flutter_ai_rules.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_01.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_02.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/bloc.md +0 -94
- package/#NEW APP PROMPT/flutter-ai-rules/rules/dart_3_updates.md +0 -93
- package/#NEW APP PROMPT/flutter-ai-rules/rules/effective_dart.md +0 -105
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_app_architecture.md +0 -57
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_change_notifier.md +0 -62
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_errors.md +0 -11
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mockito.md +0 -31
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mocktail.md +0 -24
- package/#NEW APP PROMPT/flutter-ai-rules/rules/provider.md +0 -69
- package/#NEW APP PROMPT/flutter-ai-rules/rules/riverpod.md +0 -188
- package/#NEW APP PROMPT/generate ssh.md +0 -4
- package/#NEW APP PROMPT/project_ai_prompt.md +0 -544
- package/#Tools/APPIQ-METHOD/.bmad-config.json +0 -13
- package/#Tools/APPIQ-METHOD/.cursor/commands/analyze.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/appiq.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/help.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/story.md +0 -27
- package/#Tools/APPIQ-METHOD/DEVELOPMENT_GUIDE.md +0 -855
- package/#Tools/APPIQ-METHOD/NPM-README.md +0 -138
- package/#Tools/APPIQ-METHOD/README.md +0 -107
- package/#Tools/APPIQ-METHOD/SMART_WORKFLOW_GUIDE.md +0 -401
- package/#Tools/APPIQ-METHOD/activate-appiq.js +0 -81
- package/#Tools/APPIQ-METHOD/appiq-solution/README.md +0 -226
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-all.yaml +0 -14
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-flutter-mobile.yaml +0 -114
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-fullstack.yaml +0 -28
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-no-ui.yaml +0 -13
- package/#Tools/APPIQ-METHOD/bmad-core/agents/analyst.md +0 -85
- package/#Tools/APPIQ-METHOD/bmad-core/agents/architect.md +0 -90
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-master.md +0 -108
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-orchestrator.md +0 -150
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-smart-launcher.md +0 -170
- package/#Tools/APPIQ-METHOD/bmad-core/agents/dev.md +0 -95
- package/#Tools/APPIQ-METHOD/bmad-core/agents/init-flow-po.md +0 -143
- package/#Tools/APPIQ-METHOD/bmad-core/agents/pm.md +0 -85
- package/#Tools/APPIQ-METHOD/bmad-core/agents/po.md +0 -76
- package/#Tools/APPIQ-METHOD/bmad-core/agents/qa.md +0 -86
- package/#Tools/APPIQ-METHOD/bmad-core/agents/sm.md +0 -67
- package/#Tools/APPIQ-METHOD/bmad-core/agents/ux-expert.md +0 -71
- package/#Tools/APPIQ-METHOD/bmad-core/bmad-core/user-guide.md +0 -0
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/architect-checklist.md +0 -443
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/change-checklist.md +0 -182
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/pm-checklist.md +0 -375
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/po-master-checklist.md +0 -441
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/security-validation-checklist.md +0 -332
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/story-dod-checklist.md +0 -101
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/story-draft-checklist.md +0 -156
- package/#Tools/APPIQ-METHOD/bmad-core/core-config.yaml +0 -20
- package/#Tools/APPIQ-METHOD/bmad-core/core-config.yaml.bak +0 -20
- package/#Tools/APPIQ-METHOD/bmad-core/data/backend-services-integration.md +0 -686
- package/#Tools/APPIQ-METHOD/bmad-core/data/bmad-kb.md +0 -803
- package/#Tools/APPIQ-METHOD/bmad-core/data/brainstorming-techniques.md +0 -36
- package/#Tools/APPIQ-METHOD/bmad-core/data/elicitation-methods.md +0 -134
- package/#Tools/APPIQ-METHOD/bmad-core/data/shadcn-ui-integration.md +0 -388
- package/#Tools/APPIQ-METHOD/bmad-core/data/technical-preferences.md +0 -149
- package/#Tools/APPIQ-METHOD/bmad-core/enhanced-ide-development-workflow.md +0 -43
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/advanced-elicitation.md +0 -117
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/brownfield-create-epic.md +0 -160
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/brownfield-create-story.md +0 -147
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/correct-course.md +0 -70
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-brownfield-story.md +0 -304
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-deep-research-prompt.md +0 -289
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-flutter-story.md +0 -197
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-next-story.md +0 -112
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/document-project.md +0 -341
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/index-docs.md +0 -179
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/intelligent-epic-creation.md +0 -234
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/kb-mode-interaction.md +0 -75
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/review-story.md +0 -145
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/shard-doc.md +0 -187
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/smart-project-analysis.md +0 -289
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/validate-next-story.md +0 -134
- package/#Tools/APPIQ-METHOD/bmad-core/templates/architecture-tmpl.yaml +0 -650
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
- package/#Tools/APPIQ-METHOD/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +0 -330
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-story-tmpl.yaml +0 -376
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-ui-spec-tmpl.yaml +0 -415
- package/#Tools/APPIQ-METHOD/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
- package/#Tools/APPIQ-METHOD/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
- package/#Tools/APPIQ-METHOD/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -812
- package/#Tools/APPIQ-METHOD/bmad-core/templates/market-research-tmpl.yaml +0 -252
- package/#Tools/APPIQ-METHOD/bmad-core/templates/prd-tmpl.yaml +0 -202
- package/#Tools/APPIQ-METHOD/bmad-core/templates/project-brief-tmpl.yaml +0 -221
- package/#Tools/APPIQ-METHOD/bmad-core/templates/story-tmpl.yaml +0 -137
- package/#Tools/APPIQ-METHOD/bmad-core/user-guide.md +0 -251
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-fullstack.yaml +0 -311
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-service.yaml +0 -187
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-ui.yaml +0 -197
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-fullstack.yaml +0 -284
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-service.yaml +0 -206
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-ui.yaml +0 -235
- package/#Tools/APPIQ-METHOD/bmad-core/working-in-the-brownfield.md +0 -373
- package/#Tools/APPIQ-METHOD/commands/README.md +0 -28
- package/#Tools/APPIQ-METHOD/commands/analyze.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/appiq.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/help.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/story.md +0 -27
- package/#Tools/APPIQ-METHOD/dist/agents/analyst.txt +0 -2882
- package/#Tools/APPIQ-METHOD/dist/agents/architect.txt +0 -3543
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-master.txt +0 -8756
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-orchestrator.txt +0 -1490
- package/#Tools/APPIQ-METHOD/dist/agents/dev.txt +0 -428
- package/#Tools/APPIQ-METHOD/dist/agents/pm.txt +0 -2229
- package/#Tools/APPIQ-METHOD/dist/agents/po.txt +0 -1364
- package/#Tools/APPIQ-METHOD/dist/agents/qa.txt +0 -386
- package/#Tools/APPIQ-METHOD/dist/agents/sm.txt +0 -668
- package/#Tools/APPIQ-METHOD/dist/agents/ux-expert.txt +0 -701
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2408
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1631
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -822
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -10989
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +0 -4047
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +0 -3744
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -465
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +0 -990
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -15467
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2077
- package/#Tools/APPIQ-METHOD/dist/teams/team-all.txt +0 -11062
- package/#Tools/APPIQ-METHOD/dist/teams/team-fullstack.txt +0 -10392
- package/#Tools/APPIQ-METHOD/dist/teams/team-ide-minimal.txt +0 -3507
- package/#Tools/APPIQ-METHOD/dist/teams/team-no-ui.txt +0 -8951
- package/#Tools/APPIQ-METHOD/install-appiq.sh +0 -41
- package/#Tools/APPIQ-METHOD/package-lock.json +0 -631
- package/#Tools/APPIQ-METHOD/package.json +0 -44
- package/#Tools/APPIQ-METHOD/tasks/todo.md +0 -275
- package/#Tools/APPIQ-METHOD/tools/appiq-installer.js +0 -2711
- package/#Tools/APPIQ-METHOD/tools/bmad-npx-wrapper.js +0 -39
- package/#Tools/APPIQ-METHOD/tools/builders/web-builder.js +0 -681
- package/#Tools/APPIQ-METHOD/tools/bump-all-versions.js +0 -106
- package/#Tools/APPIQ-METHOD/tools/bump-expansion-version.js +0 -83
- package/#Tools/APPIQ-METHOD/tools/cli.js +0 -152
- package/#Tools/APPIQ-METHOD/tools/epic-solution-installer.js +0 -536
- package/#Tools/APPIQ-METHOD/tools/flattener/main.js +0 -570
- package/#Tools/APPIQ-METHOD/tools/installer/README.md +0 -8
- package/#Tools/APPIQ-METHOD/tools/installer/bin/bmad.js +0 -483
- package/#Tools/APPIQ-METHOD/tools/installer/config/ide-agent-config.yaml +0 -58
- package/#Tools/APPIQ-METHOD/tools/installer/config/install.config.yaml +0 -92
- package/#Tools/APPIQ-METHOD/tools/installer/lib/config-loader.js +0 -253
- package/#Tools/APPIQ-METHOD/tools/installer/lib/file-manager.js +0 -411
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-base-setup.js +0 -227
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-setup.js +0 -1096
- package/#Tools/APPIQ-METHOD/tools/installer/lib/installer.js +0 -1772
- package/#Tools/APPIQ-METHOD/tools/installer/lib/memory-profiler.js +0 -224
- package/#Tools/APPIQ-METHOD/tools/installer/lib/module-manager.js +0 -110
- package/#Tools/APPIQ-METHOD/tools/installer/lib/resource-locator.js +0 -310
- package/#Tools/APPIQ-METHOD/tools/installer/package-lock.json +0 -906
- package/#Tools/APPIQ-METHOD/tools/installer/package.json +0 -43
- package/#Tools/APPIQ-METHOD/tools/lib/dependency-resolver.js +0 -179
- package/#Tools/APPIQ-METHOD/tools/lib/yaml-utils.js +0 -29
- package/#Tools/APPIQ-METHOD/tools/md-assets/web-agent-startup-instructions.md +0 -39
- package/#Tools/APPIQ-METHOD/tools/semantic-release-sync-installer.js +0 -30
- package/#Tools/APPIQ-METHOD/tools/setup-ide-commands.js +0 -348
- package/#Tools/APPIQ-METHOD/tools/smart-installer.js +0 -592
- package/#Tools/APPIQ-METHOD/tools/sync-installer-version.js +0 -34
- package/#Tools/APPIQ-METHOD/tools/update-expansion-version.js +0 -54
- package/#Tools/APPIQ-METHOD/tools/upgraders/v3-to-v4-upgrader.js +0 -763
- package/#Tools/APPIQ-METHOD/tools/version-bump.js +0 -79
- package/#Tools/APPIQ-METHOD/tools/yaml-format.js +0 -240
- package/#Tools/SkyReels-V2/.pre-commit-config.yaml +0 -25
- package/#Tools/SkyReels-V2/LICENSE.txt +0 -38
- package/#Tools/SkyReels-V2/README.md +0 -766
- package/#Tools/SkyReels-V2/generate_video.py +0 -161
- package/#Tools/SkyReels-V2/generate_video_df.py +0 -220
- package/#Tools/SkyReels-V2/requirements.txt +0 -16
- package/#Tools/SkyReels-V2/skycaptioner_v1/README.md +0 -278
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test.csv +0 -5
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test_result.csv +0 -5
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_fusion_caption.sh +0 -9
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_struct_caption.sh +0 -8
- package/#Tools/SkyReels-V2/skycaptioner_v1/requirements.txt +0 -3
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_fusion_caption.py +0 -146
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_struct_caption.py +0 -92
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/utils.py +0 -19
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_fusion_caption.py +0 -256
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_struct_caption.py +0 -156
- package/#Tools/SkyReels-V2/skyreels_v2_infer/__init__.py +0 -1
- package/#Tools/SkyReels-V2/skyreels_v2_infer/distributed/__init__.py +0 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/distributed/xdit_context_parallel.py +0 -286
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/__init__.py +0 -69
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/attention.py +0 -179
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/clip.py +0 -525
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/t5.py +0 -454
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/tokenizers.py +0 -78
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/transformer.py +0 -839
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/vae.py +0 -639
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/xlm_roberta.py +0 -165
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/__init__.py +0 -5
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/diffusion_forcing_pipeline.py +0 -659
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/image2video_pipeline.py +0 -156
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/prompt_enhancer.py +0 -65
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/text2video_pipeline.py +0 -110
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/__init__.py +0 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/fm_solvers_unipc.py +0 -759
- package/#Tools/SuperClaude/.claude/commands/analyze.md +0 -36
- package/#Tools/SuperClaude/.claude/commands/build.md +0 -35
- package/#Tools/SuperClaude/.claude/commands/cleanup.md +0 -46
- package/#Tools/SuperClaude/.claude/commands/deploy.md +0 -55
- package/#Tools/SuperClaude/.claude/commands/design.md +0 -91
- package/#Tools/SuperClaude/.claude/commands/dev-setup.md +0 -37
- package/#Tools/SuperClaude/.claude/commands/document.md +0 -99
- package/#Tools/SuperClaude/.claude/commands/estimate.md +0 -69
- package/#Tools/SuperClaude/.claude/commands/explain.md +0 -85
- package/#Tools/SuperClaude/.claude/commands/git.md +0 -47
- package/#Tools/SuperClaude/.claude/commands/improve.md +0 -162
- package/#Tools/SuperClaude/.claude/commands/index.md +0 -159
- package/#Tools/SuperClaude/.claude/commands/load.md +0 -65
- package/#Tools/SuperClaude/.claude/commands/migrate.md +0 -76
- package/#Tools/SuperClaude/.claude/commands/scan.md +0 -163
- package/#Tools/SuperClaude/.claude/commands/shared/ambiguity-check.yml +0 -40
- package/#Tools/SuperClaude/.claude/commands/shared/audit.yml +0 -21
- package/#Tools/SuperClaude/.claude/commands/shared/checkpoint.yml +0 -28
- package/#Tools/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +0 -107
- package/#Tools/SuperClaude/.claude/commands/shared/command-memory.yml +0 -52
- package/#Tools/SuperClaude/.claude/commands/shared/command-templates.yml +0 -167
- package/#Tools/SuperClaude/.claude/commands/shared/config-validator.yml +0 -206
- package/#Tools/SuperClaude/.claude/commands/shared/constants.yml +0 -311
- package/#Tools/SuperClaude/.claude/commands/shared/documentation-dirs.yml +0 -134
- package/#Tools/SuperClaude/.claude/commands/shared/error-handling.yml +0 -341
- package/#Tools/SuperClaude/.claude/commands/shared/evidence.yml +0 -75
- package/#Tools/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +0 -277
- package/#Tools/SuperClaude/.claude/commands/shared/git-operations.yml +0 -217
- package/#Tools/SuperClaude/.claude/commands/shared/git-workflow.yml +0 -37
- package/#Tools/SuperClaude/.claude/commands/shared/implementation.yml +0 -199
- package/#Tools/SuperClaude/.claude/commands/shared/loading-config.yml +0 -73
- package/#Tools/SuperClaude/.claude/commands/shared/mcp-flags.yml +0 -109
- package/#Tools/SuperClaude/.claude/commands/shared/migration-report.md +0 -165
- package/#Tools/SuperClaude/.claude/commands/shared/patterns.yml +0 -155
- package/#Tools/SuperClaude/.claude/commands/shared/performance.yml +0 -317
- package/#Tools/SuperClaude/.claude/commands/shared/planning-mode.yml +0 -51
- package/#Tools/SuperClaude/.claude/commands/shared/research-first.yml +0 -278
- package/#Tools/SuperClaude/.claude/commands/shared/session-recovery.yml +0 -144
- package/#Tools/SuperClaude/.claude/commands/shared/severity-levels.yml +0 -252
- package/#Tools/SuperClaude/.claude/commands/shared/task-system.yml +0 -380
- package/#Tools/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +0 -88
- package/#Tools/SuperClaude/.claude/commands/shared/templates/feature-template.md +0 -59
- package/#Tools/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +0 -26
- package/#Tools/SuperClaude/.claude/commands/shared/thinking-modes.yml +0 -61
- package/#Tools/SuperClaude/.claude/commands/shared/ultracompressed.yml +0 -97
- package/#Tools/SuperClaude/.claude/commands/shared/user-experience.yml +0 -208
- package/#Tools/SuperClaude/.claude/commands/shared/validation.yml +0 -54
- package/#Tools/SuperClaude/.claude/commands/shared/workflow-chains.yml +0 -138
- package/#Tools/SuperClaude/.claude/commands/spawn.md +0 -106
- package/#Tools/SuperClaude/.claude/commands/task.md +0 -110
- package/#Tools/SuperClaude/.claude/commands/test.md +0 -67
- package/#Tools/SuperClaude/.claude/commands/troubleshoot.md +0 -93
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +0 -114
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +0 -119
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +0 -87
- package/#Tools/SuperClaude/.github/pull_request_template.md +0 -62
- package/#Tools/SuperClaude/CHANGELOG.md +0 -109
- package/#Tools/SuperClaude/CLAUDE.md +0 -95
- package/#Tools/SuperClaude/CODE_OF_CONDUCT.md +0 -45
- package/#Tools/SuperClaude/CONTRIBUTING.md +0 -225
- package/#Tools/SuperClaude/Commands_Cheat_Sheet.md +0 -160
- package/#Tools/SuperClaude/LICENSE +0 -21
- package/#Tools/SuperClaude/MCP.md +0 -117
- package/#Tools/SuperClaude/PERSONAS.md +0 -115
- package/#Tools/SuperClaude/README.md +0 -249
- package/#Tools/SuperClaude/RULES.md +0 -220
- package/#Tools/SuperClaude/SECURITY.md +0 -91
- package/#Tools/SuperClaude/install.sh +0 -296
- package/#Tools/claude-talk-to-figma-mcp/.github/workflows/test.yml +0 -36
- package/#Tools/claude-talk-to-figma-mcp/CHANGELOG.md +0 -88
- package/#Tools/claude-talk-to-figma-mcp/Dockerfile +0 -16
- package/#Tools/claude-talk-to-figma-mcp/LICENSE +0 -22
- package/#Tools/claude-talk-to-figma-mcp/TESTING.md +0 -216
- package/#Tools/claude-talk-to-figma-mcp/bun.lock +0 -964
- package/#Tools/claude-talk-to-figma-mcp/context/01/00-analisis.md +0 -151
- package/#Tools/claude-talk-to-figma-mcp/context/01/01-tools-refactor.md +0 -370
- package/#Tools/claude-talk-to-figma-mcp/context/01/02-tools-refactor-backlog.md +0 -253
- package/#Tools/claude-talk-to-figma-mcp/context/01/03-tools-refactor-test.md +0 -138
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-channel-error.md +0 -133
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-test-backlog.md +0 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/05-tools-refactor-four-tools-error.md +0 -356
- package/#Tools/claude-talk-to-figma-mcp/context/01/06-tools-refactor-four-tools-error-backlog.md +0 -425
- package/#Tools/claude-talk-to-figma-mcp/context/01/prompt-dev-nodejs-bun.md +0 -105
- package/#Tools/claude-talk-to-figma-mcp/context/01-prompt.md +0 -135
- package/#Tools/claude-talk-to-figma-mcp/context/02/00-analisis.md +0 -131
- package/#Tools/claude-talk-to-figma-mcp/context/02/01-plan.md +0 -162
- package/#Tools/claude-talk-to-figma-mcp/context/02/02-backlog.md +0 -241
- package/#Tools/claude-talk-to-figma-mcp/context/02-analisis.md +0 -202
- package/#Tools/claude-talk-to-figma-mcp/context/99-notas.md +0 -139
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-analisis.md +0 -221
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-claude-tests.md +0 -152
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-npm-publishing.md +0 -272
- package/#Tools/claude-talk-to-figma-mcp/images/claude-talk-to-figma.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/images/mcp-figma-plugin-configuration.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/jest.config.cjs +0 -25
- package/#Tools/claude-talk-to-figma-mcp/package.json +0 -67
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-es.md +0 -82
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-gal.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-pt.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-specialist.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/readme.md +0 -307
- package/#Tools/claude-talk-to-figma-mcp/scripts/configure-claude.js +0 -90
- package/#Tools/claude-talk-to-figma-mcp/scripts/setup.sh +0 -30
- package/#Tools/claude-talk-to-figma-mcp/scripts/test-integration.js +0 -339
- package/#Tools/claude-talk-to-figma-mcp/smithery.yaml +0 -26
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/code.js +0 -3295
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/manifest.json +0 -24
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/setcharacters.js +0 -215
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/ui.html +0 -656
- package/#Tools/claude-talk-to-figma-mcp/src/socket.ts +0 -349
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/bun.lock +0 -246
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/config/config.ts +0 -22
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/package.json +0 -31
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/prompts/index.ts +0 -297
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/server.ts +0 -62
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/component-tools.ts +0 -48
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/creation-tools.ts +0 -620
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/document-tools.ts +0 -390
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/index.ts +0 -28
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/modification-tools.ts +0 -408
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/text-tools.ts +0 -531
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tsconfig.json +0 -18
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/color.ts +0 -13
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/index.ts +0 -87
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/defaults.ts +0 -23
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/figma-helpers.ts +0 -142
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/logger.ts +0 -8
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/websocket.ts +0 -258
- package/#Tools/claude-talk-to-figma-mcp/tests/fixtures/test-data.ts +0 -32
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-fill-color.test.ts +0 -309
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-stroke-color.test.ts +0 -387
- package/#Tools/claude-talk-to-figma-mcp/tests/setup.ts +0 -7
- package/#Tools/claude-talk-to-figma-mcp/tests/unit/utils/defaults.test.ts +0 -131
- package/#Tools/claude-talk-to-figma-mcp/tsconfig.json +0 -17
- package/#Tools/claude-talk-to-figma-mcp/tsup.config.ts +0 -14
- package/#Tools/jwt creator/AuthKey_MZ7UQGFV2Q.p8 +0 -6
- package/#Tools/jwt creator/generate_apple_jwt.js +0 -18
- package/#Tools/jwt creator/node_modules/.package-lock.json +0 -145
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/.travis.yml +0 -4
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/LICENSE.txt +0 -12
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/README.md +0 -50
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/index.js +0 -41
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/package.json +0 -21
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/test.js +0 -42
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/CODEOWNERS +0 -1
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/LICENSE +0 -201
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/README.md +0 -65
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/package.json +0 -46
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.d.ts +0 -17
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js +0 -187
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js +0 -23
- package/#Tools/jwt creator/node_modules/jsonwebtoken/LICENSE +0 -21
- package/#Tools/jwt creator/node_modules/jsonwebtoken/README.md +0 -396
- package/#Tools/jwt creator/node_modules/jsonwebtoken/decode.js +0 -30
- package/#Tools/jwt creator/node_modules/jsonwebtoken/index.js +0 -8
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/JsonWebTokenError.js +0 -14
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/NotBeforeError.js +0 -13
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/TokenExpiredError.js +0 -13
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/psSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/timespan.js +0 -18
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js +0 -66
- package/#Tools/jwt creator/node_modules/jsonwebtoken/package.json +0 -71
- package/#Tools/jwt creator/node_modules/jsonwebtoken/sign.js +0 -253
- package/#Tools/jwt creator/node_modules/jsonwebtoken/verify.js +0 -263
- package/#Tools/jwt creator/node_modules/jwa/LICENSE +0 -17
- package/#Tools/jwt creator/node_modules/jwa/README.md +0 -150
- package/#Tools/jwt creator/node_modules/jwa/index.js +0 -266
- package/#Tools/jwt creator/node_modules/jwa/package.json +0 -37
- package/#Tools/jwt creator/node_modules/jws/CHANGELOG.md +0 -34
- package/#Tools/jwt creator/node_modules/jws/LICENSE +0 -17
- package/#Tools/jwt creator/node_modules/jws/index.js +0 -22
- package/#Tools/jwt creator/node_modules/jws/lib/data-stream.js +0 -55
- package/#Tools/jwt creator/node_modules/jws/lib/sign-stream.js +0 -78
- package/#Tools/jwt creator/node_modules/jws/lib/tostring.js +0 -10
- package/#Tools/jwt creator/node_modules/jws/lib/verify-stream.js +0 -120
- package/#Tools/jwt creator/node_modules/jws/package.json +0 -34
- package/#Tools/jwt creator/node_modules/jws/readme.md +0 -255
- package/#Tools/jwt creator/node_modules/lodash.includes/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.includes/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.includes/index.js +0 -745
- package/#Tools/jwt creator/node_modules/lodash.includes/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isboolean/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isboolean/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isboolean/index.js +0 -70
- package/#Tools/jwt creator/node_modules/lodash.isboolean/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isinteger/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.isinteger/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isinteger/index.js +0 -265
- package/#Tools/jwt creator/node_modules/lodash.isinteger/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isnumber/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isnumber/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isnumber/index.js +0 -79
- package/#Tools/jwt creator/node_modules/lodash.isnumber/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/index.js +0 -139
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isstring/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isstring/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isstring/index.js +0 -95
- package/#Tools/jwt creator/node_modules/lodash.isstring/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.once/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.once/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.once/index.js +0 -294
- package/#Tools/jwt creator/node_modules/lodash.once/package.json +0 -17
- package/#Tools/jwt creator/node_modules/ms/index.js +0 -162
- package/#Tools/jwt creator/node_modules/ms/license.md +0 -21
- package/#Tools/jwt creator/node_modules/ms/package.json +0 -38
- package/#Tools/jwt creator/node_modules/ms/readme.md +0 -59
- package/#Tools/jwt creator/node_modules/safe-buffer/LICENSE +0 -21
- package/#Tools/jwt creator/node_modules/safe-buffer/README.md +0 -584
- package/#Tools/jwt creator/node_modules/safe-buffer/index.d.ts +0 -187
- package/#Tools/jwt creator/node_modules/safe-buffer/index.js +0 -65
- package/#Tools/jwt creator/node_modules/safe-buffer/package.json +0 -51
- package/#Tools/jwt creator/node_modules/semver/LICENSE +0 -15
- package/#Tools/jwt creator/node_modules/semver/README.md +0 -664
- package/#Tools/jwt creator/node_modules/semver/bin/semver.js +0 -191
- package/#Tools/jwt creator/node_modules/semver/classes/comparator.js +0 -143
- package/#Tools/jwt creator/node_modules/semver/classes/index.js +0 -7
- package/#Tools/jwt creator/node_modules/semver/classes/range.js +0 -556
- package/#Tools/jwt creator/node_modules/semver/classes/semver.js +0 -319
- package/#Tools/jwt creator/node_modules/semver/functions/clean.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/functions/cmp.js +0 -54
- package/#Tools/jwt creator/node_modules/semver/functions/coerce.js +0 -62
- package/#Tools/jwt creator/node_modules/semver/functions/compare-build.js +0 -9
- package/#Tools/jwt creator/node_modules/semver/functions/compare-loose.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/compare.js +0 -7
- package/#Tools/jwt creator/node_modules/semver/functions/diff.js +0 -60
- package/#Tools/jwt creator/node_modules/semver/functions/eq.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/gt.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/gte.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/inc.js +0 -21
- package/#Tools/jwt creator/node_modules/semver/functions/lt.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/lte.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/major.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/minor.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/neq.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/parse.js +0 -18
- package/#Tools/jwt creator/node_modules/semver/functions/patch.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/prerelease.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/functions/rcompare.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/rsort.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/satisfies.js +0 -12
- package/#Tools/jwt creator/node_modules/semver/functions/sort.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/valid.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/index.js +0 -91
- package/#Tools/jwt creator/node_modules/semver/internal/constants.js +0 -37
- package/#Tools/jwt creator/node_modules/semver/internal/debug.js +0 -11
- package/#Tools/jwt creator/node_modules/semver/internal/identifiers.js +0 -25
- package/#Tools/jwt creator/node_modules/semver/internal/lrucache.js +0 -42
- package/#Tools/jwt creator/node_modules/semver/internal/parse-options.js +0 -17
- package/#Tools/jwt creator/node_modules/semver/internal/re.js +0 -223
- package/#Tools/jwt creator/node_modules/semver/package.json +0 -78
- package/#Tools/jwt creator/node_modules/semver/preload.js +0 -4
- package/#Tools/jwt creator/node_modules/semver/range.bnf +0 -16
- package/#Tools/jwt creator/node_modules/semver/ranges/gtr.js +0 -6
- package/#Tools/jwt creator/node_modules/semver/ranges/intersects.js +0 -9
- package/#Tools/jwt creator/node_modules/semver/ranges/ltr.js +0 -6
- package/#Tools/jwt creator/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/#Tools/jwt creator/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/#Tools/jwt creator/node_modules/semver/ranges/min-version.js +0 -63
- package/#Tools/jwt creator/node_modules/semver/ranges/outside.js +0 -82
- package/#Tools/jwt creator/node_modules/semver/ranges/simplify.js +0 -49
- package/#Tools/jwt creator/node_modules/semver/ranges/subset.js +0 -249
- package/#Tools/jwt creator/node_modules/semver/ranges/to-comparators.js +0 -10
- package/#Tools/jwt creator/node_modules/semver/ranges/valid.js +0 -13
- package/#Tools/jwt creator/package-lock.json +0 -150
- package/#Tools/jwt creator/package.json +0 -5
- package/#Tools/package.json +0 -94
- package/SuperClaude/.claude/commands/analyze.md +0 -36
- package/SuperClaude/.claude/commands/build.md +0 -35
- package/SuperClaude/.claude/commands/cleanup.md +0 -46
- package/SuperClaude/.claude/commands/deploy.md +0 -55
- package/SuperClaude/.claude/commands/design.md +0 -91
- package/SuperClaude/.claude/commands/dev-setup.md +0 -37
- package/SuperClaude/.claude/commands/document.md +0 -99
- package/SuperClaude/.claude/commands/estimate.md +0 -69
- package/SuperClaude/.claude/commands/explain.md +0 -85
- package/SuperClaude/.claude/commands/git.md +0 -47
- package/SuperClaude/.claude/commands/improve.md +0 -162
- package/SuperClaude/.claude/commands/index.md +0 -159
- package/SuperClaude/.claude/commands/load.md +0 -65
- package/SuperClaude/.claude/commands/migrate.md +0 -76
- package/SuperClaude/.claude/commands/scan.md +0 -163
- package/SuperClaude/.claude/commands/shared/ambiguity-check.yml +0 -40
- package/SuperClaude/.claude/commands/shared/audit.yml +0 -21
- package/SuperClaude/.claude/commands/shared/checkpoint.yml +0 -28
- package/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +0 -107
- package/SuperClaude/.claude/commands/shared/command-memory.yml +0 -52
- package/SuperClaude/.claude/commands/shared/command-templates.yml +0 -167
- package/SuperClaude/.claude/commands/shared/config-validator.yml +0 -206
- package/SuperClaude/.claude/commands/shared/constants.yml +0 -311
- package/SuperClaude/.claude/commands/shared/documentation-dirs.yml +0 -134
- package/SuperClaude/.claude/commands/shared/error-handling.yml +0 -341
- package/SuperClaude/.claude/commands/shared/evidence.yml +0 -75
- package/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +0 -277
- package/SuperClaude/.claude/commands/shared/git-operations.yml +0 -217
- package/SuperClaude/.claude/commands/shared/git-workflow.yml +0 -37
- package/SuperClaude/.claude/commands/shared/implementation.yml +0 -199
- package/SuperClaude/.claude/commands/shared/loading-config.yml +0 -73
- package/SuperClaude/.claude/commands/shared/mcp-flags.yml +0 -109
- package/SuperClaude/.claude/commands/shared/migration-report.md +0 -165
- package/SuperClaude/.claude/commands/shared/patterns.yml +0 -155
- package/SuperClaude/.claude/commands/shared/performance.yml +0 -317
- package/SuperClaude/.claude/commands/shared/planning-mode.yml +0 -51
- package/SuperClaude/.claude/commands/shared/research-first.yml +0 -278
- package/SuperClaude/.claude/commands/shared/session-recovery.yml +0 -144
- package/SuperClaude/.claude/commands/shared/severity-levels.yml +0 -252
- package/SuperClaude/.claude/commands/shared/task-system.yml +0 -380
- package/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +0 -88
- package/SuperClaude/.claude/commands/shared/templates/feature-template.md +0 -59
- package/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +0 -26
- package/SuperClaude/.claude/commands/shared/thinking-modes.yml +0 -61
- package/SuperClaude/.claude/commands/shared/ultracompressed.yml +0 -97
- package/SuperClaude/.claude/commands/shared/user-experience.yml +0 -208
- package/SuperClaude/.claude/commands/shared/validation.yml +0 -54
- package/SuperClaude/.claude/commands/shared/workflow-chains.yml +0 -138
- package/SuperClaude/.claude/commands/spawn.md +0 -106
- package/SuperClaude/.claude/commands/task.md +0 -110
- package/SuperClaude/.claude/commands/test.md +0 -67
- package/SuperClaude/.claude/commands/troubleshoot.md +0 -93
- package/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +0 -114
- package/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +0 -119
- package/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +0 -87
- package/SuperClaude/.github/pull_request_template.md +0 -62
- package/SuperClaude/CHANGELOG.md +0 -109
- package/SuperClaude/CLAUDE.md +0 -95
- package/SuperClaude/CODE_OF_CONDUCT.md +0 -45
- package/SuperClaude/CONTRIBUTING.md +0 -225
- package/SuperClaude/Commands_Cheat_Sheet.md +0 -160
- package/SuperClaude/LICENSE +0 -21
- package/SuperClaude/MCP.md +0 -117
- package/SuperClaude/PERSONAS.md +0 -115
- package/SuperClaude/README.md +0 -249
- package/SuperClaude/RULES.md +0 -220
- package/SuperClaude/SECURITY.md +0 -91
- package/SuperClaude/install.sh +0 -296
- package/appiq-mcp installer/How-to.md +0 -250
- package/appiq-mcp installer/LICENSE +0 -21
- package/appiq-mcp installer/README.md +0 -235
- package/appiq-mcp installer/index.js +0 -672
- package/appiq-mcp installer/my_mcps.md +0 -105
- package/appiq-mcp installer/package-lock.json +0 -708
- package/appiq-mcp installer/package.json +0 -46
- package/appiq-mcp installer/test-install.bat +0 -60
- package/appiq-mcp installer/test-install.sh +0 -55
- package/appiq-mcp installer/test-load.js +0 -40
- package/bmad-core/agent-teams/team-flutter-mobile.yaml +0 -114
- package/bmad-core/agents/bmad-smart-launcher.md +0 -170
- package/bmad-core/agents/init-flow-po.md +0 -143
- package/bmad-core/checklists/security-validation-checklist.md +0 -332
- package/bmad-core/core-config.yaml.bak +0 -20
- package/bmad-core/data/backend-services-integration.md +0 -686
- package/bmad-core/data/shadcn-ui-integration.md +0 -388
- package/bmad-core/tasks/create-flutter-story.md +0 -197
- package/bmad-core/tasks/intelligent-epic-creation.md +0 -234
- package/bmad-core/tasks/smart-project-analysis.md +0 -289
- package/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +0 -330
- package/bmad-core/templates/flutter-story-tmpl.yaml +0 -376
- package/bmad-core/templates/flutter-ui-spec-tmpl.yaml +0 -415
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +0 -1530
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +0 -322
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +0 -692
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +0 -382
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +0 -665
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +0 -1070
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +0 -1494
- package/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +0 -15613
- package/flutter/CLAUDE.md +0 -58
- package/flutter/punkt.claude/New Folder With Items/channel.md +0 -221
- package/flutter/punkt.claude/New Folder With Items/commands/add-translations.md +0 -12
- package/flutter/punkt.claude/New Folder With Items/commands/create-feature.md +0 -168
- package/flutter/punkt.claude/New Folder With Items/commands/explain-codebase.md +0 -1
- package/flutter/punkt.claude/New Folder With Items/commands/feature-business-logic.md +0 -551
- package/flutter/punkt.claude/New Folder With Items/commands/feature-data-layer.md +0 -924
- package/flutter/punkt.claude/New Folder With Items/commands/feature-domain-layer.md +0 -540
- package/flutter/punkt.claude/New Folder With Items/commands/feature-integration.md +0 -493
- package/flutter/punkt.claude/New Folder With Items/commands/feature-localization.md +0 -427
- package/flutter/punkt.claude/New Folder With Items/commands/feature-ui-layer.md +0 -300
- package/flutter/punkt.claude/New Folder With Items/commands/git-commit.md +0 -3
- package/flutter/punkt.claude/New Folder With Items/commands/search-web.md +0 -1
- package/flutter/punkt.claude/punkt.claude/channel.md +0 -225
- package/flutter/punkt.claude/punkt.claude/commands/add-translations.md +0 -60
- package/flutter/punkt.claude/punkt.claude/commands/bug-fix.md +0 -32
- package/flutter/punkt.claude/punkt.claude/commands/checkdev.md +0 -122
- package/flutter/punkt.claude/punkt.claude/commands/create-feature.md +0 -174
- package/flutter/punkt.claude/punkt.claude/commands/dev.md +0 -79
- package/flutter/punkt.claude/punkt.claude/commands/explain-codebase.md +0 -1
- package/flutter/punkt.claude/punkt.claude/commands/feature-business-logic.md +0 -430
- package/flutter/punkt.claude/punkt.claude/commands/feature-data-layer.md +0 -572
- package/flutter/punkt.claude/punkt.claude/commands/feature-domain-layer.md +0 -537
- package/flutter/punkt.claude/punkt.claude/commands/feature-integration.md +0 -493
- package/flutter/punkt.claude/punkt.claude/commands/feature-localization.md +0 -427
- package/flutter/punkt.claude/punkt.claude/commands/feature-ui-layer.md +0 -831
- package/flutter/punkt.claude/punkt.claude/commands/git-commit.md +0 -3
- package/flutter/punkt.claude/punkt.claude/commands/manage-translations.md +0 -433
- package/flutter/punkt.claude/punkt.claude/commands/search-web.md +0 -1
- package/flutter/punkt.claude/punkt.claude/developer_check.md +0 -121
- package/tools/appiq-installer.js +0 -2711
- package/tools/epic-solution-installer.js +0 -536
- package/tools/setup-ide-commands.js +0 -348
- package/tools/smart-installer.js +0 -592
- package/web/CLAUDE.md +0 -58
- /package/{#Tools/APPIQ-METHOD/.github → .github}/FUNDING.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/ISSUE_TEMPLATE/bug_report.md +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/ISSUE_TEMPLATE/feature_request.md +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/workflows/release.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/.releaserc.json → .releaserc.json} +0 -0
- /package/{#Tools/APPIQ-METHOD/.vscode → .vscode}/settings.json +0 -0
- /package/{#Tools/APPIQ-METHOD/CHANGELOG.md → CHANGELOG.md} +0 -0
- /package/{#Tools/APPIQ-METHOD/CONTRIBUTING.md → CONTRIBUTING.md} +0 -0
- /package/{#Tools/APPIQ-METHOD/LICENSE → LICENSE} +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/tasks/create-doc.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/tasks/execute-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/utils/bmad-doc-template.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/utils/workflow-management.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/GUIDING-PRINCIPLES.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/core-architecture.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/expansion-packs.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/how-to-contribute-with-pull-requests.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/versioning-and-releases.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/versions.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/README.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agent-teams/flutter-mobile-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-cubit-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-data-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-domain-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-ui-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/shared-components-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/checklists/flutter-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/data/flutter-development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/templates/flutter-mobile-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/workflows/flutter-ui-first-development.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-architect.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-designer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-developer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-sm.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/README.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -0
@@ -1,759 +0,0 @@
|
|
1
|
-
# Copied from https://github.com/huggingface/diffusers/blob/v0.31.0/src/diffusers/schedulers/scheduling_unipc_multistep.py
|
2
|
-
# Convert unipc for flow matching
|
3
|
-
# Copyright 2024-2025 The Alibaba Wan Team Authors. All rights reserved.
|
4
|
-
import math
|
5
|
-
from typing import List
|
6
|
-
from typing import Optional
|
7
|
-
from typing import Tuple
|
8
|
-
from typing import Union
|
9
|
-
|
10
|
-
import numpy as np
|
11
|
-
import torch
|
12
|
-
from diffusers.configuration_utils import ConfigMixin
|
13
|
-
from diffusers.configuration_utils import register_to_config
|
14
|
-
from diffusers.schedulers.scheduling_utils import KarrasDiffusionSchedulers
|
15
|
-
from diffusers.schedulers.scheduling_utils import SchedulerMixin
|
16
|
-
from diffusers.schedulers.scheduling_utils import SchedulerOutput
|
17
|
-
from diffusers.utils import deprecate
|
18
|
-
|
19
|
-
|
20
|
-
class FlowUniPCMultistepScheduler(SchedulerMixin, ConfigMixin):
|
21
|
-
"""
|
22
|
-
`UniPCMultistepScheduler` is a training-free framework designed for the fast sampling of diffusion models.
|
23
|
-
|
24
|
-
This model inherits from [`SchedulerMixin`] and [`ConfigMixin`]. Check the superclass documentation for the generic
|
25
|
-
methods the library implements for all schedulers such as loading and saving.
|
26
|
-
|
27
|
-
Args:
|
28
|
-
num_train_timesteps (`int`, defaults to 1000):
|
29
|
-
The number of diffusion steps to train the model.
|
30
|
-
solver_order (`int`, default `2`):
|
31
|
-
The UniPC order which can be any positive integer. The effective order of accuracy is `solver_order + 1`
|
32
|
-
due to the UniC. It is recommended to use `solver_order=2` for guided sampling, and `solver_order=3` for
|
33
|
-
unconditional sampling.
|
34
|
-
prediction_type (`str`, defaults to "flow_prediction"):
|
35
|
-
Prediction type of the scheduler function; must be `flow_prediction` for this scheduler, which predicts
|
36
|
-
the flow of the diffusion process.
|
37
|
-
thresholding (`bool`, defaults to `False`):
|
38
|
-
Whether to use the "dynamic thresholding" method. This is unsuitable for latent-space diffusion models such
|
39
|
-
as Stable Diffusion.
|
40
|
-
dynamic_thresholding_ratio (`float`, defaults to 0.995):
|
41
|
-
The ratio for the dynamic thresholding method. Valid only when `thresholding=True`.
|
42
|
-
sample_max_value (`float`, defaults to 1.0):
|
43
|
-
The threshold value for dynamic thresholding. Valid only when `thresholding=True` and `predict_x0=True`.
|
44
|
-
predict_x0 (`bool`, defaults to `True`):
|
45
|
-
Whether to use the updating algorithm on the predicted x0.
|
46
|
-
solver_type (`str`, default `bh2`):
|
47
|
-
Solver type for UniPC. It is recommended to use `bh1` for unconditional sampling when steps < 10, and `bh2`
|
48
|
-
otherwise.
|
49
|
-
lower_order_final (`bool`, default `True`):
|
50
|
-
Whether to use lower-order solvers in the final steps. Only valid for < 15 inference steps. This can
|
51
|
-
stabilize the sampling of DPMSolver for steps < 15, especially for steps <= 10.
|
52
|
-
disable_corrector (`list`, default `[]`):
|
53
|
-
Decides which step to disable the corrector to mitigate the misalignment between `epsilon_theta(x_t, c)`
|
54
|
-
and `epsilon_theta(x_t^c, c)` which can influence convergence for a large guidance scale. Corrector is
|
55
|
-
usually disabled during the first few steps.
|
56
|
-
solver_p (`SchedulerMixin`, default `None`):
|
57
|
-
Any other scheduler that if specified, the algorithm becomes `solver_p + UniC`.
|
58
|
-
use_karras_sigmas (`bool`, *optional*, defaults to `False`):
|
59
|
-
Whether to use Karras sigmas for step sizes in the noise schedule during the sampling process. If `True`,
|
60
|
-
the sigmas are determined according to a sequence of noise levels {σi}.
|
61
|
-
use_exponential_sigmas (`bool`, *optional*, defaults to `False`):
|
62
|
-
Whether to use exponential sigmas for step sizes in the noise schedule during the sampling process.
|
63
|
-
timestep_spacing (`str`, defaults to `"linspace"`):
|
64
|
-
The way the timesteps should be scaled. Refer to Table 2 of the [Common Diffusion Noise Schedules and
|
65
|
-
Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) for more information.
|
66
|
-
steps_offset (`int`, defaults to 0):
|
67
|
-
An offset added to the inference steps, as required by some model families.
|
68
|
-
final_sigmas_type (`str`, defaults to `"zero"`):
|
69
|
-
The final `sigma` value for the noise schedule during the sampling process. If `"sigma_min"`, the final
|
70
|
-
sigma is the same as the last sigma in the training schedule. If `zero`, the final sigma is set to 0.
|
71
|
-
"""
|
72
|
-
|
73
|
-
_compatibles = [e.name for e in KarrasDiffusionSchedulers]
|
74
|
-
order = 1
|
75
|
-
|
76
|
-
@register_to_config
|
77
|
-
def __init__(
|
78
|
-
self,
|
79
|
-
num_train_timesteps: int = 1000,
|
80
|
-
solver_order: int = 2,
|
81
|
-
prediction_type: str = "flow_prediction",
|
82
|
-
shift: Optional[float] = 1.0,
|
83
|
-
use_dynamic_shifting=False,
|
84
|
-
thresholding: bool = False,
|
85
|
-
dynamic_thresholding_ratio: float = 0.995,
|
86
|
-
sample_max_value: float = 1.0,
|
87
|
-
predict_x0: bool = True,
|
88
|
-
solver_type: str = "bh2",
|
89
|
-
lower_order_final: bool = True,
|
90
|
-
disable_corrector: List[int] = [],
|
91
|
-
solver_p: SchedulerMixin = None,
|
92
|
-
timestep_spacing: str = "linspace",
|
93
|
-
steps_offset: int = 0,
|
94
|
-
final_sigmas_type: Optional[str] = "zero", # "zero", "sigma_min"
|
95
|
-
):
|
96
|
-
|
97
|
-
if solver_type not in ["bh1", "bh2"]:
|
98
|
-
if solver_type in ["midpoint", "heun", "logrho"]:
|
99
|
-
self.register_to_config(solver_type="bh2")
|
100
|
-
else:
|
101
|
-
raise NotImplementedError(f"{solver_type} is not implemented for {self.__class__}")
|
102
|
-
|
103
|
-
self.predict_x0 = predict_x0
|
104
|
-
# setable values
|
105
|
-
self.num_inference_steps = None
|
106
|
-
alphas = np.linspace(1, 1 / num_train_timesteps, num_train_timesteps)[::-1].copy()
|
107
|
-
sigmas = 1.0 - alphas
|
108
|
-
sigmas = torch.from_numpy(sigmas).to(dtype=torch.float32)
|
109
|
-
|
110
|
-
if not use_dynamic_shifting:
|
111
|
-
# when use_dynamic_shifting is True, we apply the timestep shifting on the fly based on the image resolution
|
112
|
-
sigmas = shift * sigmas / (1 + (shift - 1) * sigmas) # pyright: ignore
|
113
|
-
|
114
|
-
self.sigmas = sigmas
|
115
|
-
self.timesteps = sigmas * num_train_timesteps
|
116
|
-
|
117
|
-
self.model_outputs = [None] * solver_order
|
118
|
-
self.timestep_list = [None] * solver_order
|
119
|
-
self.lower_order_nums = 0
|
120
|
-
self.disable_corrector = disable_corrector
|
121
|
-
self.solver_p = solver_p
|
122
|
-
self.last_sample = None
|
123
|
-
self._step_index = None
|
124
|
-
self._begin_index = None
|
125
|
-
|
126
|
-
self.sigmas = self.sigmas.to("cpu") # to avoid too much CPU/GPU communication
|
127
|
-
self.sigma_min = self.sigmas[-1].item()
|
128
|
-
self.sigma_max = self.sigmas[0].item()
|
129
|
-
|
130
|
-
@property
|
131
|
-
def step_index(self):
|
132
|
-
"""
|
133
|
-
The index counter for current timestep. It will increase 1 after each scheduler step.
|
134
|
-
"""
|
135
|
-
return self._step_index
|
136
|
-
|
137
|
-
@property
|
138
|
-
def begin_index(self):
|
139
|
-
"""
|
140
|
-
The index for the first timestep. It should be set from pipeline with `set_begin_index` method.
|
141
|
-
"""
|
142
|
-
return self._begin_index
|
143
|
-
|
144
|
-
# Copied from diffusers.schedulers.scheduling_dpmsolver_multistep.DPMSolverMultistepScheduler.set_begin_index
|
145
|
-
def set_begin_index(self, begin_index: int = 0):
|
146
|
-
"""
|
147
|
-
Sets the begin index for the scheduler. This function should be run from pipeline before the inference.
|
148
|
-
|
149
|
-
Args:
|
150
|
-
begin_index (`int`):
|
151
|
-
The begin index for the scheduler.
|
152
|
-
"""
|
153
|
-
self._begin_index = begin_index
|
154
|
-
|
155
|
-
# Modified from diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler.set_timesteps
|
156
|
-
def set_timesteps(
|
157
|
-
self,
|
158
|
-
num_inference_steps: Union[int, None] = None,
|
159
|
-
device: Union[str, torch.device] = None,
|
160
|
-
sigmas: Optional[List[float]] = None,
|
161
|
-
mu: Optional[Union[float, None]] = None,
|
162
|
-
shift: Optional[Union[float, None]] = None,
|
163
|
-
):
|
164
|
-
"""
|
165
|
-
Sets the discrete timesteps used for the diffusion chain (to be run before inference).
|
166
|
-
Args:
|
167
|
-
num_inference_steps (`int`):
|
168
|
-
Total number of the spacing of the time steps.
|
169
|
-
device (`str` or `torch.device`, *optional*):
|
170
|
-
The device to which the timesteps should be moved to. If `None`, the timesteps are not moved.
|
171
|
-
"""
|
172
|
-
|
173
|
-
if self.config.use_dynamic_shifting and mu is None:
|
174
|
-
raise ValueError(" you have to pass a value for `mu` when `use_dynamic_shifting` is set to be `True`")
|
175
|
-
|
176
|
-
if sigmas is None:
|
177
|
-
sigmas = np.linspace(self.sigma_max, self.sigma_min, num_inference_steps + 1).copy()[:-1] # pyright: ignore
|
178
|
-
|
179
|
-
if self.config.use_dynamic_shifting:
|
180
|
-
sigmas = self.time_shift(mu, 1.0, sigmas) # pyright: ignore
|
181
|
-
else:
|
182
|
-
if shift is None:
|
183
|
-
shift = self.config.shift
|
184
|
-
sigmas = shift * sigmas / (1 + (shift - 1) * sigmas) # pyright: ignore
|
185
|
-
|
186
|
-
if self.config.final_sigmas_type == "sigma_min":
|
187
|
-
sigma_last = ((1 - self.alphas_cumprod[0]) / self.alphas_cumprod[0]) ** 0.5
|
188
|
-
elif self.config.final_sigmas_type == "zero":
|
189
|
-
sigma_last = 0
|
190
|
-
else:
|
191
|
-
raise ValueError(
|
192
|
-
f"`final_sigmas_type` must be one of 'zero', or 'sigma_min', but got {self.config.final_sigmas_type}"
|
193
|
-
)
|
194
|
-
|
195
|
-
timesteps = sigmas * self.config.num_train_timesteps
|
196
|
-
sigmas = np.concatenate([sigmas, [sigma_last]]).astype(np.float32) # pyright: ignore
|
197
|
-
|
198
|
-
self.sigmas = torch.from_numpy(sigmas)
|
199
|
-
self.timesteps = torch.from_numpy(timesteps).to(device=device, dtype=torch.int64)
|
200
|
-
|
201
|
-
self.num_inference_steps = len(timesteps)
|
202
|
-
|
203
|
-
self.model_outputs = [
|
204
|
-
None,
|
205
|
-
] * self.config.solver_order
|
206
|
-
self.lower_order_nums = 0
|
207
|
-
self.last_sample = None
|
208
|
-
if self.solver_p:
|
209
|
-
self.solver_p.set_timesteps(self.num_inference_steps, device=device)
|
210
|
-
|
211
|
-
# add an index counter for schedulers that allow duplicated timesteps
|
212
|
-
self._step_index = None
|
213
|
-
self._begin_index = None
|
214
|
-
self.sigmas = self.sigmas.to("cpu") # to avoid too much CPU/GPU communication
|
215
|
-
|
216
|
-
# Copied from diffusers.schedulers.scheduling_ddpm.DDPMScheduler._threshold_sample
|
217
|
-
def _threshold_sample(self, sample: torch.Tensor) -> torch.Tensor:
|
218
|
-
"""
|
219
|
-
"Dynamic thresholding: At each sampling step we set s to a certain percentile absolute pixel value in xt0 (the
|
220
|
-
prediction of x_0 at timestep t), and if s > 1, then we threshold xt0 to the range [-s, s] and then divide by
|
221
|
-
s. Dynamic thresholding pushes saturated pixels (those near -1 and 1) inwards, thereby actively preventing
|
222
|
-
pixels from saturation at each step. We find that dynamic thresholding results in significantly better
|
223
|
-
photorealism as well as better image-text alignment, especially when using very large guidance weights."
|
224
|
-
|
225
|
-
https://arxiv.org/abs/2205.11487
|
226
|
-
"""
|
227
|
-
dtype = sample.dtype
|
228
|
-
batch_size, channels, *remaining_dims = sample.shape
|
229
|
-
|
230
|
-
if dtype not in (torch.float32, torch.float64):
|
231
|
-
sample = sample.float() # upcast for quantile calculation, and clamp not implemented for cpu half
|
232
|
-
|
233
|
-
# Flatten sample for doing quantile calculation along each image
|
234
|
-
sample = sample.reshape(batch_size, channels * np.prod(remaining_dims))
|
235
|
-
|
236
|
-
abs_sample = sample.abs() # "a certain percentile absolute pixel value"
|
237
|
-
|
238
|
-
s = torch.quantile(abs_sample, self.config.dynamic_thresholding_ratio, dim=1)
|
239
|
-
s = torch.clamp(
|
240
|
-
s, min=1, max=self.config.sample_max_value
|
241
|
-
) # When clamped to min=1, equivalent to standard clipping to [-1, 1]
|
242
|
-
s = s.unsqueeze(1) # (batch_size, 1) because clamp will broadcast along dim=0
|
243
|
-
sample = torch.clamp(sample, -s, s) / s # "we threshold xt0 to the range [-s, s] and then divide by s"
|
244
|
-
|
245
|
-
sample = sample.reshape(batch_size, channels, *remaining_dims)
|
246
|
-
sample = sample.to(dtype)
|
247
|
-
|
248
|
-
return sample
|
249
|
-
|
250
|
-
# Copied from diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler._sigma_to_t
|
251
|
-
def _sigma_to_t(self, sigma):
|
252
|
-
return sigma * self.config.num_train_timesteps
|
253
|
-
|
254
|
-
def _sigma_to_alpha_sigma_t(self, sigma):
|
255
|
-
return 1 - sigma, sigma
|
256
|
-
|
257
|
-
# Copied from diffusers.schedulers.scheduling_flow_match_euler_discrete.set_timesteps
|
258
|
-
def time_shift(self, mu: float, sigma: float, t: torch.Tensor):
|
259
|
-
return math.exp(mu) / (math.exp(mu) + (1 / t - 1) ** sigma)
|
260
|
-
|
261
|
-
def convert_model_output(
|
262
|
-
self,
|
263
|
-
model_output: torch.Tensor,
|
264
|
-
*args,
|
265
|
-
sample: torch.Tensor = None,
|
266
|
-
**kwargs,
|
267
|
-
) -> torch.Tensor:
|
268
|
-
r"""
|
269
|
-
Convert the model output to the corresponding type the UniPC algorithm needs.
|
270
|
-
|
271
|
-
Args:
|
272
|
-
model_output (`torch.Tensor`):
|
273
|
-
The direct output from the learned diffusion model.
|
274
|
-
timestep (`int`):
|
275
|
-
The current discrete timestep in the diffusion chain.
|
276
|
-
sample (`torch.Tensor`):
|
277
|
-
A current instance of a sample created by the diffusion process.
|
278
|
-
|
279
|
-
Returns:
|
280
|
-
`torch.Tensor`:
|
281
|
-
The converted model output.
|
282
|
-
"""
|
283
|
-
timestep = args[0] if len(args) > 0 else kwargs.pop("timestep", None)
|
284
|
-
if sample is None:
|
285
|
-
if len(args) > 1:
|
286
|
-
sample = args[1]
|
287
|
-
else:
|
288
|
-
raise ValueError("missing `sample` as a required keyward argument")
|
289
|
-
if timestep is not None:
|
290
|
-
deprecate(
|
291
|
-
"timesteps",
|
292
|
-
"1.0.0",
|
293
|
-
"Passing `timesteps` is deprecated and has no effect as model output conversion is now handled via an internal counter `self.step_index`",
|
294
|
-
)
|
295
|
-
|
296
|
-
sigma = self.sigmas[self.step_index]
|
297
|
-
alpha_t, sigma_t = self._sigma_to_alpha_sigma_t(sigma)
|
298
|
-
|
299
|
-
if self.predict_x0:
|
300
|
-
if self.config.prediction_type == "flow_prediction":
|
301
|
-
sigma_t = self.sigmas[self.step_index]
|
302
|
-
x0_pred = sample - sigma_t * model_output
|
303
|
-
else:
|
304
|
-
raise ValueError(
|
305
|
-
f"prediction_type given as {self.config.prediction_type} must be one of `epsilon`, `sample`,"
|
306
|
-
" `v_prediction` or `flow_prediction` for the UniPCMultistepScheduler."
|
307
|
-
)
|
308
|
-
|
309
|
-
if self.config.thresholding:
|
310
|
-
x0_pred = self._threshold_sample(x0_pred)
|
311
|
-
|
312
|
-
return x0_pred
|
313
|
-
else:
|
314
|
-
if self.config.prediction_type == "flow_prediction":
|
315
|
-
sigma_t = self.sigmas[self.step_index]
|
316
|
-
epsilon = sample - (1 - sigma_t) * model_output
|
317
|
-
else:
|
318
|
-
raise ValueError(
|
319
|
-
f"prediction_type given as {self.config.prediction_type} must be one of `epsilon`, `sample`,"
|
320
|
-
" `v_prediction` or `flow_prediction` for the UniPCMultistepScheduler."
|
321
|
-
)
|
322
|
-
|
323
|
-
if self.config.thresholding:
|
324
|
-
sigma_t = self.sigmas[self.step_index]
|
325
|
-
x0_pred = sample - sigma_t * model_output
|
326
|
-
x0_pred = self._threshold_sample(x0_pred)
|
327
|
-
epsilon = model_output + x0_pred
|
328
|
-
|
329
|
-
return epsilon
|
330
|
-
|
331
|
-
def multistep_uni_p_bh_update(
|
332
|
-
self,
|
333
|
-
model_output: torch.Tensor,
|
334
|
-
*args,
|
335
|
-
sample: torch.Tensor = None,
|
336
|
-
order: int = None, # pyright: ignore
|
337
|
-
**kwargs,
|
338
|
-
) -> torch.Tensor:
|
339
|
-
"""
|
340
|
-
One step for the UniP (B(h) version). Alternatively, `self.solver_p` is used if is specified.
|
341
|
-
|
342
|
-
Args:
|
343
|
-
model_output (`torch.Tensor`):
|
344
|
-
The direct output from the learned diffusion model at the current timestep.
|
345
|
-
prev_timestep (`int`):
|
346
|
-
The previous discrete timestep in the diffusion chain.
|
347
|
-
sample (`torch.Tensor`):
|
348
|
-
A current instance of a sample created by the diffusion process.
|
349
|
-
order (`int`):
|
350
|
-
The order of UniP at this timestep (corresponds to the *p* in UniPC-p).
|
351
|
-
|
352
|
-
Returns:
|
353
|
-
`torch.Tensor`:
|
354
|
-
The sample tensor at the previous timestep.
|
355
|
-
"""
|
356
|
-
prev_timestep = args[0] if len(args) > 0 else kwargs.pop("prev_timestep", None)
|
357
|
-
if sample is None:
|
358
|
-
if len(args) > 1:
|
359
|
-
sample = args[1]
|
360
|
-
else:
|
361
|
-
raise ValueError(" missing `sample` as a required keyward argument")
|
362
|
-
if order is None:
|
363
|
-
if len(args) > 2:
|
364
|
-
order = args[2]
|
365
|
-
else:
|
366
|
-
raise ValueError(" missing `order` as a required keyward argument")
|
367
|
-
if prev_timestep is not None:
|
368
|
-
deprecate(
|
369
|
-
"prev_timestep",
|
370
|
-
"1.0.0",
|
371
|
-
"Passing `prev_timestep` is deprecated and has no effect as model output conversion is now handled via an internal counter `self.step_index`",
|
372
|
-
)
|
373
|
-
model_output_list = self.model_outputs
|
374
|
-
|
375
|
-
s0 = self.timestep_list[-1]
|
376
|
-
m0 = model_output_list[-1]
|
377
|
-
x = sample
|
378
|
-
|
379
|
-
if self.solver_p:
|
380
|
-
x_t = self.solver_p.step(model_output, s0, x).prev_sample
|
381
|
-
return x_t
|
382
|
-
|
383
|
-
sigma_t, sigma_s0 = self.sigmas[self.step_index + 1], self.sigmas[self.step_index] # pyright: ignore
|
384
|
-
alpha_t, sigma_t = self._sigma_to_alpha_sigma_t(sigma_t)
|
385
|
-
alpha_s0, sigma_s0 = self._sigma_to_alpha_sigma_t(sigma_s0)
|
386
|
-
|
387
|
-
lambda_t = torch.log(alpha_t) - torch.log(sigma_t)
|
388
|
-
lambda_s0 = torch.log(alpha_s0) - torch.log(sigma_s0)
|
389
|
-
|
390
|
-
h = lambda_t - lambda_s0
|
391
|
-
device = sample.device
|
392
|
-
|
393
|
-
rks = []
|
394
|
-
D1s = []
|
395
|
-
for i in range(1, order):
|
396
|
-
si = self.step_index - i # pyright: ignore
|
397
|
-
mi = model_output_list[-(i + 1)]
|
398
|
-
alpha_si, sigma_si = self._sigma_to_alpha_sigma_t(self.sigmas[si])
|
399
|
-
lambda_si = torch.log(alpha_si) - torch.log(sigma_si)
|
400
|
-
rk = (lambda_si - lambda_s0) / h
|
401
|
-
rks.append(rk)
|
402
|
-
D1s.append((mi - m0) / rk) # pyright: ignore
|
403
|
-
|
404
|
-
rks.append(1.0)
|
405
|
-
rks = torch.tensor(rks, device=device)
|
406
|
-
|
407
|
-
R = []
|
408
|
-
b = []
|
409
|
-
|
410
|
-
hh = -h if self.predict_x0 else h
|
411
|
-
h_phi_1 = torch.expm1(hh) # h\phi_1(h) = e^h - 1
|
412
|
-
h_phi_k = h_phi_1 / hh - 1
|
413
|
-
|
414
|
-
factorial_i = 1
|
415
|
-
|
416
|
-
if self.config.solver_type == "bh1":
|
417
|
-
B_h = hh
|
418
|
-
elif self.config.solver_type == "bh2":
|
419
|
-
B_h = torch.expm1(hh)
|
420
|
-
else:
|
421
|
-
raise NotImplementedError()
|
422
|
-
|
423
|
-
for i in range(1, order + 1):
|
424
|
-
R.append(torch.pow(rks, i - 1))
|
425
|
-
b.append(h_phi_k * factorial_i / B_h)
|
426
|
-
factorial_i *= i + 1
|
427
|
-
h_phi_k = h_phi_k / hh - 1 / factorial_i
|
428
|
-
|
429
|
-
R = torch.stack(R)
|
430
|
-
b = torch.tensor(b, device=device)
|
431
|
-
|
432
|
-
if len(D1s) > 0:
|
433
|
-
D1s = torch.stack(D1s, dim=1) # (B, K)
|
434
|
-
# for order 2, we use a simplified version
|
435
|
-
if order == 2:
|
436
|
-
rhos_p = torch.tensor([0.5], dtype=x.dtype, device=device)
|
437
|
-
else:
|
438
|
-
rhos_p = torch.linalg.solve(R[:-1, :-1], b[:-1]).to(device).to(x.dtype)
|
439
|
-
else:
|
440
|
-
D1s = None
|
441
|
-
|
442
|
-
if self.predict_x0:
|
443
|
-
x_t_ = sigma_t / sigma_s0 * x - alpha_t * h_phi_1 * m0
|
444
|
-
if D1s is not None:
|
445
|
-
pred_res = torch.einsum("k,bkc...->bc...", rhos_p, D1s) # pyright: ignore
|
446
|
-
else:
|
447
|
-
pred_res = 0
|
448
|
-
x_t = x_t_ - alpha_t * B_h * pred_res
|
449
|
-
else:
|
450
|
-
x_t_ = alpha_t / alpha_s0 * x - sigma_t * h_phi_1 * m0
|
451
|
-
if D1s is not None:
|
452
|
-
pred_res = torch.einsum("k,bkc...->bc...", rhos_p, D1s) # pyright: ignore
|
453
|
-
else:
|
454
|
-
pred_res = 0
|
455
|
-
x_t = x_t_ - sigma_t * B_h * pred_res
|
456
|
-
|
457
|
-
x_t = x_t.to(x.dtype)
|
458
|
-
return x_t
|
459
|
-
|
460
|
-
def multistep_uni_c_bh_update(
|
461
|
-
self,
|
462
|
-
this_model_output: torch.Tensor,
|
463
|
-
*args,
|
464
|
-
last_sample: torch.Tensor = None,
|
465
|
-
this_sample: torch.Tensor = None,
|
466
|
-
order: int = None, # pyright: ignore
|
467
|
-
**kwargs,
|
468
|
-
) -> torch.Tensor:
|
469
|
-
"""
|
470
|
-
One step for the UniC (B(h) version).
|
471
|
-
|
472
|
-
Args:
|
473
|
-
this_model_output (`torch.Tensor`):
|
474
|
-
The model outputs at `x_t`.
|
475
|
-
this_timestep (`int`):
|
476
|
-
The current timestep `t`.
|
477
|
-
last_sample (`torch.Tensor`):
|
478
|
-
The generated sample before the last predictor `x_{t-1}`.
|
479
|
-
this_sample (`torch.Tensor`):
|
480
|
-
The generated sample after the last predictor `x_{t}`.
|
481
|
-
order (`int`):
|
482
|
-
The `p` of UniC-p at this step. The effective order of accuracy should be `order + 1`.
|
483
|
-
|
484
|
-
Returns:
|
485
|
-
`torch.Tensor`:
|
486
|
-
The corrected sample tensor at the current timestep.
|
487
|
-
"""
|
488
|
-
this_timestep = args[0] if len(args) > 0 else kwargs.pop("this_timestep", None)
|
489
|
-
if last_sample is None:
|
490
|
-
if len(args) > 1:
|
491
|
-
last_sample = args[1]
|
492
|
-
else:
|
493
|
-
raise ValueError(" missing`last_sample` as a required keyward argument")
|
494
|
-
if this_sample is None:
|
495
|
-
if len(args) > 2:
|
496
|
-
this_sample = args[2]
|
497
|
-
else:
|
498
|
-
raise ValueError(" missing`this_sample` as a required keyward argument")
|
499
|
-
if order is None:
|
500
|
-
if len(args) > 3:
|
501
|
-
order = args[3]
|
502
|
-
else:
|
503
|
-
raise ValueError(" missing`order` as a required keyward argument")
|
504
|
-
if this_timestep is not None:
|
505
|
-
deprecate(
|
506
|
-
"this_timestep",
|
507
|
-
"1.0.0",
|
508
|
-
"Passing `this_timestep` is deprecated and has no effect as model output conversion is now handled via an internal counter `self.step_index`",
|
509
|
-
)
|
510
|
-
|
511
|
-
model_output_list = self.model_outputs
|
512
|
-
|
513
|
-
m0 = model_output_list[-1]
|
514
|
-
x = last_sample
|
515
|
-
x_t = this_sample
|
516
|
-
model_t = this_model_output
|
517
|
-
|
518
|
-
sigma_t, sigma_s0 = self.sigmas[self.step_index], self.sigmas[self.step_index - 1] # pyright: ignore
|
519
|
-
alpha_t, sigma_t = self._sigma_to_alpha_sigma_t(sigma_t)
|
520
|
-
alpha_s0, sigma_s0 = self._sigma_to_alpha_sigma_t(sigma_s0)
|
521
|
-
|
522
|
-
lambda_t = torch.log(alpha_t) - torch.log(sigma_t)
|
523
|
-
lambda_s0 = torch.log(alpha_s0) - torch.log(sigma_s0)
|
524
|
-
|
525
|
-
h = lambda_t - lambda_s0
|
526
|
-
device = this_sample.device
|
527
|
-
|
528
|
-
rks = []
|
529
|
-
D1s = []
|
530
|
-
for i in range(1, order):
|
531
|
-
si = self.step_index - (i + 1) # pyright: ignore
|
532
|
-
mi = model_output_list[-(i + 1)]
|
533
|
-
alpha_si, sigma_si = self._sigma_to_alpha_sigma_t(self.sigmas[si])
|
534
|
-
lambda_si = torch.log(alpha_si) - torch.log(sigma_si)
|
535
|
-
rk = (lambda_si - lambda_s0) / h
|
536
|
-
rks.append(rk)
|
537
|
-
D1s.append((mi - m0) / rk) # pyright: ignore
|
538
|
-
|
539
|
-
rks.append(1.0)
|
540
|
-
rks = torch.tensor(rks, device=device)
|
541
|
-
|
542
|
-
R = []
|
543
|
-
b = []
|
544
|
-
|
545
|
-
hh = -h if self.predict_x0 else h
|
546
|
-
h_phi_1 = torch.expm1(hh) # h\phi_1(h) = e^h - 1
|
547
|
-
h_phi_k = h_phi_1 / hh - 1
|
548
|
-
|
549
|
-
factorial_i = 1
|
550
|
-
|
551
|
-
if self.config.solver_type == "bh1":
|
552
|
-
B_h = hh
|
553
|
-
elif self.config.solver_type == "bh2":
|
554
|
-
B_h = torch.expm1(hh)
|
555
|
-
else:
|
556
|
-
raise NotImplementedError()
|
557
|
-
|
558
|
-
for i in range(1, order + 1):
|
559
|
-
R.append(torch.pow(rks, i - 1))
|
560
|
-
b.append(h_phi_k * factorial_i / B_h)
|
561
|
-
factorial_i *= i + 1
|
562
|
-
h_phi_k = h_phi_k / hh - 1 / factorial_i
|
563
|
-
|
564
|
-
R = torch.stack(R)
|
565
|
-
b = torch.tensor(b, device=device)
|
566
|
-
|
567
|
-
if len(D1s) > 0:
|
568
|
-
D1s = torch.stack(D1s, dim=1)
|
569
|
-
else:
|
570
|
-
D1s = None
|
571
|
-
|
572
|
-
# for order 1, we use a simplified version
|
573
|
-
if order == 1:
|
574
|
-
rhos_c = torch.tensor([0.5], dtype=x.dtype, device=device)
|
575
|
-
else:
|
576
|
-
rhos_c = torch.linalg.solve(R, b).to(device).to(x.dtype)
|
577
|
-
|
578
|
-
if self.predict_x0:
|
579
|
-
x_t_ = sigma_t / sigma_s0 * x - alpha_t * h_phi_1 * m0
|
580
|
-
if D1s is not None:
|
581
|
-
corr_res = torch.einsum("k,bkc...->bc...", rhos_c[:-1], D1s)
|
582
|
-
else:
|
583
|
-
corr_res = 0
|
584
|
-
D1_t = model_t - m0
|
585
|
-
x_t = x_t_ - alpha_t * B_h * (corr_res + rhos_c[-1] * D1_t)
|
586
|
-
else:
|
587
|
-
x_t_ = alpha_t / alpha_s0 * x - sigma_t * h_phi_1 * m0
|
588
|
-
if D1s is not None:
|
589
|
-
corr_res = torch.einsum("k,bkc...->bc...", rhos_c[:-1], D1s)
|
590
|
-
else:
|
591
|
-
corr_res = 0
|
592
|
-
D1_t = model_t - m0
|
593
|
-
x_t = x_t_ - sigma_t * B_h * (corr_res + rhos_c[-1] * D1_t)
|
594
|
-
x_t = x_t.to(x.dtype)
|
595
|
-
return x_t
|
596
|
-
|
597
|
-
def index_for_timestep(self, timestep, schedule_timesteps=None):
|
598
|
-
if schedule_timesteps is None:
|
599
|
-
schedule_timesteps = self.timesteps
|
600
|
-
|
601
|
-
indices = (schedule_timesteps == timestep).nonzero()
|
602
|
-
|
603
|
-
# The sigma index that is taken for the **very** first `step`
|
604
|
-
# is always the second index (or the last index if there is only 1)
|
605
|
-
# This way we can ensure we don't accidentally skip a sigma in
|
606
|
-
# case we start in the middle of the denoising schedule (e.g. for image-to-image)
|
607
|
-
pos = 1 if len(indices) > 1 else 0
|
608
|
-
|
609
|
-
return indices[pos].item()
|
610
|
-
|
611
|
-
# Copied from diffusers.schedulers.scheduling_dpmsolver_multistep.DPMSolverMultistepScheduler._init_step_index
|
612
|
-
def _init_step_index(self, timestep):
|
613
|
-
"""
|
614
|
-
Initialize the step_index counter for the scheduler.
|
615
|
-
"""
|
616
|
-
|
617
|
-
if self.begin_index is None:
|
618
|
-
if isinstance(timestep, torch.Tensor):
|
619
|
-
timestep = timestep.to(self.timesteps.device)
|
620
|
-
self._step_index = self.index_for_timestep(timestep)
|
621
|
-
else:
|
622
|
-
self._step_index = self._begin_index
|
623
|
-
|
624
|
-
def step(
|
625
|
-
self,
|
626
|
-
model_output: torch.Tensor,
|
627
|
-
timestep: Union[int, torch.Tensor],
|
628
|
-
sample: torch.Tensor,
|
629
|
-
return_dict: bool = True,
|
630
|
-
generator=None,
|
631
|
-
) -> Union[SchedulerOutput, Tuple]:
|
632
|
-
"""
|
633
|
-
Predict the sample from the previous timestep by reversing the SDE. This function propagates the sample with
|
634
|
-
the multistep UniPC.
|
635
|
-
|
636
|
-
Args:
|
637
|
-
model_output (`torch.Tensor`):
|
638
|
-
The direct output from learned diffusion model.
|
639
|
-
timestep (`int`):
|
640
|
-
The current discrete timestep in the diffusion chain.
|
641
|
-
sample (`torch.Tensor`):
|
642
|
-
A current instance of a sample created by the diffusion process.
|
643
|
-
return_dict (`bool`):
|
644
|
-
Whether or not to return a [`~schedulers.scheduling_utils.SchedulerOutput`] or `tuple`.
|
645
|
-
|
646
|
-
Returns:
|
647
|
-
[`~schedulers.scheduling_utils.SchedulerOutput`] or `tuple`:
|
648
|
-
If return_dict is `True`, [`~schedulers.scheduling_utils.SchedulerOutput`] is returned, otherwise a
|
649
|
-
tuple is returned where the first element is the sample tensor.
|
650
|
-
|
651
|
-
"""
|
652
|
-
if self.num_inference_steps is None:
|
653
|
-
raise ValueError(
|
654
|
-
"Number of inference steps is 'None', you need to run 'set_timesteps' after creating the scheduler"
|
655
|
-
)
|
656
|
-
|
657
|
-
if self.step_index is None:
|
658
|
-
self._init_step_index(timestep)
|
659
|
-
|
660
|
-
use_corrector = (
|
661
|
-
self.step_index > 0
|
662
|
-
and self.step_index - 1 not in self.disable_corrector
|
663
|
-
and self.last_sample is not None # pyright: ignore
|
664
|
-
)
|
665
|
-
|
666
|
-
model_output_convert = self.convert_model_output(model_output, sample=sample)
|
667
|
-
if use_corrector:
|
668
|
-
sample = self.multistep_uni_c_bh_update(
|
669
|
-
this_model_output=model_output_convert,
|
670
|
-
last_sample=self.last_sample,
|
671
|
-
this_sample=sample,
|
672
|
-
order=self.this_order,
|
673
|
-
)
|
674
|
-
|
675
|
-
for i in range(self.config.solver_order - 1):
|
676
|
-
self.model_outputs[i] = self.model_outputs[i + 1]
|
677
|
-
self.timestep_list[i] = self.timestep_list[i + 1]
|
678
|
-
|
679
|
-
self.model_outputs[-1] = model_output_convert
|
680
|
-
self.timestep_list[-1] = timestep # pyright: ignore
|
681
|
-
|
682
|
-
if self.config.lower_order_final:
|
683
|
-
this_order = min(self.config.solver_order, len(self.timesteps) - self.step_index) # pyright: ignore
|
684
|
-
else:
|
685
|
-
this_order = self.config.solver_order
|
686
|
-
|
687
|
-
self.this_order = min(this_order, self.lower_order_nums + 1) # warmup for multistep
|
688
|
-
assert self.this_order > 0
|
689
|
-
|
690
|
-
self.last_sample = sample
|
691
|
-
prev_sample = self.multistep_uni_p_bh_update(
|
692
|
-
model_output=model_output, # pass the original non-converted model output, in case solver-p is used
|
693
|
-
sample=sample,
|
694
|
-
order=self.this_order,
|
695
|
-
)
|
696
|
-
|
697
|
-
if self.lower_order_nums < self.config.solver_order:
|
698
|
-
self.lower_order_nums += 1
|
699
|
-
|
700
|
-
# upon completion increase step index by one
|
701
|
-
self._step_index += 1 # pyright: ignore
|
702
|
-
|
703
|
-
if not return_dict:
|
704
|
-
return (prev_sample,)
|
705
|
-
|
706
|
-
return SchedulerOutput(prev_sample=prev_sample)
|
707
|
-
|
708
|
-
def scale_model_input(self, sample: torch.Tensor, *args, **kwargs) -> torch.Tensor:
|
709
|
-
"""
|
710
|
-
Ensures interchangeability with schedulers that need to scale the denoising model input depending on the
|
711
|
-
current timestep.
|
712
|
-
|
713
|
-
Args:
|
714
|
-
sample (`torch.Tensor`):
|
715
|
-
The input sample.
|
716
|
-
|
717
|
-
Returns:
|
718
|
-
`torch.Tensor`:
|
719
|
-
A scaled input sample.
|
720
|
-
"""
|
721
|
-
return sample
|
722
|
-
|
723
|
-
# Copied from diffusers.schedulers.scheduling_dpmsolver_multistep.DPMSolverMultistepScheduler.add_noise
|
724
|
-
def add_noise(
|
725
|
-
self,
|
726
|
-
original_samples: torch.Tensor,
|
727
|
-
noise: torch.Tensor,
|
728
|
-
timesteps: torch.IntTensor,
|
729
|
-
) -> torch.Tensor:
|
730
|
-
# Make sure sigmas and timesteps have the same device and dtype as original_samples
|
731
|
-
sigmas = self.sigmas.to(device=original_samples.device, dtype=original_samples.dtype)
|
732
|
-
if original_samples.device.type == "mps" and torch.is_floating_point(timesteps):
|
733
|
-
# mps does not support float64
|
734
|
-
schedule_timesteps = self.timesteps.to(original_samples.device, dtype=torch.float32)
|
735
|
-
timesteps = timesteps.to(original_samples.device, dtype=torch.float32)
|
736
|
-
else:
|
737
|
-
schedule_timesteps = self.timesteps.to(original_samples.device)
|
738
|
-
timesteps = timesteps.to(original_samples.device)
|
739
|
-
|
740
|
-
# begin_index is None when the scheduler is used for training or pipeline does not implement set_begin_index
|
741
|
-
if self.begin_index is None:
|
742
|
-
step_indices = [self.index_for_timestep(t, schedule_timesteps) for t in timesteps]
|
743
|
-
elif self.step_index is not None:
|
744
|
-
# add_noise is called after first denoising step (for inpainting)
|
745
|
-
step_indices = [self.step_index] * timesteps.shape[0]
|
746
|
-
else:
|
747
|
-
# add noise is called before first denoising step to create initial latent(img2img)
|
748
|
-
step_indices = [self.begin_index] * timesteps.shape[0]
|
749
|
-
|
750
|
-
sigma = sigmas[step_indices].flatten()
|
751
|
-
while len(sigma.shape) < len(original_samples.shape):
|
752
|
-
sigma = sigma.unsqueeze(-1)
|
753
|
-
|
754
|
-
alpha_t, sigma_t = self._sigma_to_alpha_sigma_t(sigma)
|
755
|
-
noisy_samples = alpha_t * original_samples + sigma_t * noise
|
756
|
-
return noisy_samples
|
757
|
-
|
758
|
-
def __len__(self):
|
759
|
-
return self.config.num_train_timesteps
|