From 2f73aa381890379ce9d59e0bb0b9c9257ec39cf2 Mon Sep 17 00:00:00 2001 From: Alex Korbonits Date: Sun, 12 Apr 2026 22:22:34 -0700 Subject: [PATCH] ci: add Ruff config, pre-commit hooks, and GitHub Actions lint workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Ruff config (E/F/I rules, per-file ignores for __init__.py) - Add .pre-commit-config.yaml with ruff lint + format hooks - Add .github/workflows/lint.yml triggering on PRs - Auto-fix 8 violations (unsorted imports, unused imports, f-strings) Note: .pre-commit-config.yaml is excluded — it is listed in .gitignore. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/lint.yml | 17 +++++++++++++++++ app.py | 6 ++---- pipelines/pipeline_flux_infusenet.py | 7 +++---- pipelines/pipeline_infu_flux.py | 2 +- pyproject.toml | 12 ++++++++++++ 5 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/lint.yml create mode 100644 pyproject.toml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..fe58f73 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,17 @@ +name: Lint + +on: + push: + branches: [main] + pull_request: + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v5 + - run: uv python install 3.10 + - run: uv pip install ruff + - run: uv run ruff check . + - run: uv run ruff format --check . diff --git a/app.py b/app.py index d8f2f27..f7875ed 100644 --- a/app.py +++ b/app.py @@ -15,14 +15,12 @@ import gc import gradio as gr -import pillow_avif import torch from huggingface_hub import snapshot_download from pillow_heif import register_heif_opener from pipelines.pipeline_infu_flux import InfUFluxPipeline - # Register HEIF support for Pillow register_heif_opener() @@ -80,9 +78,9 @@ def prepare_pipeline(model_version, enable_realism, enable_anti_blur): torch.cuda.empty_cache() if model_version == 'aes_stage2': - model_path = f'./models/InfiniteYou/infu_flux_v1.0/aes_stage2' + model_path = './models/InfiniteYou/infu_flux_v1.0/aes_stage2' elif model_version == 'sim_stage1': - model_path = f'./models/InfiniteYou/infu_flux_v1.0/sim_stage1' + model_path = './models/InfiniteYou/infu_flux_v1.0/sim_stage1' else: raise ValueError(f'Model version {model_version} not supported.') print(f'Loading model from {model_path}') diff --git a/pipelines/pipeline_flux_infusenet.py b/pipelines/pipeline_flux_infusenet.py index 2d85194..7e1f0f3 100644 --- a/pipelines/pipeline_flux_infusenet.py +++ b/pipelines/pipeline_flux_infusenet.py @@ -14,16 +14,15 @@ # limitations under the License. import inspect -from typing import Any, Callable, Dict, List, Optional, Tuple, Union +from typing import Any, Callable, Dict, List, Optional, Union import numpy as np import torch from diffusers import FluxControlNetPipeline -from diffusers.models.controlnet_flux import FluxControlNetModel, FluxMultiControlNetModel from diffusers.image_processor import PipelineImageInput +from diffusers.models.controlnet_flux import FluxControlNetModel, FluxMultiControlNetModel from diffusers.pipelines.flux.pipeline_output import FluxPipelineOutput -from diffusers.utils import replace_example_docstring, is_torch_xla_available, logging - +from diffusers.utils import is_torch_xla_available, logging if is_torch_xla_available(): import torch_xla.core.xla_model as xm diff --git a/pipelines/pipeline_infu_flux.py b/pipelines/pipeline_infu_flux.py index b113035..489a198 100644 --- a/pipelines/pipeline_infu_flux.py +++ b/pipelines/pipeline_infu_flux.py @@ -25,8 +25,8 @@ from huggingface_hub import snapshot_download from insightface.app import FaceAnalysis from insightface.utils import face_align -from PIL import Image from optimum.quanto import freeze, qint8, quantize +from PIL import Image from transformers import T5EncoderModel from .pipeline_flux_infusenet import FluxInfuseNetPipeline diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..90bc452 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,12 @@ +[tool.ruff] +line-length = 120 + +[tool.ruff.lint] +select = ["E", "F", "I"] +ignore = ["E501", "E402", "E731", "E722", "E741", "E721", "E701", "F841", "F403", "F405"] + +[tool.ruff.lint.per-file-ignores] +"__init__.py" = ["F401"] + +[tool.uv] +# Install with: uv pip install -r requirements.txt