CommunityImagengithub.com

choobi-doobi/photoreal-asset

Construye activos Blender fotorrealistas a partir de fotos de referencia con un único constructor y un crítico de fotos independiente. Prepara opcionalmente texturas horneadas, LODs y colisiones para Godot o Unreal Engine. Ideal para props fotorrealistas, escenas y refinamiento basado en referencias en Blender. Inicia otra ronda de refinamiento solo cuando el usuario lo solicite.

¿Qué es photoreal-asset?

Esta habilidad automatiza la creación de activos 3D fotorrealistas en Blender a partir de fotos de referencia. Utiliza un único agente constructor para crear la geometría y un crítico de fotos independiente para evaluar el resultado, asegurando una revisión objetiva. El flujo de trabajo incluye investigación inicial, construcción, revisión visual y refinamiento opcional en rondas sucesivas. Soporta la exportación de activos listos para juegos con texturas horneadas, niveles de detalle (LODs) y colisiones para Godot y Unreal Engine bajo demanda. Está diseñado para ser independiente del proveedor de agente, modelo o ubicación del proyecto, y utiliza Blender instalado localmente. Las rutas de archivos, comandos y herramientas se configuran mediante variables de entorno, y la habilidad se basa en scripts Python que extienden las capacidades de Blender con bpy. El proceso es iterativo: cada ronda se revisa comparando renders con las fotos de referencia, y se inicia una nueva ronda solo cuando el usuario lo solicita. Ideal para desarrolladores y artistas técnicos que buscan un pipeline automatizado y verificable de activos fotorrealistas.

Compatible con✓Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/choobi-doobi/skill-blender-photoreal-asset/tree/HEAD

Installed? Explore more Imagen skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Photoreal asset

Investiga un breve, ejecuta una construcción en solitario, compárala con las fotos e informa del resultado. Usa Blender instalado y las herramientas de agente disponibles del anfitrión; no requiere un proveedor de agente, modelo, ruta de instalación de Blender o ubicación de proyecto específica.

Configuración

  • Resuelve {SKILL} al directorio que contiene este archivo y {SCRIPTS} a su directorio scripts/. Resuelve {PROJECT} al directorio de proyecto elegido por el usuario. Pon las rutas entre comillas en los comandos. Los ejemplos usan barras diagonales, que Python acepta en Windows, macOS y Linux.
  • Usa Python 3 con numpy y Pillow (python -m pip install -r "{SKILL}/requirements.txt"). SciPy es opcional y acelera las comprobaciones UV. Blender usa su Python empaquetado para scripts bpy.
  • Encuentra blender en PATH, o establece PHOTOREAL_BLENDER en la ruta completa del ejecutable, sin comillas alrededor en el valor. Usa ese mismo ejecutable para los scripts de construcción y el orquestador. Verifica su versión y adapta el código de construcción a la API bpy compatible; no asumas una versión fija.
  • Cycles selecciona un backend de GPU disponible y retrocede a CPU. Establece PHOTOREAL_CYCLES_DEVICE en CPU, OPTIX, CUDA, HIP, METAL o ONEAPI para anular la selección automática. Ejecuta los renders secuencialmente. Una cola externa opcional gpu_slot.py se puede proporcionar a través de PHOTOREAL_GPU_TOOLS; no está incluida ni es obligatoria.
  • Las rutas en asset.json son relativas a ese archivo. Un hdri vacío usa un cielo de luz diurna procedural; de lo contrario, apúntalo a un HDRI existente. Mantén la iluminación y las cámaras fijas una vez que comience la construcción.
  • La entrega predeterminada es un .blend editable con imágenes empaquetadas y renders de revisión. Añade exportaciones para juegos solo cuando se solicite, siguiendo templates/GAME_READY.md.

Diseño del proyecto

<project>/
  asset.json          cámaras, iluminación, prefijo de colección y referencias del crítico
  BRIEF.md            breve de investigación más la plantilla RULES.md rellenada
  ref/SOURCES.md      proveniencia de las fotos; las imágenes de referencia no se distribuyen
  research/           layout.py, blockout.py, blockout.blend, NOTES.md
  rounds/r01-build/   TASK.md, build.py, NOTES.md, tex/, renders/, final/, DONE.txt
  <Title>.md          tabla de rondas y registro del proyecto

