Compare commits

..

85 Commits

Author SHA1 Message Date
filtered
622d97ff48 Subgraph testing release v1.23.2-sub.14 (#4287) 2025-06-27 18:48:50 -07:00
filtered
47729c1a08 [chore] Update litegraph 0.16.0-sub.18 2025-06-27 18:35:15 -07:00
filtered
55cf65ec41 Subgraph testing release v1.23.2-sub.13 (#4282) 2025-06-26 11:14:30 -07:00
filtered
683d81885a [chore] Update litegraph 0.16.0-sub.17 2025-06-26 10:13:17 -07:00
filtered
586f882423 [Test] Skip tests on removed group node menu 2025-06-25 20:51:04 -07:00
filtered
4df20a3055 Subgraph testing release v1.23.2-sub.12 (#4273) 2025-06-25 04:35:40 -07:00
filtered
c462d356c1 Subgraph testing release v1.22.2-sub.11 (#4272) 2025-06-25 04:26:31 -07:00
filtered
6b3d89ee93 [chore] Update litegraph 0.16.0-sub.16 2025-06-25 04:26:17 -07:00
filtered
9bc4f66982 Upstream graph execution traversal logic to litegraph
Initial impl; inefficient & can be optimised with a map (#4270).
2025-06-25 04:26:17 -07:00
filtered
6926d449bc [TS] Fix implicit any in augmented type 2025-06-25 04:26:17 -07:00
filtered
11b71bb820 [TS] Remove unnecessary type redeclaration 2025-06-25 04:26:17 -07:00
filtered
586314e0da Fix error discarded by error toast handler 2025-06-25 04:26:17 -07:00
filtered
5acfe4ad98 Subgraph testing release v1.22.2-sub.10 (#4248) 2025-06-25 04:26:17 -07:00
filtered
aefc5eb078 [chore] Update litegraph 0.16.0-sub.15 2025-06-25 04:25:55 -07:00
filtered
cf9af94fac Add breadcrumb text outline + shadow 2025-06-25 04:25:55 -07:00
filtered
ee93e36ee2 Add default badge for subgraph nodes 2025-06-25 04:25:55 -07:00
filtered
9f0b22a5d8 Subgraph testing release v1.22.2-sub.9 (#4226) 2025-06-25 04:25:55 -07:00
filtered
76d6911ffa [chore] Update litegraph 0.16.0-sub.14 2025-06-25 04:25:42 -07:00
filtered
b8740c6ac3 Update to match upstream litegraph change 2025-06-25 04:25:42 -07:00
filtered
27d33c24de Subgraph testing release v1.22.2-sub.8 (#4212)
Co-authored-by: github-actions <github-actions@github.com>
2025-06-25 04:25:42 -07:00
filtered
9b488da973 [chore] Update litegraph 0.16.0-sub.13 2025-06-25 04:25:00 -07:00
filtered
c3065ff07b Fix execution fails when slot numbers don't match 2025-06-25 04:25:00 -07:00
filtered
a5a1f8cf8a Fix subgraphs linked to each other corrupt execution 2025-06-25 04:25:00 -07:00
filtered
1aac2d52ac [chore] Update litegraph 0.16.0-sub.12 2025-06-25 04:25:00 -07:00
filtered
d2369c8c49 [chore] Update litegraph 0.16.0-sub.11 2025-06-25 04:24:59 -07:00
filtered
2afd295ad9 [chore] Update litegraph 0.16.0-sub.10 2025-06-25 04:24:59 -07:00
filtered
66fbdad4d2 Add subgraph functionality to execution store 2025-06-25 04:24:59 -07:00
filtered
b02408f517 [Refactor] Prefer canvas store over app.canvas 2025-06-25 04:24:59 -07:00
filtered
2cdf547fdd [TS] Remove type assertion 2025-06-25 04:24:59 -07:00
filtered
d755210d03 [chore] Update litegraph 0.16.0-sub.9 2025-06-25 04:24:59 -07:00
filtered
6e89b196c2 [chore] Update litegraph 0.16.0-sub.8 2025-06-25 04:24:59 -07:00
Blake
97faee8879 [chore] Update litegraph 0.16.0-sub.7 2025-06-25 04:24:59 -07:00
Blake
7d568e13e5 [Test] Remove failing test (auto-generated) 2025-06-25 04:24:59 -07:00
Blake
c57c391659 Fix convert to subgraph shown on IO node 2025-06-25 04:24:59 -07:00
filtered
cb91c3770c Fix Vue unwrap using markRaw
Involves minor runtime change.
2025-06-25 04:24:59 -07:00
filtered
b0fc8efa6b [Test] Revert invalid test generation 2025-06-25 04:24:59 -07:00
filtered
842ec58511 [chore] Update litegraph 0.16.0-sub.6 2025-06-25 04:24:59 -07:00
filtered
060540ae80 Reimpl. escape key handling in frontend 2025-06-25 04:24:59 -07:00
filtered
962834e19c Add subgraph nodes to before/after exec 2025-06-25 04:24:59 -07:00
filtered
d018a69356 nit 2025-06-25 04:24:59 -07:00
filtered
c84218d6bb Remove deprecated group node conversion menu 2025-06-25 04:24:59 -07:00
filtered
6f9c481b38 Add convert to subgraph toolbox button 2025-06-25 04:24:59 -07:00
filtered
bdc1ac1004 [chore] Update litegraph 0.16.0-sub.5 2025-06-25 04:24:59 -07:00
filtered
12e1508203 Fix delete button shown for io nodes 2025-06-25 04:24:59 -07:00
filtered
98f5216ddf Fix edit mask button shown when non-nodes selected 2025-06-25 04:24:59 -07:00
filtered
b2550f6351 Fix breadcrumbs overlap 2nd row tabs 2025-06-25 04:24:59 -07:00
filtered
b3b0b95646 Fix active subgraph requires breadcrumb component 2025-06-25 04:24:59 -07:00
filtered
4ca5a92108 Fix unwarranted workflow validation warning 2025-06-25 04:24:59 -07:00
filtered
0a40c11b7d [chore] Update litegraph 0.16.0-sub.4 2025-06-25 04:24:59 -07:00
filtered
9d4537e803 [Cleanup] Remove redundant LinkConnector call 2025-06-25 04:24:58 -07:00
filtered
4388cbe4a4 Update node create to use active subgraph 2025-06-25 04:24:58 -07:00
filtered
518faebf69 [chore] Update litegraph 0.16.0-sub.3 2025-06-25 04:24:58 -07:00
filtered
5685cb6748 Fix invalid links in nested subgraph conversion 2025-06-25 04:24:58 -07:00
filtered
fc191a1e03 Update litegraph 0.16.0-sub.2 2025-06-25 04:24:58 -07:00
filtered
f73be5d72a Fix crash on graph load - reactive proxy leak 2025-06-25 04:24:58 -07:00
filtered
c76635ce7f Update litegraph 0.16.0-sub.1 2025-06-25 04:24:58 -07:00
filtered
20833e5090 Fix breadcrumb reactivity 2025-06-25 04:24:58 -07:00
github-actions
359e9288ec Update locales [skip ci] 2025-06-25 04:24:58 -07:00
filtered
4232e0503b Use subgraph npm 2025-06-25 04:24:58 -07:00
filtered
a3615b3824 Add simpler interface for active DOM widgets 2025-06-25 04:24:58 -07:00
filtered
0fe0519531 [Test] Update expectations 2025-06-25 04:24:58 -07:00
filtered
2cd315a2bf Keep subgraph nav state when swapping workflows 2025-06-25 04:24:58 -07:00
filtered
7623711b40 Clear DOM widgets instead of trying to manage refs 2025-06-25 04:24:58 -07:00
filtered
dba8716fce [Debug] Include more items in graph diff output 2025-06-25 04:24:58 -07:00
filtered
15a2b37c93 Add convert to subgraph command 2025-06-25 04:24:58 -07:00
filtered
bbd1ca234d Fix DOM widgets disappear 2025-06-25 04:24:58 -07:00
filtered
b0fc736260 nit 2025-06-25 04:24:58 -07:00
filtered
b65440e1c2 Track subgraph open history for breadcrumbs 2025-06-25 04:24:58 -07:00
filtered
6918aa830b [TS] Replace ts-ignore w/error 2025-06-25 04:24:58 -07:00
filtered
a5d0bc3198 nit 2025-06-25 04:24:58 -07:00
filtered
f41ae1d408 Fix desync of litegraph type and nodedefs 2025-06-25 04:24:58 -07:00
filtered
1300a1351b [TS] Remove unnecessary assertion 2025-06-25 04:24:58 -07:00
filtered
5129cfa5a7 Prune DOM widgets outside of current subgraph 2025-06-25 04:24:58 -07:00
filtered
99c7ecfa82 Remove unnecessary copy of litegraph objects 2025-06-25 04:24:58 -07:00
filtered
77968fed6d Fix nested subgraph breadcrumbs 2025-06-25 04:24:58 -07:00
filtered
09d17fec14 nit - prevent duplicate subgraph registrations 2025-06-25 04:24:57 -07:00
filtered
bff802eeeb Fix DOM widgets after rebase 2025-06-25 04:24:57 -07:00
filtered
71bbca613f [PARTIAL] Add Subgraph 2025-06-25 04:24:57 -07:00
filtered
6f8a91b0c1 Fix corruption when app.graph is changed 2025-06-25 04:24:57 -07:00
filtered
f95f014fde [TS] Remove unintended type assertion 2025-06-25 04:24:57 -07:00
filtered
d88a227e7c Add subgraph workflow fields to change tracker 2025-06-25 04:24:57 -07:00
filtered
0dd308d885 Add i18n for nothing selected notification 2025-06-25 04:24:57 -07:00
filtered
31ab027da8 [Refactor] Generic TS type dedupe 2025-06-25 04:24:57 -07:00
filtered
9620f833aa [Nope] Zod schema recursive II 2025-06-25 04:24:57 -07:00
filtered
b3042d346a [Nope] Add Zod recursive schema requirements 2025-06-25 04:24:57 -07:00
225 changed files with 230 additions and 15009 deletions

View File

@@ -3,12 +3,6 @@ name: Update Locales
on:
pull_request:
branches: [ main, master, dev* ]
paths-ignore:
- '.github/**'
- '.husky/**'
- '.vscode/**'
- 'browser_tests/**'
- 'tests-ui/**'
jobs:
update-locales:

View File

@@ -15,7 +15,6 @@ jobs:
contains(github.event.pull_request.labels.*.name, 'Release')
outputs:
version: ${{ steps.current_version.outputs.version }}
is_prerelease: ${{ steps.check_prerelease.outputs.is_prerelease }}
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -25,15 +24,6 @@ jobs:
- name: Get current version
id: current_version
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
- name: Check if prerelease
id: check_prerelease
run: |
VERSION=${{ steps.current_version.outputs.version }}
if [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+- ]]; then
echo "is_prerelease=true" >> $GITHUB_OUTPUT
else
echo "is_prerelease=false" >> $GITHUB_OUTPUT
fi
- name: Build project
env:
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
@@ -72,9 +62,9 @@ jobs:
dist.zip
tag_name: v${{ needs.build.outputs.version }}
target_commitish: ${{ github.event.pull_request.base.ref }}
make_latest: ${{ github.event.pull_request.base.ref == 'main' && needs.build.outputs.is_prerelease == 'false' }}
draft: ${{ github.event.pull_request.base.ref != 'main' || needs.build.outputs.is_prerelease == 'true' }}
prerelease: ${{ needs.build.outputs.is_prerelease == 'true' }}
make_latest: ${{ github.event.pull_request.base.ref == 'main' }}
draft: ${{ github.event.pull_request.base.ref != 'main' }}
prerelease: false
generate_release_notes: true
publish_pypi:

View File

@@ -8,12 +8,10 @@ on:
required: true
default: 'patch'
type: 'choice'
options: [patch, minor, major, prepatch, preminor, premajor, prerelease]
pre_release:
description: Pre-release ID (suffix)
required: false
default: ''
type: string
options:
- patch
- minor
- major
jobs:
bump-version:
@@ -35,25 +33,19 @@ jobs:
- name: Bump version
id: bump-version
run: |
npm version ${{ github.event.inputs.version_type }} --preid ${{ github.event.inputs.pre_release }} --no-git-tag-version
npm version ${{ github.event.inputs.version_type }} --no-git-tag-version
NEW_VERSION=$(node -p "require('./package.json').version")
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT
- name: Format PR string
id: capitalised
run: |
CAPITALISED_TYPE=${{ github.event.inputs.version_type }}
echo "capitalised=${CAPITALISED_TYPE@u}" >> $GITHUB_OUTPUT
- name: Create Pull Request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
with:
token: ${{ secrets.PR_GH_TOKEN }}
commit-message: '[release] Increment version to ${{ steps.bump-version.outputs.NEW_VERSION }}'
title: ${{ steps.bump-version.outputs.NEW_VERSION }}
commit-message: '[release] Bump version to ${{ steps.bump-version.outputs.NEW_VERSION }}'
title: '${{ steps.bump-version.outputs.NEW_VERSION }}'
body: |
${{ steps.capitalised.outputs.capitalised }} version increment to ${{ steps.bump-version.outputs.NEW_VERSION }}
Automated version bump to ${{ steps.bump-version.outputs.NEW_VERSION }}
branch: version-bump-${{ steps.bump-version.outputs.NEW_VERSION }}
base: main
labels: |
Release
Release

View File

@@ -1,9 +1,8 @@
- use `npm run` to see what commands are available
- For component communication, prefer Vue's event-based pattern (emit/@event-name) for state changes and notifications; use defineExpose with refs only for imperative operations that need direct control (like form.validate(), modal.open(), or editor.focus()); events promote loose coupling and are better for reusable components, while exposed methods are acceptable for tightly-coupled component pairs or when wrapping third-party libraries that require imperative APIs
- use npm run to see what commands are available
- After making code changes, follow this general process: (1) Create unit tests, component tests, browser tests (if appropriate for each), (2) run unit tests, component tests, and browser tests until passing, (3) run typecheck, lint, format (with prettier) -- you can use `npm run` command to see the scripts available, (4) check if any READMEs (including nested) or documentation needs to be updated, (5) Decide whether the changes are worth adding new content to the external documentation for (or would requires changes to the external documentation) at https://docs.comfy.org, then present your suggestion
- When referencing PrimeVue, you can get all the docs here: https://primevue.org. Do this instead of making up or inferring names of Components
- When trying to set tailwind classes for dark theme, use "dark-theme:" prefix rather than "dark:"
- Never add lines to PR descriptions or commit messages that say "Generated with Claude Code"
- Never add lines to PR descriptions that say "Generated with Claude Code"
- When making PR names and commit messages, if you are going to add a prefix like "docs:", "feat:", "bugfix:", use square brackets around the prefix term and do not use a colon (e.g., should be "[docs]" rather than "docs:").
- When I reference GitHub Repos related to Comfy-Org, you should proactively fetch or read the associated information in the repo. To do so, you should exhaust all options: (1) Check if we have a local copy of the repo, (2) Use the GitHub API to fetch the information; you may want to do this IN ADDITION to the other options, especially for reading specific branches/PRs/comments/reviews/metadata, and (3) curl the GitHub website and parse the html or json responses
- For information about ComfyUI, ComfyUI_frontend, or ComfyUI-Manager, you can web search or download these wikis: https://deepwiki.com/Comfy-Org/ComfyUI-Manager, https://deepwiki.com/Comfy-Org/ComfyUI_frontend/1-overview, https://deepwiki.com/comfyanonymous/ComfyUI/2-core-architecture
@@ -18,6 +17,7 @@
- Use the Vue 3 Composition API instead of the Options API when writing Vue components. An exception is when overriding or extending a PrimeVue component for compatibility, you may use the Options API.
- when we are solving an issue we know the link/number for, we should add "Fixes #n" (where n is the issue number) to the PR description.
- Never write css if you can accomplish the same thing with tailwind utility classes
- Use setup() function for component logic
- Utilize ref and reactive for reactive state
- Implement computed properties with computed()
- Use watch and watchEffect for side effects
@@ -27,12 +27,14 @@
- Use Tailwind CSS for styling
- Leverage VueUse functions for performance-enhancing styles
- Use lodash for utility functions
- Use TypeScript for type safety
- Implement proper props and emits definitions
- Utilize Vue 3's Teleport component when needed
- Use Suspense for async components
- Implement proper error handling
- Follow Vue 3 style guide and naming conventions
- IMPORTANT: Use vue-i18n for ALL user-facing strings - no hard-coded text in services/utilities. Place new translation entries in src/locales/en/main.json
- Use Vite for fast development and building
- Use vue-i18n in composition API for any string literals. Place new translation entries in src/locales/en/main.json.
- Avoid using `@ts-expect-error` to work around type issues. We needed to employ it to migrate to TypeScript, but it should not be viewed as an accepted practice or standard.
- DO NOT use deprecated PrimeVue components. Use these replacements instead:
* `Dropdown` → Use `Select` (import from 'primevue/select')
@@ -52,7 +54,3 @@
- Templates: `api.fileURL('/templates/default.json')`
- Extensions: `api.fileURL(extensionPath)` for loading JS modules
- Any static assets that exist in the public directory
- When implementing code that outputs raw HTML (e.g., using v-html directive), always ensure dynamic content has been properly sanitized with DOMPurify or validated through trusted sources. Prefer Vue templates over v-html when possible.
- For any async operations (API calls, timers, etc), implement cleanup/cancellation in component unmount to prevent memory leaks
- Extract complex template conditionals into separate components or computed properties
- Error messages should be actionable and user-friendly (e.g., "Failed to load data. Please refresh the page." instead of "Unknown error")

View File

@@ -29,16 +29,6 @@ A template with helpful information can be found in `.env_example`.
### Multiple Tests
If you are running Playwright tests in parallel or running the same test multiple times, the flag `--multi-user` must be added to the main ComfyUI process.
### Release API Mocking
By default, all tests mock the release API (`api.comfy.org/releases`) to prevent release notification popups from interfering with test execution. This is necessary because the release notifications can appear over UI elements and block test interactions.
To test with real release data, you can disable mocking:
```typescript
await comfyPage.setup({ mockReleases: false });
```
For tests that specifically need to test release functionality, see the example in `tests/releaseNotifications.spec.ts`.
## Running Tests
There are multiple ways to run the tests:

View File

@@ -268,35 +268,8 @@ export class ComfyPage {
return this._history
}
async setup({
clearStorage = true,
mockReleases = true
}: {
clearStorage?: boolean
mockReleases?: boolean
} = {}) {
async setup({ clearStorage = true }: { clearStorage?: boolean } = {}) {
await this.goto()
// Mock release endpoint to prevent changelog popups
if (mockReleases) {
await this.page.route('**/releases**', async (route) => {
const url = route.request().url()
if (
url.includes('api.comfy.org') ||
url.includes('stagingapi.comfy.org')
) {
console.log('Mocking releases API')
await route.fulfill({
status: 200,
contentType: 'application/json',
body: JSON.stringify([])
})
} else {
await route.continue()
}
})
}
if (clearStorage) {
await this.page.evaluate((id) => {
localStorage.clear()
@@ -1113,7 +1086,7 @@ export const comfyPageFixture = base.extend<{
},
comfyMouse: async ({ comfyPage }, use) => {
const comfyMouse = new ComfyMouse(comfyPage)
await use(comfyMouse)
use(comfyMouse)
}
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Some files were not shown because too many files have changed in this diff Show More