Usa una biblioteca de activos existente si el usuario proporciona una. Registra las URL de origen y las licencias de imágenes y texturas externas. Mantén las licencias desconocidas marcadas como desconocidas; no inventes propiedad ni redistribuyas fotos de referencia con el entregable.

1. Investigación

  1. Copia templates/asset.json en el proyecto y adapta el sujeto, collection_prefix, cielo y suelo. Enmarca una vista heroica, lateral/frontal, tres cuartos superior y una vista cercana de la parte más difícil. Establece render_as, photo_kind y scope_note para el crítico.
  2. Rellena templates/TASK_research.md: {ASSET}, {PROJECT}, {PREFIX}, {SUBJECT_PLURAL}, {SKILL} y {SCRIPTS}. Guárdalo como research/TASK.md. Ejecuta un investigador a través de las herramientas de agente del anfitrión, o realiza la investigación directamente.
  3. Entrega fotos de referencia con proveniencia, BRIEF.md, research/layout.py con una zona por parte y una colección propietaria, el bloqueo, y owner_refs / overall_refs en asset.json.
  4. Inspecciona los renders del bloqueo con el visor de imágenes del anfitrión. Ajusta las cámaras hasta que cada una enmarque su sujeto, luego bloquéalas.

Para una hoja de diseño proporcionada, cópiala sin cambios en ref/, registra la proveniencia proporcionada (desconocida donde no se especifique) y haz recortes de detalle. Usa sus vistas para las cámaras evaluadas. Establece critic_goal cuando el objetivo sea coincidir con un diseño estilizado en lugar de pasar como fotografía; ajusta la redacción de la tarea y cualquier entregable adicional en consecuencia.

2. Construcción

  1. Crea rounds/r01-build/TASK.md a partir de templates/TASK_build.md. Rellena {ROUND}, {ASSET}, {PROJECT}, {ROUND_DIR}, {FILE} y {SCRIPTS}.
  2. Deja {GAME_READY} vacío para un activo solo para Blender. De lo contrario, inserta el templates/GAME_READY.md rellenado, seleccionando Godot, Unreal Engine o ambos.
  3. Asigna la tarea a un constructor. Usa el modelo actual a menos que el usuario solicite otro. Mantén su identificador de sesión si el anfitrión expone uno. Un constructor posee la geometría; los críticos independientes solo la revisan.

3. Revisar cada ronda

  1. Renderiza la escena final:
    python "{SCRIPTS}/run.py" --asset "{PROJECT}/asset.json" --parts "{ROUND_DIR}/final/{FILE}.blend" --out "{ROUND_DIR}/final/renders"
    
  2. Lee NOTES.md y el último critique.md. Inspecciona recortes a resolución completa de las partes difíciles junto a las fotos, incluyendo recortes iluminados donde sea útil. Los recuentos de gravedad son ruidosos; usa las diferencias visuales reales para juzgar el progreso.
  3. Compara con la ronda anterior cuando exista:
    python "{SCRIPTS}/compare_rounds.py" --asset "{PROJECT}/asset.json" --rounds <ronda-anterior> <ronda-actual> --focus <ids-de-zona> --refs "<foto>:x0,y0,x1,y1" --out "{PROJECT}/compare_rounds"
    
    Inspecciona las láminas _all.jpg y _focus.jpg resultantes. Usa las rutas de ronda esperadas por compare_rounds.py --help.
  4. Para exportaciones para juegos, ejecuta la validación específica del motor en GAME_READY.md. No describas una importación de Unreal como validada por el verificador GLB de Godot.
  5. Si hay transcripciones compatibles disponibles, opcionalmente ejecuta:
    python "{SCRIPTS}/audit_round.py" "{ROUND_DIR}" --root "{PROJECT}"
    
    Esta auditoría comprende registros de Antigravity y Claude Code, no todos los anfitriones. Pasa --session para una conversación de Antigravity y --allow para directorios de herramientas permitidas adicionales. Su escaneo de rutas de archivos reconoce rutas de unidades de Windows; revisa otros estilos de ruta por separado. Las raíces de registro se pueden anular con PHOTOREAL_ANTIGRAVITY_LOGS y PHOTOREAL_CLAUDE_LOGS.
  6. Registra la ronda e informa imágenes, mejoras, regresiones, resultados de validación y una recomendación. Informa los costos solo si se midieron. Detente después de la ronda solicitada; comienza otro refinamiento solo cuando el usuario lo pida. Copia o ingiere en una biblioteca externa solo cuando ese destino y acción sean solicitados.

4. Refinar a petición

  1. Obtén mejores fotos de las partes nombradas desde vistas relevantes: sentado, vacío, lateral y desde el ángulo de la cámara de evaluación. Registra la proveniencia en ref/SOURCES.md.
  2. Coloca las referencias más sólidas primero en la lista owner_refs del propietario; cada grupo recibe hasta seis.
  3. Copia los scripts de construcción anteriores, tex/ y final/{FILE}.blend en una nueva carpeta rounds/rNN-<focus>/. Conserva sus notas como NOTES_<anterior>.md, su última comprobación como renders/<anterior>_check/ y sus renders finales como renders/<anterior>_final/.
  4. Rellena templates/TASK_refine.md, incluyendo las partes, IDs de zona y nuevas referencias. Limita los cambios a esas partes, excepto defectos de gravedad 3 en otros lugares. Mantén la regla de que las fotos ganan sobre posiciones y ángulos en conflicto, incluyendo partes conectadas.
  5. Ejecuta un constructor, revisa como se indicó anteriormente y muestra los resultados anteriores y actuales junto a las fotos.

Traspaso de agente y crítica independiente

Usa la interfaz de agente nativa del anfitrión en lugar de asumir un nombre de herramienta o alias de modelo. Proporciona al investigador o constructor su directorio de trabajo y el archivo de tarea completo. Mantén las escrituras dentro del proyecto asignado o directorio de ronda. La tarea termina escribiendo DONE.txt. Si la delegación del constructor no está disponible, construye directamente mientras preservas los mismos límites de tarea.

El crítico de la Regla 11 debe ser independiente del constructor. photo_check.py prepara indicaciones y un manifiesto critic_jobs.json. Envía cada indicación a un revisor nuevo con solo lectura de imágenes/archivos, sin herramientas de red o edición, luego guarda su respuesta JSON en el response_file del manifiesto y fusiona. Ejecuta críticos concurrentemente solo cuando el anfitrión lo soporte, respetando critic.parallel. Usa el visor de imágenes del anfitrión donde una indicación se refiera a lectura de imágenes/archivos.

Si los subagentes independientes no están disponibles, --runner claude puede usar una CLI de Claude Code instalada y autenticada. De lo contrario, entrega los renders y los trabajos de revisión preparados, e informa la crítica independiente como incompleta. No sustituyas la propia revisión del constructor y la llames independiente.

Comprobaciones

ScriptPropósito
run.py / render.pyRenderiza colecciones que coinciden con el prefijo en la escena Cycles bloqueada; escribe PNGs de cámara y sheet.jpg.
photo_check.pyRecorta zonas de diseño, prepara trabajos de crítico independiente y fusiona respuestas JSON en critique.md. --from reutiliza renders; --groups selecciona propietarios.
game_check.py / game_check_bl.pyValida mallas LOD, UVs, colisión convexa y texturas GLB incrustadas de Godot; produce un plato giratorio LOD. Consulta GAME_READY.md para validación de Unreal.
compare_rounds.pyCompara rondas y recortes enfocados con una fila de referencia.
audit_round.pyOpcionalmente inspecciona transcripciones compatibles en busca de acceso a archivos, rondas hermanas, llamadas web y uso de tokens medido.

Principios de revisión

  • Mejores fotos de la parte débil suelen ayudar más que añadir reglas al breve.
  • Compara cada refinamiento con la ronda anterior: una corrección puede borrar mejoras anteriores.
  • Verifica quejas de proporción con una superposición a escala coincidente antes de cambiar la geometría.
  • Las cavidades oscuras necesitan reflejos de borde visibles, grosor de pared y degradado interior. Iluminar es solo para inspección; mantén la iluminación evaluada fija. Omite iluminar cuando recorte una imagen de alto clave.
  • Usa las críticas como una lista de reparaciones dentro de una ronda, no como una puntuación numérica entre rondas.

Skills relacionados